• [^] # Un bastion avec SSH ?

    Posté par (site web personnel) . En réponse au message Prise de main à distance. Évalué à 5. Dernière modification le 06 janvier 2021 à 14:13.

    Un des soucis avec screen est qu'il supporte le multi-utilisateur, mais on se retrouve assez vite embêté si les réglages des émulateurs de terminaux sont différents (fenêtres qui apparaissent tronquées), et c'est potentiellement un peu pénible à mettre en place (pas utilisé récemment, mais je crois me souvenir que screen a besoin de droits supplémentaires pour autoriser :multiuser on, :acladd $user, etc.).

    Ce qui a bien marché dans le cadre d'un dépannage lors d'une visio de type LUG :

    • L'utilisateur se connecte sur une machine extérieure en SSH et établit un tunnel SSH dans le sens inverse. L'accès à cette machine extérieure peut être restreint par exemple en filtrant sur l'adresse IP actuelle de l'utilisateur concerné. L'accès peut être limité par diverses options de configuration SSH spécifiques à cet utilisateur. L'utilisateur peut même être jetable.
    • Le débogueur se connecte sur cette même machine et utilise le tunnel SSH dans le sens inverse.
    • Le débogueur partage son écran via l'outil de visio choisi.

    Il suffit à l'utilisateur de couper sa connexion SSH vers la machine extérieure pour couper l'accès au débogueur, ce qui limite l'aspect « le débogueur a un accès permanent à la machine déboguée ». Bien évidemment, rien n'empêche le débogueur d'exploiter le tunnel existant pour déployer (potentiellement de manière automatisée, depuis une autre console non partagée par visio, etc.) une payload, mais bon...

    Pour établir le tunnel, par exemple :

    sudo apt install openssh-server wget
    wget https://une-machine-dont-les-logs-donneront-l-ip-au-débogueur-ou-bien-whatismyipaddress-ou-peu-importe.com
    ssh -R 12345:localhost:22 guest@la.machine.ssh
    

    Pour le débogueur, une fois connecté sur la.machine.ssh :

    ssh -p 12345 utilisateur@localhost
    

    et vérifier l'empreinte de clé comme habituellement.

    Si tu veux tout de même partager une session screen, la démarche sera similaire, avec soit l'utilisateur guest soit toi qui créez une session screen et l'autre qui le rejoint. Puis utiliser le tunnel inverse depuis cette session. L'avantage dans ce cas est que l'utilisateur peut taper son propre mot de passe, mais j'imagine que le débogueur, ayant accès à la machine, doit pouvoir épier la saisie du mot de passe...

    Debian Consultant @ DEBAMAX