domain-name-system – 将BIND9设置为DNS防火墙

前端之家收集整理的这篇文章主要介绍了domain-name-system – 将BIND9设置为DNS防火墙前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于OpenDNS现在需要一个人在专业软件包上打开过滤,预算紧张,我们需要免费的DNS过滤.

在阅读了this link on how to block domains with bind之后,我将SquidGuard黑名单和我需要的类别中的连接域收集到一个大清单中.然后我将它送到this python script,生成一个包含大约200万个区域的文件.

named-checkconf解析它很好,但重命名命名需要大约10分钟,然后它不会解决任何问题,服务器会慢下来爬行.删除包含结果在命名工作再次正常.

什么是设置BIND9以有效地作为DNS防火墙工作的正确方法
如果还可以阻止解析为解决整个问题的特定IP地址的任何域.

我正在运行bind作为非权威,只是一个缓存服务器.

解决方法

这是现有技术的过时.在BIND世界中,响应策略区域(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章(本答案的底部),适用于您的BIND版本,以及Chapter 9版的在线Zytrax书籍.

Cliff从我的个人经历中注意到为您节省时间:

>使用区域传输将您的RPZ区域移动到IXFR.在主服务器上启用ixfr-from-difference以实现此目的.如果使用BIND 9.9或更高版本来防止基于NOTIFY的DoS尝试,请使用基于密钥的区域传输.
>只允许管理IP查询RPZ区域.
>除非您正在运行BIND 9.10,否则不要使用多个RPZ文件.在该版本之前,多个区域存在性能问题.
> RPZ不能用于阻止2014年普及的基于NS记录的攻击,因为默认情况下RPZ旨在尝试权威查找而不是“背叛”您的记录劫持到上游名称服务器源.

>在BIND 9.10中添加了qname-wait-recurse no,可能允许您将RPZ用于此目的.我一直想要实验它.
>即使qname-wait-recurse不起作用,仍然需要一种可用于离线攻击域而无需额外配置的记录类型.我已经和Paul Vixie谈过这个问题,我们可能会在RPZ格式规范的未来版本中看到它.

> NXDOMAIN和NODATA操作将在回复的AUTHORITY部分中背叛您的RPZ区域的名称.假设人们将学习它的名字.

BIND ARM第6章链接

> BIND 9.10
> BIND 9.9
> BIND 9.8(警告:BIND 9.8于2014年9月到达EOL)

猜你在找的HTML相关文章