Serveur d'impression

Transfert de port SSH – Exemple, commande, configuration du serveur – Bien choisir son serveur d impression

Le 3 mai 2019 - 8 minutes de lecture

Qu'est-ce que la redirection de port SSH, également appelée tunneling SSH?

La redirection de port SSH est un mécanisme de SSH permettant de tunnelliser les ports d’application de la machine cliente à la machine serveur, ou inversement. Il peut être utilisé pour ajout du cryptage aux applications existantes, passer à travers les pare-feu, et certains administrateurs système et professionnels de l'informatique l'utilisent pour ouverture backdoors dans le réseau interne de leurs machines à la maison. Les pirates informatiques et les logiciels malveillants peuvent également en abuser pour ouvrir un accès Internet au réseau interne. Voir la page sur le tunneling SSH pour un aperçu plus général.

Renvoi Local

Le transfert local est utilisé pour transférer un port de la machine cliente à la machine serveur. Fondamentalement, le client SSH écoute les connexions sur un port configuré et lorsqu'il reçoit une connexion, il connecte la connexion à un serveur SSH. Le serveur se connecte à un port de destination configuré, éventuellement sur une machine différente de celle du serveur SSH.

Les utilisations typiques de la redirection de port locale sont les suivantes:

  • Sessions de tunneling et transferts de fichiers via des serveurs de saut
  • Connexion à un service sur un réseau interne depuis l'extérieur
  • Connexion à un partage de fichiers distant sur Internet

Quelques organisations pour tous les accès SSH entrants via un serveur de saut unique. Le serveur peut être une boîte Linux / Unix standard, généralement avec un durcissement supplémentaire, une détection d’intrusion et / ou une journalisation, ou bien une solution de serveur de saut commercial. Par exemple, CryptoAuditor peut agir en tant que serveur de saut, enregistrer toutes les sessions et transmettre le contenu de la session à l'analyse pour l'avertir rapidement d'une activité suspecte.

De nombreux serveurs de sauts autorisent le transfert de port entrant, une fois la connexion authentifiée. Une telle redirection de port est pratique car elle permet aux utilisateurs avertis d'utiliser les ressources internes de manière transparente. Par exemple, ils peuvent transférer un port de leur ordinateur local vers le serveur Web intranet de l'entreprise, vers le port IMAP d'un serveur de messagerie interne, vers les ports 445 et 139 du serveur de fichiers local, vers une imprimante, vers un référentiel de contrôle de version ou presque. tout autre système du réseau interne. Fréquemment, le port est tunnelé vers un port SSH sur une machine interne.

Dans OpenSSH, la redirection de port local est configurée à l'aide du -L option:

ssh -L 80: intra.example.com: 80 gw.example.com

Cet exemple ouvre une connexion à la gw.exemple.com serveur de saut et transmet toute connexion au port 80 de la machine locale vers le port 80 de intra.example.com.

Par défaut, n'importe qui (même sur des ordinateurs différents) peut se connecter au port spécifié sur l'ordinateur client SSH. Toutefois, ceci peut être limité aux programmes du même hôte en fournissant un lier l'adresse:

ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com

le LocalForward Cette option du fichier de configuration du client OpenSSH peut être utilisée pour configurer le transfert sans devoir le spécifier en ligne de commande.

Transfert à distance

Dans OpenSSH, les redirections de ports SSH distants sont spécifiées à l'aide du -R option. Par exemple:

ssh -R 8080: localhost: 80 public.example.com

Cela permet à quiconque sur le serveur distant de se connecter au port TCP 8080 du serveur distant. La connexion sera ensuite redirigée vers l’hôte client, puis le client établira une connexion TCP avec le port 80 sur localhost. Tout autre nom d’hôte ou adresse IP peut être utilisé à la place de localhost spécifier l'hôte auquel se connecter.

Cet exemple particulier serait utile pour donner à quelqu'un de l'extérieur un accès à un serveur Web interne. Ou exposer une application Web interne à l'Internet public. Cela pourrait être fait par un employé travaillant à domicile ou par un attaquant.

Par défaut, OpenSSH autorise uniquement la connexion à des ports transférés distants à partir de l'hôte du serveur. Cependant, le GatewayPorts Dans le fichier de configuration du serveur, l'option peut être utilisée pour contrôler cela. Les alternatives suivantes sont possibles:

GatewayPorts no

Cela empêche la connexion aux ports transférés de l'extérieur du serveur.

GatewayPorts oui

Cela permet à quiconque de se connecter aux ports transférés. Si le serveur est sur Internet, tout utilisateur d’Internet peut se connecter au port.

GatewayPorts spécifié par le client

Cela signifie que le client peut spécifier une adresse IP à partir de laquelle les connexions au port sont autorisées. La syntaxe est la suivante:

ssh -R 52.194.1.73:8080:localhost:80 host147.aws.example.com

Dans cet exemple, seules les connexions à partir de l'adresse IP 52.194.1.73 mettre en communication 8080 sont autorisés.

OpenSSH autorise également le port distant transféré à la valeur 0. Dans ce cas, le serveur allouera un port de manière dynamique et le signalera au client. Lorsqu'il est utilisé avec le -O en avant En option, le client imprimera le numéro de port attribué sur la sortie standard.

Ouvrir des portes dérobées dans l'entreprise

Le transfert de port SSH à distance est couramment utilisé par les employés pour ouvrir des portes dérobées dans l'entreprise. Par exemple, l'employé peut définir obtenir un serveur de niveau libre d'Amazon AWS et se connecter du bureau à ce serveur, en spécifiant le transfert à distance d'un port du serveur vers un serveur ou une application du réseau d'entreprise interne. Plusieurs transferts distants peuvent être spécifiés pour ouvrir l'accès à plusieurs applications.

L'employé définirait également GatewayPorts oui sur le serveur (la plupart des employés n’ont pas d’adresse IP fixe à la maison et ne peuvent donc pas restreindre l’adresse IP).

Par exemple, la commande suivante ouvre l’accès à une base de données Postgres interne sur le port 5432 et à un port SSH interne sur le port 2222.

ssh -R 2222: d76767.nyc.example.com: 22 -R 5432: postgres3.nyc.example.com: 5432 aws4.mydomain.net

Configuration côté serveur

le AllowTcpForwarding L’option du fichier de configuration du serveur OpenSSH doit être activée sur le serveur pour permettre le transfert de port. Par défaut, le transfert est autorisé. Les valeurs possibles pour cette option sont Oui ou tout pour autoriser tous les transferts TCP, non pour empêcher tout transfert TCP, local pour permettre les expéditions locales, et éloigné pour permettre les transferts à distance.

Une autre option intéressante est AllowStreamLocalForwarding, qui peut être utilisé pour transférer des sockets de domaine Unix. Il permet les mêmes valeurs que AllowTcpForwarding. La valeur par défaut est Oui.

Par exemple:

AllowTcpForwarding à distance AllowStreamLocalForwarding non

le GatewayPorts L’option de configuration décrite ci-dessus affecte également les redirections de ports distants. Les valeurs possibles étaient non (seules les connexions locales de l'hôte serveur sont autorisées; valeur par défaut), Oui (n'importe qui sur Internet peut se connecter à des ports transférés distants), et spécifié par le client (le client peut spécifier une adresse IP pouvant se connecter, tout le monde peut le faire s’il n’est pas spécifié).

Comment empêcher le transfert de port SSH de contourner les pare-feu

Nous recommandons que le transfert de port soit expressément désactivé lorsqu'il n'est pas nécessaire. L'activation de la redirection de port peut exposer l'organisation à des risques de sécurité et à des portes dérobées. Par exemple, si un serveur destiné à ne fournir que des transferts de fichiers SFTP autorise les redirections de port, celles-ci peuvent être utilisées pour obtenir un accès involontaire au réseau interne à partir de l'intranet.

Le problème est que le transfert de port ne peut en pratique être empêché que par un serveur ou un pare-feu. Une entreprise ne peut pas contrôler tous les serveurs sur Internet. Le contrôle basé sur un pare-feu peut également s'avérer délicat, car la plupart des entreprises ont des serveurs dans Amazon AWS et d'autres services de cloud, et l'accès à ces serveurs s'effectue généralement à l'aide de SSH.

CryptoAuditor® fournit une solution pratique. Il peut être utilisé pour empêcher le transfert de port. Il peut auditer, enregistrer et contrôler les connexions SSH, et est capable d'empêcher le transfert de port à un niveau granulaire sans perturber d'autres utilisations. Il est donc particulièrement utile dans les organisations disposant de serveurs dans le cloud public ou utilisant les transferts de fichiers SFTP avec des partenaires externes ou des fournisseurs de services.

CryptoAuditor est l’une des rares solutions connues pour contrôler le transfert à distance des connexions sortantes. De telles connexions sont les connexions les plus risquées pour le tunneling à partir d’Internet vers le réseau interne. Le blocage complet des connexions SSH sortantes au niveau d'un pare-feu n'est pas réalisable lorsque les développeurs et les administrateurs ont besoin d'accéder à des serveurs de cloud externes.

Informations complémentaires

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.