iptables查询列表指令大全
iptables基础概念
在介绍iptables查询列表指令之前,我们先了解一些iptables基础概念。
iptables是一个在Linux系统中用于配置防火墙和过滤数据包的工具。它可以在网络接口层、传输层和应用层等不同网络层次上进行筛选和操作,以保障系统安全和网络流量能够顺畅地进行。iptables是Linux操作系统的默认防火墙,可以通过修改其规则集来进行访问控制和流量管理。
在iptables中,规则由三个部分组成:匹配条件、动作和目标。匹配条件是用来判断数据包是否符合规则要求的,可以包括数据包的来源、目标地址、端口号、协议类型等。动作是指匹配成功时iptables执行的操作,一般包括ACCEPT、DROP、REJECT等。目标是指将匹配到的数据包传输到哪里,可以是本地主机或者其他网络节点。
iptables查询列表指令
iptables查询列表指令主要用于查看iptables中已经添加的规则列表,以便于管理员进行管理和维护。下面我们介绍几个常用的iptables查询列表指令。
iptables -L
iptables -L命令可以列出iptables中当前所有的规则链和规则,包括默认规则、自定义规则和系统内置规则。该命令的输出结果可以分为四个部分:Chain、num、pkts、bytes。
Chain列显示规则链的名称,num列显示规则链中规则的编号,pkts列显示匹配该规则的数据包个数,bytes列显示匹配该规则的数据包字节数。Chain和num是必须显示的列,pkts和bytes列可以通过添加选项来进行控制。
使用iptables -L命令不带任何选项时,输出结果如下:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
2 ACCEPT tcp -- anywhere anywhere tcp dpt:http
3 ACCEPT all -- anywhere anywhere
4 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
5 DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
1 DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
1 ACCEPT all -- anywhere anywhere
INPUT、OUTPUT和FORWARD分别表示iptables中的三个默认规则链,即数据包进入本地主机、数据包从本地主机出发以及数据包在本地主机进行转发的规则链。
iptables -L -n
iptables -L -n命令可以列出当前iptables中的规则列表,但是会将所有IP地址和端口号都显示为数字形式,而不是域名和服务名称。这种形式可以加快查询速度,并且尤其适用于在没有DNS服务或者网络连接不稳定的情况下进行查询。
使用iptables -L -n命令时,输出结果如下:
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
5 DROP all -- 0.0.0.0/0 0.0.0.0/0
1 DROP all -- 0.0.0.0/0 0.0.0.0/0
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
iptables -L -v
iptables -L -v命令可以列出iptables中的规则列表,并且可以显示更加详细的信息,包括匹配到规则的数据包数量和字节数等。
使用该命令时,输出结果会多出两列:pkts和bytes,分别表示匹配到该规则的数据包个数和字节数。
使用iptables -L -v命令时,输出结果如下:
Chain INPUT (policy ACCEPT 10 packets, 1037 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh
2 0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http
3 0 0 ACCEPT all -- any any anywhere anywhere
4 0 0 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
5 0 0 DROP all -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
1 0 0 DROP all -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 5 packets, 594 bytes)
1 5 594 ACCEPT all -- any any anywhere anywhere
iptables -L -t
iptables -L -t命令可以列出iptables中指定表格的规则列表,例如-nat表格、-mangle表格等。
在iptables中,有多个表格,用于存储不同范畴的规则。默认情况下,使用iptables -L命令时会输出filter表格的规则列表,但是如果需要查看其他表格的规则列表,就需要使用iptables -L -t命令,并指定需要查看的表格名称。
使用iptables -L -t nat命令时,输出结果如下:
Chain PREROUTING (policy ACCEPT)
1 DNAT tcp -- anywhere anywhere tcp dpt:http to:192.168.0.2:80
1 SNAT all -- anywhere 192.168.0.2 to:192.168.0.1
Chain POSTROUTING (policy ACCEPT)
可以看到,在-nat表格中,共有四个规则链:PREROUTING、INPUT、OUTPUT和POSTROUTING。
网友留言(0)