1. 程式人生 > 實用技巧 >8.iptables自定義鏈

8.iptables自定義鏈

為什麼要自定義鏈?

當預設鏈中的規則越來越多時,比如INPUT鏈中100條規則,裡面有針對內網的,有針對外網訪問的,有針對nginx服務的,有針對sshd服務的;此時,有一個需求,要修改nginx服務的相關規則,這就需要從到到尾在這100條規則內找出哪些是nginx的,這顯然十分浪費時間,也不便於運維人員的管理。

在iptables中,可以自定義鏈,通過自定義鏈即可分開進行規則管理。

示例:自定義一個鏈,將所有針對tcp 80埠的入站規則都寫入這條自定義鏈中,當想要修改針對web服務的入站規則時,直接修改這條自定義鏈就好了。
自定義鏈並不能直接使用,而是需要被預設鏈引用才能夠使用。

使用-N選項可以建立自定義鏈

可以看到這條自定義鏈的引用計數為0,也就是說,這條自定義鏈還沒有被任何預設鏈所引用,即使WEB鏈中配置了規則,也不會生效。

在自定義鏈中新增規則,新增方式和預設鏈的新增方式一毛一樣!

這些規則應該去匹配入站的報文,所有我們應該用INPUT鏈去引用它。

驗證:

16主機:

修改自定義鏈名:-E選項

刪除自定義鏈:-X選項

但是刪除自定義鏈,需要滿足:
1.自定義鏈的引用計數為0
2.自定義鏈為空