随着OpenDNS现在需要一个在专业版打包过滤,预算紧张,我们需要免费的DNS过滤。
在阅读了关于如何使用绑定来阻止域名的链接之后,我将我需要的类别中的SquidGuard黑名单和连接的域名收集到一个大名单中。 然后我把它喂给这个python脚本生成一个包含大约200万个区域的文件。
named-checkconfparsing它就好了,但重新命名需要将近10分钟,那么它不会解决任何问题,并且服务器变慢。 删除包含名为再次正确工作的结果。
什么是设置BIND9作为DNS防火墙有效的正确方法? 如果可以阻止任何parsing为特定IP地址的域来解决整个问题。
我正在运行绑定作为非权威,只是一个caching服务器。
现在的技术已经过时了。 在BIND世界里,响应策略区域(RPZ)是DNS防火墙的代名词。
RPZ区域是一个正常的DNS区域,但用于定义服务器的策略操作。 区域“后缀”并不重要,因为这不是一个真正的DNS域。 这只是一个区域文件,其中包含特殊格式的指令列表。
options { ... response-policy { zone "whatever.anytld";} }; };
logging的左侧定义了匹配规则,loggingtypes和右侧定义了要采取的操作。 请注意以下示例的左侧没有尾点。
$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阻止名称服务器,对返回logging的IP地址执行操作而不是名称等。
RPZ会做很多事情,这并不意味着作为详尽的文档。 推荐读物包括BIND ARM的第6章(本答案的底部),以及Zytrax在线书籍的第9章 。
悬崖笔记从我的个人经验中拯救你的时间:
IXFR
。 在主控上启用ixfr-from-differences
,以促进这一点。 如果使用BIND 9.9或更高版本来防止基于NOTIFY的DoS尝试,请使用基于密钥的区域传输。 NS
logging的攻击,因为默认情况下,RPZ旨在尝试权威查找,而不是“背叛”你的logging劫持到上游域名服务器源。
qname-wait-recurse no
,并且可能允许您为此使用RPZ。 我一直想要实验。 qname-wait-recurse no
工作,仍然需要一个loggingtypes,可以用来离线攻击域,而无需额外的configuration。 我已经和Paul Vixie谈过此事了,我们可能会在RPZ格式规范的未来版本中看到它。 NXDOMAIN
和NODATA
操作将在答复的AUTHORITY
部分中背叛您的RPZ区域的名称。 假设人们会学习它的名字。 BIND ARM第6章链接: