Ubuntu 防火墙在添加出站流量规则并完成状态匹配后阻止对 VMWARE 客户机的 DNS 请求

Ubuntu 防火墙在添加出站流量规则并完成状态匹配后阻止对 VMWARE 客户机的 DNS 请求

这是一个与 DNS 查询(tcp/udp 53)有关的独特问题,即使使用正确的 UFW/iptables 规则也是如此,并且与 /etc/resolv.conf 无关

开启主机 ufw 后,我可以 ping google DNS 8.8.8.8,但无法解析 google.com。尝试搜索所有地方,并相应地更新 ufw 和 iptables,以允许 DNS 查询并允许建立连接。

我编号的与 DNS 相关的 ufw 状态是

UFW 规则截图

状态匹配 iptables -A INPUT -m 状态 --状态 ESTABLISHED,RELATED -j ACCEPT

注意:vmnet 1/192.168.191.1/24、192.168.191.130(guest)、eno4 主机公共接口。

奇怪的是,当我关闭主机 ufw 时,客户机端一切正常。但是,即使打开防火墙后,我仍可以 ping 任何 IP 地址。

sudo ufw 状态编号|grep 53

仅通过 8.8.8.8 ping google.com 后,UDP/TCP 53 上的 TCPDUMP 才会失败

屏幕截图(主机上的 UFW)

注意:客户机上已禁用 UFW

答案1

在 serverfault.com :P 的大力帮助和 Michael Hampton 的鼓励下,我终于解决了 DNS 查询的错过确认标志问题,同时其他一切都运行正常。

真正的问题是:在打开 UFW 后,-systemd-resolved 以某种方式不允许来自除 127.0.0.1 之外的任何其他 IP 的 DNS 查询

解决方案是通过将 mark 设置为 2 来破坏来自客户虚拟机的每个输出

iptables -t mangle -A OUTPUT !-s 192.168.191.130-j MARK --set-mark 2

其中 192.168.191.130 是您不想阻止 UDP 的集群。

干杯!!

相关内容