添加规则时的考量点:
(1)要实现哪种功能:判断添加在哪张表上;
(2)报文流经的路径:判断添加在哪个链上;
链上规则的次序:
(1)同类规则(访问同一应用),匹配范围小的放上面;
(2)不同类规则(访问不同应用),匹配到报文频率较大的放上面;
功能的优先级次序:raw --> mangle --> nat --> filter
安装:
[root@bogon ~]# yum install -y iptables-services
启动:
[root@bogon ~]# systemctl start iptables
[root@bogon ~]# systemctl enable iptables
查看所有规则:
[root@bogon ~]# iptables -vnL
[root@bogon ~]# cat /etc/sysconfig/iptables
常用选项:
-A:追加到规则的最后一条
-D:删除记录
-I:添加到规则的第一条
-P:修改表默认策略
-s:源ip地址或ip网段
--sport:源端口
-d:目的ip地址或ip网段
--dport:目的端口
-p:(proto)规定通信协议,常见的协议有:tcp、udp、icmp、all
-t:(table)指定表,不指定默认为filter表,可选的表有:filter,raw,mangle,nat
-i:进入的网卡,可配搭的链有:PREROUTING,INPUT, FORWARD
-o:出去的网卡,可配搭的链有:POSTROUTING,OUTPUT,FORWARD
-m:模块,可选模块有:state,mac
-j:(jump)指定要跳转的目标,常见的目标有:ACCEPT(接收数据包)、DROP(丢弃数据包)、REJECT(拒绝),LOG(记录日志)
增加规则
放通22端口:
[root@bogon ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许ping:
[root@bogon ~]# iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
允许lo接口所有数据:
[root@bogon ~]# iptables -A INPUT -i lo -j ACCEPT
放通tcp10000-20000端口:
[root@bogon ~]# iptables -I INPUT -p tcp --dport 10000:20000
允许所有已建立连接或已建立连接相关连接的数据包:
[root@bogon ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
删除某个规则:
首先显示已有规则及序号:
[root@bogon ~]# iptables -vnL --line-numbers
删除序号为2的规则:
[root@bogon ~]# iptables -D INPUT 2
设置默认入站策略:
[root@bogon ~]# iptables -P INPUT DROP
清空规则:
清空规则之前先设置默认允许所有:
[root@bogon ~]# iptables -P INPUT ACCEPT
清空所有除默认规则以外的规则:
[root@bogon ~]# iptables -F
清空所有自定义链:
[root@bogon ~]# iptables -X
重置所有计数器
[root@bogon ~]# iptables -Z
保存规则:
[root@bogon ~]# service iptables save
保存规则版本:
[root@bogon ~]# iptables-save > /etc/sysconfig/iptables.20191018
恢复指定版本规则:
[root@bogon ~]# iptables-restore /etc/sysconfig/iptables.20191018