微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么即使阻止了我的 Linode 中的端口,我也可以公开访问我的 web 应用程序?

如何解决为什么即使阻止了我的 Linode 中的端口,我也可以公开访问我的 web 应用程序?

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

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,并且能够通过网络访问该应用程序。这里发生了什么? 8080的规则不是应该阻止连接吗?

解决方案:

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

{ "iptables": false }

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

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。