Ad-bloc­ker met Rasp­ber­ry Pi en Pi-ho­le

Mal­wa­re en re­cla­me fil­te­ren met de Rasp­ber­ry Pi en Pi­ho­le

C’t Magazine - - Inhoud 7-8/2018 - Ro­nald Ei­ken­berg

Pi-ho­le werkt als een zwart gat in het net­werk dat scha­de­lij­ke en ir­ri­tan­te con­tent op­slokt – van­daar de naam. Het tech­nisch uit­gangs­punt is snel uit­ge­legd: Pi-ho­le zit als een DNSproxy tus­sen de clients in het net­werk en de DNS-ser­ver van de pro­vi­der. Op ba­sis van fil­ter­lijs­ten be­paalt hij wel­ke DNS- re­quests naar de DNS-ser­ver door­ge­stuurd wor­den en wel­ke hij blok­keert. Als een client bij­voor­beeld naar het ip-adres van ct.nl vraagt, stuurt de proxy de re­quest door en wordt het ant­woord met de ipadres­sen 185.173.21.78 (IPv4) res­pec­tie­ve­lijk 2a0b:3100:100:34::21:78 (IPv6) naar de client te­rug­ge­stuurd.

Als een client ech­ter het ip-adres van een do­mein wil we­ten dat op een zwar­te lijst staat, be­ant­woordt de proxy de re­quest met zijn ei­gen adres. Als de client daar­op pro­beert om een HTTP-ver­bin­ding daar­mee te ma­ken, le­vert Pi-ho­le een web­si­te te­rug met daar­op de mel­ding dat de toe­gang ge­blok­keerd werd. De DNS-proxy fil­tert ver­bin­din­gen op die ma­nier heel ef­fec­tief zon­der dat het he­le da­ta­ver­keer om­ge­leid hoeft te wor­den – dat heeft dan ook geen ge­vol­gen voor de per­for­man­ce. Pi­ho­le kan zich om al­le clients in een lo­kaal net­werk be­kom­me­ren, van pc's en smartpho­nes tot smart-tv's en IoT-ap­pa­ra­ten. Daar is geen soft­wa­re-in­stal­la­tie op de clients voor no­dig.

Het Pi-ho­le-pro­ject vindt het wiel niet op­nieuw uit, maar ge­bruikt po­pu­lai­re opens­our­ce tools als de DNS-ser­ver dns­masq en de web­ser­ver lightt­pd. Voor het fil­te­ren wor­den gang­ba­re blac­k­lists ge­bruikt, waar in to­taal meer dan 100.000 do­mei­nen op staan – mee­stal van re­cla­me­be­drij­ven.

Het in­stal­le­ren en con­fi­gu­re­ren van Pi­ho­le wordt door een set-upscript ge­daan. Dat zet de DNS-fil­ters voor je klaar en vergt geen diep­gaan­de ken­nis over net­werk­tech­nie­ken of Li­nux. De be­lang­rijk­ste in­stel­lin­gen, zo­als het be­heer van de fil­ter­lijs­ten, kun je ver­vol­gens via de over­zich­te­lij­ke we­bin­ter­fa­ce doen. Die le­vert ook in­te­res­san­te sta­tis­tie­ken over de DNS-re­quests van de clients. Als je die­per in de ma­te­rie wilt dui­ken, kun je dit open doe-het-zelf­sys­teem naar har­ten­lust aan­pas­sen. Pi-ho­le lijkt qua wer­king op de in c't 7-8/2017 op pa­gi­na 138 be­schre­ven con­fi­gu­ra­tie met de DNS-ser­ver Un­bound, maar is dui­de­lijk mak­ke­lij­ker voor be­gin­ners.

Pi-ho­le is heel schap­pe­lijk wat de ei­sen aan de hard­wa­re be­treft: het is ge­maakt om te ge­brui­ken met een Rasp­ber­ry Pi met min­stens 512 MB geheugen, maar draait ook op an­de­re Li­nux-ma­chi­nes on­der Ubuntu, De­bi­an, Fe­do­ra en CentOS. Een ou­der Rasp­ber­ry Pi-mo­del vol­staat al. Die heb je wel­licht nog er­gens in een la lig­gen. In dit ar­ti­kel be­schrij­ven we het in­stal­le­ren op een Rasp­ber­ry Pi bin­nen een Fritz­box-net­werk. Als je met Doc­ker werkt, staat bij de link on­der­aan dit ar­ti­kel een Pi­ho­le-ima­ge om bij­voor­beeld van een uit­breid­ba­re NAS van QNAP, Sy­no­lo­gy en­zo­voort een fil­te­ren­de DNS-proxy te kun­nen ma­ken. We heb­ben bij der­ge­lij­ke sce­na­rio's wel erg zit­ten wor­ste­len met het ge­bruik van IPv6 en kun­nen dat dan ook ze­ker niet aan­ra­den.

Pi­snel­start

Pi-ho­le is op een Rasp­ber­ry Pi snel aan de praat te krij­gen. Als je al een Rasp­ber­ry Pi hebt draai­en, kun je met­een door naar het deel over het in­stal­le­ren van Pi-ho­le. Down­load an­ders eerst de laat­ste Rasp­bi­an-ver­sie en pak de ima­ge uit. Voor Pi-ho­le heb je ge­noeg aan de tot het hoogst­no­di­ge ge­re­du­ceer­de Stretch Li­te. Zet de Rasp­bi­an-ima­ge ver­vol­gens op een min­stens vier gi­ga­by­te gro­te ge­heu­gen­kaart die je spe­ci­aal voor Pi-ho­le wilt gaan ge­brui­ken – de oor­spron­ke­lij­ke in­houd gaat im­mers verloren. Bij Win-

Veel din­gen wil je al uit het in­ter­net­ver­keer ha­len voor­dat het je huis bin­nen­komt, zo­als cryp­to­die­ven, phis­hing­web­si­tes, trac­king­co­de en agres­sie­ve re­cla­me. Pi­ho­le fil­tert dat er met­een uit voor het he­le (ook draad­lo­ze) net­werk. Het is mak­ke­lijk te in­stal­le­ren en met een brow­ser te con­fi­gu­re­ren.

dows kan dat al­le­maal heel snel met Et­cher of Win32 Disk Ima­ger. Se­lec­teer bij 'Se­lect ima­ge' de te in­stal­le­ren Rasp­bi­an-ima­ge en ver­vol­gens met 'Se­lect dri­ve' de sta­ti­onslet­ter van de kaart­le­zer. Door op de knop 'Flash!' te druk­ken, wordt de ima­ge naar de kaart ge­ko­pi­eerd. Daar­na staat op de kaart een FAT32-par­ti­tie met de naam 'boot'. Maak daar een leeg be­stand aan met de naam 'ssh' om via SSH bij de Rasp­ber­ry Pi te kun­nen ko­men.

Om­dat DNS la­ten­tie­ge­voe­lig is, moet je de Pi bij voor­keur via een net­werk­ka­bel op het net­werk aan­slui­ten. Als het niet an­ders kan, om­dat je bij­voor­beeld een Rasp­ber­ry Pi Ze­ro zon­der LAN-in­ter­fa­ce hebt, kun je de mi­ni­com­pu­ter op de vol­gen­de ma­nier via wifi ver­bin­den: maak op de boot­par­ti­tie sim­pel­weg een be­stand aan met de naam wpa_­sup­pli­cant.conf met de vol­gen­de con­tent:

ctrl_in­ter­fa­ce=DIR=/var/run/

wpa_­sup­pli­cant GROUP=net­dev up­da­te_­con­fig=1 coun­try=NL net­work={ ssid="<SSID van je wifi>" psk="<wifi-wacht­woord>" key_m­gmt=WPA-PSK

}

Stop de ge­heu­gen­kaart daar­na in de Rasp­ber­ry Pi en sluit hem aan op de voe­ding. Hij start dan op en zal bin­nen een mi­nuut in je net­werk zicht­baar zijn met de host­naam 'rasp­ber­ry­pi'. Ver­vol­gens maak je een SSH­ver­bin­ding met die host om Rasp­bi­an te con­fi­gu­re­ren en Pi-ho­le te in­stal­le­ren.

Li­nux en macOS heb­ben stan­daard een SSH-client, maar bij Win­dows 10 kun je eenvoudig een OpenSSH-client ac­ti­ve­ren: zoek via het start­me­nu naar 'Apps en on­der­de­len', klik op 'Op­ti­o­ne­le on­der­de­len be­he­ren' en ver­vol­gens 'Een on­der­deel toe­voe­gen'. In­stal­leer daar 'OpenSSH Client (Be­ta)'. Als je die niet ziet, ga je bij de Sys­teem­in­stel­lin­gen naar 'Bij­wer­ken en be­vei­li­ging'.

Na een her­start kun je bij de Op­dracht­prompt dan het com­man­do ssh ge­brui­ken. Het vol­gen­de com­man­do maakt ver­bin­ding met de Rasp­ber­ry Pi: ssh pi@rasp­ber­ry.

Voer het stan­daard ge­con­fi­gu­reer­de wacht­woord 'rasp­ber­ry' in en dan ben je aan­ge­meld als de stan­daard­ge­brui­ker pi. Als eer­ste moet je het stan­daard wacht­woord ver­an­de­ren met passwd. Maak het wacht­woord niet al te mak­ke­lijk, want ie­der­een die het weet en zich in het­zelf­de net­werk be­vindt, kan zich bij je Rasp­ber­ry Pi aan­mel­den en hem via su­do met root­rech­ten naar believen be­he­ren – en ook het in­ter­net­ver­keer ana­ly­se­ren, om­lei­den en ver­val­sen. Kies dus een zo vei­lig mo­ge­lijk wacht­woord en be­waar het in je wacht­woord­ma­na­ger.

Daar­na werk je het be­stu­rings­sys­teem en de com­po­nen­ten met su­do apt-get up­da­te en su­do apt-get up­gra­de weer he­le­maal bij. Dat kan een kwar­tier­tje du­ren, maar daar­na is de Rasp­ber­ry Pi he­le­maal start­klaar.

Pi­ho­le in­stal­le­ren

Het in­stal­le­ren van Pi-ho­le kun je mak­ke­lijk hand­ma­tig doen. De ont­wik­ke­laars bie­den een in­stal­la­tie­script dat je met één com­man­do kunt down­lo­a­den en uit­voe­ren:

curl -sSL https://in­stall.pi-ho­le.net

| bash

Het script be­kom­mert zich om het in­stal­le­ren van al­le be­no­dig­de scripts en af­han­ke­lijk­he­den. Tij­dens het in­stal­le­ren hoef je al­leen een paar in­fo-ven­sters met de spa­tie­balk als 'OK' te be­ves­ti­gen. Het script vraagt ook naar een paar con­fi­gu­ra­tie­pa­ra­me­ters: bij 'Se­lect Up­stream DNS Pro­vi­der' vul je bij­voor­beeld de DNS-ser­ver in die Pi-ho­le voor de na­me­re­sol­ving moet ge­brui­ken. Als je een rou­ter ge­bruikt, kun je bij 'Custom' daar het bes­te het bij­be­ho­ren­de IPv4-adres in­vul­len, waar­door de DNS-re­quests de ge­brui­ke­lij­ke weg be­wan­de­len na­dat ze door Pi-ho­le ge­fil­terd zijn. De re­quests van de clients gaan dan dus eerst naar Pi-ho­le en daar­na naar de rou­ter en de daar in­ge­stel­de DNS-ser­ver. Daar­mee zorg je er­voor dat de host­naam-re­sol­ving in het lo­ka­le net­werk blijft func­ti­o­ne­ren en je voor de we­bin­ter­fa­ce van je rou­ter bij­voor­beeld fritz.box of rou­ter.asus.com kunt blij­ven ge­brui­ken. Als je een an­de­re DNS-dienst wilt uit­pro­be­ren om­dat je bij­voor­beeld de DNS-dienst van je pro­vi­der niet ver­trouwt of die te lang­zaam vindt, kun je bij de in­stel­lin­gen van je rou­ter een an­de­re DNS-ser­ver in­vul­len, zo­als die van Quad9 (9.9.9.9).

Pi-ho­le werkt in het lo­ka­le net­werk stan­daard via IPv4 en IPv6. Bij de vol­gen­de stap heb je de mo­ge­lijk­heid een van bei­de pro­to­col­len te de­ac­ti­ve­ren. In de mees­te ge­val­len is het aan te ra­den om de stan­daard­in­stel­ling te la­ten zo­als die is.

De Rasp­ber­ry Pi heeft een sta­tisch ipadres no­dig, zo­dat hij door de clients al­tijd te be­rei­ken is. Daar­om stelt het set-upscript dit in. Daar­voor wordt het op dat mo­ment ge­bruik­te ip-adres ge­bruikt dat de Rasp­ber­ry Pi via DHCP van de rou­ter ge­kre­gen heeft. Dat is mee­stal een goe­de keu­ze. Dat wordt al­leen pro­ble­ma­tisch als het ge­val zich voor­doet dat de rou­ter dat ip-adres op

een ge­ge­ven mo­ment aan een an­de­re client toe­kent. Dat pro­bleem kun je op­los­sen door het ip-adres van de Pi bij de rou­ter vast in te stel­len.

Daar­na vraagt het in­stal­la­tie­script of de we­bin­ter­fa­ce ge­ïn­stal­leerd moet wor­den. Dat moet je ze­ker doen, want dat ver­ge­mak­ke­lijkt het la­ter be­he­ren van de fil­ters enorm. Ver­vol­gens moet je be­slis­sen of Pi­ho­le de DNS-re­quests van de clients moet log­gen. Het log­be­stand is een in­te­res­san­te in­for­ma­tie­bron om ach­ter de door de clients aan­ge­vraag­de do­mei­nen te ko­men. Dat is met na­me be­hulp­zaam bij het ver­fij­nen van de fil­ter­re­gels. Als je het log­gen in­scha­kelt, moet je wel zor­gen voor toe­stem­ming van al­le me­de­ge­brui­kers bin­nen je net­werk.

Het in­stal­la­tie­script weet nu al­les wat het we­ten moet en gaat de be­no­dig­de com­po­nen­ten down­lo­a­den en die con­fi­gu­re­ren. Kor­te tijd la­ter zal het script mel­den dat het in­stal­le­ren ge­lukt is en je al­le re­le­van­te da­ta to­nen, zo­als het IPv4- en IPv6-adres, de link naar de we­bin­ter­fa­ce en een random ge­ge­ne­reerd ad­mi­ni­stra­tor­wacht­woord. No­teer die ge­ge­vens of maak een screenshot. Als de in­stal­la­tie ge­lukt is, kom je via http://rasp­ber­ry­pi/ad­min bij de we­bin­ter­fa­ce van Pi­ho­le. Het door de in­stal­ler ge­noem­de adres http://pi.ho­le/ad­min werkt nog niet om­dat de clients nog niet ge­con­fi­gu­reerd zijn.

Clients con­fi­gu­re­ren

Om er­voor te zor­gen dan de clients hun DNS-re­quests in het ver­volg aan Pi-ho­le stel­len, moet je het IPv4- en IPv6-adres er­van nog als DNS-ser­ver in­stel­len. Als je het da­ta­ver­keer van al­le clients in je net­werk wilt fil­te­ren, dan is één in­stel­ling in de rou­ter al vol­doen­de. Daar­mee deel je aan de clients via DHCP mee naar welk adres ze de DNS-re­quests moe­ten stu­ren. Bij een Fritz­box zit die in­stel­lings­mo­ge­lijk­heid bij 'Ho­me Net­work / Ho­me Net­work Over­view' op het tab­blad 'Net­work Set­tings'. Klik op de knop 'IPv4 Ad­dres­ses' on­der 'IP Ad­dres­ses' en vul bij 'Lo­cal DNS ser­ver' on­der 'Ho­me Net­work' dan het IPv4-adres van de Rasp­ber­ry Pi in. Her­haal die stap ver­vol­gens voor IPv6.

Als je al­leen het net­werk­ver­keer van spe­ci­fie­ke clients wilt fil­te­ren, stel je daar­op het ip-adres van de Pi in bij de net­werk­in­stel­lin­gen. Bij Win­dows 10 vind je de be­tref­fen­de in­stel­ling door in het start­me­nu te zoe­ken naar 'Net­werk­sta­tus' en 'Adap­ter­op­ties wij­zi­gen'. Klik met rechts op de ge­wens­te net­werk­ver­bin­ding en op 'Ei­gen­schap­pen'. Daar­na open je de ei­gen­schap­pen van 'In­ter­net Pro­to­col ver­sie 4 (TCP/IPv4)' en vul je het ip-adres van de Pi-ho­le-pi in bij 'De vol­gen­de DNS-ser­ver­adres­sen ge­brui­ken / Voor­keurs-DNS-ser­ver'. Dat her­haal je in­dien no­dig ver­vol­gens nog voor IPv6. Om er­voor te zor­gen dat de clients de nieuw in­ge­stel­de DNS-ser­ver gaan ge­brui­ken, kan het no­dig zijn de net­werk­ver­bin­ding kort te ver­bre­ken. Of al­les goed in­ge­steld is, kun je her­ken­nen aan het feit dat de we­bin­ter­fa­ce van de Pi-ho­le-in­stal­la­tie nu ook te be­rei­ken is via het adres http://pi.ho­le/ad­min.

Om er­voor te zor­gen dat de Pi via IPv6 be­trouw­baar in het lo­ka­le net­werk te be­na­de­ren is, moet je je rou­ter in ie­der ge­val lo­ka­le v6-adres­sen (Uni­que Lo­cal Ad­dres­ses, ULA) la­ten uit­de­len. Bij de Fritz­box zit­ten die in­stel­lin­gen on­der 'Ho­me Net­work / Ho­me Net­work Over­view / Net­work Set­tings / IPv6 Ad­dres­ses / Uni­que Lo­cal Ad­dres­ses'. Ac­ti­veer daar de op­tie 'Al­ways as­sign uni­que lo­cal ad­dres­ses (ULA)'.

Rond­lei­ding door de in­ter­fa­ce

Er ko­men bij een DNS-ser­ver in­te­res­san­te da­ta langs, die een blik in het in­ter­net­ge­bruik van de clients mo­ge­lijk ma­ken. Pi-ho­le laat die da­ta op zijn we­bin­ter­fa­ce over­zich­te­lijk zien en toont bij de Dash­board-weer­ga­ve bij­voor­beeld het to­ta­le aan­tal af­ge­han­del­de DNS-re­quests en hoe­veel daar­van er ge­blok­keerd zijn. Bo­ven­dien kun je ach­ter­ha­len wel­ke do­mei­nen het vaakst be­zocht zijn en wel­ke clients het meest ac­tief zijn. De weer­ga­ve werkt zich au­to­ma­tisch zelf­stan­dig bij en ziet er door het res­pon­sie­ve de­sign ook op een smartpho­ne goed uit. De 'Query Log' le­vert een ge­de­tail­leer­de in­kijk in de laat­ste DNS-re­quests. Daar zie je wel­ke clients wan­neer naar wel­ke do­mei­nen ge­zocht heb­ben en of een re­quest ge­blok­keerd werd ('Pi-ho­led'). Bo­ven­dien kun je de op­ge­vraag­de do­mei­nen met een muis­klik op de blac­k­list of whi­te­list zet­ten – die laat­ste is voor­al be­lang­rijk als een web­si­te of een pro­gram­ma niet meer werkt zo­als nor­maal om­dat Pi-ho­le een nood­za­ke­lij­ke ver­bin­ding ge­blok­keerd heeft.

In de ko­lom 'DNSSEC' staat of Pi-ho­le het DNS-ant­woord van zijn bron cryp­to­gra­fisch kon ve­ri­fi­ë­ren (zie de link on­der­aan dit ar­ti­kel). Via het me­nu-item 'Di­sa­ble' kun je het fil­te­ren voor een be­paal­de tijds­duur uit­scha­ke­len – bij­voor­beeld om een web­si­te te kun­nen be­zoe­ken die niet wil wer­ken als er een ac­tie­ve ad­bloc­ker ge­bruikt wordt. Die func­tie werkt dan wel met­een voor al­le clients. Na af­loop van de in­ge­stel­de tijds­duur trekt Pi-ho­le het schild dan weer om­hoog. In het me­nu on­der 'Tools' kun je de blok­keer­lijs­ten bij­wer­ken ('Up­da­te Lists') en met 'Query ad­lists' con­tro­le­ren of en op wel­ke fil­ter­lijs­ten een be­paald do­mein staat. 'Tail pi­ho­le.log' laat re­al­ti­me het hui­di­ge log­be­stand zien. Daar­mee kun je over de schou­der van dns­masq mee­kij­ken wat die aan het doen is.

Een ele­men­tai­re be­heer­taak als het her­star­ten van het sys­teem en het ver­wij­de­ren van het log­be­stand kun je doen bij 'Set­tings'. Via het sub­me­nu 'Block Lists' kun je in­stel­len wel­ke blac­k­lists er ge­bruikt moe­ten wor­den. Pi-ho­le is in prin­ci­pe bedoeld om te wer­ken als ad­bloc­ker, maar hoeft niet op die ma­nier ge­bruikt te wor­den: op twee van de lijs­ten staan al­leen do­mei­nen

die vaak met mal­wa­re te ma­ken heb­ben en dus op­vie­len door­dat ze mal­wa­re ver­sprei­den of als deel van de in­fra­struc­tuur daar­van wer­ken (Com­mand-and-Con­trol­ser­ver). Als je niet te­vre­den bent met de in­ge­stel­de lijs­ten, kun je in het in­voer­veld on­der­aan de lijst ei­gen blac­k­lists toe­voe­gen. Op de No­coin-lijst staan bij­voor­beeld en­ke­le do­mei­nen die er­voor zorg­den dat de brow­sers cryp­to­coins gin­gen mi­nen. Als je on­li­ne re­cla­me geen pro­bleem vindt en voor­na­me­lijk brow­ser-mi­ning wilt voor­ko­men, dan kun je de No­coin-lijst als eni­ge fil­ter­lijst in­stel­len.

Meer trucs

Je kent nu al­le ele­men­tai­re func­ties om Pi-ho­le te kun­nen star­ten en be­he­ren. Het fil­ter­sys­teem kan ech­ter nog meer: in het FAQ-deel van het pro­ject (zie de link hier­on­der) staat een com­ple­te do­cu­men­ta­tie. Je kunt Pi-ho­le bij­voor­beeld ook via SSH en Ter­mi­nal be­stu­ren. Het com­man­do pi­ho­le -c start bij­voor­beeld een li­ve sta­tis­tiek met de naam chro­no­me­ter, die er dui­de­lijk meer ner­dy uit­ziet dan de fraaie we­bin­ter­fa­ce. Met pi­ho­le -up krijg je de Pi-ho­le-in­stal­la­tie weer he­le­maal up­to-da­te. Met de pa­ra­me­ter -r roep je de con­fi­gu­ra­tie­wi­zard, zo­als je die de eer­ste keer door­lo­pen hebt, weer op­nieuw aan. Dat kan han­dig zijn om de Pi-ho­le in een an­der net­werk te in­stal­le­ren.

On­ze er­va­rin­gen met Pi-ho­le zijn voor­na­me­lijk po­si­tief. Het fil­ter­sys­teem deed zijn werk met de stan­daard­con­fi­gu­ra­tie al goed en fil­tert bij­na al­le re­cla­me-ui­tin­gen er be­trouw­baar uit. Pi-ho­le blok­keer­de 30 tot 50 pro­cent van al­le DNS-re­quests zon­der dat dit tot zicht­ba­re be­per­kin­gen van het in­ter­net­ge­bruik leid­de. Ook op een smartpho­ne was te mer­ken dat het fil­ter ac­tief was om­dat zelfs in-app-re­cla­me en ver­bin­dings­po­gin­gen naar ana­ly­se­be­drij­ven als Mix­pa­nel ge­blok­keerd wer­den – zo­lang die maar via een DNS-re­quest bin­nen­ge­haald wor­den.

Slechts in een en­kel ge­val moesten we ele­men­ten van een web­si­te op de whi­te­list zet­ten om­dat we die door het her­ken­nen van een ad­bloc­ker an­ders niet kon­den ge­brui­ken. Of je on­li­ne re­cla­me door Pi-ho­le of een brow­se­r­uit­brei­ding wilt la­ten blok­ke­ren blijft ech­ter een ge­we­tens­kwes­tie: voor veel web­si­te-ex­ploi­tan­ten is re­cla­me een be­lang­rij­ke – en vaak de eni­ge – in­kom­sten­bron. (nkr)

Als je pro­beert om naar een ge­blok­keer­de web­si­te te gaan, le­vert Pi-ho­le je een blok­keer­mel­ding te­rug.

De Query Log geeft een in­kijk in de DNS-re­quests van de clients. De kleur rood be­te­kent dat een re­quest ge­blok­keerd werd.

Op een rou­ter zo­als de­ze Fritz­box moet je de door de clients te ge­brui­ken DNS­ser­ver ver­van­gen door het ip-adres van je Pi-ho­le.

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.