Met Pi-hole kun je weer veilig de digitale snelweg op
Ben je helemaal klaar met de advertenties op alle websites en voel je je ongemakkelijk door sluwe phishing-sites? Probeer dan een tool zoals Pi-hole, waarmee je al deze ellende buiten je thuisnetwerk houdt. Het vergt enig installatiewerk, maar het is wel geheel gratis.
In dit artikel leren we je hoe je Pi-hole kunt installeren en instellen, zodat je online geen last meer hebt van advertenties en websites die mogelijk jouw gegevens willen stelen.
- WSL of Docker installeren
- IP-adres en DNS-server configureren
- Blacklists maken
Ook interessant: Mijn data zijn gelekt, wat nu?
Pi-hole is een DNS-filter (Domain Name Service) dat webadressen filtert voordat ze worden geladen in je browser. Het maakt gebruik van blokkeerlijsten, ook wel blacklists (of adlists) genoemd, om te controleren of het domein van een webadres op de lijst staat. Als dat het geval is, wordt het DNS-verzoek geannuleerd en zie je de webpagina of advertentie niet. Dit zorgt ervoor dat ongewenste inhoud wordt geblokkeerd en webpagina’s sneller laden, zonder die overtollige elementen.
Hoewel Pi-hole oorspronkelijk bedoeld was voor installatie op een Raspberry Pi, is het ook mogelijk om het op andere systemen en apparaten te installeren, zoals Linux, macOS, Windows, als virtuele machine of op een NAS.
In deze workshop richten we ons op de installatie van Pi-hole op een Windows-machine. We bekijken twee opties binnen Windows: installatie via WSL en met behulp van Docker. We laten je ook zien hoe je Pi-hole kunt configureren voor je volledige thuisnetwerk. We raden we je wel aan deze installatie eerst uit te proberen op een testtoestel of (beter nog) hiervoor een extra toestel te gebruiken.
WSL-script
Voor de installatie van Pi-hole op WSL (Windows Subsysteem voor Linux) gaan we ervan uit dat je een bijgewerkte versie van Windows 10 of 11 hebt. Om WSL te activeren, hoef je alleen de Opdrachtprompt als administrator te openen en het commando wsl --install uit te voeren. Na afloop moet je je machine herstarten. Op deze manier wordt standaard ook Ubuntu geïnstalleerd.
Nu is het tijd om Pi-hole binnen deze Linux-omgeving te installeren. Je kunt dit handmatig doen, maar we maken het onszelf gemakkelijk door een kant-en-klaar installatiescript te gebruiken. We hebben dit succesvol uitgevoerd op een wat oudere computer met Windows 10 versie 22H2.
Je vindt het script op GitHub. Klik op de groene knop Code en kies Download ZIP om het ziparchief te downloaden. Pak het zipbestand uit naar een lege map. In die map vind je het bestand PH4WSL1.cmd. Dit is het batchscript dat alle benodigde onderdelen zal activeren, downloaden, installeren en configureren. Je kunt het bestand eerst bekijken met een eenvoudige teksteditor zoals Kladblok. Om het script uit te voeren, klik je met de rechtermuisknop op het bestand en kies je Als administrator uitvoeren. Mogelijk moet je tijdelijk je antivirustool uitschakelen (zoals Windows Defender), omdat dit de installatie kan vertragen of in het ergste geval blokkeren.
WSL-installatie
Druk direct na het uitvoeren van het script op Enter om de standaard installatielocatie (C:\Program Files) te accepteren. Er wordt nu een Debian-distributie opgehaald en geïnstalleerd, gevolgd door de officiële Pi-hole-applicatie. Dit kan enkele minuten duren. Na de installatie zie je onder andere de geïnstalleerde Pi-hole-versie, in ons geval was dit versie 5.17.1. Er wordt ook gevraagd om een webadmin-wachtwoord, maar je kunt dit gewoon leeg laten door op Enter te drukken.
Vervolgens start normaal gesproken de webinterface voor het beheer van Pi-hole automatisch op. Standaard is deze te vinden op het adres http://<computernaam>/admin of op http://127.0.0.1/admin. Of je roept de interface op vanaf een ander netwerktoestel via het interne ip-adres van die machine (open de Opdrachtprompt en voer ipconfig uit om dit adres te achterhalen).
Vanaf de paragraaf ‘Configuratie ip-adres’ vertellen we je meer over hoe je Pi-hole kunt gebruiken op dit apparaat en andere apparaten, en hoe je de applicatie verder kunt configureren.
Automatische start
Het installatiescript heeft tevens gezorgd voor de nodige uitzonderingen in de Windows Firewall en een taak aangemaakt waarmee Pi-hole automatisch wordt gestart met Windows. Het is raadzaam om deze taak aan te passen voordat je verdergaat. Open de Taakplanner van Windows en dubbelklik in de Task Scheduler-bibliotheek op de taak Pi-hole for Windows. Op het tabblad Algemeen selecteer je Uitvoeren ongeacht of de gebruiker wel of niet is aangemeld en op het tabblad Voorwaarden verwijder je het vinkje bij De taak alleen starten als de computer op netstroom werkt (indien je een laptop gebruikt). Klik op OK en voer het wachtwoord van je beheerdersaccount in. Klik op OK en sluit de Taakplanner af.
Het is ook goed om weten dat er in de installatiemap (standaard C:\Program Files\Pi-hole) verschillende cmd-bestanden staan die (uitgevoerd als administrator) allerlei beheertaken kunnen uitvoeren. De belangrijkste zijn:
Pi-hole System Update.cmd: om diverse componenten van Pi-hole te updaten;
Pi-hole Launcher.cmd: om Pi-hole handmatig op te starten;
Pi-hole Gravity Update.cmd: om de database van de blokkeerlijsten te updaten en consolideren;
Pi-hole Configuration.cmd: om Pi-hole te resetten;
Pi-hole Uninstall.cmd: om de installatiebestanden van Pi-hole te verwijderen.
Docker-installatie
Als je de voorkeur geeft aan een andere installatiemethode, zijn er nog andere opties. Een daarvan is het installeren met behulp van een Docker-container. In tegenstelling tot een volledige virtuele machine deelt een Docker-container alleen de bronnen van de hostmachine, wat het geheel lichter maakt. Hiervoor heb je Windows 10 21H1 of Windows 11 21H2 nodig, samen met een 64bit-processor met SLAT-ondersteuning (Second Level Address Translation) en minimaal 4 GB geheugen. Daarnaast moet hardware-virtualisatie ingeschakeld zijn in je UEFI/BIOS. Raadpleeg indien nodig je systeemhandleiding.
We gaan ervan uit dat je WSL gebruikt als backend voor Docker. Dit is namelijk sneller en is zelfs vereist als je met Windows Home werkt. Zoals eerdergenoemd, activeer je WSL door de Opdrachtprompt als administrator te openen en wsl --install uit te voeren, waarna je Windows herstart.
Download nu Docker Desktop voor Windows en voer het exe-bestand uit met een dubbelklik. De installatie vereist slechts enkele muisklikken, maar kan even duren. Indien van toepassing laat je het selectievakje Install required Windows components for WSL 2 ingeschakeld. Na de installatie herstart je Windows en open je Docker Desktop als administrator. Klik in de applicatie op het tandwielpictogram en ga naar General, waar je een vinkje plaatst bij Use the WSL 2 based engine. Plaats tevens een vinkje bij Start Docker Desktop when you log in.
Bevestig de wijzigingen door op Apply & restart te klikken.
Container-installatie
Nu Docker klaar is, moet je natuurlijk nog de Pi-hole-container toevoegen. Hiervoor open je de Opdrachtprompt als administrator en voer je deze opdracht uit:
docker pull pihole/pihole
Daarna voer je het volgende commando uit:
docker run -d --name pihole -e ServerIP=<intern-ip-adres> -e WEBPASSWORD=<wachtwoord> -e TZ=Europe/Amsterdam -e DNS1=127.17.0.1 -e DNS2=1.1.1.1 -e DNS3=1.0.0.1 -p 80:80 -p 53:53/tcp -p 53:53/udp -p 443:443 --restart=unless-stopped pihole/pihole:latest
Vervang <intern-ip-adres> door het interne ip-adres van je apparaat en <wachtwoord> door het gewenste wachtwoord voor het beheer van Pi-hole. Laat DNS1 staan op 127.17.0.1. Voor DNS2 en DNS3 hebben we de DNS-servers van Cloudflare gekozen (1.1.1.1 en 1.0.0.1), maar je kunt ook andere DNS-servers instellen, zoals die van Google (bijvoorbeeld 8.8.8.8 en 8.8.4.4).
Wanneer je Docker Desktop vervolgens opstart als administrator, zie je (als alles goed is gegaan) de zojuist geïnstalleerde Pi-hole-container in het gedeelte Containers. Via de bijbehorende knop bij Actions kun je deze container op elk gewenst moment starten en stoppen. Opgestart is je Pi-hole-dashboard bereikbaar via http://<ip-adres-pi-hole/admin.
Configuratie ip-adres
We gaan ervan uit dat je Pi-hole inmiddels hebt geïnstalleerd, ongeacht de gekozen installatiemethode. Aangezien Pi-hole functioneert als een DNS-filter, moeten alle apparaten die hiervan gebruik willen maken, weten op welke computer Pi-hole is geïnstalleerd. Dit gebeurt via het ip-adres van de machine waarop Pi-hole draait en daarom is het raadzaam om een statisch ip-adres aan die machine toe te wijzen.
Dit kun je op routerniveau doen via DHCP-reserveringen, maar als Pi-hole op een Windows-machine draait, is het beter om dit in het besturingssysteem zelf in te stellen. Typ netwerkverbindingen in het Windows-startmenu en open Netwerkverbindingen weergeven. Klik met de rechtermuisknop op de actieve netwerkverbinding – bij voorkeur een bekabelde verbinding (Ethernet) aangezien een DNS-filter beter werkt met een bedrade verbinding. Kies Eigenschappen. We gaan ervan uit dat je met IPv4 werkt. Klik met de rechtermuisknop op Internet Protocol versie 4 (TCP/IPv4) en kies opnieuw Eigenschappen.
Selecteer Het volgende IP-adres gebruiken en vul de vereiste gegevens in: het gewenste IP-adres, het Subnetmasker (vrijwel altijd 255.255.255.0) en bij Standaardgateway het ip-adres van je router. Bij Voorkeurs-DNS-server kun je het ip-adres van de Pi-hole-machine zelf invullen (of eventueel het ip-adres van je router). Bevestig met OK en herstart je pc.
Configuratie DNS-server
Als je slechts enkele specifieke apparaten in je DNS-filternetwerk van Pi-hole wilt laten werken, hoef je alleen het ip-adres van je Pi-hole-machine in te stellen als de DNS-server voor die apparaten. Voor Windows-machines kan dit door het adres in te vullen bij Voorkeurs-DNS-server in je actieve netwerkverbinding(en). Als Alternatieve DNS-server kun je een publieke DNS-server zoals die van Cloudflare of Google invullen, bijvoorbeeld 1.1.1.1 of 8.8.8.8.
Als je van plan bent om nagenoeg al je netwerkapparaten, zoals pc’s, tablets en smartphones, aan te sluiten op Pi-hole, kun je dit meer gecentraliseerd aanpakken via je router. Ga naar de setup-pagina van je router in een browser. Het routeradres vind je bij Standaard-gateway nadat je het commando ipconfig hebt uitgevoerd vanaf de Opdrachtprompt.
Er zijn in principe twee manieren om de verbonden clients naar het DNS-filter van Pi-hole te leiden. De eenvoudigste manier is om in een sectie zoals Settings / Internet (de exacte benaming varieert bij de verschillende merken) de Primary DNS Server in te stellen op het ip-adres van je Pi-hole-machine.
Een alternatieve optie is om de DNS-server van je Pi-hole-machine in te stellen binnen de DHCP-service van je router. Deze mogelijkheid moet natuurlijk wel beschikbaar zijn en zal enkel werken indien je netwerkapparaten een ip-adres via DHCP van je router krijgen toegewezen. Raadpleeg desnoods de handleiding bij je router.
Blokkeerlijsten
Als alles goed is, worden de DNS-verzoeken op de betreffende apparaten nu via het Pi-hole-filter geleid. Mogelijk moet je deze apparaten direct na de wijziging even opnieuw opstarten.
Je kunt de werking meteen controleren door de beheermodule van Pi-hole te openen via http://<ip-adres-pi-hole>/admin. Op het dashboard vind je onder andere enkele knoppen met het totale aantal DNS-verzoeken (queries in het Engels) en het aantal verzoeken dat geblokkeerd is door de blacklists.
Onderaan staat een lijst met de top tien van toegestane en geblokkeerde domeinen. Via deze knoppen kun je ook doorklikken naar het aantal verbonden clients en naar de specifieke verzoeken die zijn geblokkeerd.
Klik rechtsboven op Manage adlists om inzicht te krijgen in de actieve blacklists. Standaard wordt de lijst van Steven Black gebruikt, die momenteel ongeveer 200.000 domeinen blokkeert. Je kunt ook extra lijsten activeren. Er zijn verzamelsites met links naar tientallen lijsten, zoals deze en deze, van The Firebog. Een bekende lijst is bijvoorbeeld Oisd, die bijna 800.000 domeinen aan je DNS-blokkade toevoegt. Voer gewoon een of meerdere URL’s in bij Address, klik op Add en controleer of de toegevoegde lijst is ingeschakeld (Enabled). Ga na het toevoegen naar http://<ip-adres-pi-hole>/admin/gravity.php en klik op Update.
Extra configuratie
Er zijn nog andere configuratie- en optimalisatiemogelijkheden beschikbaar via de beheermodule van Pi-hole. Als je bijvoorbeeld het onderdeel Query Log opent, zie je normaal gesproken de opgevraagde domeinen van de verschillende clients. Als je gezinsleden of collega’s dit niet prettig vinden, kun je de detaillering van deze logs aanzienlijk verminderen via Settings / Privacy. Je kunt bijvoorbeeld overschakelen van Show everything and record everything naar Anonymous mode. Je kunt ook het tabblad System openen en op Disable query logging klikken. Hier vind je ook knoppen om Pi-hole af te sluiten of te herstarten.
Interessant is ook het tabblad Teleporter bovenaan. Hier kun je je Pi-hole-configuratie back-uppen en de gemaakte back-up selectief terugzetten via de knop Restore.
We willen je ook wijzen op het onderdeel Domains in de beheermodule. Hier kun je zelf domeinen toevoegen aan de blacklist of whitelist van Pi-hole. Op het tabblad Domain voer je eenvoudig de gewenste domeinen in. Als je bekend bent met RegEx, kun je dit wellicht handiger doen vanaf het tabblad RegEx filter. Hier vind je een handige uitleg hiervoor. Je kunt ook naar het gedeelte Query Log gaan en op de knop Blacklist klikken om een specifiek domein dat in de logs verschijnt meteen naar de blacklist te sturen.
We wensen je veel plezier en vooral veel ongestoorde surfmomenten met Pi-hole!
Alternatieven
Naast de besproken installatiemethoden in het artikel, kun je Pi-hole ook op een virtuele machine installeren, bijvoorbeeld met behulp van de gratis software VirtualBox. We hebben helaas niet genoeg ruimte om hier dieper op in te gaan, maar als je googelt naar pi-hole virtualbox zul je al snel handleidingen en YouTube-video’s vinden. Zorg er in ieder geval voor dat je de virtuele netwerkadapter in de instellingen van je virtuele machine instelt op Bridged adapter, zodat je virtuele Pi-hole-service gemakkelijk toegankelijk is vanuit je netwerk.
Je kunt er ook voor kiezen om Linux op een extra apparaat, zoals een oude laptop, te installeren en daarop Pi-hole te installeren. Dit hoeft niet moeilijker te zijn dan het uitvoeren van één commando:
curl -sSL https://install.pi-hole.net | bash
Op deze documentatiepagina vind je nog alternatieve installatiemethoden, waaronder het gebruik van de commando’s git en wget.
Als je een NAS hebt, is dat ook een geschikte plek om Pi-hole te installeren. Afhankelijk van het model van je NAS kun je, net als in Windows, een Docker-container gebruiken. Instructies voor bijvoorbeeld Synology kun je op deze website vinden.