Chroot SSH

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Cloisonnement SFTP/SSH
Directive ChrootDirectory
Voir aussi Chrooting SFTP · Chroot · Umask

Cloisonner un utilisateur SFTP dans un répertoire dont il ne peut pas sortir, à l'aide du sous-système internal-sftp et de la directive ChrootDirectory.

Configuration rapide (exemple RHEL 6)

groupadd sftp-only

# créer l'utilisateur à la racine pour qu'il soit bien positionné après le chroot
useradd -g sftp-only -d /sftpdir -s /sbin/nologin sftp1
passwd sftp1
mkdir /var/www/sftpdir
chown apache:sftp-only /var/www/sftpdir

Dans /etc/ssh/sshd_config :

Subsystem sftp internal-sftp

Match group sftp
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /var/www/%u
    ForceCommand internal-sftp
service sshd restart
less /var/log/secure          # diagnostiquer les refus éventuels

Permissions du répertoire chrooté

Le répertoire racine du chroot doit appartenir à root et ne pas être inscriptible par le groupe/les autres ; on prévoit un sous-répertoire inscriptible pour l'utilisateur :

chown root /home/bob
chmod go-w /home/bob
mkdir /home/bob/writeable
chown bob:sftponly /home/bob/writeable
chmod ug+rwX /home/bob/writeable

Voir aussi

  • Chrooting SFTP — procédure détaillée et test d'un utilisateur chrooté
  • Chroot — principe général du chroot
  • Umask — masque de permissions par défaut