iptables自定義鏈用法


自定義鏈用法

實驗架構

此實驗實際上防火牆兩邊都需要是公網IP,並且在此實驗中,防火牆充當一個路由器,只是添加了一些訪問控制規則;外網用戶訪問內網的nginx服務;

1、vim /etc/sysctl.conf
net.ipv4.ip_forward = 1   #防火牆開啟路由器轉發功能

2、sysctl -p

防火牆添加iptables規則

防火牆在此實驗中只是起到了轉發作用,所以報文都不是發送到防火牆本機的,規則需要在filter表的FORWARD鏈上添加

1、iptables -A FORWARD -j REJECT  
#首先添加拒絕轉發所有的報文,防止外網訪問內網
2、iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT #在forward鏈上插入規則,允許防火牆轉發已經建立連接或與已有連接相關的連接的報文 3、iptables -I FORWARD 2 -d 192.168.39.100 -p tcp --dport 80 -j ACCEPT #允許防火牆轉發訪問192.168.39.100服務器TCP80端口的請求;這樣在外網訪問內網80端口時,第一次建立連接后,客戶端已經與服務端80端口建立一次連接,響應報文就可以匹配第一條規則,允許轉發已經建立連接的報文

將現有防火牆規則添加至自定義鏈中

把自定義規則添加到自定義鏈中,然后再把自定義鏈,鏈接到系統自帶的5個鏈中;
關聯自定義鏈類似於腳本中的函數引用,先定義好函數,然后再引用函數;
自定義鏈好處是把之前的多條規則整合成一條規則(實際規則數量並沒有變,只是顯示的更清晰一些),並且修改規則只需要修改自定義鏈即可;

1、iptables -E TO_LAN   
#創建一個名為TO_LAN的自定義鏈
2、iptables -A TO_LAN -d 192.168.39.100 -p tcp --dport 80 -j ACCEPT #將此規則先從FORWARD鏈中刪除,然后再把該規則添加到TO_LAN自定義鏈中 3、iptables -I FORWARD 2 -j TO_LAN #自定義鏈要想引用,需要把自定義鏈添關聯到指定鏈中;即把自定義鏈插入成FORWARD鏈的第2條規則,這樣就可以引用自定義鏈

修改自定義鏈名稱

iptables -E old_name new_name

刪除自定義鏈

1、iptables -D FORWARD 2  #刪除自定義鏈時,先從引用自定義鏈的相關鏈中刪除所引用的自定義鏈

2、iptables -F TO_LAN     #然后清空自定義鏈中的所有規則

3、iptables -X TO_LAN     #刪除自定義空鏈;如果自定義鏈被引用或者自定義鏈中有規則,則無法刪除自定義鏈

 


免責聲明!

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



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