Pour éditer le wiki, il faut demander un compte à un Lapin !

Difference between revisions of "Passerelle SSH"

From Le L∞p's Wiki
Jump to: navigation, search
m (wikify)
m (Text replace - "</tt>" to "</code>")
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
Comment donner un accès distant sur le réseau du Loop sans en compromettre la sécurité ni alourdir la gestion de [[:Category:Infrastructure|l'infrastructure]] ?
 
Comment donner un accès distant sur le réseau du Loop sans en compromettre la sécurité ni alourdir la gestion de [[:Category:Infrastructure|l'infrastructure]] ?
  
== Premières idées et résultats de recherche ==
+
== Cahier des charges ==
  
<span style="color: darkgrey">'''À la mano'''</span> :
+
* On doit pouvoir atteindre une machine du LAN sans avoir un compte sur la passerelle ; la passerelle ne doit pas gérer les comptes utilisateurs.
 +
* SSH version 2 uniquement<ref>[http://www.snailbook.com/faq/ssh-1-vs-2.auto.html What's the difference between versions 1 and 2 of the SSH protocol?]</ref>
  
  <tt>ssh user@passerelle "ssh user@cible"</tt>
+
== Recherche ==
  
Cette méthode demande 2 mots de passe.
+
=== Situation actuelle ===
  
 +
Pour l'instant on rebondit sur la passerelle :
  
<span style="color: darkgrey">'''En configurant <tt>~/.ssh/config</tt> sur le client'''</span> :
+
  ssh user@passerelle "ssh user@cible"
* [http://blog.anotherhomepage.org/post/2009/11/09/Utilisation-transparente-d-une-passerelle-SSH Utilisation transparente d'une passerelle <tt>ssh</tt>] ;
+
* Automatisation de la méthode précédente (2 mots de passe à rentrer).
+
  
 +
Ceci peut être automatisé par l'utilisation de <code>~/.ssh/config</code><ref>[http://blog.anotherhomepage.org/post/2009/11/09/Utilisation-transparente-d-une-passerelle-SSH Utilisation transparente d'une passerelle <code>ssh</code> via <code>ProxyCommand</code>]</ref>. Par exemple pour se connecter sur le [[Serveur_MPD|MPD]] :
  
Au final, allez voir [http://www.ohmytux.com/belier/ ça].
+
  Host mpd
 +
      HostName lan.leloop.org
 +
      HostKeyAlias mpd
 +
      Port 2345
 +
      ProxyCommand ssh -q lan.leloop.org nc -q0 mpd.lan.leloop.org 6789
  
 +
Problème : il faut un compte sur la passerelle, et on ne veut pas forcément multiplier les comptes sur le routeur.
  
== Questions en cours ==
+
=== Chroot ===
  
N'autoriser que <tt>ssh</tt> (dans un <tt>chroot</tt> ?) pour rebondir vers sa machine sur le réseau local du Loop :
+
N'autoriser que <code>ssh</code> (dans un <code>chroot</code> ?) pour rebondir vers sa machine sur le réseau local du Loop :
* [http://www.queret.net/blog/post/2010/03/03/Chrooter-une-session-SSH-utilisateur <tt>ssh</tt> dans un <tt>chroot</tt>]
+
* [http://www.queret.net/blog_old/post/2010/03/03/Chrooter-une-session-SSH-utilisateur <code>ssh</code> dans un <code>chroot</code>]
  
Comment faire pour utiliser les identifiants et mots de passe de la machine cible, pour ne pas avoir a gérer les utilisateurs sur la passerelle :
+
=== Autres pistes ===
* Autoriser toute connexion mais tuer toute session qui ne serait pas <tt>ssh</tt> vers une machine locale (limiter le rebond vers l'extérieur par n'importe qui) toutes les ''X'' secondes (''X'' = 10 ?). Cette solution répond aussi à la question du nombre de mots de passe... Est-ce seulement possible ?
+
**[http://www.linux-france.org/article/devl/sshcvs_fr.html <tt>'''cvs'''</tt> via <tt>'''ssh'''</tt>] Un contournement, mais ça paraît lourd coté client...
+
* '''Obligation d'utiliser un ''user-agent'' pour utiliser une clé RSA ?''' Impossible de stocker la clé privée sur la passerelle... .
+
  
 +
Comment faire pour utiliser les identifiants et mots de passe de la machine cible sans avoir à les gérer sur la passerelle :
 +
* Autoriser toute connexion mais tuer toute session qui ne serait pas <code>ssh</code> vers une machine locale (limiter le rebond vers l'extérieur par n'importe qui) toutes les ''X'' secondes (''X'' = 10 ?). Cette solution répond aussi à la question du nombre de mots de passe... Est-ce seulement possible ?
  
Comment faire pour n'avoir à rentrer son mot de passe qu'une seule fois (ou jamais sans mot de passe lié à la clé) :
+
== Voir aussi ==
* [http://linux-attitude.fr/post/Connexion-sans-mot-de-passe Utilisation des clés RSA]
+
* [http://www.unixwiz.net/techtips/ssh-agent-forwarding.html Avec le ''user-agent'']
+
  
== Mise en place ==
+
=== Documentation ===
  
Reste à trouver une petite machine, y mettre une Debian de base avec <tt>ssh</tt> uniquement et transférer le port 22 de la Freebox vers la passerelle.
+
* [http://linux-attitude.fr/post/Connexion-sans-mot-de-passe Utilisation de <code>ssh-agent</code>]
 +
* [http://www.unixwiz.net/techtips/ssh-agent-forwarding.html An Illustrated Guide to SSH Agent Forwarding]
  
Configuration de base :
+
=== Outils ===
* Root non autorisé.
+
* Utilisation de la version 2 uniquement.
+
  
 +
* [http://www.ohmytux.com/belier/ Belier] : automatisation de rebonds par génération de scripts.
 +
 +
== Références ==
 +
 +
<references />
  
 
[[Category:Projets]]
 
[[Category:Projets]]

Latest revision as of 23:31, 12 April 2013

Comment donner un accès distant sur le réseau du Loop sans en compromettre la sécurité ni alourdir la gestion de l'infrastructure ?

Cahier des charges

  • On doit pouvoir atteindre une machine du LAN sans avoir un compte sur la passerelle ; la passerelle ne doit pas gérer les comptes utilisateurs.
  • SSH version 2 uniquement[1]

Recherche

Situation actuelle

Pour l'instant on rebondit sur la passerelle :

 ssh user@passerelle "ssh user@cible"

Ceci peut être automatisé par l'utilisation de ~/.ssh/config[2]. Par exemple pour se connecter sur le MPD :

 Host mpd
     HostName lan.leloop.org
     HostKeyAlias mpd
     Port 2345
     ProxyCommand ssh -q lan.leloop.org nc -q0 mpd.lan.leloop.org 6789

Problème : il faut un compte sur la passerelle, et on ne veut pas forcément multiplier les comptes sur le routeur.

Chroot

N'autoriser que ssh (dans un chroot ?) pour rebondir vers sa machine sur le réseau local du Loop :

Autres pistes

Comment faire pour utiliser les identifiants et mots de passe de la machine cible sans avoir à les gérer sur la passerelle :

  • Autoriser toute connexion mais tuer toute session qui ne serait pas ssh vers une machine locale (limiter le rebond vers l'extérieur par n'importe qui) toutes les X secondes (X = 10 ?). Cette solution répond aussi à la question du nombre de mots de passe... Est-ce seulement possible ?

Voir aussi

Documentation

Outils

  • Belier : automatisation de rebonds par génération de scripts.

Références

  1. What's the difference between versions 1 and 2 of the SSH protocol?
  2. Utilisation transparente d'une passerelle ssh via ProxyCommand