一叶知秋.

业精于勤,荒于嬉;行成于思,毁于随。

2.iptables规则查询

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

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

查看filter表中的规则

-t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则
上图中,显示出三条链:INPUT链、OUTPUT链、FORWARD链,每条链中都有自己的规则;

例如,我们需要禁止某个IP地址访问我们的主机,则需要在INPUT链上定义规则;在生产环境中,在哪条链上定义规则,取决于实际的工作场景,所以,如果我们想要禁止某些报文发往本机,我们只能在PREROUTINGINPUT链中定义规则;但是PREROUTING链并不存在于filter表中,换句话说就是,PREROUTING链本身就没有过滤数据包的能力,所以我们只能在INPUT链中定义规则。

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

使用-v选项查看更多、更详细的内容:

字段的含义:

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

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

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

可以看到图中每个链的括号中都有一些信息,分别表示什么呢?
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

posted @ 2020-09-16 22:15  ccku  阅读(2113)  评论(0编辑  收藏  举报