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.
Pour être sûr que le tunnel est bien creusé et fonctionnel, il faut vérifier l‘adresse 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.
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
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
Merci coquille corrigée ! :-D
Pas tout à fait, « sshutlle » devrait être « sshuttle » :)
En tout cas, merci pour l’astuce, ça fonctionne bien !
bon si on me cherche, je suis dans mon lit ^^