Die Veröffentlichung des Pi-hole 6-Projekts wurde vorgestellt, das ein System zur zentralen Blockierung von Werbung im lokalen Netzwerk entwickelt, wodurch keine Werbeblocker in Browsern und auf Endgeräten des Nutzers installiert werden müssen. Das angebotene Schema ist aktuell, um Werbung auf Geräten in Heimnetzwerken zu bekämpfen, beispielsweise auf Smart-TVs und Media-Centern, sowie zur Blockierung von Werbung in mobilen Anwendungen auf Smartphones. Die Blockierung in Pi-hole wird auf DNS-Ebene umgesetzt – das System wendet eine schwarze Liste von Domains an, die zur Anzeige von Werbung verwendet werden, und leitet auf DNS-Ebene die Anfragen an diese Domains an die Adresse 0.0.0.0 um. Die Ergebnisse des Projekts werden unter der EUPL 1.2 (European Union Public License) Lizenz verbreitet.
Für die Installation von Pi-hole genügt es, ein Shell-Skript auszuführen, das das Herunterladen und die Installation der erforderlichen Komponenten automatisiert. Die Installation wird in Debian, Ubuntu, Fedora, Raspberry Pi OS (Raspbian), Armbian und CentOS Stream für die Architekturen x86_64, i386, ARM64, ARMv6, ARMv7 und RISC-V unterstützt. Es wird vorausgesetzt, dass Pi-hole auf Platinen wie Raspberry Pi installiert werden kann (für den Betrieb ist die Leistung von Raspberry Pi Zero ausreichend). Zusätzlich wird ein vorgefertigtes Container-Image angeboten, das eine einsatzbereite Umgebung auf Basis von Pi-hole enthält.
Pi-hole startet DHCP- und DNS-Server, die auf einer modifizierten Version von dnsmasq basieren. Der DHCP-Server wird verwendet, um die Einstellungen des DNS-Servers, der für die Blockierung zuständig ist, automatisch zu übermitteln. Zur Verwaltung des DNS-Servers und zur Sammlung von Statistiken wird der Hintergrundprozess FTLDNS (pihole-FTL) eingesetzt. Die Verwaltung von FTLDNS kann über die Web-API, Telnet oder das Kommandozeilen-Tool pihole erfolgen. FTLDNS sammelt Statistiken über die Anzahl der blockierten und angeforderten DNS-Anfragen sowie über blockierte Domains von Werbenetzwerken, zwischengespeicherte und umgeleitete DNS-Anfragen sowie die Anzahl der Clients. DomainsDie Statistiken werden mithilfe von SQLite gespeichert.
Über die von FTLDNS bereitgestellte API wurde ein Web-Interface zur Überwachung und Verwaltung von Sperren implementiert, das auf dem Code von AdminLTE basiert. Das Web-Interface ist für die Nutzung sowohl auf Computern mit großen Bildschirmen als auch auf mobilen Geräten optimiert. Es unterstützt den Zugriff auf detaillierte Protokolle, zusammenfassende Daten (z. B. die beliebtesten Clients und Domains), anschauliche Visualisierungen in Grafiken und Diagrammen, die Auswahl von Verlaufsdaten für bestimmte Zeiträume, die Filterung von Protokollen, die Führung separater weißer und schwarzer Listen, die Sperrung über reguläre Ausdrücke sowie die Verwaltung von DHCP- und DNS-Einstellungen.

In der neuen Version:
- Im Hintergrundprozess pihole-FTL ist ein HTTP-Server integriert und es wurde eine REST API implementiert. Die eingebaute Implementierung des HTTP-Servers basiert auf der Bibliothek CivetWeb. Zuvor wurde für die Durchführung des Web-Interfaces ein HTTP-Server lighttpd verwendet. Die Server-Handler des Web-Interfaces wurden von PHP nach Lua umgeschrieben (CivetWeb bietet eingebaute Unterstützung für Lua, was die Abhängigkeit von PHP eliminiert hat).
- Die Möglichkeiten zur Filterung von Domains wurden erweitert und die Unterstützung für die Anbindung externer weißer Listen hinzugefügt, die festlegen, welche Domains unabhängig von der Aufnahme in schwarze Listen zugelassen werden.
- Die verstreuten Konfigurationsdateien wurden in einer Datei im toml-Format ( /etc/pihole/pihole.toml) zusammengeführt. Zur Änderung der Konfiguration kann die toml-Datei direkt bearbeitet werden, der Befehl „pihole-FTL —config“ verwendet werden, Parameter können über Umgebungsvariablen überschrieben, die API angesprochen oder die Einstellungen über das Web-Interface geändert werden.
- Das Design des Web-Interfaces wurde komplett geändert, wobei zwischen einem normalen und einem Expertenmodus unterschieden wird.
- Die Unterstützung für HTTPS wurde hinzugefügt, mit der Möglichkeit, sowohl eigene TLS-Zertifikat, als auch automatisch generierte Zertifikate bereitzustellen.
- Das Container-Image für Docker wurde auf die Verwendung von Alpine Linux anstelle von Debian umgestellt, was die Größe deutlich reduziert hat.
Quelle: opennet.ru
