Comment puis-je créer un utilisateur SFTP dans CentOS?

8

Je voudrais donner un accès SFTP temporaire à un type de support. Comment créer un utilisateur SFTP? Et comment puis-je le supprimer une fois le travail terminé?

De plus, comment puis-je leur spécifier un répertoire personnel? Puis-je les empêcher d'accéder à certains sous-répertoires de leur répertoire personnel?

Nous utilisons CentOS 6.3 et fzSftp

OC2PS
la source
Cela dépend de votre configuration en nous fournissant votre fichier de configuration pourrait vous aider.
Kiwy
Quels paramètres particuliers dois-je publier?
OC2PS
l'un de vous ftp deamon
Kiwy
Êtes-vous sûr de vouloir FTP ou SFTP? La raison pour laquelle je demande est que vous avez répertorié fzsftp (filezilla sftp) qui est le client que Filezilla utilise pour les connexions SFTP.
slm
Ah! Je me suis connecté via FileZilla à SFTP, d'où la liste fzsftp ... pensait que c'était mon serveur. SFTP serait bien, si vous pouvez m'aider avec ça. Merci!
OC2PS

Réponses:

14

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 sshdn'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_configfichier.

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 sshdserveur:

$ 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 sshdpour les réactiver.

slm
la source
Agréable! Comment puis-je restreindre l'utilisateur à un répertoire particulier et empêcher l'utilisateur d'accéder à quelques sous-répertoires de ce répertoire?
OC2PS
lier l'utilisateur à l'intérieur de son dossier de départ et ajouter un lien symbolique à l'intérieur vers les différents répertoires que vous souhaitez autoriser
Kiwy
@ OC2PS - ce qui précède montre une méthode de chrootage des utilisateurs, vous pouvez également les chrooter dans leur répertoire personnel. Généralement, je répartis ces utilisateurs dans une zone désignée, de sorte qu'il est évident lorsque je regarde /home/...qui est vraiment un utilisateur d'un système. Bien que j'exécute un véritable serveur SFTP pour le travail, mes besoins sont légèrement différents.
slm
Quand je fais sudo useradd -D userX, j'obtiens Usage: useradd [options] CONNEXION
OC2PS
@ OC2PS essayez useradd userX. Désolé d'avoir mal lu la page de manuel de useradd.
slm