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!