由 linuxsky 在 09-03-2002 10:02 发表:
iptables的常用规则(希望懂的人都来添加自己的常用规则)
modprobe iptable_nat
#加载NAT模块
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
#加载连接跟踪模块
modprobe ip_conntrack_ftp
#加载FTP连接跟踪模块
echo 1 > /proc/sys/net/ipv4/ip_forward
#启用IP转发
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.0/22 -j MASQUERADE
#启用IP欺骗(MASQUERADE),只对源地址为 172.16.128.0/22这段生效
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#将所有80端口的包转发到3128端口
iptables -t nat -A PREROUTING -i eth0 -d 61.x.x.12 -j DNAT --to 172.16.128.x
iptables -t nat -A PREROUTING -i eth0 -d 61.x.x.12 -p tcp --dport 80 -j DNAT --to-destination 172.16.128.x:80
#做地址映射,把目标地址61.x.x.12通过目标地址转换,变成172.16.128.x
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.128.x -j SNAT --to 61.x.x.12
#做地址映射,把源地址172.16.128.x通过源地址转换,变成61.x.x.12
iptables -t nat -A POSTROUTING -p tcp -s 192.168.123.1/32 -d 192.168.123.8/32 -j SNAT --to 192.168.123.254
#把源地址的请求到目标地址做源地址转换,变成x.x.x.254
iptables -F INPUT
#清空入站规则
iptables -F OUTPUT
#清空出站规则
iptables -t nat -F
#清空NAT规则
iptables -P INPUT DROP
#设置默认的入站规则为丢弃(DROP)
iptables -A INPUT --sport 80 -j ACCEPT
#允许此主机下载网页(来自源端口为80的数据包)
iptables -A INPUT -i ! eth1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport http -m state --state NEW -j ACCEPT
#允许http访问
iptables -A INPUT -p tcp -i eth1 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -i eth1 -j REJECT --reject-with icmp-port-unreachable
#传递TCP连接,处理UDP
iptables -A INPUT -p icmp -m limit --limit 6/m --limit-burst 5 -j ACCEPT
#前四个包正常,第5个包开始每十秒一个正常
由 linuxsky 在 09-03-2002 10:04 发表:
以上是我最近做NAT和做防火墙以及地址映射常用到的语句
我想我这样的做法也许不专业.
所以贴到这里来.希望能有专业人员进来帮我改进.也希望能有更多的规则添加进来
算是帮帮我们这些入门者吧!
由 linuxsky 在 12-17-2002 11:14 发表:
iptables -A INPUT -p tcp -s x.x.x.x/x --dport 22 -j ACCEPT // 允许源地址为x.x.x.x/x的主机通过22(ssh)端口.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT // 允许80(http)端口的数据