将 UFW 设置为仅接受来自本地源的连接

将 UFW 设置为仅接受来自本地源的连接

我有一台装有 Ubuntu 服务器和 UFW 防火墙的服务器。服务器运行 docker,docker 中有两个容器。一个是代理服务器,另一个是其他在端口 42111 上有 WebUI 的服务。此服务无法在 WebUI 上进行身份验证。

因此,我想以某种方式阻止从 Internet 到端口 42111 上的 WebUI 的连接(这是 UFW 的默认设置),但允许来自机器上的代理服务器的连接。

我该如何正确设置它?

答案1

正确的答案是,你应该首先将 UFW 配置为拒绝所有流量,然后仅允许具有以下功能的 IP 地址:

sudo ufw allow in from ipaddress to any port 42111 proto tcp

但这不是最佳做法。您不需要 UFW 来阻止它。正确配置 docker 网络已经可以作为防火墙了。您只需不从 WebUI 的容器公开端口 42111,这样只有代理容器才能通过容器的网络连接到它。

使用容器的 IP 地址也不是一个好习惯,因为它们是自动生成的,而且可能会发生变化。您应该将容器添加到一个新的命名网络,以便它们可以使用其名称相互通信。

答案2

好吧,我不确定我做了什么,但是这句话有帮助。

ufw allow in from 172.17.0.2 to any port 42111 proto tcp

PS 不要忘记,除非使用参数 --iptables=false 启动,否则 Docker 会干扰 UFW

相关内容