Utiliser un serveur extérieur pour se connecter à un périphérique interne. (translation de port over ssh)

Projet: Pouvoir connecter un périphérique interne à un réseau local et le rendre disponible sur internet via un serveur y étant accessible.

1.Installer les packages:

2.Mettre en place le tunel:

sshpass: Utilitaire permettant de faire passer un mot de passe à la commande ssh dans un script en mettant simplement un mot de passe en clair. Moins « secure » mais plus simple. Vous pourriez utilise rune clé ssh à la place.

-p ‘votre_mot_de_passe_ssh_du_serveur_distant’: Le mot de passe du compte sur le serveur distant. Il me semble plus judicieux ici de ne pas utiliser le compte et mot de passe root.ssh -C -c aes128-ctr -o StrictHostKeyChecking=no -o ConnectTimeout=10 -N -R 8073:localhost:8073 le_compte_du_serveur_distant@monserveurdistant.fr -p 2222

-C permet de compresser les données mais sans en perdre. Ceci permet de gagner quelques Mo sur une connexion 4G à data limité.

-c aes128-ctr permet de mette un cryptage moins lourds. Ceci permet également de gagner en data.

-o StrictHostKeyChecking=no : permet de s’affranchir de la vérification de la hostkey du serveur distant. juste au cas où quelque chose aurait changé côté serveur distant.

-o ConnectTimeout=10 : permet d’allonger le timeout de la connexion

-N: N’exécute aucune commande distante. Utilisé pour les transferts de ports (seulement dans la version 2 du protocole).

-R port : host : hostport
Spécifie que le port donné de la machine distante (serveur) sera transféré vers l’hôte et le port donné depuis la machine locale. Ceci fonctionne grâce à l’allocation d’une socket qui écoute sur le port port de la machine distante, et qui, dès qu’une connexion est établie sur ce port, la transfère à travers le canal sécurisé, et se connecte à host sur le port hostport depuis la machine locale. On ne peut transférer des ports privilégiés que si on se connecte en tant que root sur la machine distante. Il est possible de spécifier des adresses IPv6 à l’aide d’une autre syntaxe : N° port / N° host hostport

le_compte_du_serveur_distant@monserveurdistant.fr: compte créé spécialement sur le serveur distant afin de ne pas utiliser le root.

-p 2222: Port à connecter sur la machine distante.

3.Un script simple en cas de coupure:

4.L’installer au démarrage:

Vous pouvez voir ci-dessous un exemple du rc.local d’un raspberry pi où j’ai ajouté le chemin du script « /root/SshTunel_8073.sh ».
Petite astuce, afin d’économiser quelques mA j’ai éteint les sortie vidéo: « /usr/bin/tvservice -o ».

 

 

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.