APT (ou autre…) par proxy socks 5

Afin de tester fluxbox et openbox je me suis monté une machine virtuelle sous lenny et à ma grande surprise (ironie), le proxy de ma boite semble (de nouveau) bloquer les mises à jour via apt-get, remontant des erreurs proxy :

Err http://ftp.fr.debian.org etch/main Packages  302 Found

Enfin bref, il semblerait que cette ligne dans le fichier /etc/apt/apt.conf.d/70debconf ne suffisait plus :

Acquire::http::Proxy "http://login:pass@proxy:port";

Je suis donc passé au plan B, et comme souvent, mon routeur WRT54G bien au chaud à la maison allait (une nouvelle fois) me sortir d’affaire, avec son serveur dropbear sous openWRT et son option proxy socks 5 intégré. Je ne reviendrai pas sur la configuration du serveur SSH dropbear mais plutôt sur le paramétrage du client ssh sous lenny afin de créer un tunnel sécurisé où l’on va faire passer notre outil de mise à jour de paquet debian par APT.

Une petite dépendance pour que notre client ssh natif puisse passer le proxy est le paquet corkscrew.
Et si comme moi on n’a plus de APT, on peut le retrouver ici si on est sous lenny :


wget http://ftp.fr.debian.org/debian/pool/main/c/corkscrew/corkscrew_2.0-5_i386.deb
dpkg –i corkscrew_2.0-5_i386.deb

On s’intéresse d’abord au fichier /etc/ssh/ssh_config  et on renseigne à la fin de ce fichier notre serveur ssh distant, en rouge les paramètres que l’on doit correctement renseigner :

Host FEIWRT
HostName monrouteur.mondomaine.com ou mon IP internet
# Local SSH Server port
Port 22
# Automatic login
PubkeyAuthentication yes
#User Thus0
# Keep-Alive
KeepAlive yes
ProtocolKeepAlives 60
# Use proxy squid with login/passwd
ProxyCommand /usr/bin/corkscrew monproxy.maboite.com portduproxy %h %p  /cheminvers/proxy_auth
# Use proxy squid without authentication
# ProxyCommand /usr/bin/corkscrew proxy.foo.bar 3128 %h %p
# Trusted X11 Forwarding
ForwardX11Trusted yes
# Redirection du port local 6666 que l’on utilisera pour notre tunnel
DynamicForward=6666

Puis le fichier /cheminvers/proxy_auth qui permet à corkscrew de s’identifier auprès du proxy :
Login:pass

Ensuite il suffit de lancer dans un terminal et de laisser la session ssh active :

ssh root@FEIWRT

A ma grande surprise, ou alors par ma grande ignorance, je n’ai pas trouvé de paramètre équivalent à « Acquire ::http » pour faire passer APT par un proxy socks… Je me suis donc orienté vers l’utilitaire tsocks.

Wget http://ftp.fr.debian.org/debian/pool/main/t/tsocks/tsocks_1.8beta5-9.1_i386.deb
dpkg –i tsocks_1.8beta5-9.1_i386.deb

Un petit paramétrage de tsocks afin qu’il utilise notre tunnel ssh ouvert  en 127.0.0.1 :6666 dans le fichier /etc/tsocks.conf :

# Local networks
local = 192.168.0.0/255.255.0.0
local = 10.0.0.0/255.0.0.0
# Serveur Proxy socks
server = 127.0.0.1
# Server type defaults to 4 so we need to specify it as 5 for this one
server_type = 5
# The port defaults to 1080 but I've stated it here for clarity
server_port = 6666

Reste plus qu’à lancer une mise à jour des paquets par APT :
tsocks apt-get update

Et d’installer Fluxbox et comme le dit petit-seb :
tsocks apt-get install alltray fluxbox fluxconf feh ivman

Bien évidement vous aurez compris que tsocks marche avec plein d’autres applications qui ne gèrent pas les proxy socks par défaut :
tsocks lynx (par exemple)

Même si lynx peut être compilé et socksiffié mais ça c’est une autre histoire. Je préfère tester les effets de bureau possibles avec fluxbox pour l’instant, c’est plus joli pour les fêtes que lynx…

Bonne année 2009 à tous.

Vus : 2037
Publié par Feilong : 12