Zugriff auf Pi-hole blockieren

Pi-hole verhindert die DNS-Auflösung. Der Zugriff auf die IP-Adresse selbst bleibt möglich. Entsprechend ist in der Regel auch der Zugriff auf die Pi-hole-Admin Seite möglich.

Diesen Zugriff möchte man nun mitunter auch gerne verhindern.

Ziel ist es, den Zugriff diverser IP-Adressen auf Pi-hole zu verhindern oder ggf. umgekehrt den Zugriff nur von einer IP-Adresse zu erlauben.

In meinem Fall läuft Pi-hole läuft in einem Docker-Container.

Pi-hole selbst bietet keine Möglichkeit den Zugriff auf die Admin-Oberfläche zu kontrollieren. Eine Möglichkeit ist die Einschränkung über den Webserver selbst. Der Docker Container von Pi-hole nutzt standardmäßig Lighttpd. Ein Eintrag in die Konfigurationsdatei lighttpd.conf genügt schon.

Bearbeitung der lighttpd.conf im Docker Container

Zum Testen der Lösung, kann die lighttp.conf direkt im Docker Container bearbeitet werden. Der Nachteil dieser Lösung sei direkt vorgweg gesagt: nach einem Container Update oder einer Neuerstellung ist diese Änderung wieder verschwunden. Zum schnellen Ausprobieren oder wenn man damit leben kann nach jedem Update die Anpassung zu wiederholen genügt es auf jeden Fall.

Hierzu muss man sich aufs Terminal des Docker Containers verbinden. Wenn ein Tool wie Portainer läuft, ist das sehr simpel, ansonsten über die Konsole mit docker exec.

Text-Editor installieren

Zur Bearbeitung der Datei muss zunächst ein Editor installiert werden. Ich installiere dafür nano.

$ apt-get update
$ apt-get install nano
Zugriff blockieren

Um nun zum Beispiel den Zugriff von einer IP-Adresse zu blockieren, den folgenden Eintrag am Ende der Datei /etc/lighttpd/lighttpd.conf ergänzen:

$HTTP["remoteip"] == "192.168.2.81" {
       url.access-deny = ( "" )
}

Hier gibt es ein paar Beispiele, wie mehrere IP-Adressen geblockt oder explizit erlaubt werden.

Danach den Container neustarten und der Zugriff ist nicht mehr möglich:

Tipp an dieser Stelle: der entsprechende Client muss immer dieselbe IP-Adresse haben. Also ggf. in der FRITZ!Box (oder den DHCP-Einstellungen) dem Client immer dieselbe IP-Adresse zuweisen.

Mapping der lighttpd.conf

Es könnte nun eine Idee sein, einfach die Konfigurationsdatei zu mappen. Ich bin mir noch nicht ganz sicher, ob das ok ist oder nicht. Ggf. gibt es ja mal notwendige Änderungen in zukünftigen Container Updates. Jedoch finde ich aktuell keine Pi-hole spezifischen Anpassungen

Die Konfigurationsdatei habe ich dafür aus dem Docker Container kopiert und mounte sie entsprechend:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert