如何使用 dnsmasq 阻止子域?

如何使用 dnsmasq 阻止子域?

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

bogus-priv
domain-needed
no-resolv

server=/stackexchange.com/8.8.8.8
#etc...

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

server=/meta.stackexchange.com/0.0.0.0

我也尝试过:

address=/meta.stackexchange.com/0.0.0.0

对于这两种情况,我都尝试用 127.0.0.1 替换 0.0.0.0。

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

答案1

实际上,这个dnsmasq有效:

address=/meta.stackexchange.com/127.0.0.1

dnsmasq更改后重启了吗?

有关设置 dnsmasq 的详细信息,请参阅这个


笔记:正如其他人指出的那样,你可以使用 /etc/hosts

127.0.0.1    meta.stackexchange.com

答案2

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

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

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

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

答案3

您可以使用主机记录阻止网站:

host-record=meta.stackexchange.com,127.0.0.1

或域名:

cname=meta.stackexchange.com,blackhole.com

但实际上,这两种方法都不是阻止网站的有效方法。我可以查看我的/etc/hosts文件并解决问题。

相关内容