Die Vorgeschichte

Schlaflose Nacht, herumgesurft und wieder einmal angewiedert von den vielen vielen Werbebannern (Ads), die blinken, herumhuschen, auf-sich-aufmerksam-machen, verkaufen-wollen, Nutzungsverhalten-ausspionieren (Tracking), einfach nur nerven.

"Ei!", dachte ich mir, "Wenn man eine Liste möglichst vieler Ad-Server hätte, könnte man sie doch in die Hosts-Datei einbinden, auf 127.0.0.1 umbiegen und hätte Ruhe.". Gedacht, geforscht und lag gar nicht mal so falsch. Eine solche Liste existiert, enthält aber ca. 15.000 Einträge und müsste dann ja auf jedem Rechner im LAN eingetragen und idealerweise auch gepflegt werden. Doch genau für solche Aufgaben gibt es ja unseren guten alten Freund Computer!

 

Die Idee

Inspiriert von Blocking Unwanted Parasites with a Hosts File und Blocking Web Ads Via DNS habe ich mich dann (mal wieder) an die Tastatur gesetzt und etwas ausprobiert...Es war einfacher und effektiver, als gedacht!

 

Die Umsetzung

Man nehme Bind als DNS-Server, folgendes Skript: ...

Code /etc/bind/ad-block.sh:
#!/bin/sh
source /etc/profile
wget -qN http://www.mvps.org/winhelp2002/hosts.zip
unzip -p hosts.zip HOSTS | \
dos2unix | \
sed -e 's/^#/KILLME/' -e '/KILLME/d' -e '/^127.0.0.1/!d' -e '/localhost/d' - | \
cut -d " " -f3 | \
sed 's/^/zone "/' | \
sed 's/$/" { type master; file "\/var\/bind\/pri\/dummyblock"; };/' > ad-block.conf DATUM=`date +%Y%m%d` sed 's/SERIAL/'${DATUM}'/' pri/dummyblock.template > pri/dummyblock rm hosts.zip

...lege folgende Zonen-Datei als Template an: ...

Code /etc/bind/pri/dummyblock.template:
$TTL 1d
@ IN SOA ns.sysiphus.com. hm.sysiphus.com. (
SERIAL
86400
300
604800
3600 )

@ IN NS ns.sysiphus.com.

@ IN A 192.168.100.1
* IN A 192.168.100.1

(192.168.100.1 ist ein lokaler Mikro-WebServer, z.B. monkeyd, der nur ein 1*1 Pixel großes transparentes GIF als Platzhalter ausgibt)

...und füge /etc/bind/named.conf folgen Eintrag hinzu:

Code:
include "/etc/bind/ad-block.conf";

Das hält die eigentliche Bind-Konfigurationsdatei schön übersichtlich (zur Erinnerung: ~15.000 Ad-Server!) und nach einem raschen reload von Bind kann man sich bereits an einem Ad-befreitem Internet erfreuen!

Jetzt kann man sich noch ad-block.sh in einen Cronjob legen und dann auch künftig entspannt das Internet genießen, ohne sich weiter um die Ad-Server Liste kümmern zu müssen.

Einen gleichen Nutzen bringen zwar auch Ad-Block und No-Script für Mozilla Firefox, aber ganz ehrlich: Wollen wir den anderen Usern das antun? Oder vielmehr: Wollen wir uns das mit den Usern antun?