Linux iptables 配置详解

二、配置一个NAT表放火墙
1. 查看本机关于NAT的设置情况
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all — 192.168.0.0/24 anywhere to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章
当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的
如果你想清除,命令是
# iptables -F -t nat
# iptables -X -t nat
# iptables -Z -t nat
2. 添加规则
添加基本的NAT地址转换,(关于如何配置NAT可以看我的另一篇文章)
添加规则,我们只添加DROP链.因为默认链全是ACCEPT.
防止外网用内网IP欺骗
# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)
例:
禁止与211.101.46.253的所有连接
# iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP
禁用FTP(21)端口
# iptables -t nat -A PREROUTING -p tcp –dport 21 -j DROP
这样写范围太大了,我们可以更精确的定义.
# iptables -t nat -A PREROUTING -p tcp –dport 21 -d 211.101.46.253 -j DROP
这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.
按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.
最后:
drop非法连接
# iptables -A INPUT -m state –state INVALID -j DROP
# iptables -A OUTPUT -m state –state INVALID -j DROP
# iptables-A FORWARD -m state –state INVALID -j DROP
允许所有已经建立的和相关的连接
# iptables-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# iptables-A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用
# service iptables restart
别忘了保存,不行就写一部保存一次.你可以一边保存,一边做实验,看看是否达到你的要求

1 2
原文链接:https://xiaohost.com/780.html,转载请注明出处。
0

评论2

请先