Tuesday, May 25, 2010

iptables為何需要自訂chain?

給未來的裕翔

iptables可以自訂chain

哪時會用到?

假設我現在iptables有三十條rule

1~10是關於192.168.0.0的

11~20是關於192.168.1.0的

21~30是關於192.168.2.0的

只要有個來自192.168.2.X的

總是會白白比對20條rule

可否改進? custom chain^^

自訂3個chain, 假設叫做chainA, chainB, chainC

新增三個規則chain 在INPUT

... 192.168.0.0 -J chainA

... 192.168.1.0 -J chainB

... 192.168.2.0 -J chainC

現在變成只要比對兩條就好了~

注意, custom chain沒有預設policy

比對沒成功的話, 就回剛剛來的地方繼續比對

實作:

iptables -N my-custom-chain

iptables -A my-custom-chain -s XXX.XXX.XXX.XXX -p icmp -j DROP

iptables -A INPUT -s XXX.XXX.XXX.0/24 -j my-custom-chain

要刪掉的話

iptables -X my-custom-chain   這樣會失敗

因為還有rule在my-custom-chain裡面

iptables -D my-custom-chain 1

iptables -X my-custom-chain   這樣還是會失敗, 哈哈哈

因為INPUT裡面有用到my-custom-chain

等chain INPUT裡面關於my-custom-chain那條也砍掉

就可以iptables -X my-custom-chain了

No comments:

Post a Comment