研究了一下iptables,寫了一個基本的iptables規則,並寫成script
可在開機時執行
#!/bin/bash
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#清空
iptables -F -t filter
iptables -t nat -F
iptables -X
iptables -t nat -X
iptables -F
#NAT setting
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.188.5 -j SNAT --to 140.137.215.188
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.188.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.238.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -d 140.137.215.188 -j DNAT --to 192.168.188.5
#Default policy setting
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#允許lo介面
iptables -A INPUT -i lo -j ACCEPT
#ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT
#www
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.7 #將連到80port轉給另一台主機
#smtp,pop3,icmp...
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to 192.168.1.6 #將連到25port轉給另一台主機
#DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#samba
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
#rsync --一班rsync走ssh:22,故不須開通873
#iptables -A INPUT -p tcp ! -i eth0 --dport 873 -j ACCEPT
#iptables -A INPUT -p udp ! -i eth0 --dport 873 -j ACCEPT
#icmp
iptables -A INPUT -p icmp -j ACCEPT
#自訂一個鍊other
iptables -N other
#規則
iptables -A other -m state --state ESTABLISHED,RELATED -j ACCEPT #允許建立連線與回應的封包通過
#將INPUT,OUTUT,FORWARD表格其餘未設定封包皆由other鍊規則處理
iptables -A INPUT -j other
iptables -A OUTPUT -j other
iptables -A FORWARD -j other