4

sshuttle : tunnel ssh sécurisé ultra simple à mettre en place

Sur le blog, j’avais déjà expliqué comment creuser un tunnel ssh du bureau vers la box de chez soit. Ce qui permettait d’encapsuler et de chiffrer toutes les connexions. Cette tehnique est très bien et fonctionne parfaitement mais peut être un poil compliqué à mettre en place pour un novice.

C’est là que sshuttle entre en scène !

Objectifs

Le but de la manoeuvre est de creuser un tunnel à partir d’un poste client sous GNU/linux vers un serveur SSH. Une fois le tunnel creusé, toutes les connexions vont passer par ce tunnel et seront chiffrées de bout à bout. De plus, ça permettra de outre passer les restrictions ou autres bridages du proxy/fournisseur d’accès internet.

Pré-requis

Pour ce faire, il faut un serveur SSH prèt à l’emploi et accèssible sur le réseau internet. Par défaut, le serveur SSH écoute sur le port 22, ce port est généralement bloqué par les proxys entreprise. Il faut modifier le fichier de configuration du serveur SSH, pour qu’il écoute sur le port 443.

Sur le serveur :

sudo nano /etc/ssh/sshd_config

Et remplacer 22 par 443 :

Port 443

Relancer le serveur( attention, si vous êtes connecter via ssh, vous allez perdre la connexion) :

service ssh restart

Si le serveur fait aussi office de serveur web, no problemo ! Il faut dans ce cas, utiliser SSLH 8-)

On prend une pelle et on creuse le tunnel !

Une fois que le serveur est prèt, il suffit d’installer le paquet sshuttle sur le client. Le paquet est présent dans les dépôts des principales distributions GNU/Linux du marché.

Exemple sous Arch Linux / Manjaro :

sudo pacman -S sshuttle

Sinon, il est possible de récupérer la dernière version sur le github :

git clone https://github.com/apenwarr/sshuttle.git

Déplacer le binaire dans /usr/local/bin pour pouvoir l’éxécuter de n’importe ou :

sudo mv sshuttle /usr/local/bin

Et on creuse :-D

sshuttle --dns -r user@serveurSSH:443 0.0.0.0/0 -v

Quelques explications sur la commande sshutlle

  • –dns : capture les requettes DNS local en TCP.
  • -r : derrière cette option se trouve le nom d’utilisateur avec le nom du serveur et le port associé du serveur SSH.
  • 0.0.0.0/0 : tout le réseau passe par ce tunnel.
  • -v : pour avoir la verbosité des messages. Par défaut, seuls les messages d’erreurs sont affichés.

Exemple de sortie :
sshuttle

Pour être sûr que le tunnel est bien creusé et fonctionnel, il faut vérifier ladresse IP public avant et après.

Puis-je utiliser sshuttle avec mon smartphone sous Android ?

La réponse est oui ! Grâce à l’application sous licence libre SSH Tunnel.

ssh-tunnel

Cependant, il faut que le téléphone soit « rooter » pour pouvoir utiliser l’application.

Conclusion

De n’importe quel endroit ou vous vous trouvez et dès l’instant que vous avez un accès au réseau internet, vous avez une connexion sécurisée pour un miminum d’effort :-D

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

4 commentaires

  1. Petite coquille, la commande :
    sshutlle –dns -r user@serveurSSH:443 0.0.0./0 -v
    devrait être :
    sshuttle –dns -r user@serveurSSH:443 0.0.0.0/0 -v

  2. Pas tout à fait, « sshutlle » devrait être « sshuttle » :)

    En tout cas, merci pour l’astuce, ça fonctionne bien !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *