AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-249164

Artur Cichosz's questions

Martin Hope
Artur Cichosz
Asked: 2022-01-07 09:19:13 +0800 CST

尽管规则明确允许,但无法从公共网络访问 UFW 端口

  • 0

我有两个专用服务器:“web”(YYY.YYY.YYY.YYY)和“monitor”(XXX.XXX.XXX.XXX)。两者都在一个大众主机(hetzner)的同一个网络中。

现在在“网络”上,我运行了 3 个普罗米修斯指标端点:裸机主机上的 docker-engine (9323) 和 neo4j (2004)、telegraf (9273) 作为 docker 容器。两个 docker 容器都将其输出端口正确映射到主机,因此在“web”上执行的以下调用有效:

lynx http://YYY.YYY.YYY.YYY:9323/metrics => OK
lynx http://YYY.YYY.YYY.YYY:9273/metrics => OK
lynx http://YYY.YYY.YYY.YYY:2004/metrics => OK

但是从“监视器”服务器调用这些端点仅适用于熊金属服务 docker-engine (9323)

lynx http://YYY.YYY.YYY.YYY:9323/metrics => OK
lynx http://YYY.YYY.YYY.YYY:9273/metrics => timeout
lynx http://YYY.YYY.YYY.YYY:2004/metrics => timeout

UFW 状态详细信息提供以下内容

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

To                         Action      From
--                         ------      ----
[...]
9323/tcp                   ALLOW IN    XXX.XXX.XXX.XXX
9273/tcp                   ALLOW IN    XXX.XXX.XXX.XXX
2004/tcp                   ALLOW IN    XXX.XXX.XXX.XXX
[...]

这些 IP 没有其他规则,也没有适用于子网、接口等的一般规则。所有其他规则都适用于离散端口,例如 22、80、443 等。

奇怪的是,它在几个小时前就起作用了。与此同时,我在这里对此进行了一些试验https://medium.com/@pitapun_44686/what-is-the-best-practice-of-docker-ufw-under-ubuntu-69e11c826b31并将以下块附加到/etc/ufw/after.rules 的最后

*filter
:ufw-user-forward - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
-A DOCKER-USER -j ufw-user-forward
-A DOCKER-USER -j DROP -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
-A DOCKER-USER -j DROP -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
-A DOCKER-USER -j DROP -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
-A DOCKER-USER -j DROP -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
-A DOCKER-USER -j DROP -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
-A DOCKER-USER -j DROP -p udp -m udp --dport 0:32767 -d 172.16.0.0/12
-A DOCKER-USER -j RETURN
COMMIT

现在我将其注释掉并重新启动了ufw。那些端口 9273 和 2004 仍然无法访问,所以这不是原因。

我将 ufw 日志级别配置为高,但我看不到任何连接 attepmtps 或从主机 XXX.XXX.XXX.XXX 丢弃的数据包。

尝试 telnet 进入一个工作端口(telnet YYY.YYY.YYY.YYY 9323)我可以在 ufw 日志中看到通信,但对于其他两个端口则看不到。

[UFW AUDIT] SRC=XXX.XXX.XXX.XXX DST=YYY.YYY.YYY.YYY DPT=9323 =>
[UFW AUDIT] SRC=YYY.YYY.YYY.YYY DST=XXX.XXX.XXX.XXX SPT=9323

我使用 ansible "ufw" 模块配置了 ufw。

还有什么其他原因?到底是怎么回事?:-)

由于“可疑”活动(频繁通信),主机网络是否会在这些服务器之间施加某种过滤器?它也发生了,我今天在 YYY.YYY.YYY.YYY 上从 XXX.XXX.XXX.XXX 到端口 80/443 运行了一些过多的 artillery.io 测试,但是这个假设并不能解释为什么只有这两个端口不起作用了。

最终测试,在 YYY.YYY.YYY.YYY 上关闭 ufw 也没有帮助。端口 9273 和 2004 不可访问,9323 可访问。

这是iptables -L -v -n https://pastebin.com/HWeJGXb9的输出

debian docker docker-compose ufw
  • 1 个回答
  • 152 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve