Daily Shaarli
February 28, 2022
Le proxy SSH fonctionne de façon similaire au proxy HTTP avec CONNECT :
- le client C ouvre une session SSH (http) vers le proxy P
- dans cette session, il demande l'ouverture d'une connexion TCP par le proxy vers le serveur S de destination
- le serveur ouvre la connexion et la redirige vers le client (il encapsule la session TCP dans la session SSH ou HTTP)
- via cette nouvelle connexion TCP, le client démarre une nouvelle session SSH ou HTTP vers S.
Plusieurs conséquences:
- si les conditions de sécurité sont réunies, le proxy ne peut ni déchiffrer ni altérer la communication entre le client et le serveur de destination (conditions réunies = usage de TLS et de certificat valide pour HTTP et préconnaissance mutuelle du serveur et du client pour SSH ou usage de SSHFP ou usage de PKI SSH)
- le proxy P connait l'adresse du client et l'adresse et le nom du serveur de destination (si le client demande un serveur par son nom plutôt que par IP), sauf si plusieurs proxies sont utilisés pour atteindre la destination.
- le serveur S de destination ne voit plus l'adresse du client, mais seulement celle du proxy.
C'est donc une forme de connexion bien plus sécurisée que par l'usage du SSH agent forwarding, qui permet au serveur proxy P d'usurper l'identité du client C auprès de n'importe quel serveur.
Voir aussi man ssh_config#ProxyJump