2
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 --flushafterportblock::tcp::3260::block来解锁端口 3260。

最终,我想建立一个防火墙,这意味着我只想暂时阻止端口 3260,然后取消阻止它。

有人可以帮我编写一个脚本,然后我可以调用它来阻止端口 3260,然后用另一个脚本取消阻止它吗?

谢谢,

JC

4

1 回答 1

4

如果您使用-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

默认情况下,我认为这是一套很好的规则

# 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

你应该检查这个链接。底部有一个完整的脚本,您可以使用它来设置带有一组好的规则的 IPTables,您可以根据自己的需要进行修改。

于 2012-09-02T22:17:45.957 回答