philpep's blog - tag privoxy philpep's blog - tag privoxy rss http://blog.philpep.org fr Thu, 11 Feb 2010 02:27:05 GMT Pblog Adsuck pour remplacer privoxy http://blog.philpep.org/post/Adsuck-pour-remplacer-privoxy http://blog.philpep.org/post/Adsuck-pour-remplacer-privoxy Thu, 11 Feb 2010 02:27:05 GMT <p>Sur les trois machines clientes chez moi (dont deux avec l'OS à la pomme et de browsers douteux), filtrer les pubs du web au niveau du réseau tout entier est vital, puis il m'arrive de tester des browsers autres que firefox (dans le genre webkit-gtk/bindings vim) et là adblock ne m'est d'aucuns secours.</p> <p>Pendant un temps j'utilisais <a href="http://www.privoxy.org">privoxy</a> sur <a href="/tag/alix">mon routeur OpenBSD</a>, mais je lui ai trouvé plusieurs defauts :</p> <ul> <li>Les regexp de base sont très éfficaces mais il y a malheureusement beaucoup de faux positifs.</li> <li>Le temps de traitement amène une lenteur parfois perceptible.</li> <li>Je l'avais en proxy transparent, donc y'a toujours quelqu'un au bout du 'telnet machin 80' (ça peut être génant)</li> <li>Configuration et maintenance pas franchement agréable.</li> </ul> <p>Du coup en <a href="/post/Alix-fail-et-OpenWrt">reinstallant</a> le routeur j'ai cherché une alternative, et j'ai trouvé <a href="http://www.peereboom.us/adsuck/">adsuck</a>. C'est du filtrage dns, assez violent mais beaucoup plus rapide et tout aussi éfficace.</p> <p>Pour le moment ce soft est codé par et pour OpenBSD, mais ça doit pas être méchant à compiler sur autre chose.</p> <p>L'install :</p> <div class="codehilite"><pre># export PKG_PATH=ftp://ftp.fr.openbsd.org/pub/OpenBSD/4.6/packages/i386/ # pkg_add adsuck # cat &gt;&gt; /etc/rc.local &lt;&lt; EOF if [ &quot;&quot; != &quot;NO&quot; -a -x /usr/local/sbin/adsuck ]; then echo -n &#39; adsuck&#39;; /usr/local/sbin/adsuck $adsuck_flags fi EOF # cat &gt;&gt; /etc/rc.conf.local &lt;&lt; EOF adsuck_flags=&quot;-c /var/adsuck -l 127.0.0.1 -p 54 -f /files/resolv.conf /files/hosts.small /files/Hosts.pub /files/local.pub&quot; EOF </pre></div> <p>Comme j'ai un vrai serveur DNS (pour le réseau local mais aussi pour mes domaines), j'ai lancé adsuck sur le port 54 (dns normal c'est 53) et fait une redirection pour le réseau local avec <a href="/tag/Packet%20filter">pf</a>, adsuck va lui même servir de proxy entre le réseau local et le serveur DNS qui tourne sur localhost en particulier.</p> <div class="codehilite"><pre># echo &quot;nameserver 127.0.0.1&quot; &gt; /var/adsuck/files/resolv.conf # touch /var/adsuck/files/local.pub </pre></div> <p>On lance une première fois :</p> <div class="codehilite"><pre># adsuck -c /var/adsuck -l 127.0.0.1 -p 54 -f /files/resolv.conf /files/hosts.small /files/Hosts.pub /files/local.pub </pre></div> <p>Si ça se lance, on peut rediriger le traffic du réseau local vers adsuck :</p> <div class="codehilite"><pre>table &lt;local&gt; const { 192.168.0.0/24 } rdr pass on $ext_if proto udp from &lt;local&gt; to $ext_if port domain -&gt; lo0 port 54 # Si vous êtes vraiment méchant vous pouvez enlever le 2ème $ext_if :) </pre></div> <p>Maintenant sur une machine du réseau local :</p> <div class="codehilite"><pre>% host www.smartadserver.com dns1.proxad.net www.smartadserver.com has address 91.103.138.65 % host www.smartadserver.com Host www.smartadserver.com not found: 3(NXDOMAIN) </pre></div> <p>Et vous voilà avec un net plus très neutre mais épuré de toute publicité. Pour rajouter des sites, je vous ai fait créer un <code>/var/adsuck/files/local.pub</code>, la syntaxe est simple :</p> <div class="codehilite"><pre>127.0.0.1 domaine_moisi.com </pre></div> <p>Et pour faire relire les listes à adsuck :</p> <div class="codehilite"><pre># kill -USR1 `pgrep adsuck` </pre></div> Faire sauter les pubs de Canal Plus http://blog.philpep.org/post/Faire-sauter-les-pubs-de-Canal-Plus http://blog.philpep.org/post/Faire-sauter-les-pubs-de-Canal-Plus Thu, 17 Dec 2009 13:41:32 GMT <p>Si vous êtes adeptes du zapping / petit journal actu de Canal Plus et que vous n'avez pas la TV et que les scripts shell qui chopent directement les vidéos ne marchent plus au bout d'une semaine, il vous faut alors aller sur leur beau site tout en flash et manger la pub d'une minute avant chaque vidéo.</p> <p>Sauf que, en fouillant dans le code source des pages on trouve assez facilement d'où viennent les vidéos de pubs, ils suffit alors de bloquer le domaine en question qui est <code>smartadserver.com</code>. Les videos de canal plus sont dans <code>www3.smartadserver.com/call/pubi/</code> , mais libre à vous de bloquer completement <code>smartadserver.com</code>.</p> <p>Donc mettez la bonne ligne qu'il faut dans votre Adblockplus / proxy. Moi j'ai un privoxy transparent qui filtre tout le réseau local et la syntaxe est la suivante (dans la conf, le fichier <code>user.action</code>)</p> <div class="codehilite"><pre>{ +block{Nasty ads.} } www3.smartadserver.com/call/pubi* </pre></div> <p>Un jours je trouverais un moyen simple (module firefox ?) pour mettre à jours les règles privoxy plus facilement, et je partagerais ma config promis :-).</p>