1.查看表中规则

1
2
3
4
5
# 查看filter表中所有规则
iptables -t filter -L

# 查询filter表中INPUT链规则
iptables -t filter -L INPUT

查询表.png

2.查看规则详情

1
2
# 加入-v参数,查看详情
iptables -t filter -L -v

查看规则详情.png

规则字段含义:

  • pkts:对应规则匹配到的报文的个数。
  • bytes:对应匹配到的报文包的大小总和。
  • target:规则对应的target,往往表示规则对应的”动作”,即规则匹配成功后需要采取的措施。
  • prot:表示规则对应的协议,是否只针对某些协议应用此规则。
  • opt:表示规则对应的选项。
  • in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。
  • out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。
  • source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。
  • destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。

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

查看某链上细化规则.PNG

链括号中的参数含义:

Chain INPUT (policy ACCEPT 4883 packets, 342K bytes)

  • policy表示当前链的默认策略,policy ACCEPT表示上图中INPUT的链的默认动作为ACCEPT,换句话说就是,默认接受通过INPUT关卡的所有请求,所以我们在配置INPUT链的具体规则时,应该将需要拒绝的请求配置到规则中,说白了就是”黑名单”机制,默认所有人都能通过,只有指定的人不能通过。
  • packets表示当前链(上例为INPUT链)默认策略匹配到的包的数量,0 packets表示默认策略匹配到0。
  • bytes表示当前链默认策略匹配到的所有包的大小总和。

3.显示规则行号

1
2
3
4
iptables --line-number -nvL INPUT

// 查看精细的字节数可以加-x参数
iptables -nvxL INPUT

查看精确字节数.png

4.添加规则

使用 -I 或者 -A 来添加规则。

1
2
3
4
5
# 14.215.177.39 为百度的一个ip
iptables -t filter -I INPUT -s 14.215.177.39 -j DROP
iptables -t filter -A INPUT -s 14.215.177.39 -j ACCEPT
# 在INPUT链的第一行添加规则
iptables -t filter -A INPUT 1 -s 14.215.177.39 -j ACCEPT
  • 使用-I选项,指明将”规则”插入至哪个链中,-I表示insert,即插入的意思,所以-I INPUT表示将规则插入于INPUT链中,即添加规则之意。

  • 使用-s选项,指明”匹配条件”中的”源地址”,即如果报文的源地址属于-s对应的地址,那么报文则满足匹配条件,-s为source之意,表示源地址。

  • 使用-j选项,指明当”匹配条件”被满足时,所对应的动作,上例中指定的动作为DROP,在上例中,当报文的源地址为14.215.177.39时,报文则被DROP(丢弃)。

增加规则.png

验证新加规则.png

5.删除规则

1
2
# 删除多少行,删除第一行规则
iptables -t filter -D INPUT 1

删除规则.png

6.修改规则

使用 -R 来更改指定行数规则

1
2
# 将INPUT链第一行规则改为接受14.215.177.39的报文,此处一定要加上-s,否者将默认0.0.0.0/0,接受全部。
iptables -t filter -R INPUT 1 -s 14.215.177.39 -j ACCEPT

7.设置链默认规则

使用 -P参数设置链默认规则

1
2
# 设置filter表FORWARD链默认规则为DROP
iptables -t filter -P FORWARD DROP

8.保存/恢复配置信息

使用iptables-save 指令

1
2
iptables-save > /data/iptables-rules
iptables-restore < /data/iptables-rules

参考文档

iptables规则管理