【问题标题】:Why am I able to access my webapp publicly even when blocking the port in my Linode?为什么即使在我的 Linode 中阻止了端口,我也可以公开访问我的 web 应用程序?
【发布时间】:2021-05-31 12:54:15
【问题描述】:

我有一个 Linode 设置,我已经设置了 UFW 来阻止端口,特别是 8080。我已经重新加载了防火墙 而且我仍然可以通过网络访问 webapp。

UFW:

Status: active

To                         Action      From
--                         ------      ----
787/tcp                    ALLOW       Anywhere
8080                       DENY        Anywhere
787/tcp (v6)               ALLOW       Anywhere (v6)
8080 (v6)                  DENY        Anywhere (v6)

我在 docker 上运行 traefik,并将端口上的仪表板映射到 8080,并且能够通过 Web 访问该应用程序。这里发生了什么? 8080的规则不是应该阻止连接吗?

解决方案:

编辑 /etc/docker/daemon.json 中的 daemon.json 并添加以下内容:

{ "iptables": false }

保存并重新加载 docker。这现在可以防止 docker 修改 iptables 和“回避”ufw 规则。

【问题讨论】:

    标签: docker security firewall traefik linode


    【解决方案1】:

    对通过 Docker 端口发布打开的端口的访问在 nat PREROUTING 链或 filter FORWARD 表中进行控制。您现有的防火墙规则很可能只影响filter INPUT 表。

    添加规则以调节对 Docker 容器的访问的规范位置是 filter 表中的 DOCKER_USER 链,该链从 FORWARD 链中调用。

    对于DOCKER_USER 链中的规则,您需要使用容器正在侦听的端口,而不是发布服务的主机端口。

    【讨论】:

    • 那么真正的阻塞端口的方法不是修改ufw规则?我应该研究 iptables 并在那里进行更改吗?从来没有在那里修改过任何东西。
    • 好吧,“ufw”只是“iptables”的包装。如果你能说服 ufw 在FORWARD 链中放置规则,你或许可以使用它。我对ufw不熟悉,无法提供这方面的指导。
    • 已发布解决方案。感谢您为我指明正确的方向。干杯。
    猜你喜欢
    • 2011-03-26
    • 2018-08-26
    • 2014-01-02
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2021-09-29
    • 2010-10-13
    • 2020-10-09
    相关资源
    最近更新 更多