Blokkeer advertenties, trackers en malware met AdGuard
Bijna elke website die je bezoekt haalt een boel advertenties, trackers en als je pech hebt malware binnen. Dat vertraagt niet alleen je surfsessies, maar het vormt ook een beveiligingsrisico. Als je die ongewenste zaken in je webbrowser wilt blokkeren, dien je dat in principe op elke computer, tablet, smartphone, smart-tv enzovoort in je huishouden te doen. Dat is veel te veel werk, en daarom leggen we in dit artikel een andere oplossing uit: installeer AdGuard Home op een Raspberry Pi, nas of Linux-server en geniet van een netwerkbrede blokkade van gespuis op internet.
Het bedrijf AdGuard Software biedt allerlei producten aan om advertenties te blokkeren en je privacy te beschermen. Het basisproduct is de opensource AdGuard-browserextensie voor Chrome, Firefox, Opera, Edge en Safari die advertenties en trackers blokkeert.
Voor wie meer bescherming wil, zijn er de is AdGuard te installeren op Windows, macOS, Android en iOS. Die voeren hun blokkades op het niveau van het besturingssysteem uit, waardoor je niet op elke browser de extensie hoeft te installeren als je meerdere browsers gebruikt. Bovendien werkt dit ook voor apps die geen browser zijn, zoals games op je Android-telefoon die advertenties tonen of je tracken.
©PXimport
01 Netwerkbrede bescherming via dns
Maar als je op deze manier dezelfde blokkades op alle apparaten in je thuisnetwerk wilt uitrollen, dien je op elk apparaat de browserextensies of app te installeren, in te stellen en bij te werken. Dat is een beheerdersnachtmerrie, en gelukkig heeft AdGuard daar ook een oplossing voor, meerdere zelfs.
De eenvoudigste oplossing is AdGuard DNS. Je hoeft hiervoor zelfs niets te installeren: stel gewoon 176.103.130.130 en 176.103.130.131 in als dns-servers in de netwerkinstellingen van je toestellen. Dat kan zelfs in één keer in je hele netwerk door deze dns-servers in de webinterface van je router in te stellen: je router kent dan normaal gezien aan elk toestel in je netwerk samen met het toekennen van het ip-adres via dhcp ook de dns-servers toe. Wil je ook ‘adult websites’ blokkeren, stel dan 176.103.130.132 en 176.103.130.134 in als dns-servers.
In de AdGuard Knowledgebase geeft het bedrijf instructies om AdGuard DNS in te stellen op allerlei besturingssystemen. Zodra je toestellen de dns-servers van AdGuard gebruiken, sturen ze bij elke website die ze willen bezoeken de domeinnaam naar de servers (AdGuard belooft overigens dat het je activiteiten niet logt). Als het om een onveilige (of in het geval van de ‘Family Protection’ niet voor kinderen geschikte) website gaat, geeft de dns-server het ip-adres terug van een ‘sinkhole server’, die je een melding van de blokkade toont. Gaat het om een veilige website, dan kun je die gewoon bezoeken. Dat werkt voor alle software op al je toestellen.
©PXimport
02 AdGuard Home
AdGuard DNS is heel eenvoudig: je stelt eenmalig je dns-servers in en daarna hoef je er niet meer naar om te kijken. Maar dat is tegelijk ook de zwakte: behalve de keuze voor de Family Protection heb je geen enkele manier om de blokkades te configureren.
Maar AdGuard zou AdGuard niet zijn als het ook voor die situatie geen product zou hebben: in oktober vorig jaar introduceerde het AdGuard Home. Dit is een dns-server die je op je eigen netwerk installeert. Net zoals bij gebruik van AdGuard DNS stel je dan op je router of op individuele toestellen in dat ze gebruikmaken van deze dns-server om advertenties en trackers te blokkeren, zonder dat je op die toestellen nog extra software dient te installeren.
Maar AdGuard Home begint pas waar AdGuard DNS eindigt: het programma heeft ook een webinterface waarin je statistieken over het dns-gebruik kunt bekijken, live dns-aanvragen kunt opvolgen, zelf blacklists kunt toevoegen en specifieke domeinen met één klik kunt blokkeren of toelaten.
©PXimport
Geen adblocker meer nodig in je browser?
Hoewel AdGuard Home een krachtige oplossing is om advertenties en trackers te blokkeren, wil dat niet zeggen dat je dan sowieso zonder adblocker-extensie in je webbrowser kunt surfen. De blokkade van een domein door AdGuard Home is immers alles of niets. Als op één domein zowel advertenties als andere content staat, worden door het blokkeren van dat domein niet alleen de advertenties geblokkeerd, maar mis je ook nuttige content. De kans is zelfs groot dat de website of app die je gebruikt door de blokkade niet meer werkt. Een adblocker in je webbrowser kan veel fijnmaziger beslissingen nemen: niet alleen op basis van de domeinnaam, maar ook op basis van het exacte adres, css-selectors enzovoort. De efficiëntste aanpak is dan ook vaak een combinatie van beide technieken: met AdGuard Home blokkeer je op al je toestellen de domeinen die volledig ongewenst zijn, en tijdens het surfen op specifieke toestellen stel je met extra regels in een adblocker-extensie of -app verfijningen in zodat domeinen met gemengde content selectief geblokkeerd worden.
03 Raspbian installeren
Je kunt AdGuard Home op een Raspberry Pi installeren en die dan als dns-server voor je netwerk gebruiken. We raden aan om de ethernetpoort van de Pi te gebruiken, omdat dns wel heel betrouwbaar dient te zijn: we willen niet dat alle toestellen in je netwerk problemen met dns-aanvragen krijgen als de wifi-ontvangst van je Pi even slecht is. Een dns-server is overigens niet zo zwaar, dus je hoeft echt niet het nieuwste model van de Pi hiervoor te gebruiken.
Je dient eerst het besturingssysteem Raspbian op je Pi te installeren. Ga naar de downloadpagina van Raspbian en download het zip-bestand van Raspbian Buster Lite. Steek ondertussen een micro-sd-kaart waarop je het besturingssysteem voor de Pi gaat installeren in je pc.
Download dan het programma balenaEtcher, start het op, selecteer het zipbestand van Raspbian Buster Lite en selecteer de schijfletter van je micro-sd-kaart. Klik op Flash! om het schrijven te beginnen. Wanneer dit voltooid is, haal je het micro-sd-kaartje uit de kaartlezer en steek je het er weer in.
©PXimport
04 Ssh inschakelen
Windows herkent daarop de fat32-partitie ‘boot’ en opent die in de Verkenner. Krijg je de vraag om een niet herkende partitie te formatteren, doe dat dan niet. Vink eerst in het menu Beeld van de Verkenner de optie Bestandsnaamextensies aan.
Rechtsklik dan op een lege plaats in die partitie en maak een nieuw tekstdocument aan met de naam ssh. Verwijder vervolgens de extensie .txt en wanneer je de vraag krijgt of je dat echt wilt, bevestig je je keuze. Door dit bestand dat je nu hebt aangemaakt, geeft Raspbian toegang tot de opdrachtregel via het netwerk, waardoor we geen toetsenbord en beeldscherm hoeven aan te sluiten.
05 Toegang via ssh
Ontkoppel het micro-sd-kaartje, steek het in het kaartslot van je Pi, sluit de Pi via een ethernetkabel aan op je lan en sluit tot slot de voedingsadapter aan. De Raspberry Pi heeft geen aan-uitknop, dus na het aansluiten van de voedingsadapter start hij onmiddellijk op.
Het eerste wat je nu te weten dient te komen, is het ip-adres van je Pi op je netwerk. Dat vind je in de lijst met ‘dhcp leases’ van de webinterface van je router. Zoek naar een toestel met de naam raspberrypî of een mac-adres dat begint met b8:27:eb.
Draai je een Windows-versie van vóór april 2018, dan dien je het programma PuTTY te installeren voor toegang tot je Pi. Heb je een nieuwere versie van Windows 10, dan kun je de ingebouwde ssh-client gebruiken. Ga daarvoor eerst naar Instellingen / Apps / Optionele onderdelen en klik dan op Een onderdeel toevoegen. Kies OpenSSH-client en herstart je computer.
Daarna kun je in de opdrachtprompt van Windows op je Raspberry Pi inloggen met de opdracht ssh pi@IP, met in plaats van IP het daadwerkelijke ip-adres van je Pi. Bevestig met yes dat je de vingerafdruk vertrouwt en vul het wachtwoord raspberry in. In macOS en Linux is de ssh-client overigens standaard al geïnstalleerd, dus in die besturingssystemen kun je onmiddellijk aan de slag. Verander zodra je ingelogd bent het wachtwoord van de gebruiker pi met de opdracht raspi-config en dan de optie 1 Change User Password.
©PXimport
06 AdGuard Home installeren
Nu je Pi klaar is en toegankelijk via ssh, kun je AdGuard Home installeren. Daarvoor dien je enkele opdrachten in te typen. Eerst downloaden we AdGuard Home en pakken het bestand uit met deze commando’s:
cd
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_arm.tar.gz
tar xvf AdGuardHome_linux_arm.tar.gz
Ga daarna in de uitgepakte directory en voer het programma uit voor de initiële configuratie:
cd AdGuardHome
sudo ./AdGuardHome
Je krijgt dan te zien op welk adres de webinterface van AdGuard Home bereikbaar is. Normaal heeft die de vorm http://IP:3000 waarbij IP het ip-adres van je Pi is. Bezoek de url in je webbrowser en volg de instructies.
Verifieer dat onder zowel Admin Web Interface als onder DNS server adressen staan die bereikbaar zijn in je lan. Vul in de volgende stap een gebruikersnaam en wachtwoord in, zodat niet iedereen op je netwerk AdGuard Home kan configureren.
Na deze configuratie installeer je AdGuard Home als volgt:
sudo ./AdGuardHome -s install
Het programma is nu ook gestart als systeemdienst.
©PXimport
AdGuard Home in Docker, op je nas of op een vps
De Raspberry Pi is niet het enige platform waarop je AdGuard Home kunt installeren. Misschien heb je al een nas in gebruik en wil je liever geen extra toestel gebruiken voor je dns-server. Dat kan uiteraard ook. Zo bestaat er een pakket van AdGuard Home voor QNAP. En als je Ansible-NAS draait (zie het vorige nummer van Computer!Totaal) of een willekeurige Linux-distributie op een thuisserver, dan kun je daarop AdGuard Home draaien via Docker. Je kunt AdGuard Home ook op een vps met Linux draaien, de installatie-instructies daarvoor zijn bijna hetzelfde als voor Raspbian. Hoe je AdGuard Home ook installeert, na de installatie en de initiële configuratie verloopt alles hetzelfde.
©PXimport
07 Dashboard
Als je nu ervoor zorgt dat alle toestellen in je netwerk je Raspberry Pi als dns-server gebruiken (zie het kader ‘Belangrijke dhcp-instellingen in je router’), ben je klaar met de basisconfiguratie. Eventueel dien je je toestellen te herstarten om ze sneller van de nieuwe dns-server te laten gebruikmaken.
Als je nu het dashboard van AdGuard Home in je webbrowser opent (vanaf nu gewoon op poort 80 in plaats van poort 3000), zie je een duidelijk overzicht van de werking van je dns-server. Bovenaan zie je het aantal dns-aanvragen, hoeveel daarvan geblokkeerd zijn, hoeveel domeinen voor malware of phishing er geblokkeerd zijn en hoeveel ‘adult websites’ er geblokkeerd zijn. En als je ooit een keer tijdelijk al je blokkades wilt opheffen, klik dan bovenaan links op Disable protection, waarna AdGuard Home geen domeinen meer filtert tot je het weer inschakelt.
Daaronder vind je nog enkele statistieken zoals de gemiddelde verwerkingstijd van een dns-aanvraag, de meest actieve clients, de meest gevraagde domeinen en de meest geblokkeerde domeinen. Al deze cijfers gelden voor de laatste 24 uur.
Vooral de lijst met de meest geblokkeerde domeinen is interessant. Achter de meeste domeinen zie je een icoontje van een oog. Blijf je daar met je muis over hangen, dan krijg je wat informatie over waarom dit domein geblokkeerd is: wat is de naam van de eigenaar van het domein, gaat het om een domein voor advertenties of site analytics, enzovoort. Er staat ook een link bij naar WhoTracks.me met meer informatie over het domein.
©PXimport
Belangrijke dhcp-instellingen in je router
Omdat je toestellen altijd dienen te weten waar ze de dns-server van AdGuard Home kunnen vinden, heeft je Raspberry Pi een statisch ip-adres nodig. Als het ip-adres immers verandert en je toestellen dns-aanvragen nog altijd naar het oude ip-adres sturen, kun je geen enkele website meer bezoeken. Voeg daarom in de dhcp-instellingen van je router een statische toekenning van een ip-adres in voor het mac-adres van je Pi. Daarnaast dien je in de dhcp-instellingen ook als dns-server het ip-adres van je Pi in te voeren. Vanaf dan krijgt elk toestel dat aan je router een ip-adres aanvraagt ook het ip-adres van je Pi doorgegeven als dns-server, waarna het toestel alle dns-aanvragen naar je Pi zal doorsturen. Je kunt uiteraard ook op je toestellen zelf het ip-adres van je Raspberry Pi als dns-server instellen als je de blokkade niet netwerkbreed wilt toepassen. Op de wiki van AdGuard Home vind je instructies daarvoor per besturingssysteem.
08 Logboek
In het tabblad Query Log kun je volgen welke dns-aanvragen er allemaal binnenkomen. In de tabel zie je kolommen voor het tijdstip, het opgevraagde domein, het type (A voor IPv4-adressen en AAAA voor IPv6-adressen), het antwoord van de dns-server (het ip-adres, Empty of Filtered by BlackList), en de client die het domein aanvraagt. Op al deze kolommen behalve de tijdstippen kun je ook filteren als je een specifieke selectie van het logboek wilt zien.
Zie je een domein voorbijkomen dat je wilt blokkeren, blijf dan met je muiscursor boven de rij hangen en klik rechts op het knopje Block. Als een van je toestellen daarna nog eens het domein opvraagt, zie je in het logboek dat dit geblokkeerd wordt. Klik je dan op het vraagteken naast Filtered by Blacklist, dan krijg je de regel te zien die AdGuard Home toegevoegd heeft en zie je als filter Custom filtering rules. Bedenk je je over de blokkade, dan kun je altijd rechts op Unblock klikken om het domein weer toe te staan. Klik boven op Refresh als je de nieuwste dns-aanvragen wilt bekijken.
©PXimport
09 Filters instellen
In het tabblad Filters vind je alles wat met het blokkeren van domeinen te maken heeft. AdGuard Home heeft vlak na de installatie vier filters, waarvan het er standaard één inschakelt. Met een vinkje voor een filter schakel je die filter in of uit en met een klik op Check updates haalt AdGuard Home de nieuwste versie van de filter binnen. Dat laatste doet het programma overigens automatisch elk uur. Bij elke filter krijg je de url van de filter te zien, het aantal regels dat de filter bevat en wanneer de filter het laatst bijgewerkt is.
De standaard ingestelde filters van AdGuard Home zijn redelijk voorzichtig: ze houden de belangrijkste advertentienetwerken en trackers tegen zonder te veel websites onbruikbaar te maken. De makers willen immers vermijden dat er websites niet meer werken als er te grondig gefilterd wordt. Schakel de andere filters die AdGuard Home geïnstalleerd heeft gerust ook in: ze breiden de bescherming nog iets uit.
©PXimport
10 Algemene instellingen
Nu de basis werkt, kun je de instellingen bekijken in het tabblad Settings. Onder General settings staat standaard alleen Block domains using filters and hosts files aangevinkt, wat ervoor zorgt dat de in het tabblad Filters ingestelde filters op elke dns-aanvraag toegepast worden.
Als je de tweede optie aanvinkt, Use AdGuard browsing security web service, controleert AdGuard Home voor elk domein dat je toestellen opzoeken of het op een blacklist met malware staat. Dat doet het door een hash van de domeinnaam te berekenen en een deel daarvan door te sturen naar de server. AdGuard krijgt daardoor niet te zien welke domeinen je bezoekt, maar vink dit niet aan als je liever geen enkele informatie uitstuurt. Hetzelfde kun je bereiken door een filter met malwaredomeinen toe te voegen (zie het kader ‘Filters toevoegen’).
Een derde optie is Use AdGuard parental control web service. Vink je dit aan, dan controleert AdGuard Home voor elk opgevraagd domein of het om een ‘adult’ website gaat en blokkeert die dan met een melding. Dat gebeurt op dezelfde manier als de vorige optie, door een hash van het domein naar AdGuard te sturen. De laatste optie Enforce safe search zorgt dat in de zoekmachines van Google, YouTube, Bing, DuckDuckGo en Yandex automatisch SafeSearch ingeschakeld wordt.
©PXimport
11 Instellingen per client
In Settings / Client settings kun je zelfs per verbonden client instellen wat er met de dns-aanvragen moet gebeuren. Klik op Add Client en vul het ip-adres van de client in. Geef de client ook een naam. Die wordt daarna trouwens ook in het logboek getoond bij alle dns-aanvragen van de client.
Standaard staat Use global settings aangevinkt; wanneer je het vinkje verwijdert, kun je de opties die je in de algemene instellingen vindt specifiek voor deze client instellen. Zo kun je instellen dat je alleen op de tablets van je kinderen parental control en safe search inschakelt en in je algemene instellingen niet. De lijst met filters kun je (nog) niet per client aanpassen: alle clients die Block domains using filters and hosts files (of Use global settings) aangevinkt hebben, gebruiken dezelfde filters.
©PXimport
12 Dns-instellingen
AdGuard Home is eigenlijk een dns-proxy die dns-aanvragen van lokale clients aanneemt, deze doorstuurt naar een andere dns-server, de antwoorden ontvangt en deze aan de oorspronkelijke aanvragers doorspeelt. Tot nu toe zijn we op dit aspect niet ingegaan omdat de standaardinstellingen in de meeste gevallen gewoon werken. Maar soms kan het interessant zijn het gedrag van de dns-proxy aan te passen. Dat doe je in Settings / DNS settings.
Standaard gebruikt AdGuard Home de dns-servers van Cloudflare via het versleutelde protocol DNS-over-HTTPS (DoH). In zijn knowledgebase biedt AdGuard een lijst met dns-servers aan die je hier kunt invullen, met wat uitleg over de eventuele filtering die deze dns-servers ook al uitvoeren.
Vul je gewoon een ip-adres van een dns-server in, dan gebruikt AdGuard Home die server via het klassieke onversleutelde dns-protocol over udp. Vul je een url in die begint met https://, dan gebruik je het versleutelde protocol DNS-over-HTTPS; met een url die begint met tls:// gebruik je het versleutelde protocol DNS-over-TLS. Wij gebruiken zelf het privacybewuste DNS.SB via DNS-over-TLS. Dat schakel je in door tls://dns.sb/ in de dns-instellingen in te vullen. Vergeet dan ook niet bij de Bootstrap DNS servers de adressen 185.222.222.222:53 en 185.184.222.222:53 te zetten.
Je kunt hier overigens ook instellen dat AdGuard Home dns-aanvragen voor een specifiek domein naar een specifieke dns-server doorstuurt. Dat is nuttig als je de hostnames uit het domein van je lan door de interne dns-server van je router wilt laten verwerken. Heeft je lan bijvoorbeeld als domein home en heeft je router het ip-adres 192.168.0.1, dan vul je de regel [/home/]192.168.0.1 in.
©PXimport
13 En verder
AdGuard Home heeft nog wel enkele instellingen, bijvoorbeeld als je de toegang tot de webinterface met https wilt versleutelen. Je kunt zelfs AdGuard Home als de dhcp-server op je netwerk laten werken. Maar vergeet dan niet de dhcp-server van je router uit te schakelen. De ontwikkelaars hebben overigens nog heel wat plannen met AdGuard Home: zo is er sprake van een vpn-server in te bouwen en de ontwikkelaars zouden zelfs een kant-en-klaar apparaatje willen gaan verkopen waarop AdGuard Home voorgeïnstalleerd staat, zodat iedereen zonder enige voorkennis zijn netwerk kan beveiligen.
Filters toevoegen
In het tabblad Filters voeg je eenvoudig je eigen filters toe. Klik op Add filter, geef de filter een naam en vul een url van de filter in. AdGuard Home kan overweg met filters in de vorm van AdBlock-regels of hosts files. Op de website The Big Blocklist Collection vind je tientallen hosts-lists. Een lijst waar een vinkje bij staat zal waarschijnlijk geen problemen opleveren. Je vindt er lijsten die verdachte domeinen blokkeren, advertentiedomeinen, trackingdomeinen, kwaadaardige domeinen, pornodomeinen, coinjackingdomeinen enzovoort. Ook filterabonnementen voor AdBlock Plus worden ondersteund. En op FilterLists kun je filteren op lijsten met ondersteuning voor AdGuard Home. Overigens worden domeinen die je in het logboek handmatig geblokkeerd of gedeblokkeerd hebt ook op de pagina met filterinstellingen toegevoegd, namelijk onder Custom filtering rules.
©PXimport