MACNOTES

Veröffentlicht am  5.08.09, 15:39 Uhr von  

Workshop: hosts-Datei – Internet-Werbung entfernen in OS X

HostsWenn im Browser eine Adresse eingegeben wird, so kann diese nicht direkt besucht werden. Der Computer kommt nur mit IP-Adressen zurecht, weil diese eindeutig auf den Zielserver zeigen. Um diese IP-Adresse anhand einer Domain herauszubekommen, bemühen Betriebssysteme DNS-Server (Domain Name System-Server). Dieser schlägt nach, welche IP sich hinter einer Domain versteckt. Ein „lokaler“ DNS-Server befindet sich in der Datei /etc/hosts. Wofür das gut ist und wie man damit Werbung entfernen kann, klären wir hier.

 

Grundlagen: Die hosts-Datei

Wie bereits erwähnt, wird normalerweise bei einer Domain-Anfrage der DNS-Server um Hilfe gebeten. Diesen stellt in der Regel der Internet-Provider zur Verfügung. Das TCP/IP-Protokoll, auf dem das Internet aufbaut, sieht eine hosts-Datei vor, in der bekannte Domain-Namen mit ihrer IP aufgelöst werden. In ihr wird etwa festgelegt, dass der „localhost“ die IP 127.0.0.1 besitzt. Generell gilt: Was in der hosts-Datei steht, ist unfehlbar. Das bedeutet, dass Domains, die sich in der hosts-Datei eingefunden haben, nicht mehr durch einen DNS-Server überprüft werden.
Durch das TCP/IP-Protokoll geregelt, ist die Datei auf allen Systemen gleich aufgebaut. Der Syntax sieht vor:

IP – mindestens ein Leerzeichen – Domain-Name

Als Beispiel und notwendiger Eintrag ist bereits die Zeile für den localhost, also den eigenen Rechner, vorgegeben:

127.0.0.1     localhost

Sagen wir, der DNS-Server ist ausgefallen und wir wollen trotzdem über die neusten News und Gerüchte rund um Apple aufgeklärt werden. Dann könnten wir die hosts-Datei um die folgende Zeile erweitern:

213.203.216.10     www.macnotes.de

Vorausgesetzt, der DNS-Server ist das einzige, das ausgefallen ist, und Macnotes hat keinen anderen Server bezogen, werden wir ab jetzt immer in der Lage sein, Macnotes aufzurufen.

Zu beachten ist, dass der eigene Rechner Domain-IP-Assoziationen cachet. Dies tut er, weil es nicht wirklich wahrscheinlich ist, dass eine Domain während einer bestimmten Zeitperiode eine andere IP bekommt und deshalb nicht immer beim DNS-Server nachfragen möchte. Nach einer Änderung an der hosts-Datei hat sich eine Domain aber geändert. Deshalb sollte nach jeder Modifikation der DNS-Cache geleert werden. Das geht in Mac OS X mit einem der beiden Befehle:

lookupd -flushcache

(für Mac OS X bis einschließlich 10.4 Tiger) bzw.

dscacheutil -flushcache

(für Mac OS X ab 10.5 Leopard).

 

Blocken von unerwünschtem Content

[singlepic id=4102 w=thumb float=left] Als einen Anwendungszweck kann man die hosts-Datei für das Blocken von Inhalten aus dem Internet verwenden. Solange das Programm auf eine Domain (und nicht etwa direkt auf eine IP) zugreift, können so zuverlässig alle unliebsamen Anfragen ins Nirvana weitergeleitet werden. Es lässt sich also auch ein einfacher, zugegebenermaßen nicht sehr flexibler, aber dafür ausgesprochen wirksamer und browser-unabhängiger Werbeblocker realisieren.

Eine recht nervige Sache im Internet sind Layer-Ads. Das sind Werbeeinblendungen, die das ganze Browserfenster überlagern können und zu allem Unglück auch mitscrollen. Aber sie lassen sich ein für alle Mal abschalten.

Bevor es ans Eingemachte geht, gilt es noch eine Voraussetzung zu klären. Gebraucht wird unter Mac OS X ein Benutzerkonto mit einem nicht-leeren Passwort. Das hat den Grund, dass wir den Texteditor privilegiert aufrufen müssen und zwar, weil Mac OS X es nicht anders vorsieht, über die Kommandozeile. Diese setzt leider ein Passwort voraus. Ein wenig einfacher geht’s, wenn auf der Festplatte ein anderer Editor wie [singlepic id=4101 w=thumb float=right] Textmate verfügbar ist. Jener tut den Zugriffsfehler beim Speichern nicht mit einer Fehlermeldung ab, sondern holt sich die Einwilligung beim Benutzer ein. In diesem Fall ginge sogar ein passwortloses Konto.

Lösung mit Mac OS X-Mitteln

  • 1. Suche über Spotlight das „Terminal“ auf.
  • 2. Gib folgende Zeile ein:
    sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts

    Es folgt die Passwortabfrage. Gemeint ist das Passwort des Benutzerkontos

  • 3. Der Texteditor öffnet sich und bietet nun die hosts-Datei zum Bearbeiten an
  • 4. Füge an das Ende der Datei an:
    127.0.0.1 layer-ads.de

    Und speichere die Datei

[singlepic id=4100 w=430 float=left]

  • 5. Beende TextEdit
  • 6. Gib auf der Konsole den Befehl zum leeren des DNS-Caches ein (dscacheutil -flushcache für Leopard)
  • 7. Leere ggf. den Cache des Browser und lade die Seite erneut
  • 8. Kein Layer-Ad mehr!

[singlepic id=4099 w=thumb float=right] Lösung mit einem anderen Editor
(wie TextMate)

  • 1. Rechtsklick auf das Mac OS-Symbol im Dock, Gehe zum Ordner, „/etc“
  • 2. Dort Rechtsklick auf die Datei „hosts“, „Öffnen mit“, „TextMate“ (oder einem anderen Editor, der das unterstützt)
  • 3. Siehe Schritt 4 und 5 von den Bordmitteln
  • 4. Ruf das Terminal auf (Spotlight-Suche), dann siehe Punkt 6 bis 8 der obigen Vorgehensweise

[singlepic id=4098 w=430 float=left]

Ob der andere Editor geeignet ist oder nicht, ist daran zu erkennen, ob er beim Speichern eine Fehlermeldung ausgibt oder nach dem Passwort fragt. Tut er Letzteres, ist er geeignet. Leider verhält sich TextEdit nicht so.

Die Layer-Ads sind hierbei nur als ein Beispiel zu verstehen. Wer ein bisschen des HTML mächtig ist, kann sich den Quellcode der werbenden Seite ansehen und findet möglicherweise das Script, das die Werbung einblendet (es befindet sich in aller Regel am Anfang oder am Ende eines HTML-Dokuments).
 

Was ist der Vorteil dieses Verfahrens?

[singlepic id=4097 w=thumb float=left] Der Nutzen der hosts-Datei liegt daran, dass sie auf nichts angewiesen ist. Man muss sich nicht auf eine Firewall verlassen und ebenso wenig hoffen, dass der Lieblingsbrowser einen Content-Blocker hat. Zudem lassen sich hiermit auch andere Programme vom Sammeln von Daten abhalten („Phone home“), was der Privatsphäre zu Gute kommen kann.

 Und wie ist deine Meinung?  Schreib uns einfach!

 18 Kommentar(e) bisher

  •  @EasySmile80 sagte am 5. August 2009:

    RT @Macnotes Workshop: hosts-Datei – Internet-Werbung entfernen in OS X http://macnot.es/13858

    Antworten 
  •  @bindertom sagte am 5. August 2009:

    Abhilfe gegen layer-ads… mal sehen ob’s funktioniert :) http://macnot.es/13858

    Antworten 
  •  Christoph sagte am 5. August 2009:

    Endlich, endlich, endlich, endlich mal wieder ein wertvoller Artikel bei Macnotes. DANKE! Mehr davon.

    Ein interessanter Ansatz.

    Antworten 
  •  Peter sagte am 5. August 2009:

    Interessant, dass eine Seite, die wohl auch auf Werbeeinnahmen angewiesen ist, hier Tipps anbietet, wie sich die Werbung abstellen lässt ;)

    Antworten 
  •  rodknocker sagte am 5. August 2009:

    @stk

    Das ist Firefox auf den Screenshots?
    Wenn ja, welches Theme und welche Erweiterungen?

    Auch haben will :))))

    Antworten 
  •  stk sagte am 5. August 2009:

    @ rodknocker
    Das ist eigentlich Opera 10 (weil ich den normal nicht benutze) :-)

    Antworten 
  •  Robert sagte am 5. August 2009:

    Danke Macnotes! Endlich ein Weg diese nervigen Layer-Ads weg zu bekommen. Ich verstehe, dass Werbung im Internet nötig ist, aber diese Dinger sind einfach penetrant.

    Antworten 
  •  Lucas sagte am 5. August 2009:

    Findet man auf dem iPhone ebenfalls eine hosts-Datei?

    Antworten 
  •  @mehrspassdennje sagte am 5. August 2009:

    RT @PimpYourMac LayerAds sind evil!!! Hier der ultimative Exorzismus-Tipp: http://macnot.es/13858 =8·)

    Antworten 
  •  MacMacken sagte am 5. August 2009:

    @Lukas: Ja, aber das Editieren ist nicht vorgesehen … wie man in Safari leider auch keine eigenen CSS verwenden kann.

    Für Safari auf dem Mac (und andere Anwendungen mit CSS-Unterstützung, z.B. NetNewsWire) kann man per CSS komfortabel Werbung, usw. ausfiltern:

    http://www.macmacken.com/2009/05/27/netnewswire-ohne-werbung-dank-adblocking/

    Antworten 
  •  stk sagte am 5. August 2009:

    Ich kenne mich jetzt nicht so wirklich aus damit, aber ich meine, wenn du dein iPhone jailbreakst, müsstest du doch per ssh drauf kommen. Dann könntest du die hosts-Datei auch bearbeiten.
    Existieren wird sie in jedem Fall, denn das iPhone-OS ist zumindest im Kernel genauso ein Darwin wie es OS X ist.

    Antworten 
  •  Hansi sagte am 5. August 2009:

    Mit GlimmerBlocker geht das bequemer und vor allem schneller. Installiert einen Proxy-Server auf dem eigenen System (der auch von iPhones oder anderen Geräten im selben Netzwerk genutzt werden kann) und bedient somit alle Browser. Kein Plugin und somit keine Probleme bei Browser-Updates.

    Antworten 
  •  kermit sagte am 5. August 2009:

    … oder man benutzt einfach den firefox mit dem adblock plus plugin :D
    und ruhe ist… aber eine iphone lösung ohne jailbreak wäre schon schön.

    Antworten 
  •  at sagte am 6. August 2009:

    @Kermit: Das Plugin erlaubt einem aber nicht, Software nicht nach Hause telefonieren zu lassen. Wer anonym bleiben will, kann mit der Lösung nämlich alle Kommunikationsversuche umleiten und ins Leere laufen lassen.

    @Hansi: Ähnliches gilt für GlimmerBlocker, der, wenn ich die Beschreibung richtig verstehe, nur http-Verbindungen umleitet. Wenn Software X Y aber auf Port Z nicht übers HTTP-Protokoll verbindet, dann ist GlimmerBlocker wohl doch nur ein AdBlocker. ;) Zitat v. d. Homepage: “It is even compatible with all other browsers and other native Mac OS X applications which uses http, e.g. NetNewsWire. “

    Antworten 
  •  kermit sagte am 6. August 2009:

    @at: richtig, wobei, artkeltitel lautet: “…Internet-Werbung entfernen in OS X” also war meine antwort auch nur diesem thema gewidmet und mit dem plugin bin ich definitiv schneller am ziel.

    schade, dass man dem user auch nicht sagt wie die domains heißen die gesperrt werden sollen. (außer dem html-code-nachseh’ tipp) eine textdatei zum herunterladen wäre schon ein erster schritt. denn nur mit layer-ads hat man nicht alles gesperrt :)

    Antworten 
  •  Patrick sagte am 6. August 2009:

    Ad-Blocking via /etc/hosts is ganz praktisch, aber so wie ihr das hier macht ist das schon ganz schoen umstaendlich.

    Schaut euch mal die Methode unter http://www.student-im-urlaub.de/?p=205 an, damit habt ihr im Handumdrehen ‘ne ordentliche Liste an Ad-URLs in eurer hosts-Datei.

    Greetings

    Antworten 
  •  at sagte am 6. August 2009:

    @kermit: Nun, wir wollen ja anders als viele Leute da draußen, niemanden kompromitieren, deshalb keine Listen. Es soll Leute geben, die zwar Layer-Ads nervig finden, aber nicht grundsätzlich ein Problem mit Vorschlägen haben, die ihnen untebreitet werden. Es gibt genügend Gamer, die per Zufall durch eine Werbeanzeige später auf ihr liebstes Spielgerät gestoßen sind, bspw. – Oder Leute, die per Zufall über ne Werbeanzeige ein Konto mit viel Zinsen ihrer Wahl gefunden haben. Alles unter Generalverdacht zu stellen… tja, das kann Frau von-der-Leyen tun, aber da müssen wir ja nicht mitmachen.

    Und auch @patrick: Es geht hier nicht nur um ad-blocking. Stefan hat ja einen Hinweis im Artikel gegeben, worum es noch gehen kann. Auch die Methode, die du automatisiert auf Jaceks Blog findest, kümmert sich ja nur um Werbung. Mit dem bisschen Mehr an Hand-Arbeit kann man Zensursula aussperren, d. h. je nachdem wie der Internetfilter integriert werden wird oder auch noch ganz andere Dinge realisieren.

    Antworten 
  •  @hk1asl sagte am 15. November 2009:

    Workshop: hosts-Datei – Internet-Werbung entfernen in OS X: http://macnot.es/13858

    Antworten 

Kommentar verfassen

 0  Tweets und Re-Tweets
       0  Likes auf Facebook
         0  Trackbacks/Pingbacks
          Werbung
          © 2006-2013 MACNOTES.DE. Made with insanely great for all things Mac. Apple.de