J'ai une version 6.4 de CentOs avec Digital Ocean et je voudrais créer avec succès des utilisateurs SFTP et les emprisonner dans le répertoire personnel de chroot de l'utilisateur, mais je crains d'en faire un gâchis.
J'ai essayé beaucoup de choses, beaucoup trop pour les énumérer ici, car la plupart sont probablement incorrectes ou n'auront pas beaucoup de sens, mais ce que je pense être le bon processus et ce que j'ai essayé est: -
Créez un groupe pour sftp
: -
groupadd sftp
Créez un utilisateur et définissez son répertoire personnel: -
useradd -d /var/www/vhosts/domain.com dummyuser
Définissez un mot de passe pour l'utilisateur: -
passwd dummyuser
Changez le groupe d'utilisateurs en 'sftp': -
usermod -g sftp dummyuser
Définissez le shell de l'utilisateur sur /bin/false
: -
usermod -s /bin/false dummyuser
Modifier le sous-système dans sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Ajoutez ce qui suit au bas du sshd_config
fichier: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Je m'assure que tous les répertoires suivants sont root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Si j'essaie ensuite de me connecter au serveur via SFTP avec l'utilisateur dummyuser
(dans WinSCP), j'obtiens ce qui suit: -
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Tout ce que je veux réaliser, c'est emprisonner un utilisateur dans son répertoire personnel. J'ai également installé et configuré vsftpd. Les utilisateurs pouvaient se connecter correctement mais auraient accès à l'ensemble du serveur - je n'ai tout simplement pas réussi à obtenir de l'emprisonnement au travail.
Éditer
Oublié de mentionner, j'ai ensuite redémarré sshd
aussi: -
service sshd restart
Lorsque l'erreur est produite dans WinSCP, leur page d'aide à ce sujet est ici .
Résultats du journal
/var/log/secure
J'ai remplacé le nom réel du serveur par server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
sshd
? Que contiennent les fichiers journaux sur le serveur?/var/log/secure
.vhosts
estroot:root
.Réponses:
C'est un piège courant:
tous les dossiers jusqu'au chroot home doivent appartenir et être accessibles en écriture uniquement par l'
root
utilisateur.Les dossiers ne peuvent pas être inscriptibles en groupe - même si le groupe l'est
root
.la source
namei -l /var/www/vhosts
J'ai trouvé et configuré avec succès sftp sur CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Modifier la configuration sshd:
vim / etc / ssh / sshd_config
Quittez et enregistrez.
Alors:
Pour un nouvel utilisateur nommé "testuser" (membre du groupe sftp uniquement avec GID 500):
(J'utilise / etc / skel2 vide donc aucun .bashrc etc n'est copié par défaut par CentOS)
Donc, dans cet exemple, je l'ai fait pour donner un accès sécurisé aux cabinets de conseil externes qui gèrent les sites Web. Vous pouvez après avoir créé tout cela faire:
On pourrait affiner tout cela au besoin.
J'espère que cela vous a aidé!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
la source
service sshd restart