使用 ufw 从 localhost 拒绝

And*_*ris 3 firewall ufw

我有一个服务在端口 1339 上运行。是否可以拒绝从本地主机到此端口的请求?目前我有一个 ufw 规则允许来自指定 IP 的请求,但 localhost 也可以访问该端口。我不希望登录到服务器的用户使用curl或wget访问url,该端口应该只能从指定的IP访问。这可能吗?

小智 5

根据我的尝试,使用 ufw 是不可能的。

ufw 将用户定义的规则存储到单独的 iptables 链中(用于 INPUT 链的ufw-user-input等)。

不幸的是,如果你检查 INPUT 链,就会发现ufw-user-input子链是最后一个。第一个称为ufw-before-input,包含接受所有本地主机通信的规则。由于这一点,iptables永远不会到达你的本地主机规则,如果在ufw-user-input中定义的话。

最后,我通过直接将该规则作为 INPUT 链中的第一条规则插入来禁用本地主机通信。这可以通过以下方式完成:

sudo iptables  -I INPUT -p tcp -i lo --dport 5702 -j DROP
Run Code Online (Sandbox Code Playgroud)

这将丢弃进入本地主机上 TCP 端口 5702 的所有数据包。

如果你想检查 iptables 中的所有链,请使用:

sudo iptables -nvL
Run Code Online (Sandbox Code Playgroud)