use*_*548 5 dns debian adblock rpz
我正在尝试为我的局域网设置一个基本的 DNS 服务器,它能够放入一个空路由或 127.0.0.1 多个域。
我想阻止的域来自一个列表,但我也想使用正则表达式阻止一些域(这对我的设置来说是必须的)。
我做这项业务的候选软件似乎是 Unbound,这是一个递归缓存安全 DNS 服务器,具有各种有用的功能。
但是 Unbound 似乎不支持任何正则表达式!
此外,在区域重复方面,Unbound 非常挑剔。我的域列表是从许多混合来源构建的,因此我可以使用一些脚本过滤掉许多重复项,但也可以过滤列表中的域,例如:
aaah.very.this.com
但是也
非常.this.com
这导致未绑定的错误尖叫,因为有一个区域重复。
虽然这是一个小问题,我可以通过更好地清理域列表来删除它,但我的主要问题是缺少用于处理域请求的正则表达式。
我可以以某种方式阻止所有 *.com 或 *.biz 或类似的东西吗?
[\w\.\-]+.com A 127.0.0.1
[\w\.\-]+.com AAAA ::1
Run Code Online (Sandbox Code Playgroud)
我的正则表达式就是一个例子,我可以使用更复杂的......
我可以做一些更讨厌的事情吗?是否所有指向 nullroute 或 127.0.0.1 且仅域的白名单通过转发到外部 DNS 得到解析?
如果回复请不要忘记这个额外的问题,因为我很想知道答案。
我可以去干嘛?Bind9、dnsmasq、未绑定、pdns-recursor...
在 DNS 服务级别拦截域/请求或将 IP 网络块路由重定向到 127.0.0.1/null 路由是两件非常不同的事情。
在我看来,DNS 级别更高效,资源更轻。
在 IP 级别/空路由阻塞更有效,但管理起来更麻烦,并且在更广泛的范围内使用时 CPU 使用量略高。
请记住,在 DNS 级别使用黑名单通常可以达到数十万范围内的名称,拥有如此大的路由表是不可行的。
我自己已经调查过通过 dnsmasq 或 BIND 列入黑名单。我将 DNS 黑名单用于广告、恶意软件并阻止我的智能电视呼叫回家(LG 站点)。
我最终在 BIND 中使用了响应策略区,因为它确实允许一些简单的正则表达式,即名称末尾的 *,这大大减少了黑名单的大小。DNS 响应策略区域
请记住,9.8+ BIND 支持 BIND 中的 RPZ,在任何现代 Linux 发行版中都应该如此。
由于我配置了 RPZ 功能,因此 BIND DNS 服务器会简单地将与字符串/正则表达式匹配的域/DNS 名称回答为不存在。所有其他不匹配的名称都由通常的过程解析。
作为 my 几行的简短示例/etc/bind/rpz.db:
*.ad.lgappstv.com CNAME .
*.yumenetworks.com CNAME .
*.smartclip.net CNAME .
*.smartshare.lgtvsdp.com CNAME .
*.ibis.lgappstv.com CNAME .
*.doubleclick.net CNAME .
*.l.doubleclick.net CNAME .
*.302br.net CNAME .
*.liveadvert.com CNAME .
*.easysuperdownload-1.com CNAME .
*.easysuperdownload-2.com CNAME .
*.itrackpop.com CNAME .
Run Code Online (Sandbox Code Playgroud)
使用您的示例:
*.this.com CNAME .
*.biz CNAME .
Run Code Online (Sandbox Code Playgroud)
请注意,阻止整个 TLD 可能不是最好的主意。
BIND 不像 Unbound 那样挑剔重复。它将允许 aaaa.this.com 和 this.com;但是它不允许多次定义 this.com。
至于 RPZ 本身的设置,我会参考我在 Unix & Linux Large zone file for bind9上这个问题的回答:ad-blocking
对于使用raspberry PI 的现成类似项目,请参阅:Pi-Hole:互联网广告的黑洞该项目还将引导您访问一些已知的免费黑名单。
来自https://github.com/pi-hole/pi-hole/blob/master/adlists.default
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
# Other lists we consider safe:
http://adblock.gjtech.net/?format=unix-hosts
http://mirror1.malwaredomains.com/files/justdomains
http://sysctl.org/cameleon/hosts
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
# hosts-file.net list. Updated frequently, but has been known to block legitimate sites.
http://hosts-file.net/ad_servers.txt
# Mahakala list. Has been known to block legitimage domains including the entire .com range.
# Warning: Due to the sheer size of this list, the web admin console will be unresponsive.
#http://adblock.mahakala.is/
# ADZHOSTS list. Has been known to block legitimate domains
#http://optimate.dl.sourceforge.net/project/adzhosts/HOSTS.txt
# Windows 10 telemetry list - warning this one may block windows update
#https://raw.githubusercontent.com/crazy-max/HostsWindowsBlocker/master/hosts.txt
# Securemecca.com list - Also blocks "adult" sites (pornography/gambling etc)
#http://securemecca.com/Downloads/hosts.txt
# Quidsup's tracker list
https://raw.githubusercontent.com/quidsup/notrack/master/trackers.txt
Run Code Online (Sandbox Code Playgroud)
至于白名单,显然是可以做到的。
如果在逐个域的基础上完成,则是设置代理 BIND DNS 服务器的问题,该服务器没有根名称服务器的提示。
但是,每个允许的域都必须与转发器一起创建到与外部通信的 DNS。这篇理论文章很好地总结了这个想法。使用 DNS 白名单阻止恶意软件的踪迹
再次使用 BIND 中的 RPZ 来拯救我们,配置可以简单得多,而且不需要设置代理 DNS 服务器。
作为此页面配置的变体,重新访问 RPZ,您将拥有一个正常配置的 BIND,带有 RPZ 白名单,然后您将在正常 rpz 策略(例如 * 或.)中黑化所有内容。
options {
....
response-policy {
zone "rpz-white" policy PASSTHRU; // my own white list
zone "rpz-foreign"; // obtained from producer
};
}
Run Code Online (Sandbox Code Playgroud)
虽然白名单拒绝所有方法肯定是疯狂的,但白名单可以用来豁免被黑名单更广泛匹配攻击的特定域。
| 归档时间: |
|
| 查看次数: |
8735 次 |
| 最近记录: |