UFW 不阻止传入流量

Rog*_*gue 5 debian firewall ufw

我有一台运行 UFW 的 Debian 9 服务器,我想阻止除端口 2122 (SSH) 和 80/443(对于 HTTP(s))之外的所有传入请求。

我运行了以下命令:

ufw reset
ufw default deny incoming
ufw default allow outgoing
ufw allow incoming 2122/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Run Code Online (Sandbox Code Playgroud)

编译为:

ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
2122/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
2122/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)
Run Code Online (Sandbox Code Playgroud)

似乎一切都很好,至少对我来说。但是,当我在端口 2424(或者实际上任何其他端口)上运行 docker 容器时,尽管有防火墙,我仍然可以访问http://domain.tld:2424 。

我尝试重新启动,重新启动 iptables,...没有骰子。有什么建议吗?多谢 !

Mic*_*ton 5

Docker 在防火墙本身中为正在运行的容器暴露的任何端口打开端口。这些不会显示在ufw输出中,但可以在 中查看iptables

你应该:

  • 确保仅公开需要访问 Internet 的端口。
  • 使用 docker-compose 来编排多个相关容器的创建和运行。他们可以相互交谈而无需暴露端口。