Comment créer des tunnels SSH ou un transfert de port dans Linux

Comment créer des tunnels SSH ou un transfert de port dans Linux

Tunneling SSH (Également appelé transfert de port SSH) est simplement de acheminer le trafic réseau local via SSH vers des hôtes distants. Cela implique que toutes vos connexions sont sécurisées à l'aide du cryptage. Il fournit un moyen facile de mettre en place un base VPN (Réseau privé virtuel), utile pour se connecter aux réseaux privés sur des réseaux publics non sécurisés comme Internet.

Vous pouvez également être utilisé pour exposer les serveurs locaux derrière Nats et les pare-feu à Internet sur des tunnels sécurisés, comme mis en œuvre dans Ngrok.

[Vous pourriez également aimer: comment sécuriser et durcir le serveur OpenSSH]

Ssh Les sessions permettent les connexions du réseau de tunneling par défaut et il existe trois types de transfert de port SSH: local, télécommande et dynamique remise des portes.

Dans cet article, nous montrerons comment configurer rapidement et facilement le tunneling SSH ou les différents types de transfert de ports dans Linux.

Environnement de test:

Aux fins de cet article, nous utilisons la configuration suivante:

  1. Hôte local: 192.168.43.31
  2. Hôte éloigné: Linode Centos 7 VPS avec nom d'hôte serveur1.exemple.com.

Habituellement, vous pouvez vous connecter en toute sécurité à un serveur distant à l'aide de SSH comme suit. Dans cet exemple, j'ai configuré la connexion SSH sans mot de passe entre mes hôtes locaux et distants, il n'a donc pas demandé le mot de passe de l'administrateur utilisateur.

$ ssh [e-mail protégé] 
Connectez le SSH distant sans mot de passe

Transfert de port SSH local

Ce type de transfert de port vous permet de vous connecter depuis votre ordinateur local à un serveur distant. En supposant que vous êtes derrière un pare-feu restrictif ou bloqué par un pare-feu sortant de l'accès à une application exécutée sur le port 3000 Sur votre serveur distant.

Vous pouvez transmettre un port local (e.g 8080) que vous pouvez ensuite utiliser pour accéder à l'application localement comme suit. Le -L Flag définit le port transmis à l'hôte distant et au port distant.

$ ssh [Protégé par e-mail] -L 8080: Server1.exemple.com: 3000 

Ajout du -N Indicateur signifie n'exécuter pas de commande distante, vous n'obtiendrez pas de shell dans ce cas.

$ ssh -n [Protégé par e-mail] -L 8080: Server1.exemple.com: 3000 

Le -F Switch demande à SSH de fonctionner en arrière-plan.

$ ssh -f -n [e-mail protégé] -l 8080: server1.exemple.com: 3000 

Maintenant, sur votre machine locale, ouvrez un navigateur, au lieu d'accéder à l'application distante à l'aide de l'adresse serveur1.exemple.com: 3000, vous pouvez simplement utiliser LocalHost: 8080 ou 192.168.43.31: 8080, Comme indiqué dans la capture d'écran ci-dessous.

Accéder à une application distante via le transfert de port SSH local

Transfert de port SSH distant

Le transfert de port à distance vous permet de vous connecter de votre machine distante à l'ordinateur local. Par défaut, SSH n'autorise pas le transfert de port distant. Vous pouvez activer cela en utilisant le Ports de passerelle Directive dans votre fichier de configuration principale SSHD / etc / ssh / sshd_config sur l'hôte distant.

Ouvrez le fichier pour l'édition en utilisant votre éditeur de ligne de commande préféré.

$ sudo vim / etc / ssh / sshd_config 

Recherchez la directive requise, déconnectez-la et définissez sa valeur sur Oui, Comme indiqué dans la capture d'écran.

Gatewayports oui 
Activer la rediffusion à distance de port SSH

Enregistrer les modifications et quitter. Ensuite, vous devez redémarrer SSHD pour appliquer le changement récent que vous avez apporté.

$ sudo systemctl redémarrer sshd ou $ sudo service sshd redémarrer 

Exécutez ensuite la commande suivante pour transférer le port 5000 sur la machine distante pour port 3000 sur la machine locale.

$ ssh -f -n [e-mail protégé] -R 5000: localhost: 3000 

Une fois que vous comprenez cette méthode de tunneling, vous pouvez exposer facilement et en toute sécurité un serveur de développement local, en particulier derrière les Nats et les pare-feu à Internet sur des tunnels sécurisés. Tunnels tels que ngrok, pagekite, local, Et beaucoup d'autres travaillent de manière similaire.

Transfert de port SSH dynamique

Ceci est le troisième type de transfert de port. Contrairement à local et télécommande transfert de port qui permet la communication avec un seul port, il rend possible, une gamme complète de communications TCP sur une gamme de ports. Le transfert de port dynamique configure votre machine en tant que Serveur proxy de chaussettes qui écoute le port 1080, par défaut.

Pour commencer, CHAUSSETTES est un protocole Internet qui définit comment un client peut se connecter à un serveur via un serveur proxy (SSH dans ce cas). Vous pouvez activer le transfert de port dynamique en utilisant le -D option.

La commande suivante démarrera un proxy de chaussettes sur le port 1080 vous permettant de vous connecter à l'hôte distant.

$ ssh -f -n -d 1080 [Protégé par e-mail] 

À partir de maintenant, vous pouvez faire des applications sur votre machine à utiliser ce serveur proxy SSH en modifiant leurs paramètres et en les configurant pour l'utiliser, pour vous connecter à votre serveur distant. Notez que le CHAUSSETTES Le proxy cessera de travailler après la fermeture de votre session SSH.

Lire aussi: 5 façons de faire fonctionner les séances SSH à distance après la fermeture de SSH

Résumé

Dans cet article, nous avons expliqué les différents types de transfert de port d'une machine à une autre, pour le trafic de tunnel via la connexion SSH sécurisée. C'est l'une des nombreuses utilisations de SSH. Vous pouvez ajouter votre voix à ce guide via le formulaire de rétroaction ci-dessous.

Attention: Le transfert de port SSH présente des inconvénients considérables, il peut être abusé: il peut être utilisé pour contourner les programmes de surveillance des réseaux et de filtrage du trafic (ou pare-feu). Les attaquants peuvent l'utiliser pour des activités malveillantes. Dans notre prochain article, nous montrerons comment désactiver le transfert de port local SSH. Rester connecté!