2012-09-02 54 views
1
[email protected]:~# iptables --list 
Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 
DROP  tcp -- anywhere    anywhere    multiport dports iscsi-target 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 

如何編寫腳本來刪除阻止iscsi-target端口(3260)的規則?我試過了:阻止和解除阻塞端口的腳本

iptables -A INPUT -p tcp --dport 3260 -j ACCEPT 

但是我所做的只是插入一個新的規則,它不會解除阻塞端口。

使用:

portblock::tcp::3260::unblock, from /etc/ha.d/haresources, does not remove the block to port 3260. 

現在,我使用iptables --flushportblock::tcp::3260::block解除封鎖端口3260

最後,我想提出一個防火牆,這意味着我只是想臨時塊端口然後,解鎖它。

人可以幫我編寫一個腳本,我可以打電話阻止端口3260,然後,用另一個腳本解鎖?

感謝,

JC

回答

1

如果使用-A,要附加到鏈因此,在鏈在此之前,任意一個相符的規則,將優先考慮。您需要使用-I插入第一個位置。

iptables -I INPUT -p tcp --dport 3260 -j ACCEPT 

事實上,你的默認策略是接受,但在你的鏈中的第一個規則是來自任何來源的異物掉落到任何目標,這將始終與任何涉及INPUT鏈。

您應該刪除該規則與

iptables -D INPUT 1 

然後你就可以追加你想添加規則。

總之,你可以通過簡單的插入位置0的規則INPUT鏈解鎖端口2360:

iptables -I INPUT -p tcp --dport 3260 -j ACCEPT 

及刪去與iptables -D INPUT 0

默認情況下,同樣的規則再次阻止它,我覺得這是一個很好的set of rules

# iptables -P INPUT ACCEPT 
# iptables -F 
# iptables -A INPUT -i lo -j ACCEPT 
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
# iptables -P INPUT DROP 
# iptables -P FORWARD DROP 
# iptables -P OUTPUT ACCEPT 

您應該檢查this link。在底部有一個完整的腳本,您可以使用它來設置IPTables,並提供一組可根據需要進行修改的規則。

+0

規則編號爲1,因此基於刪除規則應該是'的iptables -D INPUT 1' – dvim

+0

@Martynas謝謝你指揮,編輯的答案。 – Icarus