Cette configuration se fait en deux parties. La première partie est effectuée sur le serveur SSH distant. La deuxième partie est effectuée sur la machine locale.
Instructions côté serveur :
Commencez par installer stunnel :
sudo apt-get install stunnel4
Générer le certificat SSL (pour 365 jours) :
openssl genrsa 1024 > stunnel.key
openssl req -new -key stunnel.key -x509 -days 365 -out stunnel.crt
cat stunnel.crt stunnel.key > stunnel.pem
sudo mv stunnel.pem /etc/stunnel/
Configurer stunnel pour faire un tunnel 443 (https) vers 22 (ssh) :
Créez un fichier de configuration pour répondre aux besoins de l'utilisation de SSH sur SSL.
gksu gedit /etc/stunnel/stunnel.conf
Ecrivez ceci :
pid = /var/run/stunnel.pid
cert = /etc/stunnel/stunnel.pem
[ssh] accept = public_ip:443
connect = 127.0.0.1:22
La configuration ci-dessus indique à stunnel où trouver le certificat que nous avons généré et où accepter et rediriger les connexions. Dans ce cas, stunnel écoutera sur l'adresse IP publique sur le port 443 (https) et redirigera les connexions là vers localhost sur le port 22 (ssh).
Pour démarrer le service stunnel, nous devrons l'activer dans /etc/default/stunnel4. Changez la ligne ENABLED de 0 à 1.
Enfin, nous pouvons démarrer le service et passer à la configuration du client :
sudo service stunnel4 start
Vous pouvez vérifier que stunnel écoute maintenant en utilisant la commande netstat :
netstat -natp | grep :443
Instructions côté client :
Commencez par installer le paquet stunnel :
sudo apt-get install stunnel4
Générer le certificat SSL (pour 365 jours) :
openssl genrsa 1024 > stunnel.key
openssl req -new -key stunnel.key -x509 -days 365 -out stunnel.crt
cat stunnel.crt stunnel.key > stunnel.pem
sudo mv stunnel.pem /etc/stunnel/
Créez un fichier de configuration :
gksu gedit /etc/stunnel/stunnel.conf
Ecrivez ceci :
pid = /var/run/stunnel.pid
cert = /etc/stunnel/stunnel.pem
[ssh] accept = 127.0.0.1:2200
connect = remote_ip:443
Pour démarrer le service stunnel, nous devrons l'activer dans /etc/default/stunnel4. Changez la ligne ENABLED de 0 à 1.
Démarrez le service.
sudo service stunnel4 start
Etablir la connexion
Avec le service stunnel maintenant en cours d'exécution à la fois sur le serveur et sur le client, nous sommes prêts à établir la connexion sécurisée. Maintenant, lorsque vous vous connectez sur votre machine locale sur le port 2200, une connexion sera établie vers l'IP distante sur le port 443, créera une connexion SSL sécurisée et se connectera au port 22 à l'autre extrémité. Vos connexions SSH cryptées sont maintenant enveloppées dans une connexion SSL cryptée utilisant le port 443.
ssh localhost -p 2200
Sources : Lien1 Lien2