introduction
SSH, également connu sous le nom de Secure Shell, peut être utilisé pour bien plus que l'obtention d'un shell distant. Cet article montrera comment SSH peut être utilisé pour la redirection de port et le proxy.
Les seuls prérequis sont un serveur OpenSSH (installé par défaut sur les images Vultr Linux) et un client OpenSSH (disponible sur Linux, BSD et MS Windows.)
Objectif
Un proxy SSH est principalement utilisé pour proxy du trafic Web. Par exemple, il peut être utilisé pour sécuriser votre trafic Web contre un réseau local dangereux.
La redirection de port SSH est souvent utilisée pour accéder à des services qui ne sont pas accessibles au public. Par exemple, vous pouvez avoir une interface Web d'administration système en cours d'exécution sur votre serveur, telle que Webmin, mais écouter uniquement les connexions sur localhost pour des raisons de sécurité. Dans ce cas, vous pouvez utiliser SSH pour transférer les connexions sur un port choisi de votre machine locale vers le port sur lequel le service écoute côté serveur, vous permettant ainsi d'accéder à distance à ce service particulier via le tunnel SSH. Un autre scénario courant où la redirection de port SSH est utilisée est l'accès aux services sur un réseau privé distant via un tunnel SSH vers un hôte sur ce réseau privé.
Usage
Le proxy et la redirection de port ne nécessitent aucune configuration spéciale sur votre serveur. Cependant, l'utilisation de l'authentification par clé est toujours recommandée avec SSH. Veuillez lire Comment générer des clés SSH.
Proxy SSH
La création d'un proxy SSH est très simple, la syntaxe générale est la suivante:
ssh -D [bind-address]:[port] [username]@[server]
Où [bind-address]est l'adresse locale à écouter, [port]le port local à écouter, [username]votre nom d'utilisateur sur votre serveur et [server]l'adresse IP ou le nom d'hôte de votre serveur. Si [bind-address]n'est pas spécifié, SSH sera par défaut celui localhostqui est souhaitable dans la plupart des cas.
Voici un exemple pratique:
ssh -D 8080 root@your_server
Pour utiliser ce proxy, vous devez configurer votre navigateur pour l'utiliser SOCKSv5comme type de proxy et 8080comme port proxy.
Transfert de port SSH
La syntaxe générale de la commande est la suivante:
ssh -L [localport]:[remotehost]:[remoteport] [username]@[server]
Où [localport]est le port sur lequel le client SSH écoutera, [remotehost]est l'adresse IP de l'hôte vers lequel les connexions seront transmises. Ce serait le 127.0.0.1cas si vous tunneliez les connexions à votre serveur. Enfin, [remoteport]c'est le numéro de port sur le serveur qui est utilisé par le service auquel vous vous connectez.
Exemple 1:
Envisagez d'avoir un service Web important exécuté sur le port 10000de votre serveur, mais il n'est pas accessible au public. La commande suivante serait utilisée pour établir un tunnel SSH vers ce service.
ssh -L 80:127.0.0.1:10000 root@your_server
Vous pourrez désormais vous connecter en tapant http://127.0.0.1dans votre navigateur local.
Exemple 2:
Vous avez deux serveurs Vultr sur un réseau privé. L'un exécute une distribution Linux, l'autre exécute MS Windows. Sur l'instance Windows, un serveur RDP est en cours d'exécution mais n'est pas exposé à Internet pour des raisons de sécurité. En supposant qu'il 192.168.1.5s'agit de l'adresse IP privée de la machine Windows, vous pouvez utiliser la commande suivante pour vous connecter au serveur Bureau à distance via un port sur votre ordinateur:
ssh -L 3389:192.168.1.5:3389 root@your_server
Toute connexion RDP de votre ordinateur à lui-même sera désormais acheminée via votre serveur Linux vers votre serveur Windows.