class="22751">
以下是我自己的一個防火牆例子,對大家最近提出的DNAT(端口映射)的問題很有幫助
環境:
ADSL(eth0)網卡啟動時不激活
內網(eth1)192.168.0.1/24
代碼:
#! /bin/bash
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -F -t filter
/sbin/iptables -F -t nat
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# ALLOW ALL in PRIVATE NET
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -j ACCEPT
# NAT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
# DNAT RADMIN to PRIVATE in platinum.3322.org
/sbin/iptables -A PREROUTING -t nat -p tcp -s ! 192.168.0.0/24 --dport 4899 -j DNAT --to 192.168.0.2:4899
/sbin/iptables -A PREROUTING -t nat -p tcp -s ! 192.168.0.0/24 --dport 5000 -j DNAT --to 192.168.0.3:4899
# SQUID
/sbin/iptables -A PREROUTING -t nat -p tcp -s 192.168.0.0/24 --dport 80 -j DNAT --to 192.168.0.1:3128
# FORWARD edit by Platinum
/sbin/iptables -A FORWARD -p tcp --dport 21 -j ACCEPT # FTP
/sbin/iptables -A FORWARD -p tcp --dport 22 -j ACCEPT # SSH
/sbin/iptables -A FORWARD -p udp --dport 53 -j ACCEPT # DNS
/sbin/iptables -A FORWARD -p tcp --dport 80 -j ACCEPT # HTTP
/sbin/iptables -A FORWARD -p tcp --dport 443 -j ACCEPT # HTTPS
/sbin/iptables -A FORWARD -p udp --dport 8000 -j ACCEPT # QQ
/sbin/iptables -A FORWARD -p tcp --dport 25 -j ACCEPT # SMTP
/sbin/iptables -A FORWARD -p tcp --dport 110 -j ACCEPT # POP3
/sbin/iptables -A FORWARD -p tcp --dport 4899 -j ACCEPT ; # RADMIN
/sbin/iptables -A FORWARD -p tcp --dport 1863 -j ACCEPT # MSN (you must allow port 443)
/sbin/iptables -A FORWARD -p icmp -j ACCEPT
# allow the third handshake
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# exchange the other packets' "SOURCE" and "TARGET", and SEND it !!!
/sbin/iptables -A INPUT -j MIRROR
此防火牆適用於靜態IP及動態IP地址
原文請參考 http://bbs.chinaunix.net/forum/4/20040622/353019.html