随着OpenDNS现在需要一个在专业的软件包上有过滤打开,在一个紧张的预算,我们需要免费的DNS过滤。
在阅读了有关如何阻止具有绑定的域的链接。之后,我将SquidGuard黑名单和连接域收集到了一个大列表中。然后,我将其输入这个python脚本,生成一个包含大约200万个区域的文件。
named checkconf可以很好地解析它,但是重新加载命名只需要10分钟,然后它不会解决任何问题,服务器就会减速到爬行。删除“命名”中的包含结果,再次正常工作。
怎样才能有效地设置BIND9作为DNS防火墙?如果可能的话,也可以阻止解决特定IP地址的任何域,这将解决整个问题。
我以非权威的方式运行bind,只是一个缓存服务器。
发布于 2014-08-05 14:45:31
这对目前的技术来说已经过时了。在绑定世界中,响应策略区域(RPZ)现在是DNS防火墙的同义词。
RPZ区域是正常的DNS区域,但用于定义服务器的策略操作。区域“后缀”并不重要,因为这不是一个真正的DNS域。它只是一个区域文件,包含一个特殊格式化指令的列表。
options {
...
response-policy { zone "whatever.anytld";} };
};记录的左侧定义匹配规则,记录类型和右手侧定义要采取的操作。注意以下示例的左侧没有尾随点。
$ORIGIN whatever.anytld.
; destination IP rewrite
baddomain1.example.com A 198.51.100.1
*.baddomain1.example.com A 198.51.100.1
; send them to an existing A record
baddomain2.example.com CNAME mywebserver.example.org.
*.baddoman2.example.com CNAME mywebserver.example.org.
; NXDOMAIN it
baddomain3.example.com CNAME .
*.baddomain3.example.com CNAME .
; reply with NODATA
baddomain4.example.com CNAME *.
*.baddomain4.example.com CNAME *.诸若此类。您可以对此做很多工作,包括可能影响无辜共享托管站点的更严厉的措施:按名称阻塞名称服务器、通过IP阻止名称服务器、对返回记录的IP地址而不是名称执行操作等等。
RPZ将做很多事情,这并不意味着作为详尽的文档。推荐的阅读内容包括BIND ARM的第6章(这个答案的底部),以及在线Zytrax书的第九章。
克里夫从我的个人经历中注意到,为了节省你的时间:
IXFR移动RPZ区域。启用主服务器上的ixfr-from-differences以方便这一点。如果使用BIND9.9或更高版本来防止基于通知的DoS尝试,则使用基于密钥的区域传输。NS记录的攻击,因为RPZ的默认设计是为了尝试权威的查找,而不是将您的记录劫持“背叛”到上游的名称服务器源。qname-wait-recurse no是在BIND 9.10中添加的,可能允许您为此目的使用RPZ。我一直想试一试。qname-wait-recurse no工作,仍然需要一种记录类型,它可以用于离线攻击域而不需要额外的配置。我已经和Paul谈过了,我们可能会在RPZ格式规范的未来版本中看到它。NXDOMAIN和NODATA操作将在回复的AUTHORITY部分泄露RPZ区域的名称。假设人们会知道它的名字。绑定ARM第6章链接:
https://serverfault.com/questions/618106
复制相似问题