Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 smile. 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é wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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"...
smile

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. hmm


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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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

nesthib a écrit :

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 tongue


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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne