Artisan Numérique

/système/sécurité/web/ Se prémunir des "SpyWebs" avec Privoxy

Avec l'expansion de services comme Google Analytics, les moyens de se prémunir des SpyWebs prennent de plus à en plus d'importance. Et si des outils comme adBlock offre une très protection locale efficace, la protection d'un réseau dans son entier ne peut se passer de privoxy, un proxy filtrant aux possibilités étonnantes et disponible sur beaucoup de systèmes de Windows à Linux en passant par AmigaOS.

Qu'est-ce qu'un SpyWeb ?

Pour faire simple, le SpyWeb est à la toile ce que le SpyWare est à Windows, des applications qui s'exécutent dans votre dos par le simple fait de visiter un site. Et les dangers liés à leur présence sont aussi nombreux que clairement sous-estimés :

  • Ces outils collectent toutes sortes d'informations vous concernant qui sont généralement liés à votre adresse IP. Cet aspect est aujourd'hui critique pour les internautes disposant d'une adresse IP fixe (tous les abonnés de Free par exemple), mais le sera demain pour tout le monde, lorsque chaque internaute aura sa propre IPv6.
  • La globalisation de l'usage de certains de ces SpyWebs, typiquement Google Analytics, implique que la majorité des sites que vous visitez utilisent ce "service", et par conséquent nourrissent les bases de données d'un acteur unique (Google, Xiti, etc.). Associé au point précédent, cette généralisation laisse imaginer la densité des informations potentiellement nominatives vous concernant, et échappant à toute action de la CNIL.
  • Se présentant généralement sous la forme de code JavaScript, personne, y compris les WebMasters qui les incluent avec beaucoup de légèreté dans leur pages, ne peut être assuré de ce qu'ils font réellement, et encore moins de ce qu'il feront demain.
  • Certains de ces SpyWebs vont très loin dans leur collecte d'information, jusqu'à se transformer en véritable outil de piratage enregistrant littéralement l'ensemble des actions effectuées au sein d'un même site avec votre souris ET votre clavier (saisie de mots de passe, de coordonnées perso, etc.). Même si l'usage de ces outils n'est pas généralisé, que se passera t-il demain, si par exemple Google, décide d'inclure se type de fonctionnalité ?
  • Vu du côté des WebMasters, les outils décentralisés comme Google Analytics impliquent une perte d'informations vitales concernant leurs visiteurs car elles ne leur appartiennent pas. Ce n'est sûrement pas critique pour un bloggeur mais beaucoup plus pour un site professionnel lorsque viendra le moment d'utiliser des outils comme Business Object pour procéder à des études plus poussées que celles fournies en standard.
  • Enfin, le moindre mal, ces outils, comme les publicités et autres flasheries, pourrissent votre bande passante en ajoutant de nombreux téléchargements inutiles à l'information affichée.

Entendons-nous bien, je comprends parfaitement l'importance des outils statistiques pour la gestion de la stratégie d'un site. Mais il existe aujourd'hui d'autres solutions (awstats, piwik (anciennement phpmyvisites), etc.) qui stockent localement les données des utilisateurs. Il est aujourd'hui parfaitement possible, avec certes un peu plus d'efforts, d'obtenir les mêmes résultats avec en prime un respect de ses utilisateurs, et une maîtrise des données.

Google Dashboard

Autre point intéressant, même si vaguement hors sujet, Google a mis en place un tableau de bord (dashboard) permettant de savoir ce qui est stocké par ses services à votre nom. Malheureusement il n'est pour l'instant possible que d'avoir accès à ce qui est directement rattaché à votre compte gmail et pas ce qui a été collecté à partir de votre adresse IP... C'est un premier pas qu'il faut saluer, mais il est à espérer que Google ne s'arrête pas en si bon chemin.

Toujours est il que cette page résume assez bien le problème de l'utilisation de services (le fameux cloud computing) dont on ne saisit pas les tenants et aboutissants.

J'y ai par exemple découvert avec un peu d'horreur que l'ensemble des mes conversations privées via mes comptes gtalk étaient consciencieusement archivées... Sur le dashboard, vous avez ainsi accès à la liste de toutes vos conversations avec la possible de les supprimer (en espérant que ce soit fait honnêtement et en n'oubliant pas de vider la corbeille) et paramétrer gtalk pour ne plus archiver l'historique dans l'avenir (là aussi en espérant que ce soit honnête). Pour plus de sécurité vous pouvez aussi passer par un compte jabber plus sur, mais cela n'empêche pas votre correspondant d'utiliser gtalk. Une option plus simple est peut-être de simplement demander à vos correspondant d'installer le plugin de chiffrement Off-the-Record Messaging pour pidgin.

Qu'est-ce que privoxy ?

Pour revenir à nos spywebs, il existe quelques méthodes pour s'en débarrasser localement des SpyWebs mais privoxy demeure la plus efficace s'agissant de protéger globalement un réseau.

Privoxy est un proxy HTTP "filtrant" dont le rôle est "simplement" d'analyse chaque page de chaque sites que vous visitez pour y éradiquer publicités et SpyWebs.

Pour arriver à ses fins, privoxy dispose de deux techniques. Soit il va interdire, comme le ferait AdBlock, l'accès à certains sites, soit il va modifier, "à la volée" les pages que vous recevez (par exemple pour altérer des scripts dangereux).

Privoxy est en outre capable de "désanimer" des images GIF, de nettoyer vos cookies pour qu'ils ne laissent pas passer d'information, de maquiller l'identité de votre navigateur. Bref, c'est un outil complet, simple d'utilisation, rapide à installer, prêt à l'emploi et complètement paramétrable pour filtrer encore plus loin.

Au final, le navigateur va recevoir une page la plus "pure" possible débarrassée de tout ce qui peut nuire à la lisibilité, à la bande passante et à la sécurité.

Maintenant la suppression des encarts de pub est un peu plus litigieuse que celles des SpyWebs. En effet le modèle de financement et donc de développement de la toile s'appuie très massivement sur la publicité. Et même si je suis le premier à regretter les abus grandissant ces dernières années (on est loin de l'époque du linteau de pub en haut de la page), le choix de les supprimer purement et simplement n'est pas forcement la bonne solution.

Malheureusement l'éradication de la publicité devient ici un des dommages collatéraux lié à la guerre anti-SpyWebs. En effet, autoriser la publicité et pas les SpyWebs n'a aucun sens car les deux reposent sur les mêmes mécanismes. A titre d'exemple, GoogleAd se base sur un script show_ads.js pour afficher la pub. Aujourd'hui Google Analytics se base lui sur le script urchin.js. On pourrait logiquement autoriser le premier et bloquer le second. Mais si cette pratique se généralise, Google aura tôt fait de vider urchin.js pour transférer la logique d'espionnage sur show_ads.js rendant la protection caduque. La destruction systématique des scripts externes est donc la priorité même si la publicité en pâtie.

La seule solution que j'ai trouvé à ce problème consiste à débloquer la publicité sur les sites que je considère comme "ami", ce qui se fait très simplement avec Privoxy.

Installation

Privoxy peut être installé sur une machine de bureau mais prend sa pleine puissance une fois mis en place sur tout un réseau. Il va donc falloir choisir une machine qui sera connue des autres mais il n'est pas nécessaire qu'elle soit dédiée à cette tâche. Privoxy prend peu de ressource mémoire et CPU, n'importe quelle machine sous n'importe quel système devrait convenir pour peu qu'elle soit allumée en permanence. Pour la suite j'appellerais cette machine, machine_privoxy.

Toutes les versions binaires pour tous les Systèmes sont téléchargeables ici. Pour un système GNU/Linux l'installation se fait comme suit :

rooturpmi privoxy
ou
rootapt-get install privoxy
root/etc/init.d/privoxy start
Lancement de privoxy :                                      [  OK  ]

Normalement, privoxy est installé avec sa configuration /etc/privoxy/config prête à l'emploi. Cependant il peut être utile de faire son propre paramétrage, ne serait-ce que pour mettre le service en écoute d'une adresse IP publique (par défaut c'est localhost:8118). Voici la mienne que j'ai commenté :

# dossier de configuration
    confdir /etc/privoxy


# dossier de stockage des traces
    logdir /var/log/privoxy
    logfile privoxy.log

# niveau de debuggage dans les traces. 
    debug         1 # Affiche toutes les connections et éventuels "crunch"
#    debug         2 # Affiche le statut des connexions
#    debug         4 # Affiche le statut des entrées-sorties
#    debug         8 # Affiche le parsing des headers
#    debug        16 # Afficher toutes les données reçues ou envoyées (un peu lourd !)
    debug        32 # debug force feature
    debug        64 # debug regular expression filters
    debug       128 # debug redirects
    debug       256 # debug GIF de-animation
    debug      4096 # Startup banner and warnings. 
    debug      8192 # Non-fatal errors

# Actions
    actionsfile standard.action  
    actionsfile default.action   
    actionsfile user.action      

# Filtres
    buffer-limit 4096             # limite de taille des contenus filtrables
    filterfile default.filter
    #filterfile user.filter       # peut être décommenté pour créer ses filtres custom

# adresse et port sur lesquels sont ouvert le proxy
    listen-address  192.168.154.102:8118 

# A décommenter (et modifier) pour chaîner à un autre proxy
#   forward   /      localhost:3128 

# Autorise l'utilisation en proxy transparent
    accept-intercepted-requests 1

# statuts
    toggle  1                       # activé au démarrage
    enable-remote-toggle  1         # désactivable à distance
    enable-remote-http-toggle  1    # désactivable à distance (WEB)
    enable-edit-actions 1           # actions éditables (WEB)
    enforce-blocks 1                # on peut forcer un blockage
/etc/privoxy/config

Paramétrage du navigateur

L'avantage d'un proxy http est qu'il n'existe pas à ma connaissance de navigateur qui ne sache pas l'utiliser. Pour l'exemple nous allons faire ici le paramétrage de FireFox, mais il pourrait tout aussi bien s'agir de Safari, Opéra et même Internet Explorer...

Il faut donc maintenant aller sur la machine cliente pour indiquer à son navigateur d'aller chercher ses pages web sur la machine_privoxy. Dans FireFox allez dans les menus Édition/Préférence/Réseau/Paramètres. Sélectionnez configuration manuelle du proxy et entrez pour HTTP les valeurs machine_provoxy et 8118. Cliquer ensuite sur OK et enfin Fermer.

C'est tout ! Pour vérifier que tout fonctionne, saisissez l'adresse http://config.privoxy.org/ et validez. Vous devez voir apparaître la page de configuration de privoxy.

Privoxy à l'oeuvre

Tout est donc opérationnel. Pour se convaincre que tout est en place, il suffit d'ouvrir une console sur la machine privoxy et d'y faire un tail -f /var/log/privoxy/logfile.

Ensuite sur le poste client, allez faire un tout avec votre navigateur sur le site www.liberation.fr et regardez ce qu'affiche privoxy :

roottail -f /var/log/privoxy/logfile
Request: www.liberation.fr/
Request: www.liberation.fr/_looks/liberation/scripts/rObj.js
(...)
www.smartadserver.com/call/pubj/252/1276/225/M/7424944326/? crunch!
Request: www.liberation.fr/_looks/liberation/images/fond_pub_728x90.gif
(...)
Request: www.smartadserver.com/call/pubj/252/1276/163/S/7424944326/? crunch!
Request: www.liberation.fr/_looks/liberation/images/onglet_forum_on.gif
(...)
Request: cmhtml.fr.overture.com/d/search/p/standard/eu/js/flat/ctxt/ls/?ctxtId=libe_fr_annuaire&NGrp=2&NKw=4&Pg=1&keywordCharEnc=utf-8&outputCharEnc=utf-8&Partner=liberation_js_fr_ctxtls_libe crunch!
(...)
www.liberation.fr/interactif/question/libeblogs/_files/file_258326_34465_petite_vignette.jpg
Request: www.smartadserver.com/call/pubj/252/1276/276/S/7424944326/? crunch!
(...)
Request: www.smartadserver.com/call/pubj/252/1276/94/S/7424944326/? crunch!
Request: www.liberation.fr/interactif/question/libeblogs/_files/file_260788_26585_petite_vignette.jpg
(...)
Request: www.google-analytics.com/urchin.js crunch!
(...)
Request: logi8.xiti.com/hit.xiti?s=197813&s2=2&p=homepage&hl=8x59x22&lng=fr&r=1280x886x32x32&re=1280x746&ref= crunch!

A chaque fois que privoxy affiche crunch, il a bloquer le navigateur. Nous voyons ainsi qu'en standard, privoxy bloque efficacement les publicités, Google Analytics et Xiti. Cela fait déjà beaucoup de nuisance en moins. Mais nous allons pouvoir aller un peu plus loin.

Améliorer le filtrage

Comme vous l'avez vu, Privoxy par défaut marche déjà très bien. Il est cependant possible d'aller plus loin. Pour changer les paramètres de Privoxy, vous avez deux solutions. Vous pouvez soit utiliser l'interface WEB (personnellement je ne la trouve pas très simple), soit taper directement dans les fichiers de configuration. Pour cela, il faut simplement éditer le fichier /etc/privoxy/user.action. Notez que le simple fait d'en faire sauvegarde implique son rechargement. Aucun besoin donc de redémarrer privoxy.

Le fichier user.action contient les règles que vous avez le "droit" de changer. Vous pouvez changer aussi les autres mais cela risque de vous créer plus de problèmes qu'autre chose. Par défaut il contient déjà plein d'exemples utiles.

Vous allez pouvoir ajouter ici, des règles et des alias. Une règle est la combinaison d'une ou plusieurs actions et est appliquée à une ou plusieurs URL. Pour la liste complète des actions que Privoxy propose, allez jeter un oeil ici.

Ajout de nouvelles règles

Prenons un exemple et imagions que nous voulions supprimer l'envoi de tous les cookies sortant pour le site wwww.mauvais-site.fr. En langage privoxy cela nous donne :

{ +crunch-outgoing-cookies }
.mauvais-site.fr

Cette règle très simple va ajouter l'action "crunch-outgoing-cookies" (qui supprime les envois de cookies) à toutes les urls appartenant à .mauvais-site.fr. Le signe + indique que la directive doit être ajoutée aux autres règles. A l'inverse, si nous ajoutons :

{ -crunch-outgoing-cookies }
bonne-page.mauvais-site.fr

Toutes les pages du domaine mauvais-site.fr auront leur cookie mangé sauf bonne-page.mauvais-site.fr.

Vous pouvez des * dans les URL, par exemple ad*.site-de-pube.fr, ou même une expression régulière comme pour adBlock comme www[1-9a-ez].example.c*.

Vous pouvez aussi mettre plusieurs actions entre les accolades, soit sur une seule ligne en les séparant par des espaces, soit sur plusieurs lignes en ajoutant un \ à la fin de chaque ligne. Cela nous donne par exemple pour supprimer cookies entrant ET sortant:

{ +crunch-outgoing-cookies \
  +crunch-incoming-cookies }
ad*.mauvais-site.fr
www[1-9a-ez].example.c*

Ajout d'Alias

Comme nous l'avons vu, il est possible de mettre plusieurs actions entre accolade. Il peut être alors pratique de pouvoir regrouper un ensemble d'actions sous un seul alias. Par exemple, si nous voulons regrouper la suppression de tous les cookies vue plus haut, nous ajouterions dans le fichier user.action :

{{alias}}
interdiction-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
autorisation-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies

Une règle pour ajouter, une autre pour enlever, l'exemple parle de lui-même. Ainsi la règle sur "mauvais-site" pourrait s'écrire avec un de nos deux nouveaux alias :

{ interdiction-cookies  }
.mauvais-site.fr

Par défaut dans user.action il y a deux alias très pratiques. Le premier shop va nous permettre d'assouplir les règles pour les rendre compatibles avec un site de commerce branlant. L'autre s'appelle fragile et permet de ne pas "casser" les sites souvent mal fichu. Si vous avez une boutique qui ne marche plus, ou un site fragile, vous pouvez alors ajouter :

{ shop }
www.boutique-branlante.fr

{ fragile }
www.site-mal-fichu.fr

Ajout de règles supplémentaires

Il est possible d'améliorer encore privoxy pour ne plus rien laisser passer ou presque. Au début vous allez observer ce que les sites font exactement en observant les logs de Privoxy. Et à chaque fois que vous voyez quelque chose de louche, vous pouvez ajouter une règle comportant l'action { +block } suivi à la ligne suivante de chaque url posant problèmes. Ce qui au final peut donner quelque chose comme cela :

 définition des sites que l'on bloque gravement
# ########################################################"
{ +block }
  # Régies publicitaires/ Plate-formes d'annonce
    .netavenir.com                              # http://www.netavenir.com/
    .turn.com                                    # http://www.turn.com/corp/how/how-it-works.jsp
    .bluestreak.com                              # http://www.bluestreak.com/whowhat/index.asp
    .criteo.com                                  # http://www.criteo.com/en/bloggers.aspx
    .blogbang.com/demo/js/blogbang_ad.php\?id=  # http://www.blogbang.com/demo/
    /.*\/microsoft_adcenterconversion\.js        # Régie Microsoft
    *.*.marketingsolutions.yahoo.com/*          # Régie Yahoo
    www.googleadservices.com/*                  # Régie Google
    .fmpub.net                                  # http://federatedmedia.net/whyadvertise/index
    pubsrv.allopass.com/*                        # http://www.allopass.com/
    .comclick.com                                # http://www.comclick.com/
    .regieci.com                                # http://www.regieci.com/fr/accueil/index.asp
    .allo-audience.fr                           # http://www.allo-audience.fr/
    .audientia.net                              # http://www.audientia.net/new/fr/new/
    .clickintext.com                            # http://www.clickintext.com/
    .clickintext.net
    .intellitxt.com
    payperpost.com                              # http://payperpost.com/

  # Les enregistreurs/relecteurs
    .clicktale.*                                # http://www.clicktale.com/faq.html
    cetrk.com/*                                 # http://crazyegg.com/overview 
    *.robotreplay.com/*                         # http://www.robotreplay.com/
    /.*/clickheat.js

  # médiamêtrie/traçage
    .estat.com                                  # http://www.estat.com/service/services_form.html
    .sitemeter.com                              # http://www.sitemeter.com/
    .w3counter.com                              # http://www.w3counter.com/
    .reinvigorate.net                            # http://report.reinvigorate.net/snoop
    /.*\/webanalytics                            # http://france.webanalytics.be/
    .opentracker.net                            # http://www.opentracker.net/index.jsp
    .weborama.*                                  # http://weborama.com/
    .quantserve.com                              # http://www.quantcast.com/
    .performancing.com                          # http://performancing.com/tracker
    .ToutLeMondeEnBlogue.com                    # http://www.toutlemondeenblogue.com/index.aspx
    stats.wordpress.com                          # http://www.wordpress.com
    *.technorati.com/*                          # http://www.technorati.com
    embed.technorati.com/linkcount              #
    /.*xiti.js                                  # http://www.xiti.com/
    *.getclicky.com/*                            # http://www.getclicky.com/help/
    *.iminr.com/*                                # http://www.iminr.com/
    .netprofitblueprint.com/*                    # http://www.netprofitblueprint.com/capture.html (assez opaque celui-la...)
    .converdge.com                              # http://www.converdge.com/features
    .cybermonitor.com
    my.blogitexpress.com/.*\.js                  # http://www.blogitexpress.com/
    www.atoomic.com/js/*                        # http://www.atoomic.com/
    .clustrmaps.com/counter/*
    .trackalyzer.com
    log.tf1.fr

  # Page ranking
    www.free-pagerank.com/fcgi-bin/alive_js.fcgi.*    
    external.wikio.fr/blogs/top/getrank
    www.pagerank.fr/pagerank-actuel.gif

  # Loggers un peu trop traçeurs
    .mybloglog.com                              # http://www.mybloglog.com/

  # traçage des flux (feeds)
    feedjit.com/*                                # http://feedjit.com/

  # Spécial Google
    /.*utm.js                                    # variante d'urchin
    /.*stat.*\.js                                # un filtrage générique
    /.*\/urchin.js                              # variante d'urchin
    /.*s_code.js                                # variate d'urchin
    /.*google-analyticator.*                    # le plugin pour wordpress

  # Nuisances
    .snap.com/*                     # Charge les liens en tâche de fond pour en faire des vignettes. Sympa en soit mais pompe pas mal de resources. 
    .ixnp.com/*
    .twitter.com/*
    .webreseau.com                              # http://www.webreseau.com/fr/fonctionnement.asp
    *.devfr.net/*                               # Pas identifié, si quelqu'un a une idée...
    badge.facebook.com/badge/*
    .blogbar.org

Le dernier bloc de cette liste ne sont pas des SpyWebs à proprement parler mais des "fonctions" qui me fatiguent car elles ralentissent l'affichage des pages. Donc si vous n'en voulez pas, libre à vous, tout ceci est à adapter à vos besoins.

Enfin, pour peaufiner encore notre couverture, nous avons allons ajouter deux règles biens pratiques. La première consiste à empêcher les sites de savoir d'où vous venez en lui faisant croire que vous venez toujours de chez eux (referrer). L'URL utilisé est ici le / ce qui veut dire "pour tous les sites".

{ +hide-referrer{forge} }
/

Et puis, pour s'amuser un peu nous pouvons aussi maquiller l'identité de notre navigateur. Là, je vais faire croire que j'utilise un FireFox 4.1 sur un Oric Atmos ;-)

{ +hide-user-agent{Mozilla/5.0 (TV; U; Oric Atmos 6502c; en-US; rv:r91.6) Gecko/19870508 TranDOS Firefox/4.1} }
/

Quelques mots sur l'interface WEB

Même s'il n'est pas bien pratique pour éditer la configuration, l'interface WEB est en revanche très efficace pour contrôler le proxy. Si vous tapez l'URL http://config.privoxy.org/. Vous avez la possibilité d'activer ou de désactiver le proxy (http://config.privoxy.org/toggle), de demander à privoxy d'afficher les règles qu'il aurait appliqué à une URL que vous saisissez à la main (http://config.privoxy.org/show-url-info) et enfin de visualiser et modifier la configuration ( http://config.privoxy.org/show-status ).

Cette dernière option offre cependant possibilité un peu cachée qui est de régler le niveau de sévérité du proxy. En effet, si sur la ligne default.action vous clickez sur Edit.Vous allez voir apparaître trois niveaux : Cautious (précautionneux), Medium et Advanced. Le premier offre un niveau de sécurité correcte mais laisse par exemple plus passer les cookies. C'est le mode par défaut qui ne "casse" aucun site marchand. Le dernier est un blocage quasi complet mais qui vous demande souvent d'ajouter un site marchand dans la section { shop } (cf plus haut). A chacun de voir en fonction de sa paranoïa, moi je suis sur Advanced ;p

Passer Privoxy en mode "transparent"

Un Proxy transparent est un concept ultra-pratique permettant de ne pas configurer les navigateurs sur les machines clientes. Comment cela se passe ? Simplement en y déclarant que la passerelle internet n'est plus votre routeur, mais la machine privoxy. Ainsi, tout le traffic internet va être redirigé sur cette machine qui va ensuite, après filtrage, le rediriger sur internet. Du coup, sans que cela ne soit visible, toutes les machines du réseau utilisent de manière transparente privoxy et ce sans avoir à faire le moindre paramétrage.

Pour arriver à ce résultat, la première chose à faire est de modifier le fichier de configuration de privoxy /etc/privoxy/config et d'ajouter (ou modifier) la ligne accept-intercepted-requests 1.

Ensuite, il nous faut mettre en place le routage. Cela implique qu'iptables soit installé sur la machine privoxy

#! /bin/sh
filter="iptables -t filter"
nat="iptables -t nat"

$nat -F
$nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8118
$nat -A OUTPUT -m owner --uid-owner 96 -j ACCEPT
$nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8118

$nat -L
$filter -L

echo 1 > /proc/sys/net/ipv4/ip_forward
script d'activation du proxy transparent

La première règle a pour rôle de transférer tout le traffic entrant sur le port 80 de l'interface eth0, vers le port 8118, celui de privoxy. Cette ligne associée au echo 1 > /proc/sys/net/ipv4/ip_forward, permet à tout le réseau de bénéficier de privoxy, sous réserve de paramétrer chaque machine de sorte à utiliser notre serveur comme passerelle (gateway).

Les deux règles suivantes sont quant à elle chargée de faire la même chose, mais pour le serveur lui-même. En effet, dans ma nouvelle architecture, le serveur est aussi ma machine de travail, et j'aimerais donc bien profiter de privoxy. Le principe est le même que pour la première règle pour le traffic local, mais avec une exception faite pour le processus possédé par l'utilisateur 96, qui est celui de privoxy. Vérifiez donc quel utilisateur votre privoxy utilise pour remplacer 96 par l'UID qui va bien.

Après vous pouvez très salement ajouter ces commandes à la fin de /etc/rc.local ou, selon le fonctionnement de votre distribution, les poser dans le script dédiés à iptables.

Notre serveur transparent étant en place, il ne nous reste plus qu'à indiquer aux machines clients que la nouvelle passerelle (gatewaw) est la machine_privoxy. Cela peut se faire en configurant votre routeur, en dur sur les machines ou via votre serveur dhcp.

Enfin, si vous aviez configuré le proxy de votre navigateur, il est temps de supprimer ces réglages. Et lorsque c'est réalisé et que les machines clients ont renouvelées leur IP, vous pouvez vérifier que tout fonctionne et naviguant sur l'une d'entre elles tout en observant les logs sur la machine de privoxy.

Conclusion

Ce tutorial ne couvre pas toutes les possibilités de privoxy, loin de là. C'est une mise en jambe pour un outil indispensable qui même sans paramétrage offre une très bonne protection.