天天看点

Iptables规则查询

iptabels预定义了4表,分别是raw表,mangle表,nat表,filter表,不同的表拥有不同的功能。

以filter表为例,它主要进行数据包的过滤,比如允许哪些IP地址访问,拒绝哪些IP地址;允许访问哪些端口,禁止访问哪些端口,filter会根据我们定义的规则进行过滤。

查看filter表中的规则

Iptables规则查询

-t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则

上图中,显示出三条链:INPUT链、OUTPUT链、FORWARD链,每条链中都有自己的规则;

例如,我们需要禁止某个IP地址访问我们的主机,则需要在INPUT链上定义规则;在生产环境中,在哪条链上定义规则,取决于实际的工作场景,所以,如果我们想要禁止某些报文发往本机,我们只能在

PREROUTING

INPUT

链中定义规则;但是

PREROUTING

链并不存在于

filter

表中,换句话说就是,PREROUTING链本身就没有过滤数据包的能力,所以我们只能在INPUT链中定义规则。

查看指定链的规则,省略-t选项默认为filter表

Iptables规则查询
使用-v选项查看更多、更详细的内容:
Iptables规则查询
字段的含义:

pkts      # 对应规则匹配到的报文的个数
bytes     # 对应匹配到的报文包的大小总数
target    # 规则对应的“动作”,即规则匹配成功后需要采取的措施
prot      # 规则对应的协议,是否只针对某些协议应用此规则
opt       # 规则对应的选项
in        # 表示数据包由哪个网卡流入,可以设置通过哪块网卡流入的报文需要匹配的规则
out       # 表示数据包由哪个网卡流出,可以设置通过哪块网卡流出的报文需要匹配的规则
source    # 规则对应的源地址,IP、网段
destination    # 规则对应的目标地址,IP或网段           

图中的源地址和目标地址都为anywhere,iptables默认为我们进行了地址解析,但是在规则非常多的情况下如果进行地址解析,效率会比较低,所以可以使用-n选项,表示不对IP地址进行解析,直接显示IP地址。

Iptables规则查询

--line-numbers可显示规则的编号,如下:

Iptables规则查询

可以看到图中每个链的括号中都有一些信息,分别表示什么呢?

1.policy:表示当前链的默认策略,policy ACCEPT表示上图中INPUT链的默认动作为ACCEPT,默认接受通过INPUT链的所有请求;

我们在配置INPUT链的具体规则是,应该将需要拒绝的请求配置到规则中,设置“黑名单”机制。

2.packets:表示当前链默认策略匹配到的包的数量;0 packets表示默认策略匹配到0个包。

3.bytes:表示当前链默认策略匹配到的所有包的大小总和。

命令总结

1.

iptables -t [表名] -L

查看对应表的所有规则,-t指定表,可省略,默认为filter表;-L表示列出规则

2.

iptables -t [表名] -L [链名]

查看指定表中指定链中的规则

3.

iptables -t [表名] -v -L

查看指定表中所有规则,并显示出更详细的信息

4.

iptables -t [表名] -n -L

查看表中所有规则,-n选项表示不进行IP地址解析

5.

iptables -t [表名] -L --line-numbers

查看表中所有规则,--line-numbers选项表示显示规则的序号,可简写为--line

继续阅读