UFW 规则更改似乎没有被忽略

问题描述

我正在 ec2 上运行一个容器(docker-compose up)。并希望通过 Nginx 路由流量。 最初是为了测试工作,我允许来自端口 9000 的流量。测试后我删除了规则,但我可以从外部访问它,我注意到的另一个奇怪的问题是我可以从几个访问流量如果我只是更改侦听端口,其他端口也是如此。

ufw status verbose

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

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
9000/tcp                   DENY IN     Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
9000/tcp (v6)              DENY IN     Anywhere (v6)

即使在我明确拒绝了到端口 9000 的流量之后,我仍然能够访问它

编辑:我曾尝试在规则更改后重新加载防火墙,但没有效果

在我允许来自端口 9000 的流量之前登录

Mar 9 06:26:48 10 kernel: [UFW BLOCK] IN=br-OUT= PHYSIN= MAC= SRC=172.19.0.2 DST=172.19.0.1 LEN=1500 TOS=0x00 PREC=0x00 TTL=64 ID =18491 DF PROTO=TCP SPT=9000 DPT=34558 WINDOW=506 RES=0x00 ACK URGP=0

删除该规则后,防火墙不会阻止流量。

解决方法

此解决方案适用于 Debian 10

https://github.com/chaifeng/ufw-docker/blob/master/README.md#solving-ufw-and-docker-issues

root@malloc:~# 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
22 (v6)                    ALLOW IN    Anywhere (v6)

9000/tcp                   ALLOW FWD   Anywhere
9000/tcp (v6)              ALLOW FWD   Anywhere (v6)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...