-
SSH et Chroot
Bonjour,
Actuellement j'ai deux groupes d'utilisateurs :
- 'sftpOnly' qui ont seulement accès à SFTP (forceCommand) et qui sont chrootés (ChrootDirectory)
- 'shellAccess' qui ont un accès à un shell restreint mais non chrooté
Et forcément, j'ai besoin qu'un groupe intermédiaire, disposant de ces deux types d'accès (SFTP chrooté ET shell non chrooté).
Or le paramètre ChrootDirectory, s'il est défini, chroot à la fois le SFTP et le Shell...
Auriez vous une solution propre ? (autre que chrooter à la main, créé un compte par utilisateur et par service...)
Merci,
Snyouf
-
Ne peux tu pas démarrer un second démon sshd/sftpd qui écouterait sur un autre port ?
Je compléte ma réponse, en ajoutant des règles de filtrages par utilisateur afin d'éviter que les "chrootés" se connectent sur le port par défaut. (à y réfléchir cette solution me paraît moyenne, mais bon c'est écrit tant pis).
-
Merci d'avoir jeté un coup d'oeil.
J'ai trouvé comment faire : en utilisant MySecureShell ! :ccool:
En fait, MySecureShell est une version dérivée du sftp-server intégré à sshd !
Donc on peut l'utiliser comme sous système de sshd.
Du coup :
- dans /etc/passwd
- Pour les utilisateurs sftp only, on met le shell MySecureShell
- Pour les autres on met lshell (ou rbash.. ou tout autre shell restreint)
- dans la conf sshd
- on défini le sous système "sftp MySecureShell -c sftp-server"
- dans la conf MySecureShell
- MySecureShell dispose de son propre fichier de conf et de paramètres pour chrooter sous conditions.
Note : il arrive que les shells restreints désactivent le sous système de sshd. Par exemple, avec lshell, il faut ajouter au fichier de conf : sftp=1.
Ainsi les utilisateurs sftp only ont accès à MySecureShell via sftp et MySecureShell via ssh. Ils sont donc bien limités à sftp. C'est dans la conf de MySecureShell qu'on configure le chroot.
Les autres ont MySecureShell via sftp et un vrai shell (limité ou non) via ssh.
Là le chroot est à configurer dans MySecureShell pour sftp et potentiellement aussi dans la conf du shell.
Et le tour est joué !