Accès non chroot
Si vous n'avez pas de configuration de serveur FTP et que vous faites confiance à l'utilisateur qui se connectera, pour ne pas trop fouiner votre serveur, je serais enclin à leur donner un compte SFTP dans le système.
Le wiki CentOS maintient un guide simple intitulé: Configuration SFTP simple qui rend cela assez facile .
Je dis que c'est indolore car il vous suffit de créer le compte et de vous assurer que le pare-feu autorise le trafic SSH, assurez-vous que le service SSH fonctionne et que vous avez à peu près terminé.
Si sshd
n'est pas déjà en cours d'exécution:
$ /etc/init.d/sshd start
Pour ajouter un utilisateur:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Lorsque vous avez terminé avec le compte:
$ sudo userdel -r userX
Accès Chroot
Si d'un autre côté vous souhaitez limiter cet utilisateur à un répertoire désigné, le serveur SFTP inclus avec SSH (openssh) fournit une configuration qui facilite également l'activation. C'est un peu plus de travail mais pas trop. Les étapes sont décrites ici dans ce didacticiel intitulé: Comment configurer Chroot SFTP sous Linux (autoriser uniquement SFTP, pas SSH) .
Apportez ces modifications à votre /etc/ssh/sshd_config
fichier.
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Vous devez maintenant créer l'arborescence de répertoires chrootés dans laquelle cet utilisateur sera verrouillé.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Les autorisations doivent ressembler à ceci:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Les répertoires de niveau supérieur comme celui-ci:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
N'oubliez pas de redémarrer le sshd
serveur:
$ sudo service sshd restart
Créez maintenant le compte userX:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Vous pouvez vérifier que le compte a été créé correctement:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Lorsque vous avez terminé avec le compte, supprimez-le de la même manière ci-dessus:
$ sudo userdel -r userX
... et n'oubliez pas de supprimer les modifications du fichier de configuration que nous avons apportées ci-dessus, puis redémarrez-les sshd
pour les réactiver.