UFW为什么不阻止使用docker公开的端口?


8

我在ufw上设置了一些规则,但我认为它没有阻止任何内容。这是它的当前状态:

~# ufw status verbose

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

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
27015:27115/udp            ALLOW IN    Anywhere
27015:27115/tcp            ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
27015:27115/udp (v6)       ALLOW IN    Anywhere (v6)
27015:27115/tcp (v6)       ALLOW IN    Anywhere (v6)

如您所见,默认情况下它拒绝传入连接,并且仅允许某些端口。但是,我仍然在端口8083上设置了新服务,并且可以从外部访问它。为什么会这样呢?

我已经使用了docker容器来运行这项新服务,以防万一。


您可以重新加载UFW吗?您是否尝试过重启服务器?iptables中有规则吗?请添加iptables -L
Christopher Perrin,2016年

谢谢,看着iptables -L输出,我发现docker直接编辑iptables。我可以通过更改docker配置来覆盖此设置
Ivan

Answers:


6

看起来像

Docker直接篡改IPTables

。通过将--iptables = false添加到Docker守护程序中,可以覆盖此行为。

编辑/ etc / default / docker 并取消注释 DOCKER_OPTS行:

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"

作者得出以下结论:

  • UFW不会告诉您iptables的真实状态(不令人震惊,但仍然如此)。
  • 切勿在Docker中使用-p选项(或-P)执行您不想公开的操作。
  • 仅在回送接口或内部IP上绑定。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.