标签: rpz

将 BIND9 设置为 DNS 防火墙

由于 OpenDNS 现在需要一个在 pro 包中才能打开过滤功能,预算紧张,我们需要免费的 DNS 过滤。

阅读有关如何使用 bind 阻止域的链接后,我将 SquidGuard 黑名单和我需要的类别中的连接域收集到一个大列表中。然后我将它输入到这个 python 脚本中,生成一个包含大约 200 万个区域的文件。

named-checkconf 可以很好地解析它,但是重新加载 named 需要将近 10 分钟,然后它不会解决任何问题,并且服务器会减慢速度以进行爬行。删除包含导致命名再次正常工作。

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

我以非权威身份运行绑定,只是一个缓存服务器。

domain-name-system bind dns-firewall rpz

6
推荐指数
1
解决办法
5904
查看次数

BIND、RPZ 和转发优先级

我的目标是在不首先查找它们的地址的情况下阻止绑定中的某些域(这是一个小型缓存绑定 dns 服务器)。

目前,我的配置将转发对 badhost.com 的请求并获取 IP 地址(我可以在 wireshark 中看到这一点),然后它将用 NXDOMAIN 覆盖该响应。

绑定日志:

client 192.168.1.1#46107 (badhost.com): rpz QNAME NXDOMAIN rewrite badhost.com via badhost.com.rpz
Run Code Online (Sandbox Code Playgroud)

但是获取 IP 地址毫无意义,它会延迟查询。我只是想让它快速返回被阻止域的 NXDOMAIN,而不进行转发。

配置:

options {
  response-policy { zone "rpz" policy nxdomain; };
  cleaning-interval 360;
  forward only;
  forwarders { x.x.x.x; y.y.y.y; };
  allow-recursion { any; };
  allow-query { any; };
  allow-query-cache { any; };

}

zone "rpz" {
  type master;
  file "/etc/bind/rpz.zone";
};
zone "0.0.127.in-addr.arpa" {
        type master;
    notify no;
        file "pz/127.0.0";
};
zone "1.168.192.in-addr.arpa" { …
Run Code Online (Sandbox Code Playgroud)

domain-name-system bind internal-dns rpz

6
推荐指数
1
解决办法
3044
查看次数