我正在用具有双 NIC 的 ubuntu 服务器替换运行 Tomato 的无线路由器。我 ssh 进入了番茄路由器,并在/etc/iptables那里找到了所有规则,根据我正在阅读的内容,所有规则都是有意义的。一旦服务器设置并运行,我可能会使用 webmin。(当我写这个问题时,我已经在复制qos
和dnsmasq
设置文件)
设置 iptables 真的像更改接口名称并将相同的文件保存到 Debian 服务器一样简单吗?
番茄:(vlan1
公共)、br0
(私有有线)和eth1
(私有无线)
Ubuntu:(eth0
公共)和eth1
(私有)。
接口名称更改的番茄配置文件:
*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.165.243.155 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -p tcp -m tcp -d 99.165.243.155 --dport 22 -j DNAT --to-destination 10.0.0.2:22
-A PREROUTING -p tcp -d 99.165.243.155 --dport 8822 -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.165.243.155
:upnp - [0:0]
-A PREROUTING -d 99.165.243.155 -j upnp
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth1 -d 99.165.243.155 -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
编辑添加:我也一直在阅读这两个伟大的资源: http:
//oceanpark.com/notes/firewall_example.html
http://www.novell.com/coolsolutions/feature/18139.html
编辑添加:
1. 最终更改为 Debian。Ubuntu 12.04 LTS 需要太多的 hack 才能在我的硬件上工作。
2.iptables
不识别mport模块,但这是一个不同的问题。
是的...就像复制/粘贴和适当调整界面名称一样简单。番茄上的 iptables 与 ubuntu/debian/centos/red hat/suse/dsl/openwrt/ddwrt/puppy/etc 上的 iptables 相同......操作系统风格之间唯一潜在的冲突......是特定的 iptables模块已编译/安装。
您在上面发布的配置由 生成
iptables-save
并应由iptables-restore
. 在大多数 linux-flavors 上默认情况下不会读取它......因此您可能需要创建一个 init 脚本来恢复启动时的设置。在 Ubuntu 上,您可以简单地编辑 /etc/rc.local 并添加以下内容:
我看到的您使用的唯一非标准安装模块是“layer7”模块......但它很容易在 ubuntu 中安装。做一个
你就完成了。