eth0為內網,eth1為外網
echo 1 > /proc/sys/net/ipv4/ip_forward
可以使其局域網上網的簡單命令
1.iptables -t nat -A POSTROUTING -j MASQUERADE
2.iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 218.17.*.*
或者 iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j SNAT --to-source 218.17.*.*
3.iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to-source 218.17.*.*
或者 iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.0/24 -j SNAT --to-source 218.17.*.*
4.iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.0/24 -j MASQUERADE
例如:簡單的腳本
1.編寫腳本vi /usr/local/sbin/iptables.sh
#! /bin/bash
# Project by lch, 2005-09-02
#Initialize modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -X
/sbin/iptables -t nat -X
# Deny ACK attack
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
/sbin/iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#共享上網(內網轉發)
/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to-source 218.17.*.*
##############INPUT鏈#######################
#內網192.168.2網段訪問本機器ssh,telent,samba,8001端口,9090端口
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --dports 8001,9090 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 23 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 139 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT
##############FORWARD鏈######################
#允許內網192.168.2網段192.168.2網段8001,9090,ftp,telent,ssh,收發郵件,http,QQ,MSN通過
/sbin/iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -s 192.168.2.0/24 -m multiport --dports 21,22,23,25,80,110,443,1863,8000,8001,9090 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.2.0/24 --dport 8000 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#禁止icmp通信(ping不通)
/sbin/iptables -A INPUT -p icmp -j DROP
2.加入/etc/rc.local中,使其系統每次啟動機器都執行iptables
/usr/local/sbin/iptables.sh
3.給iptables.sh只能root用戶讀寫執行
chmod 700 /usr/local/sbin/iptables.sh
Ok..