我正在build立一个DNS服务器,将通过返回一个域的不正确的IP地址来阻止访问特定的网站。
目前我使用DNSMasq来执行此操作,但是我的列表很安静,我正在寻找绑定来执行此function。 尽pipeDNSMasq很好地处理了大型列表,但它确实有一些限制,迫使我select。 为了在DNSMasq中完成整个域,我只需在configuration文件中添加一行就可以了:
address=/url.com/1.2.3.4
这将永远返回*.url.com
1.2.3.4
我正在寻找一些与以下方面的协助:
干杯
PJF
把DNS黑名单视为理所当然,如果他们真的想要阻止某个人访问某个网站的话,那么这个黑名单并不是一种方法,但对于处理恶意软件和偶然的尝试去访问一个糟糕的网站是非常有用的。
RPZ允许您创build定义响应重写规则的区域文件。 这些在9.8.1版本中实现。
假设你想阻止badrecord.example.com.
,其IP地址为198.51.100.1
。 真正的知识产权在这里并不重要,但提供一个来帮助加强发生的事情。
options { # Snip. response-policy { zone "mypolicy"; }; }; zone "mypolicy" { type master; file "mypolicy.zone"; allow-query { none; }; };
区域文件如下所示:
$TTL 1H @ SOA LOCALHOST. doesnt.really.matter.example.org. (1 1h 15m 30d 2h) ; NS required for zone syntax reasons, but ignored NS LOCALHOST. ; CNAME bad reply to a DNS record that isn't in this file badrecord.example.com. CNAME mywalledgarden.example.edu. ; replace bad reply with fixed IP address badrecord2.example.com. A 203.0.113.1 ; rewrite the top of a bad domain, as well as all records immediately ; beneath the apex. (ie not further than one level deep) example.net. A 203.0.113.1 *.example.net. A 203.0.113.1
观察:
allow-query
规则,用户不允许直接查询区域。 NXDOMAIN
。 如果客户端可能获得包含错误数据的响应, 则只会修改响应。 这些不是您可以执行的唯一重写。 为了完整的语法和潜在的应用程序,我build议你参考BIND ARM。
您可能会在互联网上find一些指南,例如创build根( .
)区域,或者为每个需要阻止的域创build一个区域。 不要这样做。 这是DNSpipe理员为了缺乏更好的select而采取的一种更古老,更快捷的方式。 如果RPZ是一个选项,它涵盖了您的需求,使用它。 如果您对该域名不具有权威性,请不要将自己设置为权威性的。