Generating an agregated host file is also possible.
- Not bound to a specific DNS server, generates a file format of your choice
- Supports 3 different list format
- Host file
- Easylist
- Disconnect
- Lets you whitelist/blacklist domains
- YAML configuration file
The script requires PyYAML
and requests
modules.
pip install [--upgrade] dns-blackhole
1.6
, using the default zone file with unbound
1.5
will certainly make it eat all your ram and swap before
getting killed.include: "/etc/unbound/blackhole.zone"
right after your
server:
block.zone_data
in your dns-blackhole.yml
(default):zone_data: 'local-zone: "{domain}" always_nxdomain'
{domain}
wil be replaced by the blackholed domains
forward-zones-file=/etc/pdns/blackhole.zone
in your recursor
configuration.zone_data
in your dns-blackhole.yml
:zone_data: '{domain}='
{domain}
wil be replaced by the blackholed domains
conf-dir=/etc/dnsmasq.d
in your dnsmasq config and point your
zone_file
option to /etc/dnsmasq.d/blackhole.conf
zone_data
in your dns-blackhole.yml
:zone_data: 'server=/{domain}/'
{domain}
wil be replaced by the blackholed domains
Use the following zone_data
in your dns-blackhole.yml
:
zone_data: '127.0.0.1 {domain}'
dns-blackhole
.dns-blackhole.yml
will generate a zone
containing ~698000 entries.As the configuration file is in YAML, you can use YAML anchors
dns-blackhole:
general:
cache: /var/cache/dns-blackhole
log: /var/log/dns-blackhole/dns-blackhole.log
whitelist: /etc/dns-blackhole/whitelist
blacklist: /etc/dns-blackhole/blacklist
blackhole_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=0
easylist: &bh_easy
- https://easylist.to/easylist/easylist.txt
- https://raw.githubusercontent.com/paulgb/BarbBlock/master/BarbBlock.txt
disconnect: &bh_disconnect
url: https://services.disconnect.me/disconnect-plaintext.json
categories: # Advertising, Analytics, Disconnect, Social
- Advertising
- Analytics
config:
zone_file: /etc/unbound/blackhole.zone
# {domain} will be replaced by the blackholed domain, do not change it here
zone_data: 'local-zone: "{domain}" always_nxdomain'
blackhole_lists:
hosts:
- http://winhelp2002.mvps.org/hosts.txt
easylist: *bh_easy
disconnect: *bh_disconnect
In this example you would keep easylist
and disconnect
lists,
but would remove all host file lists except mvps.
127.0.0.1
or 0.0.0.0
.Having your DNS server return NXDOMAIN - Non existant domain - on the other side makes your client behave faster as there's nothing to retry when the domain doesn't exist.
auth-zones
is like this:
auth-zones=dom1=<zone>,dom2=<zone>,dom3=<zone>,etc
forward-zones-file
pdns-recursor takes around 5 more
seconds to process the zone file.It's really a matter of preferences and what you have available. Use the one you're the most comfortable with.
- Cache is not implemented yet
- Log is not implemented yet