Eigene Fehlerseite für den PiHole erstellen

Last Updated on: 15th Dezember 2022, 02:47 pm

Wer einen RaspberryPi mit PiHole im eigenen Netzwerk einsetzt, möchte vielleicht nicht nur die Standardmeldung des Browsers sehen, dass die Seite nicht angezeigt werden kann. Hilfreich ist hier eine eigene Fehlerseite auf dem Pi, die Auskunft darüber gibt, dass eine bestimmte Seite gesperrt ist. Daher hier ein kurzes Tutorial, wie man das mit wenigen Handgriffen selbst einrichten kann.

**********UPDATE 15.12.2022 *****************

Es sei an dieser Stelle darauf hingewiesen, dass die eigene Blockseite nicht durchgängig funktioniert. Zum Einen liegt dies ggf daran, dass die Domain ggf per HTTPS aufgerufen wird und es durch den PiHole ggf zu einer Durchbrechung der Verschlüsselung kommen würde (was nicht einfach so geht) und bei HTTP nicht der Fall ist.

Zum Anderen muss eventuell bei Verwendung einer FritzBox der DNS-Rebindschutz auf den PiHole (z.B. pihole.fritz.box) gestellt werden. Natürlich muss der Pi dabei auch als DNS Server im eigenen Netz eingebunden sein, sonst funktioniert die ganze Blocking-Strategie nicht.

Bei Änderung des BLOCKINGMODE kann es dazu kommen, dass z.B. IP-V6-Adressen nicht korrekt geblockt werden. Dies alles zu erläutern, würde jedoch den Rahmen des Artikels sprengen. Wer dies vertiefen möchte: Google is your friend 😉 Auf der ug. Doku-Seite ist dazu ebenfalls eine Erläuterung.

***********************************************

FTL Konfiguration anpassen

Wir arbeiten auf der Linux-Konsole. Entsprechend einen ssh-Verbindung schaffen, um arbeiten zu können. Zuerst editieren wir die Konfiguration des FTL (FTL [Faster-Than-Light] – ständig mitlaufendes Programm, dass die Daten des DNS Servers auswertet und all die detaillierten Details und Statistiken aufbereitet):

sudo nano /etc/pihole/pihole-FTL.conf

RATE_LIMIT=2000/60
PRIVACYLEVEL=0
BLOCKINGMODE=IP

Die Einträge sollten etwa wie oben dargestellt aussehen. RATE_LIMIT ist dabei die Anzahl der Anfragen, die ein Netzwerkgerät pro Minute stellen darf. Es gibt Geräte, die sich häufig updaten und dann vom PI wegen zu häufigem Zugriff geblockt werden. Wenn sich das Problem im Netzwerk nicht anders lösen lässt, kann hier die Rate erhöht werden, bis es zu keinem Fehler mehr kommt. Das ist zwar nicht optimal, weil eigentlich ein anderes Problem besteht, aber es hilft ggf für den Moment.

BLOCKINGMODE setzt den Wert auf die IP Adresse des Pi. Dies ist wichtig, damit die Fehlerseite auch von unserem PI angezeigt wird. IP ist eigentlich der default-Wert. Trotzdem setze ich ihn hier, damit er eindeutig festgelegt ist. Wer sich über BLOCKINGMODE weiter informieren möchte, findet dazu die Doku-Seite des PiHole.

Webserver LIGHTTPD konfigurieren

Zunächst passen wir die Konfiguration des Webservers lighttpd an und basteln dann eine eigene Fehlerseite, die wir anschließend anzeigen lassen.

.
sudo nano /etc/lighttpd/lighttpd.conf

.
server.document-root        = "/var/www/html"
server.error-handler-404    = "/pihole/404.html"
.
.
.

Zur Erläuterung: server.document-root ist hier auf den default-Wert eingestellt. In der original Konfiguration ist die zweite Zeile server.error-handler-404 auf „/pihole/index.php“ eingestellt. Da wir nun ein eigenes Dokument nutzen wollen, habe ich die Seite mit dem Namen „404.html“ gebastelt und diese dort als gewünschtes Dokument hinterlegt (siehe unten).

Damit der Zugriff auf die Fehlerdatei funktioniert, muss diese auch existieren. Entsprechend legen wir diese im Arbeitsverzeichnis des Servers auch an:


sudo nano /var/www/html/pihole/404.html


<!DOCTYPE html>
<html>
<body>
<center>
<article>
  <header>
    <img style="width: 250px;" src="https://upload.wikimedia.org/wikipedia/commons/0/00/Pi-hole_Logo.png">
    <h1>Website gesperrt!</h1>
    <p>Diese Website wurde aus Sicherhheitsgründen gesperrt.</p>
    <p>Bitte wenden Sie sich an den <a href="mailto:info@deinedomain.de">Administrator</a>, wenn diese dringend benötigt wird.
  </header>
</article>
</center>
</body>
</html>

Damit die Änderungen auch übernommen werden, sollte der Webserver neu gestartet werden:

sudo /etc/init.d/lighttpd restart

Wer auf Nummer sicher gehen will, kann auch den ganzen PiHole neu starten. Entweder über die Web-GUI oder über die Kommandozeile:

sudo reboot now

Das war es dann auch schon. Wer jetzt eine Domain auf der Blocklist direkt aufruft, sollte die Fehlerseite des PI sehen. Gleiches passiert übrigens nun auch auf der Startseite des Pi, wenn man nur die „Vorschaltseite“ über die IP des PiHole aufruft, die vor dem Admin-Panel liegt:

Eigene Fehlerseite PiHole

Schreibe einen Kommentar