群晖防火墙在此三条规则下如何允许 Docker 能 Ping 通并访问外部网络?

2023-01-13 21:29:16 +08:00
 Apol1oBelvedere

我的群晖防火墙策略如下:

  1. 允许局域网 192.168.1.1~255 访问;
  2. 允许大陆 IP 访问一些服务(已勾选各个 Docker 容器名称);
  3. 拒绝其他一切协议和 IP 访问;

目前问题是 Docker 内 Bash 无法 ping 通外部域名 qq.com (导致 Docker Calibre-Web 的豆瓣刮削器插件获取信息失败),关闭第三条规则后则能 ping 通并获取数据。

新增两条规则如下,仍无法 Ping 通,除非关闭第五条规则。

  1. 允许局域网 192.168.1.1~255 访问;
  2. 允许大陆 IP 访问一些服务(已勾选各个 Docker 容器名称);
  3. 允许所有 ICMP 协议访问;
  4. 允许所有 IGMP 协议访问;
  5. 拒绝其他一切协议和 IP 访问;

该如何设置才行呢?

2226 次点击
所在节点    NAS
9 条回复
Apol1oBelvedere
2023-01-13 21:58:48 +08:00
下面是数据包监听:
~# tcpdump -i docker919c320 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on docker919c320, link-type EN10MB (Ethernet), capture size 262144 bytes
21:56:56.751834 IP 172.17.0.2 > 8.8.8.8: ICMP echo request, id 170, seq 0, length 64
21:57:01.766006 ARP, Request who-has 172.17.0.1 tell 172.17.0.2, length 28
21:57:01.766136 ARP, Reply 172.17.0.1 is-at 02:42:39:7d:18:f5, length 28
yaott2020
2023-01-14 10:28:59 +08:00
能不能 ping ip ,还有,出站和入站没啥关系吧
Apol1oBelvedere
2023-01-14 11:09:40 +08:00
@yaott2020 IP 也 ping 不通,我的群晖防火墙最后一条规则阻挡了大部分数据包,可能原因在这,但是我已经允许了 ICMP 协议了啊?
yaott2020
2023-01-14 11:12:47 +08:00
你的防火墙规则是入站还是出站
Apol1oBelvedere
2023-01-14 12:42:54 +08:00
@yaott2020 群晖防火墙的设计和功能实现只管理入站,不管理出站。
mmtromsb456
2023-01-14 17:45:14 +08:00
看监听结果,容器内 dns 不是大陆的 dns,是直接用的 8.8.8.8,这在拒绝境外 IP 入站的防火墙规则下肯定拿不到解析结果吧
Apol1oBelvedere
2023-01-14 19:16:35 +08:00
@mmtromsb456
把规则调整为 ICMP 放第一条(即所有 IP 允许 Ping )还是不行,除非取消最后一条规则才行,现在问题是前四条规则还是没能放过 Ping 数据包。
允许所有 ICMP 协议访问;
允许所有 IGMP 协议访问;
允许局域网 192.168.1.1~255 访问;
允许大陆 IP 访问一些服务(已勾选各个 Docker 容器名称);
拒绝其他一切协议和 IP 访问;
mmtromsb456
2023-01-15 00:45:25 +08:00
@Apol1oBelvedere #7 不是 icmp 的问题啊,要 ping 域名之前得先找 ns 解析,现在去 8888 的 dns 报文被拦截了吧
Apol1oBelvedere
2023-01-15 10:41:59 +08:00
@mmtromsb456 谢谢您,在您的帮助下问题解决了。
我之前也设置了允许 DNS 协议的 TCP 53 端口通过但无效,经过您的提示我再确认得知是 DNS 协议的 UDP 53 端口。添加到允许所有 IGMP 协议访问这条规则之后,就能 Ping 通了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX