• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

AdBlocking mal anders

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Ich hatte keine Lust mehr, mich bei verschiedenen Browsern um verschiedene Adblocker-Plugins mit verschiedenen Listenformaten und so weiter zu kümmern.
Es geht auch viel, viel einfacher: Einfach alle Werbedomains systemweit unerreichbar machen.

Was braucht man?:
-Curl (Ist aber schon installiert.)
-Rootrechte.

Vorteile:
-Sehr schnelles Blocking. Egal, wie lang die Liste ist.
-Gilt für das ganze System. Kein Programm kann mehr Werbung von den eingetragenen Servern empfangen, wenn es die entsprechende Domain anfragt.

Nachteile:
-Wenn meine Lieblingsnewsseite www.news.de ist und dort Werbebanner von www.news.de/werbung eingeblendet werden, dann kann ich die Banner mit dieser Methode nicht getrennt vom Rest der Seite blockieren.

Diese Methode ist also nur gut, um NUR-Werbeserver, auf denen es sonst nichts interessantes gibt aus seiner persönlichen Surfwelt zu verbannen.

Wie funktioniert das hier beschriebene Prinzip allgemein?
Alle DNS-Anfragen an Werbehosts, die beispielsweise entstehen, wenn ein Werbebanner geladen werden soll, werden einfach zu einem Dead-End geleitet. Keine Werbung mehr anzeigbar.

Die Umleitung erfolgt geregelt von Einträgen der Serverdomains in der Datei /etc/hosts.
Wenn eine Domain im Browser eingegeben wird, dann holt sich jener erst einmal die IP-Adresse des Servers und übergibt dabei einem sogenannten Domain Name Server den Domainnamen, für den eine IP-Adresse hinterlegt ist.
Wenn allerdings die geforderte Domain bereits in der Datei /etc/hosts steht (Was unter allen möglichen UNIX-artigen Betriebssystemen so ist - d.h. dieses Tutorial ist auch ohne Änderungen für GNU/Linux und *BSD-Systeme nutzbar), dann wird keine DNS-Anfrage mehr aufgegeben und sofort die vorhandene Adresse genutzt. In unserem Fall: "localhost". Das ist der eigene Rechner, unter dem die Werbung schlichtweg nicht erreichbar ist.

Dazu holen wir uns eine Liste bekannter Werbeserver aus dem Internet.

Was muss getan werden?
Wir öffnen das Terminal. Nun geben wir ein:
Code:
curl "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=&mimetype=plaintext" >> /etc/hosts

Hierbei holt das Progrämmchen Curl uns nun eine Liste aus einem Werbeserververzeichnis im richtigen Format und die Bash leitet die Ausgabe so um, dass die Ergebnisse einfach an die Datei /etc/hosts angehängt werden.
Die Originaldatei /etc/hosts geht dabei nicht kaputt, solange man ZWEI MAL das ">" Zeichen verwendet. Wie beschrieben. Wenn es nur einmal angegeben wird bei dem Terminalaufruf, dann ist der bisherige Inhalt verloren. Es kann mal passieren, dass man müde oder besoffen das Zeichen nur einmal angibt, daher lohnt sich vorher ein kurzes
Code:
cp /etc/hosts /etc/hosts.bak
immer.

Wenn alles richtig gemacht wurde, dann können Werbeserver, die in der Liste enthalten sind, jetzt schon nicht mehr erreicht werden. Einfach so, als gäbe es sie nicht.

Die Liste ist allerdings nicht von Deutschen Usern zusammengetragen worden, weswegen ein jetzt gerade erfundener, aber angenommenerweise typischer und bekannter Werbeserver von Wegen www.werbeserver.de nicht darin aufgelistet ist.

Das können wir einfach nachholen:
Code:
echo "127.0.0.1 werbeserver.de www.werbeserver.de" >> /etc/hosts
Und schon ist der auch nicht mehr zu erreichen.
Allerdings habe ich ihn hier in diesem Beispiel einmal mit "www." und einmal ohne angegeben, weil manche Anfragen mal mit "www." und manche ohne sein werden und das beides unterschiedlich gehandhabt wird.

Kann ich einfach wild alle möglichen Domains angeben?
Ja. Wenn man Pokémon hasst und einfach ganz frech allen Mitbenutzern des Computers verbieten will, www.pokemon.de anzusurfen, dann trägt man die Domain ein und gut ist. Wer die IP-Adresse der Domain kennt, kommt trotzdem drauf, aber das ist meistens nicht der Fall.

Die Liste muss in dem Format sein:
Code:
127.0.0.1 www.domain.de domain.de a.domain.de b.domain.de c.domain.de [I]was.man.will.de[/I]
Und schon wird es richtig interpretiert.

Problemlösungen:
Code:
user@maschine ~ $ curl
-bash: curl: command not found

Curl ist nicht installiert! Einfach mal schauen, woher man das bekommt.

Code:
user@maschine ~ $ echo blabla >> /etc/hosts
-bash: /etc/hosts: Permission denied

Die Rootrechte fehlen. Vorher einfach mal eben "sudo su" eingeben und schon ist man Root.
 
Zuletzt bearbeitet:

rosenkrieger

Süsser Pfaffenapfel
Registriert
28.10.07
Beiträge
673
Vielen Dank für dein ausführliches Posting.

Eine ähnliche Methode ( DNS Blocking ) habe ich früher in Windows gemacht - bevor ich Firefox & Adblock Plus hatte. Aber auf meinem Mac gefällt mir der Safari immer mehr und besser als Firefox - deine Methode erschlägt ne ganze Menge mit einem Schlag :) Vielen Dank dafür!
 

Bier

Pomme au Mors
Registriert
24.08.07
Beiträge
867
Ich bekomme da keine Liste... hört sich interessant an, nur ohne Liste ist nix.

Code:
GIF89a^A^@^A^@<F0>^@1<FF><FF><FF>^@^@^@!<F9>^D^A^@^@^@^@,^@^@^@^@^A^@^A^@^@^B^BD^A^@;

So sieht meine Liste aus...
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Fehler beim Copy&Paste? Anführungszeichen gesetzt? Kodierung des Terminals?
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Bekommst Du wenigstens sauberen Inhalt, wenn Du beispielsweise
Code:
curl "www.google.de"
eingibst?

Wenn ja, dann würde ich prüfen, ob die Adresse, die ich hier im Thread angegeben habe, fehlerfrei in die Konsole kopierbar ist, ohne dass komische Zeichen entstehen. Und wenn das der Fall ist, dann müsste wohl auch ne saubere Liste ankommen.
 

stk

Grünapfel
Registriert
05.01.04
Beiträge
7.141
Moin,

nicht das ich in Safari noch großartig von Werbung heimgesucht würde, aber die bisher verwandte Methode des lokalen Stylesheets funktioniert leider nicht in meinem Newsreader Shrook, der - falls kein Volltext-RSS ausgeliefert wird, hilfsweise via WebKit auch komplette Seiten anzeigt. Blöderweise trotz der modifizierten /etc/hosts aber immer noch die Werbebilder :oops:.

Gruß Stefan
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Bilder, die noch angezeigt werden, sind entweder noch im Cache oder die Domain steht nicht wirklich exakt in der /etc/hosts Datei. So meine Erfahrung.
 

Bier

Pomme au Mors
Registriert
24.08.07
Beiträge
867
curl "http://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showintro=1&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=&mimetype=plaintext" >> /etc/hosts

Keine Ahnung... DAS geht ;)

Ich will mal demnächst diesen ganzen Wann stirbst DU, etc. Schachsinnigkeiten eintragen... super Tipp!
 
Zuletzt bearbeitet:

Walli

Blutapfel
Registriert
06.01.06
Beiträge
2.605
Als Gefahr sehe ich hierbei nur, dass jemand die Liste so manipulieren könnte, dass z.B. deutschebank.de auf tollerhaxxorserverinnigeria umgeleitet wird.
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Ja, stimmt. Aber das ist nur insofern eine Gefahr, wenn einem das aus Versehen passiert (unwahrscheinlich, sehr unwahrscheinlich) oder jemand weiß nicht, wer Rootrechte auf seinem Computer hat.
 

mcjojo

Morgenduft
Registriert
18.02.06
Beiträge
171
Ja, stimmt. Aber das ist nur insofern eine Gefahr, wenn einem das aus Versehen passiert (unwahrscheinlich, sehr unwahrscheinlich) oder jemand weiß nicht, wer Rootrechte auf seinem Computer hat.

Was heißt hier aus Versehen?
Wenn es jemand gelingt, die Seite pgl.yoyo.org zu hacken und eine manipulierte Liste unterzuschieben, bekommst Du gar nicht mit, das du nicht mehr auf www.meineBank.de landest :)
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Oh, ach so. Daran hab ich grad nicht gedacht.

Vertrauen ist natürlich vorausgesetzt.
 

Pallas

Kaiser Wilhelm
Registriert
30.12.06
Beiträge
175
-bash: /etc/hosts: Permission denied
sagt der mir, obwohl ich als admin drinne bin, wenn ich SU eingebe (also root) lässt er mich mit meinem passwort nich rein
hab mein passwort schon eingegeben aber er sagt immer sorry !
kann mir jemand helfen wie ich meine rootrechte bekomm ?
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
Was sagt Dir "ls -lsa /etc/hosts" ?
 

Pallas

Kaiser Wilhelm
Registriert
30.12.06
Beiträge
175
nüx, ich hab mit terminal sonst nix zu tun, aber diese möglichkeit der werbe blockung is mir sehr angenehm
 

Macholino

Adams Parmäne
Registriert
02.08.04
Beiträge
1.303
erst su adminname mit Passwort und dann alle Befehle mit voran gestelltem sudo geht nicht?
 

Pallas

Kaiser Wilhelm
Registriert
30.12.06
Beiträge
175
ne klappt nicht, habs grad NOCHMAL probiert, keine änderung -.-
 

tfc

Ontario
Registriert
21.07.07
Beiträge
348
nüx, ich hab mit terminal sonst nix zu tun, aber diese möglichkeit der werbe blockung is mir sehr angenehm

Nun ja, also... wenn Du mir nicht schreibst, was der da oben genannte Befehl Dir so ausgibt, dann kann ich überhaupt garnichts tun. Bin auch nicht mit einer Hexe verheiratet, so dass ich mal eben in die gläserne Kugel schauen könnte.
 

Pallas

Kaiser Wilhelm
Registriert
30.12.06
Beiträge
175
achso, na denn, hab ich nicht wie beabsichtigt aufgenommen,
so hier das gibt er aus :
Code:
8 -rw-r--r--  1 root  wheel  236 23 Sep 23:37 /etc/hosts