13 Déc 2009

Proxy Squid anti-pub

Category: Internetadmin @ 23:46

La publicité est un marché extrêmement juteux sur Internet, et comme chacun a envie d’en profiter, cela devient vite assez encombrant. Certains sites en deviennent presque illisibles ou très difficilement navigables, et ressemblent plus à une collection de spams qu’à un site Internet. Il est toujours possible d’utiliser les extensions Adblock Plus et Flashblock sur Firefox, mais les autres navigateurs ainsi que les programmes qui utilisent une frame Internet Explorer ne sont pas protégés. La solution ultime : le proxy anti-pub ! Suivez le guide…

Cet article montre la configuration d’un proxy Squid sous Linux pour la protection contre les publicité. Je ne couvrirai donc pas l’installation du dit proxy, ou de sa configuration en tant que proxy transparent (je vous déconseille une telle configuration car vous ne pourrez alors plus choisir ou non de voir les publicités en désactivant le proxy sur le navigateur).

Donc, après avoir installé et testé votre Squid, voici les quelques étapes à suivre :

Premièrement, allons récupérer une liste de sites connus pour faire de la publicité. Vous pouvez récupérer une telle liste sur ce site (ici un lien direct vers une liste exploitable) qui propose fréquemment une mise à jour de tels serveurs, ou bien ma propre liste que j’ai personnalisée avec quelques serveurs inconnus de la liste précédente. Par convention, je nomme adservers.reg le fichier contenant cette liste de serveurs. Placer ce fichier dans le dossier de configuration (etc) de squid. Cette étape sera à renouveler de temps en temps afin de mettre à jour la liste des serveurs.

Deuxième étape, la configuration de squid. Ouvrez dans votre éditeur favori le fichier squid.conf. Si vous avez gardé le fichier de configuration par défaut de Squid (juste personnalisé), alors suivez les instructions à la lettre. Sinon, si vous avez créé votre propre fichier de configuration, vous devriez pouvoir vous débrouiller avec ce qui suit.

Trouvez le paragraphe qui concerne les autorisations d’accès : pour cela, cherchez la chaîne : « TAG: http_access » dans votre fichier de configuration. Un peu plus bas vous devriez avoir une ligne qui indique « INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS ». C’est juste en dessous de cette ligne qu’il va falloir insérer le code suivant :

acl adservers dstdom_regex "/usr/local/squid/etc/adservers.reg"
log_access deny adservers
http_access deny adservers
deny_info about:blank adservers

Changez évidemment le chemin vers le fichier adservers.reg.
Petite explication des quatre lignes ci-dessus : la première définit le nom « adservers » comme étant une liste de domaines en regex venant du fichier adservers.reg. Ensuite, nous interdisons d’enregistrer dans le fichier journal les accès à ces domaines (pas intéressant). Puis nous interdisons l’accès à ces domaines, et enfin nous précisons une URL (ici about:blank) qui déterminera le message d’interdiction. Ce faisant, toute image ou flash sera purement ignorée par le navigateur, et, le must, même les popups seront désactivées ! (aucune popup blanche ne sera ouverte, car le serveur répond avec une redirection 302 vers about:blank, que le navigateur va donc ignorer).

Redémarrez évidemment Squid pour prendre en compte les changements, et configurez si ce n’est déjà fait vos navigateurs pour utiliser le proxy.

Pour ajouter un serveur dans la liste, modifiez simplement le fichier adservers.reg et ajoutez la chaîne regexp, en suivant l’exemple sur les autres (échappez les points et ajoutez les tags au début et à la fin). Il faut toujours redémarrer Squid après une modification de ce fichier.

Bonus : voici un script qui permettra de mettre à jour automatiquement votre liste à partir de l’URL en début d’article (modifiez la première avec le chemin correct vers adservers.reg et la dernière ligne avec la méthode appropriée à votre distribution pour relancer Squid) :

#!/bin/sh
cd /etc/squid/
wget 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex&showintro=1&startdate[day]=&startdate[month]=&startdate[year]=&mimetype=plaintext' -O adservers.2
cat adservers.* | sort | uniq | grep -v mnstat > adservers.new
mv adservers.new adservers.reg
rm adservers.2
service squid restart

Dernière chose, sur le site proposé à la première étape, il est possible d’utiliser plusieurs méthodes pour bloquer l’accès aux sites de pub, comme le fichier DNS ou le fichier HOSTS. Ces méthodes sont aussi efficaces mais ne permettent pas de choisir ponctuellement de désactiver le filtre anti-pub.

Aux armes, il est grand temps de combattre ce fléau qui inonde le web !

Étiquettes : , , ,

4 Réponses à “Proxy Squid anti-pub”

  1. ZipLine a dit:

    merci pour ce petit post, il m’a bien aidé à nettoyer les pubs de mes postes, j’avais eu au départ idée d’utiliser privoxy avec squid mais sans résultat ( ça fait planter squid ). Là, c’est simple, rapide à mettre en place et sans prise de tête.

  2. Slikke a dit:

    Super ! l’article est clair l’install m’a pris 5 mn et quand on tourne sur une connection wifi ca vaut le coup !
    Merci bien !

  3. Fanch a dit:

    Merci pour ce script !
    Ça va aider pour le serveur billig, sa liste date de plusieurs années. (Si tu te souvient 😉 )

  4. Gaetan a dit:

    Merci, c’est exactement ce que je cherchais.

    🙂

Laisser une réponse