Forum Linux.debian/ubuntu chroot ssh et scp

Posté par  .
Étiquettes : aucune
0
24
mai
2008
Bonjour tout le monde =)

Je souhaite permettre à des utilisateurs de se connecter sur ma machine en ssh dans une cage (chroot).

J'ai créé un fichier : /bin/chrootshell

#!/bin/bash
sudo /usr/sbin/chroot /home/$USER /bin/bash


Et j'ai rajouter dans /etc/sudoers (ou baduser est le login d'un de mes utilisateur):

baduser ALL=NOPASSWD: /usr/sbin/chroot /home/baduser /bin/bash


J'ai recréé dans le home de mon utilisateur (sa racine chroot) l'arborescence suivante pour y intégrer bash et les autres commandes auxquelles il aura accès:

bin/
lib/
home/baduser


Lorsque que mon utilisateur se connecte, il arrive dans sa racine (/) qui correspond à /home/baduser dans la véritable arborescence. Est-il possible de le faire arriver directement dans /home/baduser/home/baduser lorsqu'il se connecte? ce qui correspond à "/home/baduser" quand il est chrooté.

Un autre petit détail me fait du tord, je souhaiterai que l'utilisateur puisse utiliser la commande scp pour pouvoir déposer des fichiers sur son compte. Malheureusement cela ne fonctionne pas... il est impossible d'envoyer des fichiers. Il me demande le mot de passe pour se connecter et ensuite plus rien. aucun message, le transfert n'a pas lieu.

Si une personne a réponse à mes questions, je lui en serai infiniment reconnaissant. Merci :-)
  • # Autres solutions ?

    Posté par  . Évalué à 1.

    Bonjour,

    La solution me semble un peu compliquée. Quelle distribution utilises-tu ? Pour Debian, je me souviens d'une méthode assez efficace utilisant libpam-chroot :

    http://www.debian.org/doc/manuals/securing-debian-howto/ap-c(...)

    Doit sans doute être applicable à d'autres distributions.

    Une autre possibilité est de monter deux serveurs SSH, l'un qui écoute sur un port non standard (pour les admin) et qui tourne hors chroot, et un qui est chrooté, qui écoute sur le port 22 standard, et qui est fait spécialement pour tes utilisateurs.

    Si j'ai un peu répondu à côté, en te proposant d'autres méthodes, j'en suis désolé ;-)
    • [^] # Re: Autres solutions ?

      Posté par  . Évalué à 1.

      dans la serie "autre" solution

      si le chroot a seulement pour but de limiter l'utilisateur à son home,
      il suffit d'utiliser une verison modifiée de ssh (de memoire il faut recompiler ssh avec l'option chroot) et de mettre /home/./user comme repertoire home pour le user

      le . indiquant alors qu'il faut bloquer l'utilisateur dans son home.
    • [^] # Re: Autres solutions ?

      Posté par  . Évalué à 1.

      J'utilise Debian.
      libpam-chroot ne serait pas plus utile pour debootstrap ?

      Sinon je souhaite surtout pouvoir faire du sftp et utiliser scp sur le compte chrooté. Faut-il avoir importer des librairies particulières et/ou des binaires dans le répertoire de l'utilisateur?
    • [^] # Re: Autres solutions ?

      Posté par  (site web personnel) . Évalué à 1.

      Perso j'utilise http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jai(...) et ca marche tres bien : tu lui donnes le user et... c tout, il s'occupe du reste :)
      Pas besoin de patch ssh, il cree un bon vieux chroot.

      Ensuite un petit : mount --bind /var/sftp/incoming /home/bob/incoming et voila, tu partages les dossiers que tu veux avec tes users. Ne pas oublier que les liens symboliques ne fonctionne que dans l'environnement chrooté et non vers l'exterieur.
      • [^] # Re: Autres solutions ?

        Posté par  . Évalué à 1.

        C'EST ÇA !
        Je viens de tester ce script et ça répond exactement à mes besoins.
        Je vais regarder ce qu'il fait plus précisement pour comprendre.

        Merci beaucoup ! =)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.