Published: jeu. 25 septembre 2014
         
        
                By                         Landry MINOZA 
         
In informatique .
tags: Debian  
Translations:
        en 
 L’option Acquire::http::Proxy-Auto-Detect   existe depuis quelques temps, et était prévue pour être utilisée avec le paquet squid-deb-proxy-client   capable de détecter les serveurs proxy dédiés à APT  publiant un service _apt_proxy._tcp  via Avahi. Elle vient d’être améliorée (version 1.0.8) et passe l’URL utilisée en paramètre au programme de détection. Il est ainsi possible de découvrir un proxy « généraliste » via un script proxy.pac.
La solution proposée s’appuie sur le paquet libproxy-tools  et un wrapper shell.
Paquets à installer 
Les paquets suivants sont nécessaires :
libproxy-tools   apporte la commande proxy . 
libproxy1-plugin-mozjs   ou libproxy1-plugin-webkit   pour interpréter les fichiers wpad.dat et proxy.pac. 
Optionnellement libproxy1-plugin-networkmanager  , libproxy1-plugin-gsettings   ou libproxy1-plugin-kconfig   pour récupérer les configurations de proxy de Network Manager, Gnome ou KDE. 
 
 
Configuration APT 
Créer un nouveau fichier dans /etc/apt/apt.conf.d/  (par exemple /etc/apt/apt.conf.d/02proxy ) :
 Acquire::http::Proxy-Auto-Detect "/usr/local/bin/apt-autoproxy.sh";
 
Indique à APT  de lancer le script donné en paramètre pour chaque domaine lors des téléchargements.
 
Wrapper shell 
/usr/local/bin/apt-autoproxy.sh 
#!/bin/sh 
export  http_proxy = wpad://
echo  " $* "  |  proxy |  awk '{ print $1 }' 
 
La ligne 2 est optionnelle, elle me permet de forcer la recherche d’un proxy automatique pour l’utilisateur root quand celui-ci n’a pas de configuration de proxy KDE ou Gnome (ou que les plugins networkmanager , gsettings  ou kconfig  ne sont pas installés). 
Le filtrage par awk  permet de ne fournir qu’un proxy à APT (en effet, plusieurs proxys peuvent être retournés par la commande proxy  (et les fichiers proxy.pac ). 
Le wrapper peut être testé avec les commandes suivantes : 
 
 /usr/local/bin/apt-autoproxy.sh http://ftp.debian.org
sudo /usr/local/bin/apt-autoproxy.sh http://ftp.debian.org
 
Le retour de ces commandes doit être une chaîne sans espaces comme : http://proxy.example.com:3128   en présence d’un proxy et direct://   si aucun n’est utilisable pour cette URL.
 
                 
             
                
                
                Proudly powered by Pelican , which takes great advantage of Python .
                 
                The theme is by Smashing Magazine , thanks!