背景
在前一篇文章中,我们介绍过是不会将规则直接应用到链上,而是通过将表应用到链。表其实就是一组规则的集合。/sbin/iptables
命令其实也是操作的表,对指定表进行规则的 增、删、改、查
操作。
下面我们就来一一介绍下不同的操作,先来看看查询操作。
Iptables语法格式
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 处理动作]
- 表名/链名:指定
iptables
命令所操作的表和链,未指定表名时将默认使用filter
表; - 管理选项:表示
iptables
规则的操作方式,比如:插入、增加、删除、查看等; - 匹配条件:指定要处理的数据包的特征,不符合指定条件的数据包不在处理;
- 处理动作:指数据包的处理方式,比如:
ACCEPT
、REJECT
、DROP
等;
查询
iptables -t filter -L
iptables -t filter -vL FORWARD --line
红色方框的为链名,表示该表应用于哪些链。filter
应用于 INPUT、OUTPUT、FORWARD
链,括号里面的 policy
为该链的默认策略;packets
为当前链默认策略匹配到的数据包数量;bytes
为当前链默认策略匹配到的包大小。最后一条 DOCKER
为自定义链,这里先不管这个,后面我们专门介绍自定义链。
-t
:指定表,如果不指定,默认为filter
表-L
:展示规则信息,后面可以跟上链名,如第二条命令,只查询FORWARD
链规则-v
:展示规则详细信息,会比-L
多出几个字段--line
:展示时对规则进行编号
蓝色方框为具体的规则信息。
num
: 规则编号,使用--line
选项时才会展示pkts
:数据包数量,会自动以友好的方式展示,如1.23K
表示1230
bytes
:流量大小,以byte
为单位target
:处理动作/自定义链prot
:协议opt
:该规则选项in
:数据包入口网卡out
:数据包出口网卡source
:数据包源地址,可以是1个IP,也可以是1个网段destination
:数据包目的地址,可以是1个IP,也可以是1个网段
增加
iptables -A INPUT -p icmp -s 192.168.16.22/32 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
-p
:指定协议,这里以ICMP
协议做测试-s
:指定源地址-j
:处理动作
删除
iptables -t filter -D INPUT 2
iptables -t filter -F
-D
:删除规则,后面加上链。2表示规则编号,使用--line
可以查看-F
:刷新规则,相当于FLUSH
。后面可以跟上链,如果不跟则刷新整张表
修改
iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p icmp -j ACCEPT
-R
:修改规则,后面必须跟上链名和规则编号
小结
规则 增、删、改、查
就先写这么多了,下面总结一下
- 增加:
-A
或者-I
- 删除:
-D
或者-F
- 修改:
-R
- 查询:
-L
、-v
、--line