Comment utiliser le tunneling SSH ou le transfert de port

Comment utiliser le tunneling SSH ou le transfert de port
La création d'une connexion sécurisée entre l'hôte local et l'hôte distant est appelée tunneling SSH ou transfert de port. Toutes les connexions établies par le tunneling SSH sont chiffrées. Cette fonctionnalité de SSH est utile à de nombreuses fins, telles que la gestion de la base de données du serveur restreint en toute sécurité, implémentant le VPN de base (réseau privé virtuel), en utilisant différents services sans port d'ouverture sur le pare-feu, etc. Le transfert de port SSH peut être effectué de trois manières différentes. Il s'agit d'un transfert de port local, d'un transfert de port distant et d'un transfert de port dynamique. Les moyens d'utiliser des tunnels SSH ou un transfert de port ont été expliqués dans ce tutoriel.

Conditions préalables

Avant de commencer les étapes de ce tutoriel, les étapes suivantes devront terminer.

UN. Activez le service SSH sur Ubuntu s'il n'est pas activé avant.

B. Générer les paires de clés ssh pour exécuter les commandes du serveur distant. Exécutez la commande suivante pour créer la clé publique et la clé privée. La clé privée sera stockée dans le serveur distant et les clés publiques seront stockées dans le client en toute sécurité.

$ ssh-keygen -t rsa

C. Exécutez la commande suivante pour ouvrir le sshd_config Fichier à l'aide de Nano Editor pour ajouter quelques configurations nécessaires.

$ sudo nano / etc / ssh / sshd_config

Ajoutez les lignes suivantes dans le fichier pour activer la connexion racine et l'authentification basée sur le mot de passe.

PasswordAuthentication Oui
Permutrootlogin oui

D. Exécutez la commande suivante pour redémarrer le service SSH.

$ sudo service ssh redémarrer

Transfert portuaire local

Il est utilisé pour transférer un port de la machine client vers un port de la machine du serveur, et ensuite, qui sera transmis à la machine de destination. La machine client écoute un port donné et tunnels la connexion de ce port vers le port particulier de la machine du serveur dans ce type de transfert. Ici, la machine de destination peut être n'importe quel serveur distant ou une autre machine. Ce transfert est principalement utilisé sur le réseau interne tel que le serveur VNC (Virtual Network Computing).

Transfert de ports à distance

L'opposé du transfert de port local est un transfert de port distant. Il est utilisé pour transférer un port de la machine du serveur vers un port de la machine client, et ensuite, qui sera transmis à la machine de destination. La machine du serveur écoute sur un port donné et tunnels la connexion de ce port vers le port particulier de la machine client dans ce type de transfert. Ici, la machine de destination peut être n'importe quelle machine locale ou une autre machine.

Transfert de port dynamique

Il est utilisé pour créer une prise sur la machine client qui fonctionnera en tant que serveur proxy de chaussettes, et lorsqu'un client se connecte au port, la connexion sera transmise à la machine du serveur. Ensuite, il transmettra le port dynamique de la machine de destination. Les applications utilisant Socks Proxy se connecteront à la machine du serveur qui transmettra les trafics vers la machine de destination.

Exemples de tunnels SSH ou de transfert de port

Les exemples de tunneling SSH et de transfert de port ont été présentés ici à l'aide de deux comptes de serveurs locaux. Vous pouvez suivre le même processus pour le serveur distant. Ici, le nom d'utilisateur de la machine du serveur est «Fahmida» et le nom d'utilisateur de la machine client est «Yasmin. Trois types de transfert de port SSH ont été montrés ici par trois exemples.

UN. Accéder aux ressources distantes de la machine client
Les ressources de la machine distante sont accessibles à partir de la machine client en utilisant le transfert de port local. Il se connectera normalement au serveur SSH, mais dans ce cas, vous devez utiliser l'option -L avec la commande SSH en définissant le port local, l'adresse distante et le port distant. La syntaxe du transfert de port local est donnée ci-dessous.

SSH -L LOCAL_PORT: Remote_Address: Remote_port Username @ Server.com

Supposons que le numéro de port local soit 8080, L'adresse IP du serveur distant est dix.0.2.15, et le numéro de port distant est 80. Exécutez la commande suivante pour se connecter avec la machine du serveur par transfert de port local. Ici, le nom d'hôte de la machine distante est 'Fahmida.com.bd.'

$ ssh -l 8080: 10.0.2.15:80 Fahmida @ Fahmida.com.bd

Après avoir été connecté avec la machine distante, l'utilisateur de la machine client pourra accéder à n'importe quel contenu à partir de la machine distante qui a été affichée ici. Un fichier texte nommé enregistrer.SMS existe dans la machine distante. Maintenant, exécutez la commande suivante à partir de la machine client pour lire le contenu du fichier après la connexion dans la machine distante.

$ Cat Log.SMS

Exécutez les commandes suivantes pour vous déconnecter à partir de la machine distante.

$ exit

La sortie similaire suivante apparaîtra après avoir exécuté les commandes ci-dessus. La sortie affiche le contenu du fichier texte de la machine distante et la connexion suivante à partir de la machine distante.

B. Accéder aux ressources locales à partir de la machine du serveur
Les ressources de la machine locale sont accessibles à partir de la machine du serveur en utilisant un transfert de port distant. Il se connectera normalement au serveur SSH, mais dans ce cas, vous devez utiliser l'option -r avec la commande SSH en définissant le port distant, l'adresse locale et le port local. La syntaxe du transfert de port distant est donnée ci-dessous.

SSH -R Remote_port: Local_Address: Local_port Username @ Server.com

Supposons que le numéro de port distant est de 22, le nom d'hôte du serveur local est hôte local, et le numéro de port local est 2345. Exécutez la commande suivante pour se connecter avec la machine du serveur par transfert de port distant. Ici, le nom d'hôte de la machine distante est 'Fahmida.com.bd.'

$ ssh -R 22: LocalHost: 2345 Fahmida @ Fahmida.com.bd

Après avoir été connecté avec la machine distante, l'utilisateur de la machine distante accédera à n'importe quel contenu à partir de la machine distante affichée ici. Un fichier texte nommé des produits.SMS existe dans le répertoire domestique de la machine client. Maintenant, exécutez la commande suivante après avoir connecté avec la machine distante pour lire le contenu du fichier local.

$ cat / home / yesmin / produits.SMS
Exécutez les commandes suivantes pour vous déconnecter à partir de la machine distante.
[cc lang = "text" width = "100%" height = "100%" échappé = "true" theme = "Blackboard" Nowrap = "0"]
$ exit

La sortie similaire suivante apparaîtra après avoir exécuté les commandes ci-dessus. La sortie affiche le contenu du fichier texte de la machine client et la connexion suivante à partir de la machine distante.

C. Utilisation du serveur SSH comme serveur proxy
Le transfert de port dynamique est principalement utilisé pour accéder à l'application particulière du réseau interne en utilisant un proxy de chaussettes. L'option -D est utilisée avec la commande ssh pour la transmission dynamique. La syntaxe du transfert de port dynamique est donnée ci-dessous.

ssh -d local_port username @ server.com

Supposons que le numéro de port local soit 5050. Exécutez la commande suivante pour ouvrir un proxy de chaussettes au port 5050. Maintenant, l'utilisateur peut configurer n'importe quel navigateur ou application pour utiliser l'adresse IP locale et le port 5050 pour rediriger tout le trafic dans le tunnel.

$ ssh -d 5050 Fahmida @ Fahmida.com.bd

Conclusion

Trois façons différentes de redirection de ports SSH ont été décrites dans ce tutoriel pour aider les lecteurs à comprendre le concept de tunneling SSH ou de transfert de port.