一种通用的dns黑洞区域生成器

dns-blackhole的Python项目详细描述


查看历史记录。
此脚本帮助您为DNS服务器创建黑洞区域, 使用一些著名的广告/跟踪/恶意软件列表。
只要您的dns服务器允许包含一个包含 每行的域及其配置语法应该可以工作。
目前已知工作和测试:

也可以生成agregated主机文件。

功能

  • 未绑定到特定的DNS服务器,生成 选择
  • 支持3种不同的列表格式
  • 允许您白名单/黑名单域
  • yaml配置文件

安装

脚本需要PyYAMLrequests模块。

pip install [--upgrade] dns-blackhole

未绑定

需要unbound>;=1.6,使用带unbound的默认区域文件 1.5肯定会让它吃掉你所有的ram并在之前交换 被杀死。
在您的 server:块。
在^{tt8}中使用以下zone_data。$ (默认):
zone_data:'local-zone:"{domain}"always_nxdomain'

{domain}将被黑洞域替换

powerdns递归器

在递归程序中添加forward-zones-file=/etc/pdns/blackhole.zone。 配置。
dns-blackhole.yml中使用以下zone_data
zone_data:'{domain}='

{domain}将被黑洞域替换

dnsmasq

在dnsmasq配置中添加conf-dir=/etc/dnsmasq.d,并指向 zone_file选项到/etc/dnsmasq.d/blackhole.conf
dns-blackhole.yml中使用以下zone_data
zone_data:'server=/{domain}/'

{domain}将被黑洞域替换

主机文件

dns-blackhole.yml中使用以下zone_data

zone_data:'127.0.0.1{domain}'
一旦您满意您的配置,只需运行dns-blackhole
dns-blackhole.yml中的默认列表将生成一个区域 包含约698000个条目。

配置

由于配置文件在yaml中,因此可以使用yaml锚定

dns-blackhole:general:cache:/var/cache/dns-blackholelog:/var/log/dns-blackhole/dns-blackhole.logwhitelist:/etc/dns-blackhole/whitelistblacklist:/etc/dns-blackhole/blacklistblackhole_lists:hosts:-http://someonewhocares.org/hosts/hosts-https://hosts-file.net/download/hosts.txt-http://winhelp2002.mvps.org/hosts.txt-http://www.malwaredomainlist.com/hostslist/hosts.txt-https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts;showintro=0easylist:&bh_easy-https://easylist.to/easylist/easylist.txt-https://raw.githubusercontent.com/paulgb/BarbBlock/master/BarbBlock.txtdisconnect:&bh_disconnecturl:https://services.disconnect.me/disconnect-plaintext.jsoncategories:# Advertising, Analytics, Disconnect, Social-Advertising-Analyticsconfig:zone_file:/etc/unbound/blackhole.zone# {domain} will be replaced by the blackholed domain, do not change it herezone_data:'local-zone:"{domain}"always_nxdomain'blackhole_lists:hosts:-http://winhelp2002.mvps.org/hosts.txteasylist:*bh_easydisconnect:*bh_disconnect

在本例中,您将保留easylistdisconnect列表, 但会删除除MVP以外的所有主机文件列表。

常见问题解答

让dns服务器返回nx而不是127.0.0.1

主机列表通常返回127.0.0.10.0.0.0
根据您使用的系统和/或浏览器,您最终可能会 在之前多次尝试连接时出现超时/缓慢问题 正在考虑关闭远程资源。

让您的DNS服务器返回nx-域-非存在域- 另一边让你的客户表现得更快,因为没有什么可重试的 当域不存在时。

为什么在powerdns递归程序中使用forward zones file选项而不是auth zones?

auth-zones的语法如下: auth-zones=dom1=<zone>,dom2=<zone>,dom3=<zone>,etc
虽然这可能适用于5000个黑洞域,但几乎适用于700 000个 产生的速度太慢,需要几十年的时间 完成时间。更糟糕的是,有了这样一个列表,pdns recursor 甚至无法启动并将崩溃。
通过使用forward-zones-filepdns递归器还需要大约5个 处理区域文件的秒数。

哪个DNS服务器最好?

这真的是一个偏好和你有什么可用的问题。使用 一个你最喜欢的。

待办事项

  • 尚未实现缓存
  • 日志尚未实现

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android Action_Edit Intent无法像以前一样调用App Gallery来编辑图片   确保JRE兼容性的java适当程序(32或64位)   java JSONArray。for循环中的add(JSONObject)正在替换for循环中的旧值,数组由循环中的最后一个值组成   java需要帮助创建一个返回数组的方法,该数组的元素是另一个数组的平方   使用SmbFile w/groovy XmlSluper()创建xml。解析()Java   检查大小后的java ArrayIndexOutOfBoundsException   乘法表中的第k个最小元素   java 401 on请求,其中指定了'permitAll()'   java如何附加ORC文件   java hibernate类模型   java IDEA没有看到由自定义注释处理器生成的方法   Servlet中未声明java SerialVersionId   java linkedlist到达列表末尾时   java如何正确对齐EditText光标?   java 6编译器1.6上的eclipse重写方法错误   java如何在基于Jersey的RESTful Web服务中读取post数据   java如何在活动中正确使用接口?   Java的JIT编译器的工作速度有多快?