查看iptables
iptables -t filter -nvL INPUT
参数:
-t 指定了查看的表。
-n 表示不进行名称解析。如果不带-n source和destination的0.0.0.0/0会被解析成 anywhere,in和out的*会被解析成any
-v 表示详细信息(verbose),会增加pkts,bytes,in,out信息
-L 表示list信息, 后跟具体的链名,不跟链名打印所有链
--line / --line-numbers 打印rule行号
-x 显示计数中精确值,比如pkts和bytes将3217M显示成3216849936(3217*1000*1000)
rule表字段含义:
pkts: 对应规则匹配到的报文个数
bytes: 对应规则匹配到的报文包大小综合
target: 规则对应的target,可以理解为下一步处理,可以是ACCEPT,DROP等基本处理动作,也可以是一个自定义链
prot: 协议
opt: 额外参数,使用的较少,多为空“--”
in: 入网卡
out: 出网卡
source: 源ip/网段
destination: 目的ip/网段
增加规则:
iptables -t filter -I INPUT -s 192.163.40.2 -j DROP
参数:
-I: insert,默认添加到第一行。在链名之后加数字可以指定加到哪一行
-A: append,添加到最后一行。
删除规则:
1. 按照rule行号删除:iptables -t filter -D INPUT 1
2. 按照rule内容删除:iptables -t filter -D INPUT -s 192.163.40.2 -j DROP
当按照内容删除时,如果存在多条内容相同的rule,只会删除第一条匹配规则
3. 大粒度删除:
清除filter表的INPUT链: iptables -t filter -F INPUT
-F : flush,直接清除,如果不带链名,则清除filter表中所有链
修改规则:
修改规则:iptables -t filter -R INPUT 1 -d 1.1.1.1 -j ACCEPT
根据行号修改规则,比如上图修改第一条规则,指定了-d 和 -j,但是没有指定-s,发现source被默认为了0.0.0.0/0 并没有保存修改之前的192.163.40.2,即修改规则不会保留修改命令中未指定的参数,直接按照默认值处理,修改规则需要指定所有参数才能保证与预期一致
修改链的默认策略:iptables -t filter -P FORWARD DROP
把filter表的FORWARD链的默认策略改为DROP,当没有任何规则匹配时,使用默认规则
保存规则:
service iptables save
在某些版本中需要使用:iptables-save > /etc/sysconfig/iptables 来保存iptables
使用iptables-restore < /etc/sysconfig/iptables 来重载以保存的规则,冲掉命令行中执行的还未保存的iptables操作