iptabls 查、增、删、改,保存

一:查

参数 说明
-t 指定要查看的表,默认为 filter 表
-L 列出表中规则
-v 查看详细信息
-x 显示计数器的精确值
-n 不对 IP 地址进行名称反解,直接显示 IP
--line-number 显示规则的行号,可缩写为 --line
-P 修改默认策略
-N 创建自定义链
-E 重命名自定义链
-N 删除自定义链

案例一:
查询 fileter 表 INPUT 链中的规则丢弃 ip:192.168.8ptables -t filter -vL INPUT
skill——iptables(二)_第1张图片
下面介绍下每列的含义

列明 说明
pkts 匹配到的报文的个数
bytes 匹配到的报文包的总大小
target 表示 “动作”,即匹配成功后要进行的操作
prot 规则对应的协议(其中 all 表示匹配所有协议)
opt 规则对应的选项
in 表示数据包由那个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则
out 表示数据包由那个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则
source 表示规则对应的源头地址,如:IP、网段
destination 表示规则对应的目标地址,如:IP、网段

案例二:
列出 fileter 表 INPUT 链中的规则,并显示行号, 不对 IP 地址进行名称反解
skill——iptables(二)_第2张图片
可以对比上面图的区别,下面来解释下划线第二行的含义

列明 说明
policy 表示当前链的默认策略,即:在规则中没有找到对应策略时,应用该策略
packets 表示当前链默认策略匹配到的包的 数量
bytes 表示当前链默认策略匹配到的所有包的总大小

二:增

参数 说明
-I insert 表示将规则插入链中 ,即添加
-A append 追加规则(追加到最后一条)
-s source 源地址,指明 “匹配条件” 中的地址
-j 当满足条件时,所对应的动作

案例一:
在 fileter 表 INPUT 链中添加一条丢弃 ip:192.168.80.138 的规则
skill——iptables(二)_第3张图片
在 80.138 的机器上进行 ping 或 ssh 连接,查看结果
skill——iptables(二)_第4张图片
在看 80.144 中变化,如:报文数,总大小
skill——iptables(二)
案例二:
使用 -I 与 -A 添加的区别
如下图:使用 -I 添加的规则在第一行
skill——iptables(二)_第5张图片
如下图:使用 -A 添加的规则在第三行,即 -I 与 -A 的区别
skill——iptables(二)_第6张图片
案例三:
使用 -I 在第二行添加一条规则
skill——iptables(二)_第7张图片
注意:iptables 中匹配规则是自上而下的,当匹配到第一个符合的规则,便不会在向下匹配

三:删

参数 说明
-F flush 清空链表,不指定链只指定表,即删除表中所有规则
-D 根据匹配条件删除对应规则

案例一:
根据规则行号删除对应的规则
skill——iptables(二)_第8张图片
案例二:
根据匹配条件与动作删除规则
skill——iptables(二)_第9张图片
案例三:
清空链表
skill——iptables(二)_第10张图片
注意:当没有 -t 指明表时,默认为 filter 表
四:改
修改使用 -R,不常用,如果要改,个人建议先删后加
案例一:
修改规则中的动作
skill——iptables(二)_第11张图片
注意:在修改时(-R 链 序号)即可,但修改有些规则时,要求加上原本的匹配条件,即诺要修改时,原本的匹配条件也要加上,有多个,就写多个

五:保存规则
centos6:使用 service iptables save 即可永久保存,规则默认保存在 /etc/sysconfig/iptables 文件中
如果出现误操作,但并没有保存时,使用service iptables restart 即重启 iptables,规则会返回到上一次保存时(/etc/sysconfig/iptables)的模样

centos7:需要安装 iptables 与 iptables-service 然后就和 centos6 中一样了
安装步骤如下:

#配置好 yum 源以后安装 iptables-service
yum install -y iptables-services
#停止 firewalld
systemctl stop firewalld
#禁止 firewalld 自动启动
systemctl disable firewalld
#启动 iptables
systemctl start iptables
#将 iptables 设置为开机自动启动,以后即可通过 iptables-service 控制 iptables 服务
systemctl enable iptables

也可以使用 重载的方式来保存,但重载规则时,现有规则将会被覆盖
如下:

iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables