我正在运行一个具有自己的绑定DNS缓存的网络爬虫。我们的代码使用DNS缓存进行解析,并使用Python的请求库发出GET请求。
问题是许多FQDN配置错误,它们指向RFC1918 IP地址或环回IP(如127.0.0.1
或10.0.0.0/8
)。因此,我们的爬虫试图连接这些it,并以来自数据中心的扫描报告结束。
我们对爬虫进行了更改,现在它首先为FQDN解析ip,如果IP处于私有/回环/保留范围,则跳过它。
在对tcpdump进行嗅探之后,我发现仍然存在流向私有IP地址的流量。我认为它们的发生是因为HTTP重定向,因为我们检查了原始的FQDN,但是我们不检查重定向的主机,因为这个部分发生在Python的请求库中。
绑定是否可以阻止私有IP地址、回环地址或预留IP地址的解析?我可以将它设置为返回某种“未解决”错误吗?
编辑:我试图将BIND缓存转储到文件中并检查它,现在我确定这是因为HTTP重定向,但是更改代码并不容易,我正在寻找一个快捷方式,比如配置BIND,否则我会在防火墙上阻止它们。
发布于 2015-12-30 07:03:16
使用BIND,您可以使用应对政策区(RPZ)功能阻止引用某些地址的地址记录的解析(A
/AAAA
)。
具体来说,RPZ-IP类型的条目是相关的:
RPZ触发器是响应的应答部分中A或AAAA记录中的IP地址。除作为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.
关于配置的一般想法在手册中总结为:
例如,您可以使用此选项语句响应-策略{ zone "badlist";};以及此区域语句区域"badlist“{type master;file "master/badlist";and query {none;};与此区域文件$TTL 1H @ SOA本地主机。命名为-mgr.example.com (1,1h,15m,30d,2h) NS本地宿主。;剪辑;IP策略记录,重写127/8中包含A记录的所有响应;除了127.0.0.1 8.0.0.0.0.127.rpz- in之外。32.1.0.0.127.rpz-ip -passthru.;剪辑
请阅读详细信息,以了解整个设置以及RPZ区域内相当具体的语义!(它具有正常的区域语法,但如您所见,一些特殊名称具有非常特殊的含义。)
https://serverfault.com/questions/745870
复制相似问题