如何使用 dnsmasq 阻止子域?

Big*_*uge 8 dns dnsmasq

我在我的网络上使用 dnsmasq 作为白名单。我的 dnsmasq.conf 文件如下所示:

bogus-priv
domain-needed
no-resolv

server=/stackexchange.com/8.8.8.8
#etc...
Run Code Online (Sandbox Code Playgroud)

我希望能够阻止子域,例如:

server=/meta.stackexchange.com/0.0.0.0
Run Code Online (Sandbox Code Playgroud)

我也试过:

address=/meta.stackexchange.com/0.0.0.0
Run Code Online (Sandbox Code Playgroud)

对于两者,我都尝试将 127.0.0.1 替换为 0.0.0.0。

不幸的是,这似乎不起作用。如何在允许配置文件中的域的其余部分的同时阻止特定的子域?

Tho*_*hes 5

请不要劫持 DNS。这干扰了互联网的低层架构。几乎所有 DNS 劫持的道德应用都可以通过防火墙设备或程序得到更好的服务。

如果您想阻止将区域解析为地址,您可以轻松编辑客户端主机文件

虽然dnsmasq能够提供您所描述的“欺骗”DNS 结果类型,但 dnsmasq 服务器很容易被访问客户端主机的最终用户或恶意攻击者绕过。因此,这种类型的 DNS 劫持几乎无法为安全带来任何好处。

同样,如果目标是阻止客户端无意中访问恶意或不受信任的远程主机,则正确配置的防火墙设备可能会为您提供更好的服务。一个流行的解决方案是 Rasperry Pi 上的 OpenWRT,如本文所述

  • 嗯,如果 DNS 服务器是公共的,在互联网上,这是黄金规则。如果戴夫正在管理内部服务器,那么他们的局域网就像我的花园,有我的政策、我的理由、我的优先事项。我认为这个问题是合理的。 (8认同)
  • 不幸的是,尽管它没有回答问题,但它自动收到了赏金。 (7认同)

lem*_*eze 5

有了dnsmasq这个工程实际上是:

address=/meta.stackexchange.com/127.0.0.1
Run Code Online (Sandbox Code Playgroud)

dnsmasq修改后重启了吗?

有关设置 dnsmasq 的详细信息,请参阅此一


注意:正如其他人指出的那样,您可以使用 /etc/hosts

127.0.0.1    meta.stackexchange.com
Run Code Online (Sandbox Code Playgroud)

  • 要真正阻止该站点,您应该省略 IP 地址部分:`address=/example.com/` 这将导致 dnsmasq 返回 NXDOMAIN,就好像该域不存在一样。 (2认同)