SSH Tunneling Explained, Open Source

introduction

Pour mettre en place un tunnel SSH un port donné d'une machine doit être transmise (de
que je vais parler dans peu de temps) à un port dans l'autre
machine qui sera l'autre extrémité du tunnel. Une fois que le tunnel SSH a été
mis en place, l'utilisateur peut se connecter au port indiqué plus tôt à la première machine à
accéder au service réseau.

Port Forwarding

tunnels SSH peuvent être créés de plusieurs façons en utilisant différents types de redirection de port
mécanismes. Les ports peuvent être transmis de trois façons.

  1. port local
  2. redirection de port à distance
  3. le transfert de port dynamique

Je n'ai pas expliqué ce que la redirection de port est. Je trouve la définition de Wikipédia plus d'explication.

Le transfert de port ou le mappage de port est un nom donné à la technique combinée de

  1. traduire l'adresse et / ou numéro de port d'un paquet à une nouvelle destination
  2. accepter éventuellement tel paquet (s) dans un filtre de paquets (pare-feu)
  3. acheminer le paquet en fonction de la table de routage.

Ici, la première technique sera utilisée pour créer un tunnel SSH. Lorsqu'une application cliente se connecte au port local (extrémité locale) des données de tunnel de SSH et de transfert de ces données seront transmises à l'extrémité éloignée en traduisant les valeurs de l'hôte et le port à celui de l'extrémité éloignée du canal.

Donc, avec cela nous allons voir comment les tunnels SSH peuvent être créés à l'aide des ports redirigés avec un exemple.

Tunneling avec redirection de port local

Disons que yahoo.com est bloqué à l'aide d'un filtre proxy à l'Université.
(Par souci de cet exemple.). Peut penser aucune raison valable pour que Yahoo serait bloqué). Un tunnel SSH peut être utilisé pour contourner cette restriction. Appelons ma machine à l'université comme « travail » et ma machine à la maison comme « maison ». « Maison » a besoin d'avoir une adresse IP publique pour que cela fonctionne. Et j'exécute un serveur SSH sur ma machine à la maison. Le diagramme suivant illustre le scénario.

SSH Tunneling Explained, Open Source

Pour créer le tunnel SSH exécuter la suite de la machine « travail ».

Le commutateur « L » indique qu'un avant du port local doivent être créés. La syntaxe de commande est la suivante.

Maintenant, le client SSH au « travail » se connecte au serveur SSH en cours d'exécution à la « maison » (en cours d'exécution en général au port 22) liaison de port 9001 de « travail » pour écouter les demandes locales, créant ainsi un tunnel SSH entre « la maison » et « travail » . Lors de la « maison » fin il va créer une connexion à « yahoo.com » au port 80. Donc, le « travail » n'a pas besoin de savoir comment se connecter à yahoo.com. Seule la « maison » doit inquiéter à ce sujet. Le canal entre « travail » et « maison » sera crypté alors que la connexion entre « la maison » et « yahoo.com » sera non cryptée.

L'image ci-dessous décrit le scénario.

SSH Tunneling Explained, Open Source

Ici, la connexion « hôte » à « yahoo.com » ne se fait lorsque le navigateur fait la
demande pas au moment de la configuration du tunnel.

Il est également possible de spécifier un port sur l'ordinateur « maison » lui-même au lieu de
la connexion à un hôte externe. Ceci est utile si je devais mettre en place une session VNC
entre « travail » et « la maison ». Ensuite, la ligne de commande serait la suivante.

Voici donc ce qui ne se réfère localhost? Est-ce le « travail » depuis la ligne de commande est exécutée à partir de « travail»? Il s'avère que ce n'est pas. Comme expliqué précédemment est relatif à la passerelle ( « maison » dans ce cas). pas la machine où le tunnel est lancé. Donc, cela fera une connexion au port 5900 de l'ordinateur « à domicile » où le client VNC écouterait dans.

Le tunnel créé peut être utilisé pour transférer toutes sortes de données ne se limitent pas aux sessions de navigation sur le Web. Nous pouvons également des sessions SSH tunnel de cela aussi. Supposons il y a un autre ordinateur ( « interdit») auquel nous devons SSH à l'intérieur de l'Université, mais l'accès SSH est bloqué. Il est possible d'établir la session SSH à cet hôte en utilisant un port local avant. La configuration se présente comme suit.

SSH Tunneling Explained, Open Source

Comme on peut le voir maintenant les données transférées entre « travail » et « interdit » sont chiffrés fin à la fin. Pour cela, nous devons créer un port local en avant comme suit.

Maintenant, nous devons créer une session SSH au port local 9001 où la session
va se tunneling à « interdit » par ordinateur « home ».

Avec cela, nous allons passer à côté type de méthode à effet tunnel SSH, tunnel inverse.

Tunneling inverse avec le transfert de port distant

Comme dans le cas précédent, nous allons lancer le tunnel de l'ordinateur « travail » derrière le pare-feu. Ceci est possible car seul le trafic entrant bloque et le trafic sortant est autorisé. Cependant, au lieu de l'affaire antérieure, le client sera désormais à l'ordinateur « à domicile ». Au lieu de l'option -L nous définissons maintenant -R qui précise
un besoin de tunnel inverse à créer.

SSH Tunneling Explained, Open Source

Dynamic Port Forwarding

redirection de port dynamique permet de configurer un port local pour les données de tunnel vers toutes les destinations à distance. Toutefois, pour utiliser cette application cliente qui se connecte au port local doivent envoyer leur trafic en utilisant le protocole SOCKS. Du côté client du tunnel un proxy SOCKS serait créé et l'application (navigateur par exemple.) Utilise le protocole SOCKS pour indiquer où le trafic doit être envoyé quand il quitte l'autre extrémité du tunnel ssh.

Ici, SSH va créer un proxy SOCKS écoute pour les connexions au port local
9001 et lors de la réception d'une demande ferait passer le trafic via le canal SSH
créé entre « travail » et « la maison ». Pour cela, il est nécessaire de configurer le
navigateur pour pointer vers le proxy SOCKS au port de 9001 à localhost.

SSH Tunneling Explained, Open Source

Articles Liés