0、iptables命令選項輸入順序:
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動做
添加規則有兩個參數:-A和-I。其中-A是添加到規則的末尾;-I能夠插入到指定位置,沒有指定位置的話默認插入到規則的首部。
表名包括:
raw:高級功能,如:網址過濾。
mangle:數據包修改(QOS),用於實現服務質量。
net:地址轉換,用於網關路由器。
filter:包過濾,用於防火牆規則。
規則鏈名包括:
INPUT鏈:處理輸入數據包。
OUTPUT鏈:處理輸出數據包。
PORWARD鏈:處理轉發數據包。
PREROUTING鏈:用於目標地址轉換(DNAT),路由前。
POSTOUTING鏈:用於源地址轉換(SNAT),路由後網絡
一、查看
iptables -nvL --line-numbers
-L 查看當前表的全部規則,默認查看的是filter表,若是要查看NAT表,能夠加上-t NAT參數
-n 不對ip地址進行反查,加上這個參數顯示速度會快不少
-v 輸出詳細信息,包含經過該規則的數據包數量,總字節數及相應的網絡接口
--line-numbers 顯示規則的序列號,這個參數在刪除或修改規則時會用到tcp
二、添加
添加規則有兩個參數:-A和-I。其中-A是添加到規則的末尾;-I能夠插入到指定位置,沒有指定位置的話默認插入到規則的首部。
當前規則:接口
[root@test ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.4 0.0.0.0/0
添加一條規則到尾部:
[root@test ~]# iptables -A INPUT -s 192.168.1.5 -j DROPip
再插入一條規則到第三行,將行數直接寫到規則鏈的後面:
[root@test ~]# iptables -I INPUT 3 -s 192.168.1.3 -j DROP
查看:路由
[root@test ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.3 0.0.0.0/0
4 DROP all -- 192.168.1.4 0.0.0.0/0
5 DROP all -- 192.168.1.5 0.0.0.0/0
能夠看到192.168.1.3插入到第三行,而原來的第三行192.168.1.4變成了第四行。
添加多個端口
iptables -I INPUT -p tcp -m multiport --ports 5900:6100 -m comment --comment "vnc ports" -j ACCEPTget
三、刪除
刪除用-D參數
刪除以前添加的規則(iptables -A INPUT -s 192.168.1.5 -j DROP):
[root@test ~]# iptables -D INPUT -s 192.168.1.5 -j DROP
有時候要刪除的規則太長,刪除時要寫一大串,既浪費時間又容易寫錯,這時咱們能夠先使用--line-numbers找出該條規則的行號,再經過行號刪除規則。
[root@test ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.3 0.0.0.0/0io
刪除第二行規則
[root@test ~]# iptables -D INPUT 2table
四、修改
修改使用-R參數
先看下當前規則:
[root@test ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 DROP all -- 192.168.1.5 0.0.0.0/0
將第三條規則改成ACCEPT:test
[root@test ~]# iptables -R INPUT 3 -j ACCEPT
再查看下:iptables
[root@test ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 192.168.1.1 0.0.0.0/0
2 DROP all -- 192.168.1.2 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
第三條規則的target已改成ACCEPT。
五、清理防火牆iptables -F