防火墙
iptables 是建立在 netfilter 架构基础上的一个包过滤管理工具。
用户通过 /sbin/iptables 命令来管理 iptables,和 route 命令相同,iptables 命令的效果在重新启动以后就不再有效。
可以使用 /etc/rc.d/init.d/iptables save 将当前 iptables 规则写到 /etc/sysconfig/iptables 文件中,那么每次开机时/etc/rc.d/init.d/iptables start 命令会使 /etc/sysconfig/iptables 中的规则生效
iptables构成
iptables 是由几张表所组成,每张表又由几条链组成,每张表负责不同的封包处理机制,每条链负责不同的封包走向,具体采取的策略由链里的规则设定
- filter 表: 包含真正的防火墙过滤规则,用于过滤包
- INPUT 链: 存在于 filter 表,主要用于处理进入本机的包
- OUTPUT 链: 存在于 filter 表,主要用于处理离开本机的包
- FORWARD 链: 存在于 fileter 表,主要用于处理穿过本机的包
- INPUT 链: 存在于 filter 表,主要用于处理进入本机的包
- Nat 表 : 包含源和目的地址及端口转换使用的规则,用于做地址转换
- PREROUTING 链: 存在于 nat 表,主要用于在包刚刚到达防火墙时改变目的地址(DNAT)
- POSTROUTING 链: 存在于 nat 表,主要用于在包就要离开防火墙之前修改来源地址(SNAT)
- OUTPUT链:存在于nat表,主要用于改变本地产生的包的目的地址
- mangle 表: 允许改变包的内容来进一步矫正包,主要用于给数据包打标记,这些标记会被filter表中的规则检查