Tot nu toe is de Pi-Hole software niet afgeschermd door een paswoord. In deze blog leg ik uit hoe je dit alsnog voor elkaar krijgt.

Zoals ik in een vorige blog heb beschreven gebruik ik een Raspberry Pi met daarop Pi-Hole software om advertenties en malware te blokken. Het voordeel van deze manier is, dat ik dit dan op 1 centrale plaats instel voor mijn gehele netwerk aan apparaten

Pi-Hole heeft ook een web-based configuratie scherm dat je typisch niet zomaar van buitenaf beschikbaar wilt stellen daar dan de gehele wereld je browse geschiedenis kan inzien. Verder kun je tegenwoordig de Pi-Hole functionaliteit in het configuratie-scherm (tijdelijk) uit/inschakelen.

Aangezien Pi-Hole met de huidige versie (2.9.5) nog geen paswoord protectie heeft voor zijn configuratie-scherm is het niet verstandig om een port forward in te stellen op je router naar het IP-adres van je Raspberry Pi met Pi-Hole om bovenstaande redenen.

Soms is het echter wel handig dat je vanaf buitenaf bij het configuratie-scherm van Pi-Hole kunt. Nu kun je erg eenvoudig een paswoord protectie inschakelen met de Lighttpd webserver software waarvan Pi-Hole gebruikt maakt. Volg hiervoor de onderstaande stappen.

Creëer een verborgen .htpasswd directory:

sudo mkdir /etc/lighttpd/.htpasswd

Creëer nu een script (bijvoorbeeld ‘hash.sh’) waarmee we het paswoord van de gebruiken gaan hashen. Zet hierin de volgende inhoud:

#!/bin/sh
user=$1
realm=$2
pass=$3
hash=`echo -n "$user:$realm:$pass" | md5sum | cut -b -32`
echo "$user:$realm:$hash"

Make deze file ‘hash.sh’ uitvoerbaar met het volgende commando:

chmod 755 ./hash.sh

Voer vervolgens dit script uit met als argumenten je gebruikers-naam, realm en een paswoord

./hash.sh 'username' 'myrealm' 'password'

Dit zal de volgende output geven:

username:myrealm:<lange_string_met_nummers_en_letters>

Creëer nu een paswoord-file and copieer de inhoud van hierboven hierin:

sudo vi /etc/lighttpd/.htpasswd/lighttpd-htdigest.user

Voeg vervolgens de volgende regels toe aan de file ‘/etc/lighttpd/lighttpd.conf’ (vervang myrealm met jouw gekozen realm).

auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/.htpasswd/lighttpd-htdigest.user"
auth.require = ( "/admin/" =>
   (
     "method" => "digest",
     "realm" => "myrealm",
     "require" => "valid-user"
   ),
)

Start tenslotte de Lighttpd service opnieuw:

sudo service lighttpd restart

Als je nu met je webbrowser naar het IP-adres van je Raspberry Pi met Pi-Hole erop browsed wordt er eerst om een Username en Password gevraagd.




Zeer waarschijnlijk zal deze mogelijkheid binnenkort standaard worden ingebouwd in Pi-Hole, maar op dit moment kun je bovenstaande methode gebruiken.