我有两个专用服务器:"web“(YYY.YYY)和”监视器“(XXX.XXX)。这两个人都在一个集体的网络中(赫茨纳)。
现在,在"web“上,我有3个prometheus度量端点在运行:裸金属主机上的docker (9323)和neo4j (2004年),telegraf (9273)作为码头容器。两个坞容器都正确地将它们的输出端口映射到主机,因此在"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但是,从“监视器”服务器调用这些端点只适用于熊金属服务码头引擎(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 => timeoutUFW状态详细传递以下内容
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没有其他规则,也没有适用于子网、接口等的一般规则。所有其他规则都适用于离散端口( likie 22、80、443等)。
奇怪的是,它在几个小时前就起作用了。同时,我在这里做了一些实验,https://medium.com/@pitapun_44686/what-is-the-best-practice-of-docker-ufw-under-ubuntu-69e11c826b31,并在/etc/ufw/后缀的末尾附加了下面的块
*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日志级别配置为很高,但是我看不到来自主机XXX的任何连接、attepmtps或丢弃的数据包。
试图将telnet放入一个工作端口(telnet 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我提供了不明飞行物使用的“不明飞行物”模块。
还有什么其他原因吗?怎么回事?:-)
是否由于“暂停”活动(频繁通信),主机网络在这些服务器之间设置了某种过滤器?同样,我今天在artillery.io上从XXX.XXX到端口80/443运行了一些过度的YYY.YYY测试,但是这个假设不能解释为什么只有这两个端口不再工作了。
而最终的考验--关闭YYY.YYY上的ufw --也没有。9273和2004港口不能进入,9323港口是。
这是iptables -L -v -n https://pastebin.com/HVeJGXb9的输出
发布于 2022-01-06 18:26:14
由于端口9273和2004是由Docker公开的,因此这些端口的数据包经过FORWARD链,然后通过DOCKER-USER链。添加到DOCKER-USER中的规则阻塞了码头集装箱网络的大部分外部通信。您需要允许使用ufw route allow转发流量,或者可以将规则直接添加到DOCKER-USER链中。
https://serverfault.com/questions/1089196
复制相似问题