我用Debian服务器replace了运行Tomato的无线路由器/防火墙,我很高兴find了番茄的iptablesconfiguration,所以我可以直接将它导入新的服务器 (我之前的问题)。 来自Tomato的iptablesconfiguration文件(底部)在Debian中失败了iptables-restore :
# iptables-restore < iptables.eth0-eth1 iptables-restore v1.4.14: Couldn't load match `mport':No such file or directory Error occurred at line: 7 Try `iptables-restore -h' or 'iptables-restore --help' for more information.
有没有办法让mport进入“现代”的iptables?
或者你能帮我翻译mport到multiport吗?
使用iptables mportsearch非常粗糙,但是我最终发现有人抱怨mport不在了,而且一个多端口教程通过引用mport扩展,导致我窥探两个盒子的文件系统模块,并尝试每个“防火墙”工具Debian有一个希望神奇地来与mport 。 我承认被Tomato的用户界面所迷惑 – 我试过的每一个Debian软件包都让我越来越困惑(gui或cli)。 如果我可以让服务器简单地路由一切,我认为mason可能工作。 难怪大家都讨厌iptables。
我花了更多的时间来试图找出错误比我应该。 如果我花了那么多时间去了解iptables ,我可能已经可以将mport规则翻译成multiport 。 另外,我考虑发布给超级用户,然而,less数iptables标记的问题与我在这里读取的ServerFault中不同。
寻找模块:
我使用tomato固件进入无线路由器,在/usr/lib/iptablesfind模块libipt_mport.so 。 但在/lib/modules/2.4.20/kernel/net/ipv4/netfilter目录中,没有libipt_mport.so ,只有ipt_multiport.o 。
在Debian中(新安装的wheezy),我使用了updatedb并locate MASQ (MASQUERADE对象)上的search,并find目录
/lib/modules/3.2.0-4-amd64/kernel/net/ipv4/netfilter有一个很好的iptable_*和nf_nat_* ko文件的数组。 该search还在/lib/xtables libxt_multiport.so中find了libxt_multiport.so ,但没有提及libxt_multiport.so对象模块。
另外,下面还有其他问题吗? 我看到了第七层的东西,有一种感觉,这将使下一个更复杂。
番茄的configuration文件:
笔记:
»99.1.81.209是WAN IP
»10.0.0.2是这个Debian防火墙的ip
»10.0.0.20是一个服务器
»番茄的公共接口vlan0更改为eth0
»番茄的内部接口br0更改为eth1
»端口5060:5090是用于VoIP(可能不需要整个范围?)
*mangle :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :QOSO - [0:0] -A QOSO -j CONNMARK --restore-mark --mask 0xff -A QOSO -m connmark ! --mark 0/0xff00 -j RETURN -A QOSO -p tcp -m mport --dports 80,443 -m bcount --range 0x0-0x7ffff -j CONNMARK --set-return 0x2/0xFF -A QOSO -p tcp -m mport --dports 80,443 -m bcount --range 0x80000 -j CONNMARK --set-return 0x4/0xFF -A QOSO -p udp --dport 53 -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF -A QOSO -p tcp --dport 53 -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF -A QOSO -p udp --dport 53 -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF -A QOSO -p tcp --dport 53 -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF -A QOSO -p udp --dport 1024:65535 -j CONNMARK --set-return 0x5/0xFF -A QOSO -p tcp --dport 1024:65535 -j CONNMARK --set-return 0x5/0xFF -A QOSO -p udp -m mport --ports 5060:5090 -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j CONNMARK --set-return 0x101/0xFF -I QOSO -j BCOUNT -A QOSO -j CONNMARK --set-return 0x4 -A FORWARD -o eth0 -j QOSO -A OUTPUT -o eth0 -j QOSO COMMIT *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -i eth0 -d 10.0.0.2/255.255.255.0 -j DROP -A PREROUTING -p icmp -d 99.1.81.209 -j DNAT --to-destination 10.0.0.2 -A PREROUTING -p tcp -m tcp -d 99.1.81.209 --dport 22 -j DNAT --to-destination 10.0.0.2:22 -A PREROUTING -p tcp -d 99.1.81.209 --dport 10022 -j DNAT --to-destination 10.0.0.20:22 -A POSTROUTING -p tcp --dport 22 -s 10.0.0.2/255.255.255.0 -d 10.0.0.20 -j SNAT --to-source 99.1.81.209 :upnp - [0:0] -A PREROUTING -d 99.1.81.209 -j upnp -A POSTROUTING -o eth0 -j MASQUERADE COMMIT *filter :INPUT DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i eth1 -d 99.1.81.209 -j DROP -A INPUT -m state --state INVALID -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -N shlimit -A shlimit -m recent --set --name shlimit -A shlimit -m recent --update --hitcount 3 --seconds 60 --name shlimit -j DROP -A INPUT -p tcp --dport 22 -m state --state NEW -j shlimit -A INPUT -i eth1 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp -d 10.0.0.2 --dport 22 -j ACCEPT :FORWARD DROP [0:0] -A FORWARD -i eth1 -o eth1 -j ACCEPT -A FORWARD -m state --state INVALID -j DROP -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1461: -j TCPMSS --set-mss 1460 :L7in - [0:0] -A FORWARD -i eth0 -j L7in -A L7in -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j RETURN :wanin - [0:0] :wanout - [0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i eth0 -j wanin -A FORWARD -o eth0 -j wanout -A FORWARD -i eth1 -j ACCEPT :upnp - [0:0] -A FORWARD -i eth0 -j upnp -A wanin -p tcp -m tcp -d 10.0.0.20 --dport 22 -j ACCEPT COMMIT
AFAIK, multiport模块的参数与您所显示的mport模块的参数相同。
尝试一个简单的search和replace:
s/-m mport/-m multiport/g
PS:当然不是每个人都讨厌iptables, 我个人喜欢 iptables 😉