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..
|