linux – 阻止BIND DNS缓存上错误配置的DNS条目

前端之家收集整理的这篇文章主要介绍了linux – 阻止BIND DNS缓存上错误配置的DNS条目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行带有自己的BIND DNS缓存的Web爬虫.我们的代码使用我们的DNS缓存解析,并使用 Python的请求库发出GET请求.

问题是许多FQDN配置错误,它们指向RFC1918 IP地址或环回IP,如127.0.0.1或10.0.0.0/8.因此,我们的抓取工具正在尝试连接这些IP,并以我们数据中心的扫描报告结束.

我们对爬虫进行了更改,现在它首先解析了FQDN的ip,如果IP处于私有/环回/保留范围,则跳过它.

在使用tcpdump嗅探后,我发现仍有流量进入私有IP地址.我认为它们是因为HTTP重定向而发生的,因为我们检查原始FQDN但是我们不检查重定向主机,因为这部分发生在Python的请求库中.

BIND是否有阻止解析私有,环回或保留IP地址的选项?我可以将其设置为返回某种“未解决”的错误吗?

编辑:我试图将BIND缓存转储到文件并检查它,现在我确定它是因为HTTP重定向而发生但是更改代码并不容易,我正在寻找像配置BIND的快捷方式或者我会在防火墙上阻止它们.

解决方法

使用BIND,您可以使用 Response Policy Zone (RPZ)功能来阻止指向某些地址的地址记录(A / AAAA)的解析.

具体而言,RPZ-IP类型的条目是相关的:

RPZ-IP

IP triggers are IP addresses in an A or AAAA record in the ANSWER
section of a response. They are encoded like client-IP triggers except
as subdomains of rpz-ip.

作为示例用例,手册使用:

; IP policy records that rewrite all responses containing A records in 127/8
;       except 127.0.0.1
8.0.0.0.127.rpz-ip      CNAME   .
32.1.0.0.127.rpz-ip     CNAME   rpz-passthru.

关于配置在手册中总结的一般概念如下:

For example,you might use this option statement

06001

and this zone statement

06002

with this zone file

06003

请仔细阅读详细信息,以了解RPZ区域内的整体设置以及相当具体的语义! (它具有正常的区域语法,但正如您所看到的,一些特殊名称具有非常特定的含义.)

猜你在找的Linux相关文章