linux防火墙iptables详细教程

2020-01-30 12:26:26王振洲

 iptables -I INPUT -j DROP
 在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条)

 iptables -I INPUT 3 -j DROP
 在 filter 表的 INPUT 链里插入一条规则(插入成第 3 条)

注意: 1、-t filter 可不写,不写则自动默认是 filter 表
   2、-I 链名 [规则号码],如果不写规则号码,则默认是 1
   3、确保规则号码 ≤ (已有规则数 + 1),否则报错
3.2.3 -D
-D <链名> <规则号码 | 具体规则内容>
 DELETE,删除一条规则

例如:
 iptables -D INPUT 3(按号码匹配)
 删除 filter 表 INPUT 链中的第三条规则(不管它的内容是什么)

 iptables -D INPUT -s 192.168.0.1 -j DROP(按内容匹配)
 删除 filter 表 INPUT 链中内容为“-s 192.168.0.1 -j DROP”的规则
 (不管其位置在哪里)

注意:
 1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条
 2、按号码匹配删除时,确保规则号码 ≤ 已有规则数,否则报错
 3、按内容匹配删除时,确保规则存在,否则报错

3.2.3 -R
-R <链名> <规则号码> <具体规则内容>
 REPLACE,替换一条规则

例如:
 iptables -R INPUT 3 -j ACCEPT
 将原来编号为 3 的规则内容替换为“-j ACCEPT”

注意:
 确保规则号码 ≤ 已有规则数,否则报错

3.2.4 -P
-P <链名> <动作>
 POLICY,设置某个链的默认规则

例如:
 iptables -P INPUT DROP
 设置 filter 表 INPUT 链的默认规则是 DROP

注意:
 当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理

3.2.5 -F
-F [链名]
 FLUSH,清空规则

例如:
 iptables -F INPUT
 清空 filter 表 INPUT 链中的所有规则

 iptables -t nat -F PREROUTING
 清空 nat 表 PREROUTING 链中的所有规则

注意:
 1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
 2、-P 设置了 DROP 后,使用 -F 一定要小心!!!
 3、如果不写链名,默认清空某表里所有链里的所有规则
3.2.6 -[vxn]L
-L [链名]
 LIST,列出规则

 v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
 x:在 v 的基础上,禁止自动单位换算(K、M)
 n:只显示 IP 地址和端口号码,不显示域名和服务名称

例如:
 iptables -L