在 DNS 区域文件中阻止 IP(而不是域)

在 DNS 区域文件中阻止 IP(而不是域)

我正在使用 bind9 DNS 服务器。我曾经在 RPZ 区域文件中阻止使用其域名的网站,例如:

malicious.example CNAME .

但是,我需要阻止 IP 而不是域名,例如: 192.0.2.4 CNAME .

我该怎么做?或者,上面的例子(192.0.2.4 CNAME .)正确吗?

答案1

你不能。

IP 地址直接用于数据包。它们不会被翻译成任何东西。要阻止 IP,您必须使用防火墙。

如果你想阻止结果包含一组 IP,帕特里克的回答涵盖了这一点

答案2

https://www.isc.org/docs/BIND_RPZ.pdf,第 11 页:

为 IP 或子网创建触发规则 (v4)

假设我们要重写在 172.16.3.0/24 子网中解析的任何主机的任何 DNS 查询。

24.0.3.16.172.ns-ip IN CNAME .

如您所见,子网中的八位字节需要反转(类似于 rbl in-addr.arpa 的工作方式)。第一个数字代表子网掩码。如果我们只想阻止单个 IP,则第一个数字将是 32,代表 /32,即: 32.1.3.16.172.ns-ip IN CNAME

也可以看看https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-dns-rpz-00#section-4.3这表明使用了rpz-ip而不是ns-ip(RPZ 功能最早是由 bind 发明的,并且有人试图使其成为完整的标准)

因此,这还取决于您使用的绑定版本,您不会透露。查看其包含的文档以及其具有的 RPZ 支持级别。

相关内容