Heutzutage wird man permanent mit Werbung bombardiert. Seien es kostenlose Apps auf den Smartphones oder störende PopUps auf Webseiten, die Werbung ist meist ungünstig platziert und blockiert den eigentlichen Content. Mit einem Adblocker im Browser ist es hier schon lange nicht mehr getan, daher sind andere Maßnahmen notwendig um ungestört surfen zu können. Mit PiHole gibt es hierfür einen zuverlässigen Lösungsweg, welcher zugleich noch kostengünstig realisiert werden kann.
In dieser kleinen Anleitung erkläre ich, wie man PiHole auf einer Synology im Docker installiert und in der Fritzbox einrichtet. Natürlich kann die Anleitung auch übergreifend auf einem anderen Dockersystem angewandt werden. Selbst eine eigenständige Installation auf einem Raspberry ist ohne weiteres möglich. Anleitungen dazu findet man schnell und einfach über Google.
Erwähnenswert ist jedoch vor der Installation, dass IPv6 im Router abgeschaltet wird, da die Anfragen an den PiHole bei mir lediglich mit IPv4 funktionierten.
Was ist PiHole?
PiHole ist ein Linuxbasierter DNS-Server. Je nach Einsatzmöglichkeit sind auch DHCP-Funktionen möglich, auf diese möchte ich hier jedoch nicht eingehen. Ein DNS-Server hat die Aufgabe jede namensbasierte Anfrage in eine IP-Adresse umzuwandeln um den Zugriff zu ermöglichen. Dadurch besteht auch die Möglichkeit Domains auf eine Blacklist zu setzen, sodass diese Anfragen garnicht erst gestellt werden. Geblockte Adressen werden dafür in eine für den Client unbrauchbare IP umgewandelt und die Anfrage verläuft ins leere.
PiHole ist für kleine Netzwerke konzipiert. Für Firmennetzwerke sollte lieber auf professionelle Lösungen zurück gegriffen werden. Des weiteren ist in PiHole keine Software vorhanden, welche die Daten inhaltlich prüft. Werbung, welche nicht auf der Blockliste steht, kann daher trotzdem abgerufen werden. Eine gut gepflegte Blockliste hält einem jedoch vieles vom Hals.
Ein großer Vorteil dieses Systems ist, dass nach einmaliger Einrichtung jedes Gerät im Netzwerk nahezu Werbefrei ist. Somit hat man ein zentrales System, was bei guter Pflege ordentliche Dienste leistet.
Leistungsfähigkeit
Selbst unter großer Last, verringerten sich bei mir die Zugriffszeiten ins Internet nur geringfügig. Jedoch verwende ich in meinem Setup eine leistungsfähige Netzwerkkarte. Zur Veränderung der Zugriffszeiten über einen Raspberry kann ich daher keine Aussage treffen. Im Internet liest man jedoch sehr oft, dass das System selbst über den Raspberry keine Nennenswerten einbußen mit sich bringt.
Einrichtung des Dockers
Als Dockerimage verwende ich „pihole/pihole“, dies ist das Originalimage der Entwickler. Nach dem Herunterladen über das Interface, kann direkt mit den Startvorbereitungen begonnen werden. Hierzu wählst du im Bereich „Abbild“ das Image aus und klickst oben auf „Starten“. Es öffnet sich ein Fenster für alle notwendigen Einstellungen. Zuerst vergibst du einen Namen für den Container, damit du diesen unter den laufenden Containern wiederfinden kannst. Anschließend klickst du auf „Erweiterte Einstellungen“, denn für PiHole ist es notwendig die Ports richtig zu konfigurieren. Es öffnet sich ein neues Fenster, wechsle in diesem auf den Reiter „Ports“. Der PiHole-Container benötigt vier Ports zur Weiterleitung:
- Container (TCP): 80 -> Weiterleitung: Beliebiger freier Port (dies ist die Weboberfläche ohne Verschlüsselung)
- Container (TCP): 443 -> Weiterleitung: Beliebiger freier Port (dies ist die Weboberfläche mit Verschlüsselung)
- Container (TCP): 50 -> Weiterleitung: 50 (TCP-Port für den DNS Zugriff)
- Container (UDP): 50 -> Weiterleitung: 50 (UDP-Port für den DNS Zugriff)
Hast du diese Ports eingerichtet, kannst du die erweiterten Einstellungen wieder schließen und den Container starten.
Verwaltung
Nach dem ersten Start des Containers, musst du nun das Passwort der Weboberfläche aus den Logs suchen. Hierzu klickst du im Bereich „Aktiv“ auf den Container und anschließend oben auf „Details“. Es öffnet sich ein Fenster mit den aktuellen Runtime-Informationen, hier klickst du auf „Logs“. Scrolle nun durch den Text und suche das Passwort, denn das wird direkt nach dem Start in die Log geschrieben. Hast du das Passwort gefunden, solltest du dir dieses notieren.
Als nächstes öffnest du die Weboberfläche, in dem du in deinen Browser die Adresse des Servers und deinen ausgewählten Port für die Weboberfläche eingibst, gefolgt von „/admin/“, Beispiel: 192.0.0.8:80/admin/
Im Auslieferungszustand kommt PiHole schon mit sehr gut gepflegten Blacklists. Je nach Wunsch kannst du dir jedoch auch noch einige Hinzufügen. Die Auswahl an Listen ist groß und über Google bekommt hierzu jede menge Ergebnisse. Eine weitere wichtige Funktion ist die Whitelist. Denn manche Adressen werden im Auslieferungszustand zwar geblockt, werden aber dennoch benötigt. Über die Whitelist kannst du diese wieder für den Zugriff freigeben.
Fritzbox einrichten
In der Fritzbox habe ich den PiHole als DNS-Server für Anfragen ins Internet konfiguriert. Dies gewährleistet, dass interne Namensanfragen im Heimnetzwerk noch durch die Fritzbox selbst bearbeitet werden und somit an die richtige Adresse gelangen. Die Einrichtung ist schnell und einfach erledigt. Gehe dazu in den Bereich „Internet“ auf „Zugangsdaten“. Dort schaltest du als erstes den IPv6 Dienst unter „IPv6“ ab.
Wechsle nun in den Reiter „DNS“ und stelle dort auf „Manuelle Konfiguration“ um. Die Fritzbox fordert dich nun auf, zwei Server als Ziel anzugeben. Als Hauptserver gibst du nun die interne IP deines PiHole-Servers ein. Als alternativen Server empfehle ich dir einen externen Dienst der immer verfügbar ist: Google! Der DNS-Server von Google ist über die Adresse „8.8.8.8“ erreichbar. Ein Alternativserver ist eine Pflichtangabe, denn sollte der PiHole mal Probleme machen, so ist das Internet trotzdem nutzbar.
Über das Webinterface von PiHole solltest du nun bereits Anfragen sehen. Dort werden Prozentual auch geblockte Anfragen und die zugehörigen Adressen dargestellt.
Ich wünsche dir viel Spaß mit deinem Werbeblocker für das gesamte Heimnetz! 🙂