block-ethernet-hand

Utiliser Polipo à la place d’Adblock pour bloquer les publicités.

Bloquer les pubs, cela crée souvent des débats. Tantôt houleux, tantôt stériles. Souvent stériles même. Dans mon cas c’est dans l’optique d’accélérer le temps de chargement des pages web depuis ma connexion web pas folichonne, et aussi pour éviter d’exploser mes mirettes sur des sapins de noël. Enfin, là n’est pas l’important. Nous allons voir comment se passer d’Adblock et filtrer les connexions entrantes d’un pc pour virer ces publicités.
Polipo est un proxy hyper-légerprincipalement dédié à un pc ou un groupe de pc restreint. Il est d’une simplicité enfantine à configurer, surtout par rapport à Privoxy. Nous allons voir comment installer Polipo, lui ajouter les listes Adblock, et l’optimiser un peu.

 

Installons, sous Fedora (assez de lire des tutos ne traitant que d’Ubuntu! ), Polipo qui se trouve dans les dépôts:

yum install polipo

puis:
systemctl start polipo.service

 
Le gros avantage de ce proxy est sa simplicité. Il y a un fichier de configuration, une liste nommée ”forbidden“ ainsi qu’une interface web pour accéder facilement aux paramètres principaux. Par défaut il est pré-configuré et prêt à utiliser. Il faut juste lui ajouter des domaines à bloquer pour supprimer les publicités. Chose excellente, il existe 2 scripts qui permettent de convertir facilement les listes Easylist utilisées par Adblock, en variables du fichier ”forbidden“. Il suffit dans un premier temps de télécharger les listes que l’on souhaite utiliser, puis dans un deuxième temps télécharger soit le script Python soit le script Ruby, dans un même dossier. Une fois cela de fait on tapera pour le script Python, en root, dans un terminal:
./adblock2polipo.py easylist.txt >> /usr/local/etc/polipo/forbidden

ou pour le script Ruby:
./adblock2polipo.rb easylist.txt >> /usr/local/etc/polipo/forbidden

 

Simple comme bonjour. Sauf que les pubs bloquées seront remplacées par une moche erreur 403. Pour que cela soit plus joli, utilisons une image transparente à la place (ou un lolcats, au choix). Par contre si on monte certains dossiers sur la RAM (voir plus bas dans l’article), on ce réglage se réinitialisera à chaque démarrage de Polipo. :-( Téléchargeons ce .gif transparent et copions-le dans le répertoire approprié:

wget http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif
sudo mv ‘~/Transparent.gif’ ‘/usr/share/polipo/www’

Puis rendons-nous dans la page de configuration de Polipo 127.0.0.1:8123 et mettons comme valeur pour ”ForbiddenURL“:
http://127.0.0.1:8123/Transparent.gif

 

Polipo semble ne pas écrire beaucoup par défaut sur le disque dur. Mais, si nous disposons de suffisamment de RAM, mieux vaut lui indiquer d’utiliser un maximum de cache sur la mémoire RAM quand même. Ouvrons le fichier /etc/polipo/config et dé-commentons les lignes:

chunkHighMark = 50331648
objectHighMark = 16384
diskCacheRoot = ""

 

Ensuite montons en tmpfs le cache de Polipo. pour cela éditons le fichier /etc/fstab et ajoutons à la fin:

tmpfs /var/cache/polipo tmpfs defaults,user,noexec,noatime,size=500M,mode=0777 0 0

Si /var/log n’est pas déjà sur la ram, on peut choisir de monter /var/log/polipo en tmpfs:
tmpfs /var/log/polipo tmpfs defaults,user,noexec,noatime,size=500M,mode=0777 0 0

Il est fortement conseillé de supprimer le cache de Firefox pour éviter que les données soient mises en cache à la fois par Polipo est par Firefox. Ouvrons la page ”about:config“ et mettons à 0 les variables suivantes (créez-les si elles n’existent pas):
browser.cache.memory.capacity
browser.sessionhistory.max_total_viewers

 

Enfin configurons Firefox pour qu’il utilise le proxy. Allons dans Edition > Préférences > Avancé > Configurer et remplissons comme sur la capture d’écran qui suit:

gnome-reseau-config

 

 

Si on veut que tout le système passe aussi par Polipo, il faut aller dans les paramètres réseaux et ajouter les valeurs ”localhost“ et ”8123“, par exemple pour Gnome:

Capture du 2013-02-28 19:44:42

 

Une fois tout se qui précède d’effectué mieux vaut redémarrer la machine pour que tout les paramètres soient pris en compte.

[sources: 1, 2, 3]

 

Notes:
L’utilisation du disque dur doit être presque équivalente entre un Firefox optimisé pour avoir son cache en ram et Polipo avec les paramètres cités dans l’article. J’ai pu remarquer un léger temps de latence avant qu’une page ne s’affiche dans Firefox, alors qu’avec Adblock il n’y en a pas. Cela doit provenir de la consultation du cache de Polipo.
La conversion des listes Easylist semble oublier certaines url. Rien de grave, mais il faut les ajouter à la main. Dommage.

5 commentaires

Toi et ton amour immodéré de la pub:)

j’assume pleinement cet amour ;-)

[…] et ne voir que ce qu‘on désire voir des internets. Il est possible de passer par privoxy ou Polipo pour bloquer les publicités et certains contenus. Au prix de longues heures de configuration et […]

Salut !
Quel est l’avantage de Polipo/Privoxy vs AdBlock ?
Bye
I-PC

le gros avantage est d’avoir toutes les connections internet entrantes de filtrées par ce type de serveur. Plus besoin de paramétrer chaque navigateur ou application pour cela.
En contrepartie, c’est plus difficile à paramêtrer et le filtrage est moins fin qu’avec un plugin adblocks.

Donc si tu n’utilises simplement qu’un navigateur ça ne vaut forcément la peine. Par contre si tu as un agrégateur de flux, un client mail ou autre en plus, ça vaut le coup. Privoxy permet des réglages plus complexes que Polipo, mais je le trouve trop complexe justement…

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.