ericpuwang

Iptabes 规则管理

规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。

规则查询

规则字段 含义
pkts 对应规则匹配到的报文个数
bytes 对应匹配到的报文包的大小总和
target 规则对应的target,往往表示匹配后的“动作”,即规则匹配成功后采取的操作
prot 规则对应的协议,是否只针对某些协议应用此规则
opt 规则对应的选项
in 数据包由哪个接口(网卡)流入,可以控制处理哪个网卡流入的报文
out 数据包由哪个接口(网卡)流出,可以控制处理哪个网卡流出的报文
source 规则对应的源地址,可以是一个IP,也可以是一个网段
destination 规则对应的目标地址,可以是一个IP,也可以是一个网段
名称 含义
policy 当前链的默认规则
packets 当前链默认策略匹配到的包的数量
bytes 当前链默认策略匹配到的所有包的大小总和

添加规则

Tips: 规则顺序很重要。如果报文已经被前面的规则匹配到,iptables则会对报文执行对应的动作,即使后面的规则也能匹配到当前报文,很有可能也没有机会再对报文执行相应的动作。

# iptables -t 表名 -A 链名 匹配条件 -j 动作
# -A 在链的末尾添加规则

iptables -t filter -A INPUT -s 192.168.1.146 -j DROP`
# iptables -t 表名 -I 链名 匹配条件 -j 动作
# -I 表示在链的开头添加规则
iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT
# iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作

# 在第五个位置插入规则
iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

更新规则

Tips: 如果使用-R选项修改规则中的动作,那么必须指明原规则中的原匹配条件,例如源IP,目标IP等

# iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

Tips: 修改指定表的指定链的默认策略(默认动作),并非修改规则

# iptables -t 表名 -P 链名 动作

iptables -t filter -P FORWARD ACCEPT

删除规则

# iptables -t 表名 -D 链名 规则序号

#删除INPUT链中第三条规则
iptables -t filter -D INPUT 3
#  iptables -t 表名 -D 链名 匹配条件 -j 动作

# 删除INPUT链中源地址为192.168.1.146,动作为ACCEPT的规则
iptables -t filter -D INPUT -s 192.168.1.146 -j ACCEPT
# iptables -t 表名 -F

# 清除filter表中所有规则
iptables -t filter -F

保存规则

保存规则命令如下,表示将iptables规则保存至/etc/sysconfig/iptables文件中

service iptables save
iptables-restore < /etc/sysconfig/iptables