1.查询规则
常用参数:
-t 指定表,默认filter表
-L 列出规则
-v 表示verbose,显示详细信息
-n 不做解析,显示IP
--line-numbers 显示行号
-x 显示计数器的精确值
iptables -t 表名 -L
iptables -t 表名 -L 链名
iptables -t 表名 -L 链名 -v
iptables -t 表名 -v -L
iptables -t 表名 -n -L
iptables --line-numbers -t 表名 -L
iptables -t 表名 -L -v -x
iptables -t 表名 --line -nvxL
iptables -t filter --line -nvxL INPUT
字段含义解释:
INPUT链后面的括号中包含policy ACCEPT ,0 packets,0bytes 三部分。
policy表示当前链的默认策略,policy ACCEPT表示INPUT的链的默认动作为ACCEPT,默认接受通过INPUT关卡的所有请求。
packets表示当前链(上例为INPUT链)默认策略匹配到的包的数量,0 packets表示默认策略匹配到0个包。
bytes表示当前链默认策略匹配到的所有包的大小总和。
pkts:对应规则匹配到的报文的个数。
bytes:对应匹配到的报文包的大小总和。
target:规则对应的target,往往表示规则对应的”动作”,即规则匹配成功后需要采取的措施。
prot:表示规则对应的协议,是否只针对某些协议应用此规则。
opt:表示规则对应的选项。
in:表示数据包由哪个接口(网卡)流入,即从哪个网卡来。
out:表示数据包将由哪个接口(网卡)流出,即到哪个网卡去。
source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。
destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。
2.增加规则
规则的顺序很重要,如果报文被前面的规则匹配到了,就会对报文执行对应的动作,即使后面的规则也能匹配到当前报文,也不会再执行相应的动作。
常用参数:
-t 指定要操作的表,不使用-t选项时,默认指定filter表
-A Append追加,添加在末尾
-I Insert插入,添加在开头,也可以指定序号
-s source匹配条件中的源地址
-j 匹配条件执行的动作
iptables -t 表名 -A 链名 匹配条件 -j 动作
iptables -t 表名 -I 链名 匹配条件 -j 动作
iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
修改指定链的默认动作:iptables -t 表名 -P 链名 动作
iptables -t filter -A INPUT -s 192.168.1.146 -j DROP
iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT
iptables -t filter -P FORWARD ACCEPT
3.删除规则
如果没有保存规则,删除请慎重。
两种方式:
1.根据规则编号删除对应规则
2.根据具体匹配条件与动作删除规则
常用参数:
-D 删除对应链的规则
-F flush冲刷指定的链,即清空对应链中的规则
iptables -t 表名 -D 链名 规则序号
iptables -t 表名 -D 链名 匹配条件 -j 动作
清空链的所有规则:iptables -t 表名 -F 链名
清空表的所有规则:iptables -t 表名 -F
iptables -t filter -D INPUT 3
iptables -t filter -D INPUT -s 192.168.1.146 -j DROP
iptables -t filter -F INPUT
iptables -t filter -F
4.修改规则(慎用)
前提:必须指定规则原本的匹配条件,例如:源IP,目标IP等。
如果省略匹配条件,则修改后规则会变。
推荐先删除规则,再在原编号处重新添加新规则。
常用参数:
-R replace替换,需要指定对应的链,规则对应的序号,和原来的匹配条件
-P 指定要修改的链
iptables -t 表名 -R 链名 规则序号 规则原来的匹配条件 -j 条件
修改指定链的默认策略:iptables -t 表名 -P 链名 动作
iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT
iptables -t filter -P FORWARD ACCEPT
5.保存规则
# centos7中
iptables-save > /etc/sysconfig/iptables
6.重载规则
将/etc/sysconfig/iptables
中的规则重新载入当前iptables规则,现有规则会被覆盖。
# centos7中
iptables-restore < /etc/sysconfig/iptables
7.其他修改方式
直接修改/etc/sysconfig/iptables
文件,后reload服务,慎用。