我有一个Linode设置,我已经设置了UFW来阻止端口,特别是8080。我重新加载了防火墙我仍然可以通过web访问web应用程序。
地头:
Status: active
To Action From
-- ------ ----
787/tcp ALLOW Anywhere
8080 DENY Anywhere
787/tcp (v6) ALLOW Anywhere (v6)
8080 (v6) DENY Anywhere (v6)
我在docker上运行trafik,并将端口上的仪表板映射到8080,并且能够通过web访问该应用程序。这里发生了什么?8080规则不是应该阻止连接吗?
解决方案:
编辑守护进程/etc/docker/daemon. Json文件并添加以下内容:
{ "iptables": false }
保存并重新加载docker。这现在可以防止docker修改iptables和"回避"。查维斯规则。
通过Docker端口发布打开的端口访问在nat
PREROUTING
链或filter
FORWARD
表中受到控制。很可能您现有的防火墙规则只影响filter
INPUT
表。
在filter
表中的DOCKER_USER
链中添加对Docker容器的中介访问规则,该规则是从FORWARD
链中调用的。
对于DOCKER_USER
链中的规则,您将需要使用容器正在侦听的端口,而不是发布服务的主机端口。