#1 Le 30/07/2009, à 17:25
- nesthib
[tuto] rediriger la connexion d'une application dans un tunnel
Vous êtes bloqués sur un port par un proxy ou vous avez besoin d'être reconnu comme une IP particulière?
Solution : rediriger la connexion d'une application via un tunnel ssh sur une machine tierce
Prérequis : disposer d'un accès ssh sur une machine distante non filtrée
#!/bin/bash
USER=nom_d_utilisateur
SERVEUR=serveur_distant
#on vérifie qu'il y a bien une commande en argument
if [ $# = 0 ]; then
echo -e "Argument missing\nSyntax : $0 command [command_arguments]"
exit 1
fi
#établissement de la connexion ssh avec redirection dynamique des ports (option D)
ssh -N -D3333 $USER@$SERVEUR &
#on note le numéro du processus ssh
pid=$!
#on laisse le temps à la connexion de s'établir
sleep 2
#on encapsule les connexion de l'application (lancée en argument) dans un proxy socks (paramétré sur le port 3333 dans /etc/tsocks.conf)
tsocks $*
#après avoir quitté l'appli on ferme la connexion ssh
kill $pid
exit 0
après il suffit de rendre le script exécutable et de le lancer ainsi :
bash mon_script.sh mon_appli_a_tunneller [et ses arguments]
ex:
bash tunnel.sh xchat
Dernière modification par nesthib (Le 01/08/2009, à 12:59)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#2 Le 30/07/2009, à 17:37
- Aldian
Re : [tuto] rediriger la connexion d'une application dans un tunnel
Très intéressant, merci beaucoup . Bon par contre faut avoir un accès ssh sur une machine tierce..
Dans le cas de la connexion derrière un proxy bloquant, je suppose que c'est transparent parce que le serveur ssh va utiliser le proxy système pour se connecter?
Hors ligne
#3 Le 30/07/2009, à 18:50
- nesthib
Re : [tuto] rediriger la connexion d'une application dans un tunnel
Dans le cas de la connexion derrière un proxy bloquant, je suppose que c'est transparent parce que le serveur ssh va utiliser le proxy système pour se connecter?
Pour l'appli c'est totalement transparent. Il faut juste un accès ssh.
Si ton proxy laisse passer le http ou https tu peux paramétrer ssh pour écouter sur le port 80 (ou 443) et utiliser ssh -p 80, forcement s'il ne laisse passer que le http en whitelist c'est grillé
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 14/01/2010, à 16:01
- cacalex
Re : [tuto] rediriger la connexion d'une application dans un tunnel
Si je peux me permettre :
#!/bin/bash
USER=nom_d_utilisateur
SERVEUR=serveur_distant
#on vérifie qu'il y a bien une commande en argument
if [ $# = 0 ]; then
echo -e "Argument manquant\nSyntax : $0 command [command_arguments]"
exit 1
fi
#établissement de la connexion ssh avec redirection dynamique des ports (option D)
ssh -N -D3333 $USER@SERVEUR &
#on note le numéro du processus ssh
pid=$!
#on laisse le temps à la connexion de s'établir
sleep 2
#on encapsule les connexion de l'application (lancée en argument) dans un proxy socks (paramétré sur le port 3333 dans /etc/tsocks.conf)
tsocks $*
#après avoir quitté l'appli on ferme la connexion ssh
kill $pid
exit 0
ssh -N -D3333 $USER@$SERVER &
Devait être
ssh -N -D3333 $USER@$SERVEUR &
Et pour "Argument missing", ben je mettrais "Argument manquant"...
Merci pour ce script, je pense que je vais m'amuser un peu avec...
Ah, et la syntaxe de /etc/tsocks.conf devrait être comme suit :
server_port=3333
Dernière modification par cacalex (Le 14/01/2010, à 16:06)
Hors ligne
#5 Le 19/04/2010, à 01:22
- Grünt
Re : [tuto] rediriger la connexion d'une application dans un tunnel
Ça ne marche pas avec toutes les applis, par contre. Konqueror, par exemple, ne se laisse pas tunnelliser.
Red flashing lights. I bet they mean something.
Hors ligne
#6 Le 19/04/2010, à 01:29
- nesthib
Re : [tuto] rediriger la connexion d'une application dans un tunnel
oui malheureusement il y a des petits couacs… même problème avec firefox
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 16/08/2010, à 13:22
- nesthib
Re : [tuto] rediriger la connexion d'une application dans un tunnel
puisque j'utilise cette astuce en ce moment et que je me rends compte que je n'ai jamais donné la solution à la question de ǤƦƯƝƬ voici une petite mise-à-jour, pour les applications "évoluées" comme firefox ou autres navigateurs qui ne se laissent pas tunneliser.
il suffit de lancer (avec les bonnes variables bien sûr) la ligne :
ssh -N -D3333 ${USER}@${SERVEUR} &
ensuite dans la configuration du navigateur il faut configurer le proxy SOCKS (v4 ou v5) pour se connecter à localhost sur le port 3333 (on peut changer le port bien entendu).
Il ne faut en revanche pas changer les paramètres de proxy HTTP/FTP/…
pour firefox il y a l'extension FoxyProxy qui permet de changer facilement de configuration.
dernier point que je n'avais pas précisé, une fois qu'un tunnel est ouvert il est facile de rajouter une application supplémentaire se connectant par le tunnel avec la commande :
tsocks programme
dans l'immédiat la première application (celle lancée avec le script) détermine quand le tunnel sera fermé, si j'y pense je modifierai le script pour gérer les connexions multiples
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#8 Le 21/08/2010, à 17:33
- Grünt
Re : [tuto] rediriger la connexion d'une application dans un tunnel
ensuite dans la configuration du navigateur il faut configurer le proxy SOCKS[...]
Je sais tout cela, mais je critiquais le fait que, justement, il fallait passer par les réglages de l'application (donc par les réglages spécifiques de KDE/Gnome si c'est une application uniquement KDE/Gnome..), alors que tsocks est censé permettre de ne pas avoir à régler l'application (dans le cas où elle ne proposerait pas du tout de passer par un proxy, par exemple).
L'intégration des applis, c'est mal
Red flashing lights. I bet they mean something.
Hors ligne
#9 Le 26/11/2010, à 15:06
- nesthib
Re : [tuto] rediriger la connexion d'une application dans un tunnel
petit astuce pour activer la complétion des applications du PATH après avoir tapé le nom du script.
par exemple pour que :
:$ tunnel wee[TAB]
donne
:$ tunnel weechat-curses
prérequis : le script doit être dans le PATH. Ensuite, il suffit de modifier le fichier /etc/bash_completion (il faut être root) et d'ajouter le nom du script (ici tunnel) à la fin de la ligne qui ressemble à :
complete -F _command -o filenames nohup exec nice eval time ltrace then \
else do vsound command xargs tsocks
ce qui donne donc :
complete -F _command -o filenames nohup exec nice eval time ltrace then \
else do vsound command xargs tsocks tunnel
Enfin, relancez le terminal ou lancez la commande suivante (le point est important) :
. /etc/bash_completion
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne