Netzsperren reloaded

Nach den letzten Monaten sollte nun mittlerweile jeder etwas von Netzsperren gehört haben. Zwar wurde der Begriff Netzsperre /-filter immer wieder von unseren geliebten Politikern im Zusammenhang mit Kinderpornografie, böses Internet und Schutz der Jugend in Zusammenhang (wir gehen lieber nicht näher hierdrauf ein…) gebracht, es gibt auch gute Verwendungsmöglichkeiten dieser Filter.
Netzsperren sind, richtig angewendet (also nicht, wie unsere geliebte Regierung sich das ach so böse Internet wegdenken will), sicherlich eine gute Idee.
Wieso? Man sollte sich einmal ansehen, was der Aufruf einer normalen Webseite heutzutage alles an spannenden Dingen zu Tage fördert. Werbung, kleine Analyse- und Trackingwerkzeuge, Googlesyndication usw. werden bei jedem Aufruf mit geladen und dem Betrachter ins Browserfenster geladen. Gegen Werbung habe ich ja nicht grundsätzlich etwas. Aber in der Menge ist es auf einigen Seiten mittlerweile zu massiv. Ebenfalls möchte ich nicht bei jedem Besuch analysiert werden. Was habe ich mir angesehen, was habe ich wie lange betrachtet, welche Links habe ich mir angesehen? Das geht mich etwas an. Und muss nicht noch tiefgehend analysiert werden.
Aktuelle Browser bieten mitunter gute Plugins (Adblock Plus f. Firefox), welche einen Grossteil der Werbung aus den Seiten herausfiltert und diese zum Teil erst wieder les- und nutzbar macht.
Leider filtern diese Plugins nicht alles raus. Noch immer werden Trackingtools (Googlesyndication & Co.) aufgerufen und bieten damit dem Seitenbetreiber eine recht gute Analyse der Besucher an. Wer war dort, war man schon mal dort, wie lange usw. usf.
Möchte man das? Möchte man auf vielen Seiten die wunderbaren Werbebanner haben? Die schönen Overlay-Werbebanner, die gleich in den Vordergrund einer besuchten Seite springen und für tolle Handyverträge, Internetanbieter usw. Werbung einblenden?
Nein. Ich zumindest nicht. Eine Lösung (sofern man über ein wenig technisches Equipment verfügt), sind Proxys, die gleichzeitig Filtern. Gut, die Zeit der (Caching-)Proxys ist eigentlich vorbei. Machten diese früher noch einigermaßen Sinn und haben einen Cache angeboten sind diese Funktionen in der heutigen Zeit der großzügig dimensionierten Internetanbindungen hinfällig. Aber eine schöne Funktion bieten diese: Man kann Regeln definieren. Regeln zum Erreichen bestimmter Hosts z.B. lassen sich definieren und, sofern gewünscht, Zugriffe auf diese Ziele, unterbinden.
Squid (Webproxy) lässt sich hierzu einfach einrichten. Man definiert eine Regel, dass eine Datei mit verbotenen Hosts oder Domains herangezogen werden soll. In der Datei hinterlegt man verbotene Seiten. In den Logdateien erkennt man dann immer wieder Hosts, die noch erlaubt sind und Werbung oder Analysewerkzeuge ansprechen und fügt diese hinzu. Nach und nach wird damit das Netz wieder einigermaßen Werbefrei.
Voraussetzung: Squid ist funktionsfähig installiert und kann genutzt werden. Der Webbrowser ist zur Nutzung des Proxys eingerichtet und nutzt diesen. Um schnell zwischen Proxy nutzen/ nicht nutzen umzuschalten empfiehlt sich z.B. QuickProxy Addon für den Firefox.

Ein kurzes Beispiel:
Wir haben in der squid.conf zwei Einträge vorzunehmen. Der erste Eintrag (im Bereich der ACLs, meist im Kopf zu finden) ist eine neue ACL, die mit einem Namen benannt wird. Hier wird angegeben, dass eine Datei genutzt wird:
   acl blocked_urls dstdomain "/pfad/zu/squid/blocked-sites.squid"
Die zweite Zeile (im Bereich der Deny-Rules) ist der Eintrag, was mit der obigen Regel passieren soll. Wir wollen diese blocken, also sieht die Zeile wie folgt aus:
   http_access deny blocked_urls

Damit wären die zwei Einträge in der Konfigurationsdatei des Squid’s fertig. Nun fehlt noch die quasi wichtigste Datei: Die Datei blocked-sites.squid. Die wird nun noch mit Einträgen von Hosts oder Domains gefüllt, die herausgefiltert werden sollen.
Zwei unterschiedliche Arten von Einträgen müssen beachtet werden. Es gibt Host- und Domain-Einträge. Domaineinträge überschreiben Hosteinträge. Wird ein Domaineintrag gesetzt, wird die komplette Domain blockiert. Damit sollte man erst anfangen, wenn man sich wirklich sicher ist. Sonst hat man sich schnell „das böse Internet“ weggefiltert 😉

Wie sehen diese Einträge aus?
Wir nehmen zuerst einen Hosteintrag: banners.irgendeinedomain.tld
Hier wird der einzelne Host banners in der Domain irgendeinedomain.tld blockiert. Ein Aufruf von www.irgendeinedomain.tld funktioniert ohne Probleme und wird nicht blockiert. Kann man also in den Squid-Logs einen bestimmten Host erkennen, der Banner/ Werbung ausliefert, kann man den blockieren.

Etwas anders sieht es mit „großen“ Domains aus, bei denen die Hosts in (vll. sogar sehr) großer Anzahl vorliegen oder häufig geändert werden. Da macht es mitunter Sinn, gleich die komplette Domain webzufiltern. Bestimmte Domains sind recht deutlich als Werbeauslieferer oder Tracker zu erkennen. Oder man möchte z.B. in seiner Firma den Zugriff der Mitarbeiter auf Portalseiten f. Chat & Co. unterbinden.

Wir filtern eine komplette Domain heraus: .irgendeinedomain.tld
Hier wird der Hosteintrag weggelassen und stattdessen ein Punkt gesetzt. Alles innerhalb der Domain wird nun blockiert. Es geht weder www.irgendeinedomain.tld noch blah.irgendeinedomain.tld noch foo.irgendeinedomain.tld

Wir fangen klein an und tragen zwei Einträge in die Datei ein. Ein Host- und ein Domaineintrag:

deals.ebay.de
.doubleclick.net

Nach einem restart des Squid wird nun die angegebene Datei genutzt. Die zwei obigen Einträge blockieren nun den Browser und liefern eine Hinweisseite des Squid aus. Testweise kann nun mal auf www.ebay.de gesurft werden. Es gibt keine Probleme, die Seite baut sich normal auf. Versucht man nun stattdessen auf deals.ebay.de zu surfen gibt’s die Hinweisseite. Um die Funktionsfähigkeit zu prüfen kann nun auch einmal der Proxy im Browser deaktiviert werden. Beide Seiten sind ohne Probleme erreichbar.

Ein guter Ansatz, neue Domains/ Hosts zu finden ist das Log des Squid. Hier werden alle Zugriffe protokolliert und zeigen den Client („Aufrufer der Seite“) und das Ziel an:

  1275731802.697 66 10.11.12.13 TCP_MISS/301 550 GET http://heise.de/ - DIRECT/193.99.144.80 text/html
  1275731802.937 191 10.11.12.13 TCP_MISS/200 15960 GET http://www.heise.de/ - DIRECT/193.99.144.85 text/html

Der Host 10.11.12.13 ruft heise.de auf. Ok, soll er. Der nächste Eintrag zeigt den funktionsfähigen Filter auf. Hier wird der Zugriff verweigert (TCP_DENIED):

  1275731973.165 13 10.11.12.13 TCP_DENIED/403 5516 GET http://deals.ebay.de/crossdomain.xml - NONE/- text/html

Findet man Werbung auf einer Seite, die man nicht mehr haben will, so findet man dieses in den Logs. Entsprechend der Einträge im Log kann man einfach und schnell neue Hosts/ Domains finden und diese in der blocked-sites.squid Datei hinzufügen. (Nach jeder Änderung muss der Squid reloaded/ restarten werden!).

Man sollte sich bei den Regeln jedoch ein paar Gedanken machen, eh man filtert. Ganze Domains blockieren ist nicht die beste Idee, man sollte sich langsam heranarbeiten und die Datei einfach immer wieder nachpflegen.

Dieser Beitrag wurde unter Dokus und Tipps, Linux/ UNIX, Technikspielkram abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert