root@node2:~# 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 --flush
之后使用portblock::tcp::3260::block
取消阻止端口3260.
最终,我想建立一个防火墙,这意味着我只想暂时阻止端口3260然后解锁它。
有人可以帮我编写一个我可以调用阻止端口3260的脚本,然后用另一个脚本解锁吗?
谢谢,
JC
答案 0 :(得分:1)
如果您使用-A
,那么您将附加到链,因此,在此链之前的链中匹配的任何规则都将优先。您需要使用-I
插入第一个位置。
iptables -I INPUT -p tcp --dport 3260 -j ACCEPT
实际上,您的默认策略是ACCEPT,但您链中的第一条规则是DROP从任何源到任何目标的任何内容,它始终匹配INPUT链中的任何内容。
您应该使用
删除该规则iptables -D INPUT 1
然后您可以附加要添加的规则。
总之,您只需在INPUT链中的第0位插入规则即可取消阻止端口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,您可以根据需要进行修改。