Chrooting SFTP

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Cloisonnement SFTP
Objectif confiner un utilisateur à un répertoire
Voir aussi Chroot SSH · Chroot · Umask

Objectif : l'utilisateur ftpuser ne doit pas pouvoir sortir de /srv/ftp.

Configuration du serveur

Sauvegarder puis modifier /etc/ssh/sshd_config :

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Subsystem sftp internal-sftp

Match user ftpuser
    ChrootDirectory /srv/ftp
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
/etc/init.d/ssh restart

Créer l'utilisateur chrooté

ls -l /srv/                       # /srv/ftp appartient à root:ftp
useradd ftpuser -g ftp -s /bin/nologin
passwd ftpuser
cd /srv/ftp/
touch You_are_chrooted

Note : le répertoire chrooté doit appartenir à root, et le groupe/les autres ne doivent pas y avoir le droit d'écriture — sinon SSH refuse le chroot.

Test

lftp sftp://ftpuser@localhost
# l'utilisateur reste confiné : « cd .. » ne remonte pas au-dessus de /srv/ftp

Sous-répertoire inscriptible partagé

mkdir /shared
chgrp ftpuser /shared/ -R
ls -l / | grep shared

Voir aussi

  • Chroot SSH — configuration rapide du chroot SFTP
  • Chroot — principe général du chroot
  • Umask — masque de permissions par défaut