Pi-Hole – Das Schwarze Loch für Werbung auf dem Pi

Werbung? Nein danke! Die Zeiten von Adblock und Adblock Plus sind nach langer Zeit der Werbearmut beinahe Geschichte. Die Großen haben es mittlerweile verstanden, die Adblock Browsererweiterungen und leider auch VPN's strikt zu blocken – quasi ein Adblock block. Ist das der Fall, erscheint meist ein Pop-Up mit dem moralischen Hinweis, dass die kostenlosen Inhalte werbefinanziert sind. Im Prinzip ein fairer Tausch, ich lese umsonst, dafür sehe ich Werbung – leider ist das nur die halbe Wahrheit. Tracking, cookie planting, und letztendlich personalisierte Werbung sowie Profilerstellung und -verkauf liegen auf der Schattenseite verborgen und werden uns verschwiegen. Ihr wollt wissen, wie ihr trotz dieser Problematik weitestgehend werbe- und trackingfrei bleibt? Holt den Raspberry Pi raus und wir legen los. In ca. 30 - 45 Minuten werdet ihr ein besseres Internet erleben dürfen und das ganz ohne Zusatzsoftware auf den Endgeräten.

Dieses Tutorial steht unter einer Creative Commons CC BY-SA Lizenz und darf frei verwendet, bearbeitet und weitergegeben werden, solange der Autor genannt wird und die neue Version unter denselben Bedingungen angeboten wird. Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.

Zitiervorschlag: Steger, Manfred: Pi-Hole – Das Schwarze Loch für Werbung auf dem Pi. CC BY-SA.

Grundausstattung

Den Unterschied zwischen den Spezifikationen des Raspberry Pis findet ihr hier. Es ist wichtig, dass entweder die Version 2 oder Version 3 erstanden wird. Der Testaufbau wurde mit einem Raspberry 2 Modell B durchgeführt, laut Nutzerberichte soll die neu erschienene Version 3 ebenfalls mit diese Tutorial ohne Abweichungen funktionieren (ohne Gewähr).


Raspbian OS aufsetzen

Damit das Tutorial komplett abgearbeitet werden kann, sind die oben genannten Bauteile nötig. Es gibt zwei Möglichkeiten zum Start,

  1. Mit Tastatur und Bildschirm oder

  2. alles über Remote (SSH und Terminal).

Ich habe mich für die zweite Variante entschieden, da einfach weniger Verkabelung und Ausrüstung nötig ist.

SD-Karte vorbereiten

Das Betriebssystem für den Raspberry Pi (Raspbian Jessie) muss auf eine SD-Karte gespielt werden. Hierfür benötigt ihr die ISO Datei des Betriebssystems Raspbian Jessie Image und ein paar kleine Helfer (MAC OSX): Pi Filler,Pi Copier und Pi Finder, diese findet ihr unter: ivanx.com/raspberrypi. Für Windows kann der Win32 Image Writer genutzt werden, zu finden unter: https://launchpad.net/win32-image-writer.

Ein externes Video hierzu:

Youtube Video von Bruce Fulton zur Erstellung einer WIN32 Disk Imager von Raspbian OS für den Raspberry Pi

Raspbian installieren unter MacOSX

Wie ihr nun vorgehen müsst, seht ihr in den nachfolgenden Videos. Zurücklegen und genießen. (Der Image-Clone-Prozess wird nur für MacOSX im Video gezeigt, im nächsten Kapitel geht es wieder für beide Systeme weiter.)

Video 1: Manfred Steger's Video Raspbian Image von der Herstellerseite herunterladen


Video 2: Manfred Steger's Video SD Karte formatieren und Raspbian installieren


Video 3: Manfred Steger's Video Raspberry Pi im Finder mit Pi Finder im Netzwerk identifizieren


Raspbian installieren unter Windows

Steckt jetzt die SD-Karte in das Kartenlesegerät, ladet das Programm Win32 Disk Imager herunter, installiert es anschließend mit der Standardkonfiguration und startet es. Die minimalistische Oberfläche von Disk Imager lässt kaum Fehlerquellen zu, ihr müsst lediglich auf das Ordner Symbol klicken und die heruntergeladene Raspbian Image Datei laden (in den Screenshots und den Videos wird OpenELEC installiert, nehmt anstelle die Raspbian Image).

Win32 Disk Imager Übersicht mit roter Markierung auf dem Öffnen-Symbol. Hier mit wird die Raspbian Image

Falls Euch die Datei nicht angezeigt wird, klickt neben dem Dateinamen auf die Dateiformate und wählt *.*, hiermit werden euch alle Dateitypen angezeigt.

\*.* auswählen im Dropdown der verfügbaren Dateiformate um alle Dateitypen anzuzeigen, falls die OpenELEC Image Datei nicht sichtbar ist.

Wählt die Image Datei aus und klickt auf öffnen. Neben dem Pfad der Image Datei müsst ihr noch den "Device", sprich das Speichermedium für den Clone Vorgang wählen. Passt hier sehr gut darauf auf, dass ihr den richtigen Laufwerksbuchstaben, und zwar den der Speicherkarte wählt. Seid hier doppelt vorsichtig! Eine Warnung taucht auf, die in etwa dem entspricht, was ich einen Satz vorher geschrieben habe. Bestätigt den Vorgang und wartet ab, bis der Vorgang beendet ist. Voilà!

Raspbian ist nun bootfähig auf der Speicherkarte und wartet darauf, in den Raspberry gesteckt zu werden. Falls euch Schritte unklar sind oder zu kompliziert, ein kleines Video zeigt die einzelnen Schritte nochmals genau. Hier erneut der der Hinweis, dass das Video die Installation von OpenELEC zeigt und nicht von Raspbian. Überspringt das Herunterladen der Image Datei und nehmt Eure geladene Raspbian Image.

Video: Download OpenELEC sowie Download und Installation Win32 Disk Imager unter Windows 8.1:

Manfred Steger's Video zu OpenELEC und Win32 Disk Imager Installation unter Windows 8.1

Video: Clone Vorgang von OpenELEC auf SD-Karte mit Win32 Disk Imager:

Manfred Steger's Video Clone OpenELEC auf SD Card via Win32 Disk Imager unter Windows 8.1

Sobald der Transfer der Daten auf die SD-Karte abgeschlossen ist, könnt Ihr die SD-Karte in den Raspberry stecken. Fahrt den Raspberry mit angeschlossenem Monitor und Tastatur hoch. Die Standard Nutzerdaten beim ersten Login heißen:

User: pi
Passwort: raspberry

(falls das Passwort falsch ist, raspberrz oder raspberrx schreiben, wegen nicht-deutschem Tastaturlayout).


Raspberry Pi konfigurieren

Mit dem Befehl:

sudo raspi-config

könnt ihr den Burschen genauer unter die Lupe nehmen und an ein paar interessanten Schrauben drehen! Das Video zeigt Euch wie. Im Video sieht man leider nicht welche Tasten ich drücke - also kurz was getan werden muss: Grundsätzlich navigiert ihr mit den Pfeiltasten der Tastatur, aus- oder abwählen mit der Leertaste und zu einem Navigationselement springen (OK oder Finish) funktioniert mit der Tab-Taste.

Wir wollen nun `ssh´ aktivien. Navigiert dazu zu den Interfacing options - SSH Enable. Bestätigt die Auswahl und verlasst das Menü und die raspi-config.

Video: Raspberry konfigurieren im Terminal

Manfred Steger's Video Clone OpenELEC auf SD Card via Win32 Disk Imager unter Windows 8.1


Raspbian updaten und upgraden

Ein Reboot macht vieles Gut - bevor wir fortfahren einmal das System neu starten. Hierzu folgenden Befehl in die Konsole hacken:

sudo reboot

Wartet nun etwa 1 Minute und logt Euch über die Konsole über SSH ein. Der Befehl hierfür lautet:

ssh pi@ip-adresse-des-pis

Wenn ihr die IP nicht nicht kennt, benutzt das Tool: Pi Finder, damit bekommt Ihr die IP heraus. Alternativ könnt ihr die IP auch direkt am Pi über die Tastatureingabe herausfinden. Gebt dazu:

ifconfig

in die Konsole ein und lest die IP (z.B. 192.168.1.37 nicht 127.0.0.0) ab. Nachdem erfolgreichen login benötigen wir nun die Befehle:

sudo apt-get update
sudo apt-get upgrade

Aber was machen diese Befehle eigentlich? Hierzu könnt ihr die Befehlstabelle zurate ziehen:

Die Liste enthält folgende Befehle, die mit apt-get aufgerufen werden können: update, upgrade, install, remove, autoremove, purge, source, build-drp, dist-upgrade, dselect-upgrade, clean, autoclean, check, markauto, unmarkauto, changelog, und download

Das Video zeigt Euch wie ihr die Befehle in die Konsole bekommt.

Manfred Steger's Video Raspberry Pi Raspbian mit dem Terminal update und upgrade

Pi Hole

Was ist eigentlich Pi Hole? Pi Hole ist ein Adblock Dienst, der Werbung von blacklisted Domains abwehrt, bevor diese überhaupt erst geladen werden. Daher wird auf den Endgeräten wie Handy, Laptop oder PC keine zusätzliche Software benötigt und deshalb plattformunabhängig funktioniert.

Pi Hole Installation

Sobald ihr via SSH auf dem Pi Zugriff habt, ist die Hälfte bereits geschafft. Zunächst müssen wir das Installationsskript auf den Pi herunterladen und ausführen:

sudo curl -sSL https://install.pi-hole.net | bash

Auf dem Bild ist die Terminal Applikation zu sehen und der Befehl

Mit dem Befehl curl ladet ihr das Skript herunter und mit sudo bash wird es mit super user Rechten gestartet.

Auf dem Bild ist die Terminal Applikation zu sehen. Mit dem vorherigen Befehl wurde das pi-hole config script gestartet und arbeiten Schritte automatisch ab.

Konfiguration

Das Skript übernimmt den schwierigsten Teil für uns und fragt an den wichtigen Stellen nach. Hier nun eine Schritt-für-Schritt Liste mit den empfohlenen Einstellungen:

  1. This installer will transform your device into a network-wide adblocker!
  2. Tab-Taste drücken um auf den OK-Button zu gelangen und mit Enter bestätigen.
  3. Anschließend erscheint ein Spenenaufruf, dem nach ausgiebigem Testen gerne nachgegangen werden sollte.
  4. Tab-Taste drücken um auf den OK-Button zu gelangen und mit Enter bestätigen.
  5. Hinweis: Static IP Needed: Pi-Hole agiert als Server, d.h der Kleine benötigt eine feste IP Adresse, damit er immer unter dieser erreichbar ist. Den Hinweis wieder mit Tab-Taste und Enter-Taste zur Kenntnis nehmen.
  6. Im nächsten Schritt muss ein DNS-Provider für die DNS-Auflösung – das Telefonbuch im Internet – gewählt werden. Hier habe ich mich für OpenDNS entschieden. Bestätigen und weiter. Eine Liste von weiteren top-paid und kostenlosen Provider gibt es hier bei keycdn.com.
  7. Im nächsten Schritt können zu überwachenden IP Protokolle (IPv4 und IPv6) gewählt werden. Ich habe mich für beide Protokolle entschieden. Mit der Leertaste können die Protokolle an- und abgewählt werden. Ein kleines Sternchen * zeigt die gewählte Option an. Mit den Pfeiltasten könnt ihr zwischen den beiden Auswahlmöglichkeiten hin und her wechseln. Weiter mit Tab und Enter.
  8. Hinweis: Static IP: Hier wird es spannend! Seht euch die angezeigten IP Adressen gut an. Die aktuelle IP Adresse des Pis wird nun als feste IP eingetragen. Pi-Hole steht nach der Bestätigung unter dieser Adresse zur Verfügung, in meinem Beispiel ist es die IP: 10.0.2.15:24 mit dem Gateway:10.0.2.2. Seid ihr mit der IP nicht zufrieden, müsst ihr im Router unter Netzwerkeinstellungen dem Pi eine statische IP zuordnen. Je nach Router ist der Prozess dafür unterschiedlich. Ich würde eine DuckDuckGo Suche mit den Begriffen gerätetyp geräten feste ip zuordnen. Ersetzt den Gerätetyp z.B. mit Fritzbox, Speedport, Easybox, o.ä.
  9. Hinweis: FYI: IP Conflict: An dieser Stelle wird vor einem IP-Adressen Konflikt gewarnt, wenn der DHCP des Routers die IP's automatisch vergibt. Es empfiehlt sich also bei einer Produktivumgebung, Pi-Hole eine feste IP im Router zu zuweisen. Falls nachtröglich gewünscht, bitte den Schritt 8 erneut durchlesen. Die aktuelle IP-Adresse des Pi's findet ihr mit dem Befehl ifconfig heraus. Gebt diesen Befehl im aktiven Terminal Fenster des Pi's oder via SSH ein. Unter eth0 könnt ihr die vergebenen IP ablesen.
  10. Im nächsten Schrit werdet ihr gefragt, ob ein web admin interface für Pi-Hole installiert werden soll. Ich administriere gerne über Web Oberflächen, also den Haken mit der Leertaste setzen und bestätigen.
  11. Nun werden wir gefragt, ob wir ein Logbuch für die Abfragen (queries) anlegen wollen. Ohne dieser Option werden keine vernünftigen Statistiken erstellt, da eben keine Statistiken gesammelt werden. Irgendwie logisch, oder? Ich habe mich dafür entschieden. Haken setzen und bestätigen.
  12. Das Skript führt nun die letzten Konfigurationsschritte selbstständig aus und nach Abschluß ist Pi-Hole betriebsbereit.

Bilderstrecke Pi-Hole config script:

Auf dem Bild ist die Terminal Applikation zu sehen, mit dem Hinweis, dass dieser Skript den Pi in einen netzwerkweiten Ad Blocker verwandelt.

Hinweis, das die Software OpenSource und damit kostenlos ist, aber auf Spenden angewiesen ist. Spendenadresse ist: pi-hole.net/donate

Hinweis, das Pi-Hole ein Server ist und über eine statische IP erreichbar sein muss, damit ein einwandfreier Betireb möglich ist.

Liste mit den voreingestellten Upstream DNS Providern.

Protokollauswahl, die für den Adblocker gelten sollen (Ipv4 und Ipv5).

Hier werden die vom Pi derzeit verwendete IP-Adresse und das vom Router genutzte Gateway angezeigt.

Hinweis, das bei eingeschaltenem DHCP trotzdem ein IP Adressen Konflikt entstehen kann, wenn die IP des Pis nicht im Router als statische IP hinterlegt wird.

Frage, ob ein web admin interface installiert werden soll.

Frage ob, zu statistischen Zwecken Abfragen gespeichert werden sollen.

Automatisches Skript bei den letzten Einstellungen.

Automatisches Skript hat die Konfiguration abgeschlossen. Pi-Hole ist nun einsatzbereit.

Dashboard

Nach der erfolgreichen Installation und Konfiguration seid ihr weitestgehend von Werbung befreit. Über das Dashboard erhaltet ihr einen Überblick, wie viele Suchanfragen (search querries) von Pi Hole durchgelassen und geblockt wurden.

Das Interface lässt sich über die statische Adresse des Pis im Browser aufrufen, in meinem Fall z.B.:

10.0.2.15/admin

Ich war nach dem ersten Tag bereits voll überzeugt. Ich habe meine üblich verdächtigen Seiten wie twitter, faz, spiegel, heise, und flickr besucht und siehe da, nach ein bis zwei Stunden des Servens wurden mehr als 60 Prozent der queries geblockt.

Seiten wie Spiegel online machen nun auch keine Probleme mehr, die Werbung wird einfach herausgeschnitten und das nervige Adblock Pop-Up erscheint auch nicht mehr. Leider ist das nicht bei allen Seiten so. Beim Querlesen ist es oftmals passiert, das die Seite überhaupt nicht geladen wurde. Falls ihr die Seite trotzdem (aber dann Blockierung) wollt, müsst ihr diese im admin interface auf die whitelist setzen.

Gravatar

Ich hoffe, euch hat das Tutorial gut gefallen? Wer individuelle Fragen hat – meldet euch!

Comments:

Kommentare unterstützt von Disqus.