我正在用双网卡的ubuntu服务器取代运行Tomato的无线路由器。 我进入番茄路由器,发现/ etc / iptables那里,所有的规则是有道理的基础上我正在阅读。 一旦服务器安装并运行,我可能会使用webmin。 (正如我正在写这个问题,我已经复制qos和dnsmasq设置文件)
设置iptables真的和更改接口名称一样简单,并将相同的文件保存到Debian服务器上?
番茄: vlan1 (公共), br0 (私人有线)和eth1 (私人无线)
Ubuntu: eth0 (public)和eth1 (private)。
具有接口名称的番茄configuration文件已更改:
*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需要太多的黑客才能使用我的硬件 。
2. iptables不能识别mport模块,但这是一个不同的问题 。
是的…就像复制/粘贴和调整接口名称一样简单。 在番茄上的iptables,和ubuntu / debian / centos / red hat / suse / dsl / openwrt / ddwrt / puppy /等上的iptables是一样的…操作系统的不同口味之间唯一的潜在冲突是不pipe是不是特定的iptables模块被编译/安装。
你上面发布的configuration是由iptables-save生成的,应该由iptables-restore读取。 它在大多数linux-flavors中不是默认读取的…所以你可能需要创build一个init脚本来恢复启动时的设置。
在Ubuntu上,你可以简单地编辑/etc/rc.local并添加:
sudo iptables-restore < /etc/iptables
你所使用的唯一的非标准安装模块,我看到的是“layer7”模块…但它很容易安装在Ubuntu。 只要做一个
sudo apt-get install l7-filter-userspace l7-protocols
你完成了。