用于阻止和取消阻止端口的脚本

时间:2012-09-02 22:12:15

标签: linux port block iptables

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

1 个答案:

答案 0 :(得分:1)

如果您使用-A,那么您将附加到链,因此,在此链之前的链中匹配的任何规则都将优先。您需要使用-I插入第一个位置。

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

实际上,您的默认策略是ACCEPT,但您链中的第一条规则是DRO​​P从任何源到任何目标的任何内容,它始终匹配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,您可以根据需要进行修改。