为什么即使在我的 Linode 中阻止了端口,我也能够公开访问我的 Web 应用程序?
Why am I able to access my webapp publicly even when blocking the port in my Linode?
我有一个 Linode 设置,我已经设置了 UFW 来阻止端口,尤其是 8080。我已经重新加载了防火墙
而且我仍然可以通过网络访问网络应用程序。
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
[=28= 中受到控制].您现有的防火墙规则可能只影响 filter
INPUT
table.
添加对 Docker 容器的调解访问规则的规范位置是 filter
table 中的 DOCKER_USER
链,它是从 FORWARD
链.
对于 DOCKER_USER
链中的规则,您将需要使用容器侦听的端口,而不是发布服务的主机端口。
我有一个 Linode 设置,我已经设置了 UFW 来阻止端口,尤其是 8080。我已经重新加载了防火墙 而且我仍然可以通过网络访问网络应用程序。
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
[=28= 中受到控制].您现有的防火墙规则可能只影响 filter
INPUT
table.
添加对 Docker 容器的调解访问规则的规范位置是 filter
table 中的 DOCKER_USER
链,它是从 FORWARD
链.
对于 DOCKER_USER
链中的规则,您将需要使用容器侦听的端口,而不是发布服务的主机端口。