Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Advertising blokkeren via hosts  (gelezen 3837 keer)

Offline Bloom

  • Lid
  • Steunpunt: Ja
Advertising blokkeren via hosts
« Gepost op: 2012/02/24, 12:18:34 »
Je kunt op internet een speciale hosts file vinden die meer dan 16.000 (!) domeinnamen van adverteerders naar localhost (127.0.0.1) doet wijzen. Daardoor kan je browser ze niet 'zien', kunnen ze geen cookies op je systeem installeren of proberen spyware (voor Windows) bij je naar binnen te duwen.
De WinHelp2002 site waarnaar ik in de link verwijs praat alleen over Windows, maar de hosts file werkt dus ook prima met Linux.
Je gebruikt best niet de hele file, maar alleen het stuk met de advertisers. Het voorste stuk is de localhost-sectie voor je computer en dat wijkt bij Windows af van hoe het onder Linux is. Om problemen te vermijden laat je dat eerste stuk dus best staan zoals het is onder Linux.
Download de file en pak die uit. Je kunt ook meteen een tekstbestand van de site downloaden of openen. Als je het in je browser opent, kopieer dan alles vanaf '# [Start of entries generated by WinHelp2002]' tot het einde in het klembord.

Om je hosts-file in Linux te wijzigen heb je rootrechten nodig. Tik Alt+F2 en dan krijg je een uitvoerdialoogvenstertje.
Tik in:
gksudo gedit /etc/hostshierbij zal je rootwachtwoord gevraagd worden en dan heb je /etc/hosts geopend in een editor in rootmodus. Hou het bovenste stuk van die file zoals je het nu ziet, want daar zitten wat verschillen in met Windows. Als je de advertiser-lijnen vanuit je browser in het klembord gekopieerd had, kun je de volgende paragraaf overslaan.

Klik bovenaan op het open-pictogram en navigeer naar en open het gedownloade hosts-bestand. Omdat je nu in rootmodus zit, begint de navigatie niet in je eigen thuismap, maar in de rootdirectory. Klik op Bestandssysteem, daarna /home daarna directory dirk en dan Downloads als dat was waar je de gedownloade hosts-file gezet had. Dubbelklik op de file.
Dat opent zich nu in een tweede tab in de teksteditor Gedit. Je ziet een hosts-file die begint met de gebruikelijke dingen voor Windows en even lager zie je:
# [Start of entries generated by WinHelp2002]
# [Misc A - Z]
127.0.0.1  fr.a2dfp.net
127.0.0.1  m.fr.a2dfp.net
127.0.0.1  ad.a8.net
enz.
Kopieer vanaf '# [Start of entries...' tot helemaal onderaan alles (kies het met de muis en tik ctrl+C, ctrl+INSERT of klik op Bewerken en Kopiƫren).

Klik nu op de tab met je originele /etc/hosts en plak alles onderaan erbij. Bewaar en sluit de editor af. Klaar!
De site werkt die hostsfile een paar keer per jaar bij en dan volg je weer dezelfde procedure, alleen moet je alvorens te plakken natuurlijk de oude tekst markeren zodat die overschreven wordt bij het plakken.
De huidige file dateert overigens van 18 januari.

Zelf werk ik al jaren met deze file en het werkt prima!

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #1 Gepost op: 2013/03/07, 22:03:31 »
Ik heb een script gemaakt om het MVPS-hostsbestand volautomatisch af te halen en te integreren in onze eigen /etc/hosts.
Begin met een kopie te maken van de huidige hosts ZONDER de MVPS-data erin.
sudo cp /etc/hosts /etc/hosts.0Mocht je toch al MVPS-data in je hosts opgenomen hebben, editeer dan hosts.0 om die er weer uit te halen.
Maak nu een bestand genaamd newhosts aan in je home-directory met je favoriete editor. Zet er dit in:
# controleer onze internetverbinding
if ! ping -c 1 -w 1 8.8.8.8 >/dev/null; then
  if ! ping -c 2 -w 1 8.8.4.4 >/dev/null; then
    echo 'PROBLEEM: geen internetverbinding!' >>/var/log/internet.log
    exit 0
  fi
fi
# we hebben internet, dus downloaden maar...
wget -O - http://www.mvps.org/winhelp2002/hosts.txt | grep 127.0.0.1 |
sed '2,$s/127.0.0.1/0.0.0.0/g; s/[[:space:]]*#.*$//g;' |
grep -v localhost | tr ' ' '\t' |
tr -s '\t' | tr -d '\015' | sort -u >/tmp/hosts0
cat /etc/hosts.0 /tmp/hosts0 >/etc/hosts
rm /tmp/hosts0
We moeten ons script nu uitvoerbaar maken en ervoor zorgen dat het uitgevoerd wordt bij iedere systeemstart en zodra het netwerk actief wordt.
chmod +x newhosts
sudo mv newhosts /etc/network/if-up.d/
Klaar! Nu wordt de MVPS hosts-file automatisch afgehaald en in je eigen hosts file verwerkt bij iedere systeemstart.
Overigens worden hier wel alle 127.0.0.1 vervangen door 0.0.0.0 omdat het eerste moet wachten op een time-out en het tweede niet en dus sneller werkt onder Linux. We halen verder ook nog alle commentaarlijnen weg.

Offline jan11000

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #2 Gepost op: 2013/03/07, 22:16:39 »
Wat is het verschil met adblock in je firefox als add- on.

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #3 Gepost op: 2013/03/07, 22:37:45 »
Het neemt geen extra geheugen of processorcapaciteit in beslag (in tegenstelling tot een browser add-on) en je weet precies wat er geblokkeerd wordt of je kunt dat tenminste nakijken.

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #4 Gepost op: 2013/03/08, 10:36:04 »
Nice. :) Ik heb het script toegevoegd, en addblock uitgeschakeld. Werkt super!

Thx.

Offline joop905

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #5 Gepost op: 2013/03/08, 12:05:58 »
Goed werk, bedankt!

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #6 Gepost op: 2013/03/08, 15:10:53 »
Helaas werkt de methode niet voor de google zoekmachine pagina, logisch ook wel, want Google serveert die pagina denk ik geheel zelf van de eigen server. Dat kan je dan niet blokken met de hosts file...

Offline markba

  • Lid
    • http://markbaaijens.nl/
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #7 Gepost op: 2013/03/08, 15:45:21 »
Helaas werkt de methode niet voor de google zoekmachine pagina, logisch ook wel, want Google serveert die pagina denk ik geheel zelf van de eigen server. Dat kan je dan niet blokken met de hosts file...
Daarom zal en-en de oplossing wel zijn: de hosts-file om het gros (95%) van die onzin af te vangen, de ad-blocker voor de rest. Dan heb je de voordelen van beiden.

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #8 Gepost op: 2013/03/08, 19:47:31 »
Is dat zeker? Ik kan me namelijk ook voorstellen dat het voor het functioneren van een add-blocker helemaal niets uitmaakt of die hosts file nu wel of niet aangepast is. In dat geval zou het dus dubbel werk opleveren als er met de hosts file, en met een addblokker geblokkeert word. Of is het zeker dat de add blocker minder hoeft te doen als de hosts file het e.e.a. aan verbindingen blokkeert?

Offline Vistaus

  • Webteam
    • vistaus
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #9 Gepost op: 2013/03/08, 20:25:33 »
Bedankt voor het script, Bloom! Ik heb het toegepast en nu afwachten maar! :)

Offline markba

  • Lid
    • http://markbaaijens.nl/
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #10 Gepost op: 2013/03/08, 20:30:58 »
Of is het zeker dat de add blocker minder hoeft te doen als de hosts file het e.e.a. aan verbindingen blokkeert?
De ad-blocker hoeft idd niets te doen, want er komt ook niets binnen, dat wordt op een laag niveau afgevongen.

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #11 Gepost op: 2013/03/08, 21:31:46 »
Hmmm.. ik heb er even over nagedacht, en ben nog niet overtuigd. :D

Volgens mij wordt er inderdaad geen dubbel werk verzet. Echter is het volgens mij niet zo dat de hosts file voorkomt dat Addblocker zijn werk hoeft te doen, in tegendeel, Addblocker voorkomt dat de hosts file werk hoeft te doen volgens mij. Een addblocker doet zijn werk in de browser, en dan is het logisch dat deze zijn werk doet door te verhinderderen dat adds opgevraagd worden. Een addblocker in een browser blokkeert volgens mij dus uitgaande verbindingen, het opvragen van advertenties. De hosts file blokkeert het vinden van bepaalde hosts, maar als er geen uitgaande verbindingen door de browser worden gemaakt naar deze advertentie hosts, dan hoeft de hostsfile dus geen werk te doen omdat de addblocker al het werk al verzet.

Ik heb even gegoogled, en volgens mij klopt dit:
Citaat
Adblock Plus is a content-blocking browser extension. It blocks HTTP request so it can prevent any unwanted element (such as advertising) from being loaded in the browser.
bron: http://chromeadblock.org/extensions/adblock-for-chrome/

Mijn conclusie is, tot iemand me verteld hoe het echt zit ;), dus dat wanneer je de hosts file blokkade wilt gebruiken voor snelheidswinst, dat je dan geen addblocker moet installeren, want dan schiet je niks op.

Offline markba

  • Lid
    • http://markbaaijens.nl/
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #12 Gepost op: 2013/03/08, 22:00:58 »
De hosts file blokkeert het vinden van bepaalde hosts, maar als er geen uitgaande verbindingen door de browser worden gemaakt naar deze advertentie hosts, dan hoeft de hostsfile dus geen werk te doen omdat de addblocker al het werk al verzet.
In eerste instantie dacht ik dat het andersom zou zijn, maar je uitleg klinkt best logisch dus je zou best eens gelijk kunnen hebben. En dan heb je idd niets aan een en-en oplossing. :(

Offline h2o

  • Lid
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #13 Gepost op: 2013/03/09, 19:25:16 »
Heel mooi allemaal (en ik gebruik een dergelijke toevoeging op /etc/hosts al tijden), maar dit bestand is kennelijk continue aan wijzigingen onderhevig. En als ik het zo zie is verreweg het grootste deel voor ons Nederlanders, Belgen en andere landen waar forumlezers wonen, niet relevant
Mooier zou zijn als het op de een of andere manier automatisch bijgewerkt kan worden.

EDIT: Is deze informatie misschien ook niet bruikbaar? http://www.debian-administration.org/article/Blocking_ad_servers_with_dnsmasq

Ik ben op dit moment niet in staat om dit allemaal te doorgronden, maar misschien kan iemand anders dit oppakken?
« Laatst bewerkt op: 2013/03/09, 19:31:14 door h2o »
Laptops + werkstations: Debian Stable + backports, server Debian Stable.
Test-laptop: Debian Tesing/Unstable

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #14 Gepost op: 2013/03/09, 22:45:45 »
Je hebt kennelijk gemist dat mijn script telkens de nieuwste MVPS hosts afhaalt en invoegt in /etc/hosts. Dat het MVPS-bestand van tijd tot tijd verandert wordt dus wel degelijk mee verwerkt.

Offline testcees

  • Documentatieteam
    • testcees
    • www.testcees.nl
  • Steunpunt: Nee
Re: Advertising blokkeren via hosts
« Reactie #15 Gepost op: 2013/11/03, 17:30:00 »
Mogelijk moet het script newhosts in /etc/network/if-up.d/ beginnen met de regel:
#!/bin/sh
Alleen dan werkt het bij mij (Ubuntu 13.04) automatisch.

Offtopic tip: tegen 'more suggestions' in Unity kan de volgende regel worden toegevoegd:
0.0.0.0         productsearch.ubuntu.com
aan /etc/hosts of als je het script van Bloom gebruikt aan /etc/hosts.0
`Wie wil de Nederlandstalige Ubuntu documentatie wiki onderhouden? https://wiki.ubuntu-nl.org

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Advertising blokkeren via hosts
« Reactie #16 Gepost op: 2014/01/01, 11:24:55 »
# we hebben internet, dus downloaden maar...
wget -O - http://www.mvps.org/winhelp2002/hosts.txt | grep 127.0.0.1 |
sed '2,$s/127.0.0.1/0.0.0.0/g; s/[[:space:]]*#.*$//g;' |
grep -v localhost | tr ' ' '\t' |
tr -s '\t' | tr -d '\015' | sort -u >/tmp/hosts0
cat /etc/hosts.0 /tmp/hosts0 >/etc/hosts
rm /tmp/hosts0
Dit stukje script werkt niet meer behoorlijk. De mensen van MVPS hebben immers zelf besloten geen 127.0.0.1 meer op te nemen in hun hosts-bestand maar meteen 0.0.0.0. Daardoor werkt het bovenstaande scriptje niet meer correct, want dat veronderstelt dat overal 127.0.0.1 staat om dat dan te veranderen naar 0.0.0.0.
Hieronder een nieuw stukje script dat werkt voor het nieuwe hosts-bestand waar al overal 0.0.0.0 staat:
# get MVPS hosts file to block ad sites and merge it with our hosts file
wget -O - http://www.mvps.org/winhelp2002/hosts.txt | sed 's/[[:space:]]*#.*$//g;' |
grep -v localhost | tr ' ' '\t' | tr -s '\t' | tr -d '\015' | sort -u >/tmp/hosts0
cat /etc/hosts.0 /tmp/hosts0 >/etc/hosts
rm /tmp/hosts0