«

»

Jun
19

Webseiten Werbeblocker zentral im Windows Netzwerk über DNS

Zielsetzung

  • Werbung mit möglichst wenig Aufwand zentral Blockieren
  • Browser Unabhängig
  • Wenige bis keine Änderungen an den Netzwerk-Clients bzw. Browsern

Voraussetzung

  • Zentraler DNS Server
  • Alle Clients benutzen diesen DNS Server
  • (optional) lokaler Webserver

Umsetzung

Generell läuft es darauf hinaus das man komplette DNS-Zonen deaktiviert.
Hierbei ist besondere Vorsicht angebracht da man sehr schnell zuviel blockiert, also lieber zuwenig als zuviel blockieren. Nichts ist schlimmer wenn nach der Umsetzung die ganze Firma anruft.

Als erstes gilt es zu ermitteln welche Domains zu blockieren sind.
Dazu ruft man am einfachsten Webseiten auf, die ungewünschte Werbung darstellen und versucht die Ursprungsdomain der Werbung zu ermitteln.

Setzt man Windows 2000 ein sollte man als nächstes DNS-Wildcard Auflösung aktivieren.

Danach erstellt man im DNS Server eine neue Zone. Es ist hierbei unerheblich ob diese Aktive Directory integriert ist oder nicht.
In dieser Zone legt man einen neuen Hosteintrag an der keinen Namen hat. Als IP Adresse verwendet man entweder die eines lokalen Webservers oder 127.0.0.1. Die Folgende Warnmeldung kann man getrost bestätigen.
Danach legt man unter dieser Zone eine “Neue Domäne” mit der Bezeichnung “*” an, darunter dann
wieder einen Hosteintrag mit der IP des lokalen Webservers oder 127.0.0.1.

Das Ergebniss könnte dann in etwa wie folgt aussehen:


Windows 2000 DNS Konfiguration

Windows 2000 DNS Konfiguration

Hat man sekundäre DNS Server darf man nicht vergessen zum einen die Zonenübertragung zu aktivieren und zum anderen die neuen Zonen auch auf den sekundären DNS Servern einzurichten.

Damit ist die Hauptarbeit erledigt.
Jegliche DNS Aufrufe gegen zBspl. “ads.msn.com” beantwortet der DNS Server mit der gleichen Antwort:


Windows 2000 DNS nslookup

Zum sofortigen Testen ist es oft nötig den lokalen DNS Cache zu leeren: ipconfig /flushdns.

Möchte man die Werbeanfragen auf einen lokalen Webserver weiterleiten um darauf individuell zu Antworten kann man Apache so Konfigurieren das er auf alle Anfragen gleich antwortet:

NameVirtualHost *:80
<VirtualHost *:80>
ServerName *
DocumentRoot /home/www/catchall.our.dom/htdocs
AliasMatch /(.*)$ /home/www/catchall.our.dom/htdocs/index.php/$1
</VirtualHost>

Dadurch wird von jedem Browser statt der Werbung die index.php aufgerufen.

In meinem Fall enthält diese Code der den Browser auf eine statische lokale Datei umlenkt.
Dies hat zwei Vorteile: Zum einen kann der Browser die Weiterleitung sowie die Ziel Datei zwischenspeichern, zum anderen wird durch Apache der richtige Content-Type zurückgeschickt.
Die Dateien habe ich manuell als leere bzw. 10×10 weiße Pixel Bilder angelegt.
Zusätzlich wird noch ein Apache error.log Eintrag generiert.
Wichtig ist das im Webserver ein Extra-VHost anlegt wird sonst der catchall-vhost die Anfragen gegen diese statischen Dateien beantworten würde – was vermutlich zu einer Endlos Schleife führt.


<?php
error_reporting (E_NONE);

$log = '';
$log .= 'HTTP_HOST=' . $_SERVER['HTTP_HOST'] . ' ';
$log .= 'REQUEST_URI=' . $_SERVER['REQUEST_URI'] . ' ';

$match = array();
$blank = 'index.html';

if (TRUE == preg_match('/.+\.(js|jpe?g|css|png|bmp|x?html?|php|cfm|gif)/i', $_SERVER['REQUEST_URI'], $match)) {
$blank = 'blank.' . $match[1];
}
header ('HTTP/1.1 301 Moved Permanently', TRUE, 301);
header ('Location: http://static.our.dom/catchall/' . $blank, TRUE);

$log = 'BLANK='. $blank. ' ' . $log;

error_log ($log,0);

?>

Es kann passieren das Webseiten nicht mehr ordnungsgemäß funktionieren wenn Teile davon deaktiviert werden. Der Internet Explorer 6 meckert dies manchmal an was man in den Einstellungen deaktivieren kann:


Internet Explorer 6: Script Debugging deaktivieren

Zum Abschluß sei noch zu erwähnen das Werbung natürlich auch lokal gefiltert werden kann.

Nahezu jeder Browser bietet dazu Addons oder von Haus aus seine Möglichkeiten.
Bei FireFox zBspl. das AdBlock AddOn, bei Opera kann man Inhalte direkt blockieren, umfangreiche Filterlisten gibt es natürlich auch.
Für den Internet Explorer bleibt meines Wissens nach nur die Möglichkeit die DNS Auflösung lokal in der “C:\WINNT\system32\drivers\etc\hosts” Datei zu deaktivieren.

2 Kommentare

  1. Sven sagt:

    Ich stehe solchem ‘missbrauch’ des DNS recht kritisch gegenueber. Das ganze fuehrt bei umfangreicheren Blocklisten/Manipulationen irgendwann immer dazu das jemand voellig verwirrt auf irgendwelche unvorhergesehenen Resultate stoest und nicht weiss wie er dazu kommt.

    Persoenlich wuerde ich immer irgend eine Form von Content-Filter bevorzugen der oberhalb der Infrastrukturprotokolle arbeitet. In groesseren Netzen schickt man normalerweise ja eh schon alles durch einen Proxy da macht es IMHO eher Sinn anzusetzen. Wenn die Umgebung fuer einen zentralen Proxy zu klein ist dann halt die Client Loesung wie AdBlock+ fuer den Firefox o.ae.
    Fuer AdBlock+ koennte man dann z.B. eine zentrale Filterliste einbinden falls das gewuenscht und noetig ist.

  2. ralf sagt:

    Hoi Sven,

    generell stimme ich dir wie so oft absolut zu.

    Ein zentraler Proxy hat viel umfrangreichere Möglichkeiten und ist technisch gesehen der bessere Ansatz.
    Wobei bei einem Proxy natürlich auch Fragen des Datenschutzes von Belang sein könnten.
    Ich hatte hier mal eine zeitlang Squid mit irgendwelchen Filtern laufen,
    das war zwar ganz nett aber subjektiv betrachtet war das Browsen langsamer.

    Das DNS derart zu verbiegen ist eine Art Schnell Schuß ohne wirklichen Aufwand betreiben zu müssen.
    Defakto muss bei einer minimalen Ausbaustufe (alles auf 127.0.0.1) nur im DNS rumgefummelt werden
    und alle Clients profitieren recht zeitnah bzw. zumindest ohne eingreifen davon.
    Oder anders ausgedrückt: Man zwingt allen Clients den Filter auf. Wobei irgendein Held natürlich einfach einen anderen DNS einstellen würde.

    Wichtig ist aber nicht in einen Wahn zu verfallen und jeden noch so kleinen Banner zu blockieren.
    Mir persönlich ging es eigentlich nur darum die wirklichen großen Datensammler (google-analytics etc.)
    auszusperren.

Hinterlasse eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht.

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

What is 2 + 2 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)