添加規則時的考量點:
(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