Bescherm met behulp van een eigen DNS alle gebruikers op je lokale netwerk tegen advertenties en surveillance marketing. Alle apparaten op je netwerk hebben hier meteen profijt van, een lokale adblocker is op die apparaten dan niet meer nodig.

Internetadvertenties hebben een slechte naam: ze vertragen je browser, eten je bandbreedte op en worden misbruikt voor surveillance marketing (tracking) en andere kwaadaardigheden. De meeste internetgebruikers gaan daarom vroeg of laat op zoek naar een methode om deze advertenties te blokkeren.

Het voordeel van een eigen nameserver (DNS), die advertenties filtert, is dat dit direct effect heeft op alle apparaten op je netwerk. Op die apparaten hoeft daarvoor geen aanvullende software geplaatst te worden, uitsluitend het IP-adres van de nameserver aanpassen volstaat. Een bijkomend voordeel is dat hiermee veel trackers buitenspel gezet worden.

Een advertentie blokkerende nameserver werkt op basis van blacklisting. Dit betekent dat je een lijst met bekende advertentie-servers in je nameserver opneemt. Wanneer een apparaat in je netwerk aan je nameserver het IP-adres van een server uit die lijst opvraagt, dan geeft de nameserver niet het echte IP-adres als antwoord door, maar een “vals” adres. Je kunt hierbij kiezen om als vals adres het adres van een pixelserver op te geven, of om 127.0.0.1 (localhost) als vals adres op te geven.

Pixelserver

Een pixelserver is een klein programmaatje, dat naar poort 80 luistert en dus als een soort webserver functioneert. Ongeacht wat je aan die pixelserver vraagt, als antwoord krijg je altijd een transparant plaatje van 1×1 pixel. De browser vergroot deze pixel uit tot het gewenste formaat, waardoor de gebruiker een leeg vak in de webpagina ziet. Meestal is de pixelserver een klein Perl-scriptje. Dit is op internet snel te vinden.

Wanneer je de nameserver als vals adres 127.0.0.1 laat teruggeven, dan herkent de browser dit als localhost. De browser gaat dus het apparaat waar het op draait connecten naar poort 80. Meestal draait er geen webserver op het apparaat en dus komt er geen connectie en geen antwoord. Ook dan kan de browser niets anders doen dan een leeg vak afbeelden.

Theoretisch is de eerste oplossing (de inzet van een pixelserver) sneller. Wij hebben beide methodes in de praktijk gebruikt en merkten daarbij weinig verschil. Wanneer je met een advertentie blokkerende nameserver aan de slag gaat, kun je dus prima beginnen met een configuratie, waarbij je 127.0.0.1 als vals adres opgeeft. Later kun je alsnog de inzet van een pixelserver overwegen.

 

Blacklist

De lijst met bekende advertentie-servers hoef je gelukkig niet zelf te verzinnen. Verschillende mensen houden zo’n lijst bij en publiceren die op het internet. Je hoeft dus alleen zo’n lijst te downloaden en indien nodig om te zetten naar het formaat van de betreffende nameserver. Uiteraard kun je met de hand nog extra servers toevoegen of juist een server uit de lijst weghalen.

Het opzetten van een eigen DNS is niet veel werk en een DNS stelt in de regel geen hoge systeemeisen. Op je lokale thuisnetwerk of een klein kantoornetwerk is een Raspberry Pi of een Beaglebone Black een mooie oplossing, die 24 uur per dag aanstaat, geen lawaai maakt en spaarzaam met elektriciteit omgaat. Voor een eerste kennismaking kun je natuurlijk ook een nameserver op je Linux werkstation of Linux laptop installeren. Nadat je de DNS hebt draaien, moeten alle apparaten op het netwerk deze gaan gebruiken. Wanneer je gebruik maakt van statische IP-adressen, dan zul je dit op alle apparaten even moeten instellen. Maak je gebruik van DHCP, dan moet je dit in de configuratie van de DHCP-server aanpassen.

 

Experiabox

Wanneer je op je netwerk een dichtgespijkerde router met DHCP-server hebt, zoals bijvoorbeeld een Experiabox, dan moet je handmatig de DNS op je apparaten aanpassen. Een andere oplossing is via een firewall tussen de router en je netwerk DHCP blokkeren en een eigen DHCP-server opzetten.

Er zijn meerdere nameservers voor open source besturingssystemen beschikbaar. Zowel met Bind als met Unbound hebben wij goede ervaringen als adblocker. Het voordeel van Bind is dat deze ook met wildcards in de domeinnaam kan omgaan, zoals bijvoorbeeld “*.doubleclick.com”. Hierdoor heb je in één klap ook alle subdomeinen in je blacklist staan.

Debian Jessie heeft een package voor Bind 9. Je installeert deze met:

 

apt-get install bind9

 Op Raspbian of Ubuntu kun je Bind met een vergelijkbaar commando installeren.

Je kunt blacklists in verschillende formaten downloaden vanaf http://pgl.yoyo.org/adservers/. Wij konden hier een blacklist downloaden in het bind-8 formaat. Dit moet echter nog met een paar zoek-en-vervang commando’s iets aangepast worden naar een bruikbaar formaat. Het woord “IN” moet namelijk voor de acculade openen staan en het pad moet aan null.zone.file worden toegevoegd. Zie Listing 1 voor een voorbeeld hoe de regels eruit moeten zien.


 Listing 1

 De blacklist zet je in /etc/bind en je voegt een include-regel toe aan /etc/bind/named.conf.local, zie listing 3.

Vervolgens maak je een zone file genaamd null.zone.file, ook in de directory /etc/bind. Zie hiervoor Listing 2. Pas 192.168.1.2 en dns.voorbeeld.nl aan conform het adres van je nieuwe nameserver. Hierna herstart je de nameserver met “/etc/init.d/bind restart”.

De werking van je nameserver controleer je vanaf een Linux werkplek met behulp van het programma nslookup.

Een andere goede blacklist vind je op http://someonewhocares.org/hosts/hosts.

 

 

 

 

 

 

Listing 2

 

Listing 3

 

Gebruikersbeleving

De lege vakken in de webpagina’s vallen in de praktijk niet erg op. De pagina’s laden sneller, omdat de browser niet meer op sites als doubleclick.com hoeft te wachten en je ook geen grote, zware advertenties meer hoeft op te halen. Wel ontdek je dat sommige websites geen content tonen, omdat je een adblocker hebt. Wil je toch graag de content van die site kunnen bekijken, dan moet je uitwijken naar een tweede browser, die via een andere nameserver werkt.

Waar je soms last van kunt hebben, is een hyperlink naar een geblacklist domein. Wanneer je een link, dat wijst naar een pagina op een server die in de blacklist staat, probeert te openen, dan wijst de nameserver naar een vals adres en zegt de browser dat de pagina niet te vinden is. Staat bijvoorbeeld googleadservices.com in je blacklist en je opent vanuit de Google zoekresultaten een betaald linkje, dan kan de browser de redirect niet ophalen en geeft dan als resultaat dat de pagina niet gevonden kon worden. Of je gebruikers hier veel of weinig last van hebben, is afhankelijk van hun persoonlijke surfgedrag. Heb je een gezinslid, die vaak advertenties opent, dan zul je wel commentaar krijgen.

 

Ethisch verantwoord

 

De advertentie blokkerende nameserver blokkeert op basis van de blacklist advertenties, ongeacht vanuit welke webpagina deze aangeroepen worden. Alle sites die advertenties willen tonen, worden hierdoor dus geraakt en je kunt niet zeggen dat je nooit advertenties wilt, behalve op de webpagina van bijvoorbeeld Tweakers. Sommige mensen vinden daarom dat aan de inzet van zo’n advertentiefilter ethische bezwaren kleven. Aan de andere kant hebben internetadvertenties niet voor niets zo’n slechte naam. Ze zijn irritant, eten bandbreedte op, worden misbruikt voor onethische surveillance marketing en soms zelfs voor de distributie van malware. Het is je eigen keuze of je op je eigen netwerk wel of geen advertentie blokkerende nameserver wilt inzetten. Het inzetten van zo’n server hoeft niet veel te kosten en is voor Linux-gebruikers goed te doen, dus daar hoeft het in ieder geval niet aan te liggen.