Pi-Hole: Raspberry Pi als adblocker gebruiken & zo configureer je het!

Noud van Kruysbergen
0

Pi-hole gebruikt blokkeerlijsten (blacklists) om DNS-query’s voor ongewenste internetcontent (domeinen) zodanig te beantwoorden dat bijvoorbeeld een webbrowser de inhoud daarvan helemaal niet ophaalt. Bezochte websites blijven vrij van de banners van reclamenetwerken en laden veel sneller. Pc’s komen zelfs niet in contact met geblokkeerde sites die malware, cryptominers of ransomware verspreiden.

 Pi-Hole: Raspberry Pi als adblocker gebruiken & zo configureer je het!


Krijg gratis info over alles wat met Raspberry Pi te maken heeft, schrijf je in voor de nieuwsbrief

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

Pi Hole installeren op een Raspberry Pi

Hoe je Pi-hole op een Rapberry Pi installeert vind je hier. Voor een permanente werking van Pi-hole moet je de netwerkconfiguratie aanpassen. Bij de eerste stap heeft Pi-hole een vast ip-adres nodig (we gebruiken hier 192.168.0.5 als voorbeeld). Mocht je Pi-Hole alleen maar willen uitproberen dan is het voldoende om op een pc het adres van de DNS-server handmatig in te stellen op het ip-adres van het Pi-hole-apparaat. Dat overschrijft een eventueel automatisch toegewezen adres.

Raspberry Pi als adblocker gebruiken: instellen op de router

Als die test positief uitvalt en je ervoor wilt zorgen dat alle netwerk-pc’s, tablets, mobiele telefoons en tv’s in je huishouden profiteren van de filtermogelijkheden, heb je twee duurzame opties:

  • Je kunt de DHCP server van je router zodanig configureren dat hij het ip-adres van Pi-hole aan de apparaten doorgeeft als DNS-server.
  • Je instrueert de router om niet langer de door de provider toegewezen DNS-servers te gebruiken, maar in plaats daarvan Pi-hole.

Aangezien de DHCP-servers van in de handel verkrijgbare routers gewoonlijk hun eigen adres als DNS-server doorgeven aan de clients in het netwerk, gebruiken de clients na het overschakelen Pi-hole voor de naamresolutie (zij het alleen indirect via de router). Het ombuigen van de DNS-server van de router naar het Pi-hole-adres heeft als voordeel dat dit onmiddellijk effect heeft.

Pi-Hole: informatie verspreiden via DHCP

Via DHCP verspreide informatie gaat niet onmiddellijk rond, maar pas na een bepaalde tijd. Bij een Fritzbox is die geldigheidsduur standaard tien dagen. Andere routers stellen bijvoorbeeld drie weken in. Om dat te verkorten, kun je de clients opnieuw opstarten, de netwerkkabel er even uittrekken of een speciaal commando geven. Dit zal ervoor zorgen dat de DHCP-server van de router de juiste adressen opnieuw aanvraagt.

Een argument ten gunste van het verspreiden van het DNS-serveradres via DHCP is dat de individuele clients in de door Pi-hole bijgehouden logbestanden dan van andere onderscheiden kunnen worden. Althans zolang je het detailniveau van de logs niet verandert.

Raspberry Pi als adblocker gebruiken: DNS-server invoeren

Als de DNS-query’s via de router lopen, verschijnt alleen de router in de logbestanden. In het geval van een router als de Fritzbox heeft het een voordeel om daar Pi-hole als DNS-server in te voeren. Alleen dan filtert Pi-hole ook de DNS-query’s in het gastnetwerk. We weten hoe dat werkt bij een Fritzbox, kijk vooral bij je eigen router of je die mogelijkheid ook hebt. Bij een Experia DSL-router of Sagemcom glasvezelmodem (KPN) ga je bijvoorbeeld naar My Modem en vervolgens DNS om daar het adres van de Pi-hole op te geven.

Als je router niet de mogelijkheid heeft om een zelf gebruikte DNS-server te configureren en ook geen geschikte DNS-optie voor zijn DHCP-server biedt, is de laatste optie het uitschakelen van de eigen DHCP server van de router. Als dat lukt, kan de in Pi-hole geïntegreerde DHCP-server die rol overnemen. Daarvoor moet je via de browser (http://192.168.0.5/ admin) verbinding maken met het beheerpanel van Pi-hole en daar inloggen. Je hebt daarvoor het wachtwoord nodig dat aan het eind van het installeren getoond werd.

Pi-holes eigen DHCP-server inschakelen

Bij Settings kun je Pi-holes eigen DHCP-server inschakelen op het tabblad DHCP. Het adresbereik waaruit Pi-hole gegevens haalt en aan clients toewijst, moet worden aangepast aan je netwerk door bijvoorbeeld 192.168.0.20 in te voeren voor From en 192.168.0.200 voor To. Je moet ook het ip-adres van je router invoeren bij Router. Pi-Hole voegt zelf de DNS-server toe. Die manier voor het automatisch distribueren van de DNS-server van Pi-hole met behulp van DHCP werkt helaas niet voor de hierna beschreven IPv6-configuratieopties

Tot nu toe hebben we in dit artikel aangenomen dat ip-adressen IPv4-adressen zijn. Dat weerspiegelt echter maar de helft van de realiteit van de huidige netwerken. In een IPv6-netwerk wil je volledigheidshalve ook dat de DNS-server via dat protocol antwoordt. Dat is niet verplicht voor het functioneren van IPv6 omdat een DNS-server die alleen via IPv4 kan worden bereikt ook IPv6-namen omzet.

IPv6 instellen om Raspberry Pi als adblocker te gebruiken

Voor een perfecte werking van IPv6 moeten nog wel extra stappen ondernomen worden. Lokale netwerken gebruiken gewoonlijk privé IPv4-adresreeksen (een Fritzbox bijvoorbeeld 192.168.178.0/24). Met IPv6 op gemeenschappelijke verbindingen voor particulieren krijgen clients in het lokale netwerk wereldwijd geldige IPv6-adressen, die de provider aan de router doorgeeft voor distributie bij het tot stand brengen van de verbinding. Net als het globale IPv4-adres van de router veranderen die IPv6-adressen mogelijk bij het beëindigen en weer tot stand brengen van nieuwe verbindingen, zodat ze niet constant zijn.

Je wilt diensten zoals Pi-hole echter constante IPv6-adressen geven, zodat ze betrouwbaar kunnen worden bereikt. Daarom wordt aanbevolen in het lokale netwerk de IPv6-tegenhanger van de particuliere IPv4-adressen te activeren. Dat heet ‘Unique Local Addresses’, kortweg ULA. Als IPv6 geactiveerd is, bieden routers meestal opties om ULA ook te activeren. Je kunt dergelijke adressen herkennen aan het feit dat ze beginnen met ‘fd’ en dat de overige 56 bits van de prefix vrij kunnen worden gedefinieerd (oftewel de eerste helft van het adres).

Door handmatig een dergelijk adres te configureren voor het Pi-hole-systeem met de geselecteerde ULA-prefix, kun je dat in het netwerk laten verspreiden zodat de clients de filterende DNS-server ook via IPv6 kunnen bereiken onder een statisch IPv6-adres.

Een concreet voorbeeld voor IPv6-nieuwkomers:

  • Laat 192.168.0.5 het vaste IPv4-adres van je Pi-hole zijn
  • Laat fd00::/64 de prefix van de in de router geactiveerde ULA-ondersteuning zijn

Door dit te doen biedt het adres fd00::10 zich aan als IPv6-adres voor Pi-hole.

Belangrijke info omtrent ULA activering

Het activeren van ULA heeft alleen zin als de clients in het lokale netwerk wereldwijd geldige IPv6-adressen krijgen. Het feit dat Pi-hole niet één, maar meerdere IPv6-adressen heeft, hoeft geen probleem te zijn. Zowel de Pi-hole als de clients selecteren een geschikt IPv6-adres. Dat kunnende link-lokale adressen zijn (beginnend met fe80), die voldoende zijn voor lokale communicatie. Het kunnen ook ULA-adressen zijn (beginnend met fd), indien expliciet gevraagd, bijvoorbeeld voor naamresolutie tegen Pi-Hole, of globale adressen (beginnend met bijvoorbeeld 2003:dd) om IPv6-verbindingen met de wereld te initiëren.

Pi Hole: blokkeerlijsten

Vroege versies van Pi-hole beantwoordden de requests van namen die op de blokkeerlijsten stonden met een eigen ip-adres. Bij netwerken met IPv6 en zonder ULA leidde dat ertoe dat Pi-hole geblokkeerde verzoeken na enige tijd beantwoordde met een lokaal ontoegankelijk globaal IPv6-adres, zodat webpagina’s slechts zeer langzaam opgebouwd werden.

De Pi-hole-ontwikkelaars hebben een betere methode ontwikkeld (BLOCKINGMODE= NULL). Dit heeft ermee te maken dat (BLOCKINGMODE=IP) bijzonder slecht werkte wanneer met TLS beveiligde pagina’s opgevraagd werden. Als het ip-adres van een domein moet worden geblokkeerd, levert Pi-hole ongeldige adressen terug (0.0.0.0 voor IPv4 en :: voor IPv6). Dit voorkomt bijvoorbeeld dat browsers tegen vervelende netwerktime-outs aanlopen.

Pi-hole: nadeel van de nieuwe methode

Er zit echter wel een nadeel aan de nieuwe methode. Je krijgt geen melding meer dat een pagina op een blocklist staat, maar een bericht dat de verbinding mislukt is. Dit is typisch typisch voor advertenties op de Googlehitlijst die met een redirect werken. Met de oude methode toonde Pi-hole een pagina waarop meteen een uitzondering kon worden gedefinieerd. Ondanks het verlies aan transparantie kondigen de ontwikkelaars aan dat ze de oude methode, waarbij een Pi-hole pagina met uitleg werd getoond, definitief zullen verwijderen.

Conclusie Pi Hole: Raspberry Pi als adblocker gebruiken

De huidige blokkeringsstrategie van Pi-Hole kan wat irritaties opleveren bij andere gebruikers van het netwerk. Alleen al met de standaard door Pi-hole geïnstalleerde blocklists verandert de waargenomen surfervaring wel aanzienlijk. Hou hierbij wel rekening dat niet iedere gebruiker het als een vooruitgang ervaart wanneer het klikken op een Google-advertentie een time-out oplevert of een website wil dat je de adblocker uitschakelt.

Het is dus belangrijk om rekening te houden met de gebruikers die opeens met Pi-hole geconfronteerd worden. Definieer daarom uitzonderingen in de beheerinterface indien dit nodig is. In het zoeklogboek zit een whitelist-knop voor geblokkeerde aanvragen. In het geval van Google-advertenties leidt dat meteen tot een contraproductieve nasleep van verdere vermeldingen, die ook de weg zou vrijmaken voor andere reclamebureaus.

(Deze informatie is afkomstig uit het artikel van Peter Siering en Noud van Kruysbergen in c’t 12, 2022, pagina 42-46)

Lees meer over adblockers in c't 05/2024

Deel dit artikel

Noud van Kruysbergen
Noud van KruysbergenNoud heeft de 'American Dream' doorlopen van jongste bediende tot hoofdredacteur van c't, waar hij zo veel mogelijk de diepgang, betrouwbaarheid en diversiteit wil bewaken.

Lees ook

Vliegtuigen spotten met een Raspberry Pi

Met een Raspberry Pi, de FlightAware-dongle en de PiAware-software kun je de vliegtuigen spotten die boven je huis langskomen.

Energie meten met Raspberry Pi: snel en overzichtelijk je verbruik zien

Wanneer je thuis een slimme meter hebt geïnstalleerd, kun je je energie meten met Raspberry Pi. Energieverbruik is in te zien via gratis te downloaden...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er