Hier ein kleines Script um Netzwerkweit Domains, die Onlinewerbung und Malware verteilen auf DNS Ebene zu filtern.
In Windows Umgebungen lässt sich sehr einfach ein Bind DNS Server als Weiterleitungsserver hinter dem Windows DNS Server betreiben. Beispielsweise auf einem RaspberryPi.
Kudos to Pauls Security Weekly.
HOME=/etc/bind ADLISTURL="https://pgl.yoyo.org/adservers/serverlist.php?hostformat=bindconfig;showintro=0;zonefilename=/etc/bind/null.zone.file;mimetype=plaintext" MWLISTURL="http://mirror1.malwaredomains.com/files/spywaredomains.zones" ADLISTFILE="ad-blacklist" MWLISTFILE="mw-blacklist" MWLISTFILECLEAN="mw-blacklist-clean" ZONEFILE=/etc/bind/nullzone wget -O $ADLISTFILE $ADLISTURL wget -O $MWLISTFILE $MWLISTURL sed 's/^M$//' < $MWLISTFILE> $MWLISTFILECLEAN awk '{ print $1 " " $2 " {type master; file \"/etc/bind/nullzone\"; };" }' $ADLISTFILE $MWLISTFILECLEAN | sort | uniq > /etc/bind/blacklists
Nun noch ein Zonefile „nullzone“ unter /etc/bind/ mit folgendem Inhalt anlegen:
$TTL 86400 ; one day @ IN SOA ads.int.yourdomain.tld hostmaster.int.yourdomain.tld. ( 2014090101 28800 7200 864000 86400 ) NS yourdns.int.yourdomain.tld. A 127.0.0.1 @ IN A 127.0.0.1 * IN A 127.0.0.1
Folgende Zeile zur Datei /etc/bind/named.conf.local hinzufügen:
include "/etc/bind/blacklists";
Hier ein kleiner Ausschnitt aus der Datei /etc/bind/blacklists die durch den Aufruf des Scripts erzeugt wird,
zone "5689.nl" {type master; file "/etc/bind/nullzone"; }; zone "56clicks.com" {type master; file "/etc/bind/nullzone"; }; zone "56hj.cn" {type master; file "/etc/bind/nullzone"; }; zone "56.js.cn" {type master; file "/etc/bind/nullzone"; };
Dieses Script sollte vielleicht Wöchentlich durch einen cronjob ausgeführt werden um die Blacklist aktuell zu halten.