ufw 阻止拨出到白名单 IP 地址的电话

ufw 阻止拨出到白名单 IP 地址的电话

场景如下。

在我的 ubuntu 中,我想阻止除某些 IP 地址之外的所有传出流量,我通过添加 ufw 规则来实现这一点,并且它工作正常。因此,我从 ubuntu 访问的服务是 MQTT 客户端,它侦听另一台服务器的端口 1884,该服务器的 IP 已在 ufw 中列入白名单。现在它工作正常,直到我尝试使用端口 1885 上的安全 MQTT 建立连接,现在它不起作用,直到我禁用防火墙一次,当我重新启用它时,它每次都有效。这里要注意的一点是服务器 IP 地址在 ufw 中被列入白名单。所以这没有意义。如果您有任何想法,请告诉我。

sudo ufw default allow incoming
sudo ufw default deny outgoing
sudo ufw allow out 53
sudo ufw allow out 60001
sudo ufw allow out ntp
sudo ufw allow out to xx.xx.xx.xxx

现在,这一直有效,直到我使用没有 tls 的普通 mqtt 客户端,当我尝试启用 tls mqtt 客户端时,这不起作用,但是在我禁用防火墙、将 mqtt 与 tls 连接,然后重新启用防火墙后,它就可以工作了。

答案1

对于 UFW,规则的顺序很重要。查看列表,在允许语句之前设置了拒绝所有传出。因此,当您尝试建立传出连接时,UFW 将检查规则以查看是否存在匹配项,在本例中,它遇到的第一个匹配项是拒绝所有传出。因此,它会阻止连接,而不会检查任何其他匹配项。

如果你编辑user.rules文件

/etc/ufw/user.rules

然后重新排序规则,以便允许语句位于拒绝所有语句之前,这样它就应该可以工作了。

相关内容