使用 iptables 阻止端口

使用 iptables 阻止端口

我有一台具有多个接口(IP)的服务器。我想阻止所有端口在其中一个 IP 上(我不想对其他 IP/接口做任何更改),但允许从它发出传出连接。例如,应该可以从它运行 IRC 客户端,但不能简单地从外部连接到它(我将从白名单 IP 连接)。

这是我到目前为止得到的:

Chain INPUT (policy ACCEPT)
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
DROP       all  --  0.0.0.0/0            IP

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

但这些规则不起作用。即使我从这个 IP 发起连接,远程服务器也无法连接回来,尽管我允许 RELATED/ESTABLISHED 连接。出了什么问题?

答案1

首先,OUTPUTChain 的默认策略是接受,所以最后一行:

ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

没有必要。

然后是第一行:

ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

也是多余的,因为默认策略INPUT接受

仅尝试使用这两条规则,看看是否有帮助:

iptables -A INPUT -d IP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -d IP -j DROP

答案2

您是否遇到了 IRC 连接问题?您尝试连接的 IRC 服务器可能要求您运行服务器ident。大多数 IRC 客户端都伪造了一个服务器。尝试允许端口 113 上的传入连接,看看情况是否有所改善。

相关内容