iptables-參數-A和-I


iptables -L -n --line-number 列出鏈所有的規則

[root@GDY-TEST07 etc]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.216.55       0.0.0.0/0           tcp dpt:22 
2    ACCEPT     tcp  --  192.168.228.0/24     0.0.0.0/0           tcp dpt:22 
3    ACCEPT     tcp  --  10.153.97.0/24       0.0.0.0/0           tcp dpt:22 
4    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      

 

 刪除指定的第4行規則:iptables -D INPUT 4

[root@tp ~]# iptables -F        清除預設表filter中的所有規則鏈的規則
[root@tp ~]# iptables -X        清除預設表filter中使用者自定鏈中的規則

 

 

-A與-I 參數的區別

-A參數

iptables是由上往下進行匹配

iptables -A INPUT -s 192.168.228.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.153.97.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

執行以上三條命令后,防火牆由上往下匹配,既從num 1開始匹配到num 3,則允許192.168.228.0/24和10.153.97.0/24這兩個網段訪問,其他不允許訪問

[root@GDY-TEST07 etc]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.228.0/24     0.0.0.0/0           tcp dpt:22 
2    ACCEPT     tcp  --  10.153.97.0/24       0.0.0.0/0           tcp dpt:22 
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination     

 

對比

-I 參數

iptables -I INPUT -s 192.168.228.0/24 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -s 10.153.97.0/24 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j DROP

執行以上三條命令后,防火牆由上往下匹配,既從num 1開始匹配,此時num 1的防火牆策略已將訪問拒絕,num 2和num 3即使accept也不會生效

[root@GDY-TEST07 etc]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22         
2    ACCEPT     tcp  --  192.168.228.0/24     0.0.0.0/0           tcp dpt:22 
3    ACCEPT     tcp  --  10.153.97.0/24       0.0.0.0/0           tcp dpt:22 
 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination    

 

從以上的-A 和 -I參數可以看出,-A 會將后執行的策略添加到已有策略后,而-I 則會插入到已有策略的前(既成為第一條策略)。

 

按照上述所說,如果想加一條策略為允許192.168.216.55這台機器訪問,此時應采用-I 參數將策略添加到已有策略前,如果采用-A 參數將策略添加到已有策略后,

當前場景則是添加到drop策略后,則“允許192.168.216.55這台機器訪問”策略則不會生效。

正確命令:

iptables -I INPUT -s 192.168.216.55/32 -p tcp --dport 22 -j ACCEPT

[root@GDY-TEST07 etc]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.216.55       0.0.0.0/0           tcp dpt:22 
2    ACCEPT     tcp  --  192.168.228.0/24     0.0.0.0/0           tcp dpt:22 
3    ACCEPT     tcp  --  10.153.97.0/24       0.0.0.0/0           tcp dpt:22 
4    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      

 

以上所述,只適合上述所說場景。

因為上述場景drop策略是禁止所有從22端口進行訪問。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM