《Linux iptables:规则原理和基础》介绍了iptables的四表五链,简单说就是不同的网络层数据包会经过哪几个挂载点,在每个挂载点可以在哪张表进行规则定义。

本篇沿着这个思路,更具体的介绍一条iptables规则的组成。

Linux iptables:规则组成

这是iptables一条规则的基本组成,也是iptables定义规则的命令格式:

Linux,iptables,规则组成

第一列是iptables命令;

第二列指定规则所在的表,常用的是nat和filter表;

第三列是命令,常用命令如下:

-A 在指定链的末尾添加(append)一条新的规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-F 清空(flush)规则
-P 设置指定链的默认策略(policy)
-n 使用数字形式(numeric)显示输出

第四列是指定规则作用的挂载点;

第五列是选项,常用选项如下:

-p 指定协议
-s 源地址
-d 目的地址
--sport 源端口号
--dport 目的端口号
--dports 目的端口号列表
-m 补充

第六列是规则,常用规则如下:

ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息
SNAT 对数据包源地址改写
DNAT 对数据包目的地址改写
LOG 记录数据包
以上基本上对iptables定义规则时的命令及参数进行了介绍,在定义规则时可以作为参考。