Tengo una versión 6.4 de CentOs con Digital Ocean y me gustaría crear con éxito usuarios SFTP y encarcelarlos en el directorio de inicio chroot del propio usuario, pero me temo que estoy haciendo un lío.
He intentado muchas cosas, demasiadas para enumerarlas aquí porque la mayoría probablemente sea incorrecta o no tenga mucho sentido, pero creo que debería ser el proceso correcto y lo que he intentado es:
Crea un grupo para sftp
: -
groupadd sftp
Cree un usuario y configure su directorio de inicio: -
useradd -d /var/www/vhosts/domain.com dummyuser
Establezca una contraseña para el usuario: -
passwd dummyuser
Cambie el grupo de usuarios a 'sftp': -
usermod -g sftp dummyuser
Configure el shell del usuario para /bin/false
: -
usermod -s /bin/false dummyuser
Editar subsistema en sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Agregue lo siguiente al final del sshd_config
archivo: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Me aseguro de que todos los siguientes directorios son root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Si luego intento iniciar sesión en el servidor a través de SFTP con el usuario dummyuser
(en WinSCP), obtengo lo siguiente: -
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Todo lo que quiero lograr es encarcelar a un usuario a su directorio de inicio. También tengo vsftpd configurado y configurado. Los usuarios pueden iniciar sesión bien pero tendrían acceso a todo el servidor; simplemente no he logrado que la cárcel funcione.
Editar
Olvidé mencionar, luego reinicié sshd
también: -
service sshd restart
Cuando se produce el error en WinSCP, su página de ayuda está aquí .
Resultados de registro
/var/log/secure
Reemplacé el nombre real del servidor con 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
? ¿Qué hay en los archivos de registro en el servidor?/var/log/secure
.vhosts
esroot:root
.Respuestas:
Es un error común:
todas las carpetas hasta el hogar chroot deben ser propiedad y solo el
root
usuario debe poder escribirlas .Las carpetas no pueden ser de escritura grupal, incluso si el grupo lo es
root
.fuente
namei -l /var/www/vhosts
Encontré y configuré sftp con éxito en CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Editar configuración sshd:
vim / etc / ssh / sshd_config
Salir y guardar.
Luego:
Para un nuevo usuario llamado "testuser" (miembro del grupo sftp-only con GID 500):
(Yo uso vacío / etc / skel2 para que CentOS no copie .bashrc, etc.)
Entonces, en este ejemplo, lo hice para dar acceso seguro a empresas de consultoría externas que administran sitios web. Después de crear todo esto, podría hacer:
Uno podría ajustar todo esto según sea necesario.
Espero que esto haya ayudado!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
fuente
service sshd restart