GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Pi-Hole - Das DNS-Dreieck

Das moderne Internet ist ein ziemlich nerviger Ort. Ziemlich oft werden unschuldige Aktivitäten wie das Lesen von Texten oder das Ansehen von Videos durch Werbebotschaften unterbrochen, die besser als Anzeigen bekannt sind. Dies wäre kein Problem, wenn die Anzeigen relevant, gut getimt oder nicht aufdringlich wären, aber trotz großer „Fortschritte“ in künstlicher Intelligenz, Deep Learning und anderen Schlagworten sind sie keines davon. Dann haben wir Privatsphäre und so weiter.

Der Kampf zwischen Werbegebern und Werbeblockern tobt weiter. Es eskaliert auch langsam, da sich immer mehr Menschen gegen das aggressive In-Yer-Face-Werbemodell wenden. Wenn Sie eine Adblocking-Erweiterung in Ihrem Browser verwenden, sind Sie größtenteils fertig. Aber dann sind Sie der Gnade des Browser-Unternehmens und dessen, was sie zulassen, ausgeliefert, außerdem funktioniert dies nicht immer in jedem Browser und/oder Betriebssystem. Die Lösung besteht darin, Netzwerkanfragen an Ad-Server zu blockieren, und genau das macht Pi-Hole. Lassen Sie uns überprüfen.

Erste Schritte

Pi-Hole ist ein schwarzes Loch für Internet-Werbetreibende. Es handelt sich um eine Reihe von Softwaretools, die DNS-Anfragen an Domains blockieren, die als Adserving identifiziert wurden, sodass Ihre Browsersitzungen - oder jede mit dem Internet verbundene Aktivität für diese Angelegenheit - niemals Werbung enthalten. Dies ist eine Lösung auf Netzwerkebene und sollte daher für alle Szenarien funktionieren. Zu den Vorteilen gehören neben weniger Lärm auch ein geringeres Verkehrsaufkommen, mehr Privatsphäre und so weiter.

Das hat mich fasziniert und ich habe mich entschieden, Pi-Hole einzurichten. Nun ist Pi-Hole im Allgemeinen so konzipiert, dass es als Gerät verwendet werden kann. Wie der Name schon sagt, möchten Sie vielleicht ein billiges Raspberry Pi-Gerät verwenden, Pi-Hole darauf installieren und es dann als Ihren Netzwerkfilter verwenden. Darin liegt Problem Nummer eins – Sie benötigen ein gewisses Netzwerkverständnis, um Pi-Hole richtig konfigurieren zu können. Insgesamt umfasst eine vollständige Pi-Hole-Lösung:

  • Einrichtung eines Geräts, auf dem die Pi-Hole-Software ausgeführt wird – dies kann ein dediziertes System in Ihrem Netzwerk sein, oder Sie können Pi-Hole auf einem beliebigen Computer konfigurieren, auf dem Linux ausgeführt wird. Wenn Sie beispielsweise mehrere Linux-Laptops oder -Desktops haben, könnte jeder ein eigener Netzwerkfilter sein.
  • Der nächste Schritt besteht darin, Pi-Hole als DNS-Server zu konfigurieren. Im Wesentlichen verwenden wir Domainnamen anstelle von IP-Adressen. Menschen können sich Dinge wie dedoimedo.com oder example.com viel leichter merken als eine Zahlenfolge wie 1.2.3.4 oder ähnliches. Dies erfolgt über den DNS-Auflösungsdienst (Domain Name System), der die Übersetzung von menschenlesbaren Namen in Zahlen durchführt. Pi-Hole kann an dieser Stelle seine Filterregeln anwenden – wenn es eine Anfrage an eine Adresse identifiziert, die seiner Meinung nach einem der Internet-Werbetreibenden gehört, kann es diese Anfrage verwerfen, sodass solche Inhalte niemals bereitgestellt werden. Dies kann natürlich auch False Positives beinhalten.
  • Der letzte Schritt besteht darin, andere Systeme so zu konfigurieren, dass sie Pi-Hole als ihren DNS-Server verwenden – auch dies erfordert einige Netzwerkkenntnisse. Aber das gilt eigentlich für jedes Betriebssystem. Während die Pi-Hole-Appliance Linux sein muss, kann die DNS-Konfiguration jedes Computers geändert werden, um die Appliance zu verwenden, und von diesem Zeitpunkt an wird Pi-Hole der Mittelsmann sein und die Netzwerkanfragen filtern.

Sie müssen sich also daran erinnern, dass all dies Fachwissen erfordert. Sie können eine Lösung dieser Art nicht einfach per Plug-and-Play in Ihr Setup integrieren. Aber wenn du einen nerdigen Freund hast, kann er das vielleicht für dich tun. Lassen Sie uns fortfahren, wie einfach oder kompliziert das ist.

Installationsassistent

Ich habe das Skript heruntergeladen und ausgeführt. Sie erhalten einen textbasierten Assistenten, der relativ einfach zu befolgen ist. Ich habe dies auf KDE Neon ausgeführt, und es installierte nur Software aus den System-Repositories, abgesehen von seinen eigenen Komponenten, die von GitHub stammen.

Sie müssen Pi-Hole mitteilen, welches DNS verwendet werden soll. Sie können beispielsweise Ihren eigenen Router verwenden, was normalerweise Linux-Systeme verwenden, etwa 192.168.1.1 oder 192.168.2.1 oder ähnliches. Die Dinge sind etwas schwieriger zu verstehen, wenn systemd jetzt vorhanden ist, aber wir werden dorthin gelangen. Sie haben auch die Möglichkeit, einige der vorhandenen Internet-DNS (wie Google oder CloudFlare) zu verwenden. Ich beschloss, mit meinem benutzerdefinierten Setup zu beginnen.

Wie jeder Werbeblocker verwendet Pi-Hole Listen, um Werbung zu blockieren. Dies ist das stärkste und schwächste Glied der Lösung, denn wenn die Listen nicht aktuell, ungenau oder schlecht gemacht sind, können Lücken oder Fehlalarme entstehen, bei denen legitime Domains abgelehnt werden. Aber im Übrigen ist dies nicht anders als das Blockieren von Werbung über Browsererweiterungen, außer dass es etwas gründlicher und daher aggressiv ist. Die meisten Browsererweiterungen wenden Regeln nur auf Domänen von Drittanbietern an, sodass die Wahrscheinlichkeit, dass sich die erwartete Domäne nicht verhält, relativ gering ist. Pi-Hole soll narrensicher sein, und das bedeutet, dass es legitime Websites am Laden hindern könnte.

Web UI klingt nach einer netten Sache. Ich hatte es konfiguriert.

Und das war es. Angeblich war Pi-Hole installiert und konfiguriert, und ich konnte es jetzt verwenden.

Hat es funktioniert?

Nö. Ich hatte keine Internetverbindung - Fehler bei der Namensauflösung. Mein lokales System – neon – verwendete sich selbst als DNS (oder eher das installierte Pi-Hole, das den Router verwendete), aber es schien, dass Pi-Hole seinen Auflösungsdienst nicht bereitstellte.

Das Problem an dieser Stelle ist, dass Sie nicht online gehen können, da Sie kein Internet haben. Wenn Sie also nach Antworten suchen möchten, benötigen Sie einen anderen Computer. Ich habe versucht, Pi-Hole zu deinstallieren, und dies war eine einfache und saubere Lösung, und die Konnektivität wurde sofort wiederhergestellt. Ich habe es erneut installiert und die gleichen Ergebnisse erhalten.

Ich beschloss, einige Befehlszeilenprüfungen auszuprobieren. Pi-Hole wird mit mehreren Befehlen geliefert, mit denen Sie es aktivieren, deaktivieren, den Namensauflösungsdienst starten, den Status überprüfen und dergleichen können. Es stellte sich heraus, dass ich ein Problem mit etwas namens Pihole-FTL hatte. Na gut.

pihole enable
[i] Blockierung aktivieren
[✗] pihole-FTL:kein Prozess gefunden
[✓] Pi-hole aktiviert

Ich habe versucht, pihole-FTL auszuführen, aber es startet nicht. Nun, wie sich herausstellte, brauchte ich sudo. Wenn man sich die Online-Dokumentation ansieht, sind die Setup-Fehler nicht so gut dokumentiert. Meine erste Hürde in der Konfiguration habe ich also anscheinend überwunden.

pihole-FTL
FATAL:Öffnen des FTL-Logs (/var/log/pihole-FTL.log) fehlgeschlagen!
Stellen Sie sicher, dass es existiert und von Benutzer neon beschreibbar ist

sudo pihole-FTL
FTL gestartet!

Aber ich hatte immer noch kein Internet. Ich dachte, der DNS-Dienst sei immer noch ausgefallen, also habe ich versucht, ihn neu zu starten.

pihole restartdns
[✗] Fehler beim Starten von pihole-FTL.service:Einheit pihole-FTL.service nicht gefunden.

Aus dem Fehler ging hervor, dass es keine Unit-Datei zum Starten des FTL-Dienstes gab, oder es wurde gebohrt. Als ich online suchte, erfuhr ich, dass die Servicedatei geändert werden musste. Unter /etc/init.d/pihole-FTL musste ich nämlich eine Zeile bearbeiten, die FTL aufruft von:

su -s /bin/sh -c "/usr/bin/pihole-FTL" "$FTLUSER"

Nur zu dieser Zeile:

/usr/bin/pihole-FTL

Danach startete Pi-Hole ohne Fehler.

sudo pihole restartdns
[✓] Starten des DNS-Dienstes

Pi-Hole hat keine Werbung blockiert

Ich hatte Konnektivität, aber die Anzeigen waren da. Pi-Hole hat keine Filterung vorgenommen. Also beschloss ich, auf die Web-Benutzeroberfläche zuzugreifen und zu sehen, ob ich dort Änderungen und Optimierungen vornehmen könnte. Aber als ich versuchte, zur Pi-Hole-Adresse zu gehen, hörte kein Webserver zu. Die http://ip-address/admin und http://pi-hole/admin haben nichts bewirkt.

Ich habe einige weitere Tests auf der Befehlszeile durchgeführt, und wie sich herausstellte, lief der lighttpd-Dienst nicht, was erklären würde, warum ich keine Web-Benutzeroberfläche hatte. Es war also an der Zeit, etwas mehr Zauberei zu betreiben, und auch hier war die Dokumentation zu diesem Thema etwas spärlich. Ich habe mehr Fehler gefunden:

sudo systemctl restart lighttpd.service
Der Job für lighttpd.service ist fehlgeschlagen, da der Steuerungsprozess mit einem Fehlercode beendet wurde. Siehe "systemctl status lighttpd.service" und "journalctl -xe" für Details.

Dieses Mal konnte ich jedoch, da ich das Internet hatte, online suchen und fand bald den Grund für das Problem heraus. Der folgende Thread hat mich zur richtigen Antwort geführt - obwohl in den Fehlerprotokollen NICHTS steht, was auf die Lösung hinweisen würde. Und hier möchte ich noch einmal auf die unentzifferbare Komplexität von systemd hinweisen. Ich musste in einem Binärlog nach Informationen suchen, und selbst dann waren die Informationen nutzlos.

Mir hat tatsächlich ein Paket gefehlt - gamin - warum es nicht sofort als Abhängigkeit installiert wird, keine Ahnung. Aber sobald ich dies installiert hatte, startete lighttpd problemlos und die Web-Benutzeroberfläche war da, damit ich sie erkunden konnte.

sudo apt-get install gamin

systemctl status lighttpd.service
● lighttpd.service - Lighttpd-Daemon
Geladen:geladen (/lib/systemd/system/lighttpd.service; aktiviert; Herstellervoreinstellung:aktiviert)
Aktiv:aktiv ( läuft) seit Do 09.05.2019 15:34:03 MESZ; vor 2s
Prozess:19060 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
Haupt-PID:19069 (lighthttpd )
Tasks:6 (Limit:4915)
CGroup:/system.slice/lighttpd.service
├─19069 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd .conf
├─19078 /usr/bin/php-cgi
├─19079 /usr/bin/php-cgi
├─19080 /usr/bin/php-cgi
├─19081 /usr/bin/php-cgi
└─19082 /usr/bin/php-cgi

Login und Passwort der Web-Benutzeroberfläche

Aber ich hatte immer noch keine Anzeigen blockiert. Also versuchte ich mich anzumelden und stellte fest, dass ich ein anderes Problem hatte – ich konnte nicht auf die Admin-Seite zugreifen, wo ich alle Protokolle und Details überprüfen und Änderungen vornehmen konnte. Als ich erneut online suchte, fand ich heraus, dass ich das Standardpasswort über die Befehlszeile zurücksetzen musste:

pihole -a -p

Ich hatte dann Zugriff auf die Web-UI-Einstellungen. Es ist eine wirklich schöne und leistungsstarke Schnittstelle. Sie erhalten viele Optionen, einschließlich der Möglichkeit, Pi-Hole vorübergehend zu stoppen. Wenn Sie also auf Probleme stoßen, können Sie, anstatt alles zu ändern, nur die Filterung anhalten. Sie müssen nicht mit den DNS-Einstellungen herumspielen.

Blocklisten füllen

Und als ich durch die Benutzeroberfläche ging, stellte ich fest, dass meine Sperrlisten alle leer waren. Ja, das geht aus der Hauptseite hervor, aber Sie müssen wissen, wonach Sie suchen. Warum fordert Pi-Hole Sie nicht auf, die Listen zu aktualisieren oder dies tatsächlich als Teil der Einrichtung zu tun? Ich habe ein manuelles Update über die Befehlszeile ausgeführt und die Listen wurden generiert.

pihole -g -f

In Ordnung, hat es funktioniert?

Ja, jetzt hat es endlich geklappt! Pi-Hole erfüllte nun seine DNS-Pflicht und filterte auch den Datenverkehr. Ich muss sagen, es war effektiv und nicht aufdringlich. Und wenn ich mich nicht täusche, gab es sogar einen leichten Performance-Schub auf der Netzwerkseite, da das System weniger Anfragen verarbeiten und weniger Inhalte ausliefern musste. Tatsächlich wurden selbst bei unschuldigem Browsen 20 % aller Abfragen blockiert. Das klingt nach viel. Aber es beleuchtet auch die aktuelle Situation des modernen Internets. Die Tatsache, dass sich über 100.000 Domains auf der Sperrliste befinden, erzählt ebenfalls ihren Teil dieser traurigen Geschichte. Es erklärt auch die sanfte Latenzverbesserung.

Schlussfolgerung

Am Ende des Tages hatte ich Pi-Hole am Laufen, aber das Setup war alles andere als trivial. Es gab vier oder fünf Hauptprobleme, und keines davon hätte passieren dürfen, weil der Installationsassistent separate Überprüfungen hätte durchlaufen können, um sicherzustellen, dass alles funktioniert. Ein Teil des erstmaligen Durchlaufs könnte die Dienstprüfung sein, und wenn es dort Probleme gibt, eine Art Selbstdiagnose, um sicherzustellen, dass FTL betriebsbereit ist. Gleiches gilt für den Webservice. Dann gibt es das Zurücksetzen des Passworts und das Aktualisieren der Liste. All dies würde die Erfahrung viel rationalisierter machen.

Als Produkt ist Pi-Hole ein sehr schönes und leistungsstarkes Werkzeug. Es macht seine Arbeit sehr gut, es ist schnell, effektiv und robust, und die Web-Benutzeroberfläche ist schön gestaltet. Sie gewinnen auch etwas auf der Verkehrsseite, da weniger Inhalte bereitgestellt und weniger Abfragen gelöst werden müssen, wodurch die Leistung für die wichtigen Dinge verbessert wird. Die Einrichtung ist nicht trivial, aber machbar, und Sie haben viel Flexibilität bei der Verkabelung Ihres Netzwerks. Sie könnten Pi-Hole als eigenständiges System verwenden oder alle verschiedenen Geräte in Ihrem Zuhause bedienen. Alles in allem ist dies die Doomsday-Waffe für den Fall, dass das Internet gegen Sie abtrünnig wird. Es lohnt sich, es zu testen, aber denken Sie an die zweite Regel der Thermodynamik. Sie können nicht gleichzeitig trivial und komplex sein.


Linux
  1. Eine Einführung in den vi-Editor

  2. So installieren Sie den ungebundenen DNS-Resolver unter Ubuntu 22.04

  3. Starten Sie in der Rackspace Cloud

  4. Welche Arten von DNS-Servern gibt es?

  5. Was ist das Reverse-DNS-Befehlszeilendienstprogramm?

EasyOS 2.3 - Der moderne Prometheus-Tux

Cockpit - Highway zur Admin-Zone

Und die beste Distribution des Jahres 2019 ist ...

CentOS 8 Stream - die Streampunk-Distribution

Cairo Dock Review - Das Dock steckt im Detail

Backup des Home-Verzeichnisses - Die schnelle und schmutzige Anleitung