Blokkeer advertenties, trackers en malware met AdGuard

Door: koen-vervloesem | 06 november 2019 13:46

Linux beveiligen
Apps & Software

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.

AdGuard biedt een breed gamma aan producten aan om advertenties en trackers te blokkeren.

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.

01 Door de dns-servers van AdGuard op al je toestellen in te stellen, worden ongewenste websites geblokkeerd.

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.

02 Het dashboard van AdGuard Home toont je uitgebreide statistieken over de dns-aanvragen en blokkades.

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.

03 Met balenaEtcher schrijf je eenvoudig het besturingssysteem Raspbian naar een micro-sd-kaart voor de Raspberry Pi.

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.

05 Via ssh krijg je op afstand toegang tot de opdrachtregel van je Pi.

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.

06 De initiële configuratie gebeurt met de webgebaseerde wizard.

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.

AdGuard Home kun je ook in een Docker-container draaien, hier met de gebruiksvriendelijke beheerinterface Portainer.

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.

07 Je kunt heel eenvoudig meer informatie opvragen over geblokkeerde domeinen.

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.

08 Je krijgt te zien door welke regel een dns-aanvraag geblokkeerd is.

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.

09 De standaardfilters van AdGuard Home zijn voorzichtig en maken dan ook zelden websites stuk.

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.

10 Als iemand op je netwerk een website bezoekt die niet voor kinderen geschikt is, komt er deze melding.

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.

11 Je kunt per client instellen of AdGuard Home adult websites blokkeert of SafeSearch verplicht.

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.

12 Stel de dns-servers in waarnaar AdGuard Home dns-aanvragen van je lan doorstuurt.

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.

Door extra filters toe te voegen, blokkeer je nog meer en specifiekere domeinen.

3 Reactie(s) op: Blokkeer advertenties, trackers en malware met AdGuard

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • 7 november 2019 15:09 Malachi
    Russisch bedrijf heb ik begrepen…
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 7 november 2019 16:12 Grootkonijntje
    Aan de schermafdrukken te zien, lijkt het op een kopie van pi-hole.
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 8 november 2019 11:14 blablablablaap
    Jammer, is vast een interessant artikel echter na de eerste taalfout haake ik af. Volgende keer de tekst even nalezen.
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.