一、iptables简介
iptables是Linux系统下的一个核心防火墙工具,用于过滤和转发网络数据包,从而保护系统的网络安全。iptables的基本结构由表(Tables)、链(Chains)和规则(Rules)组成。表是规则的集合,而链是表中规则的分类。每个链包含多个规则,这些规则用于匹配数据包并根据匹配结果执行相应操作。在Linux系统中,iptables有四个内建的表:Filter表、NAT表、Mangle表和Raw表。Filter表用于对数据包进行过滤,主要包含INPUT、OUTPUT和FORWARD三个链。NAT表用于网络地址转换,包括PREROUTING、POSTROUTING和OUTPUT三个链。Mangle表主要用于数据包的修改,而Raw表用于决定是否对数据包进行状态跟踪处理。当数据包到达主机时,它会按照链中的规则顺序进行检查。如果数据包符合某条规则的条件,就会执行该规则指定的操作,比如接受(ACCEPT)或丢弃(DROP)数据包。如果数据包不匹配任何规则,将会应用链的默认策略。
二、Iptables常用命令:
1.查看版本:使用iptables -V命令可以查看当前iptables的版本信息。
2.查看规则:可以使用iptables -L命令查看当前表中的所有链及其规则。如果要查看特定表的规则,可以使用相应的选项,例如使用iptables -t filter --list查看Filter表中的规则。
3.追加规则:使用iptables -A命令可以将新规则追加到链的末尾。
例如,要允许来自特定IP地址范围的流量通过输入链,可以使用命令
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
4.删除规则:使用iptables -D命令可以删除指定链中的规则。
例如,要从输入链中删除第一条规则,可以使用命令
iptables -D INPUT 1
5.修改规则:一般先删除原规则,然后添加新规则来实现修改。
例如,若要更改输入链中的第一条规则,可以先使用iptables -D INPUT 1删除,然后用iptables -A INPUT -s 192.168.1.0/24 -j DROP添加新规则。
6.清空规则:使用iptables --flush或iptables -F命令可以清空所有表中的所有规则。
如果要清空特定表的规则,可以使用相应的选项,例如使用iptables -t nat -F清空NAT表中的规则。
7.保存规则:使用service iptables save或/etc/rc.d/init.d/iptables save命令可以将当前规则保存到文件中,以便在系统重启后恢复。
8.恢复规则:可以使用iptables-restore < File.bak命令来应用之前保存的规则。
9.查看帮助:使用iptables --help命令可以查看iptables的详细帮助信息和使用说明。