Tengo una configuración con usuarios sftp solo:
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Recibo el siguiente mensaje en mi secure.log:
fatal: bad ownership or modes for chroot directory
Con la palabra clave de coincidencia, vienen algunos elementos de seguridad ... los directorios deben ser propiedad de root y los directorios deben ser chmod 755 (drwxr-xr-x). Por lo tanto, hace que sea imposible para un usuario tener permisos de escritura en las carpetas, si solo se puede escribir en la raíz del usuario y se establece en ben no escribible para grupos debido a la seguridad de ssh.
Alguien sabe acerca de un buen trabajo?
chroot
usuarios ed son dueños de susChrootDirectory
? ¿Pueden acceder a él?Respuestas:
Tengo la misma configuración en nuestro servidor. Usamos la misma configuración de SSHD. Los directorios principales de los usuarios son propiedad de root y dentro de ellos hay carpetas
documents
ypublic_html
propiedad de sus respectivos usuarios. Luego, los usuarios inician sesión con SFTP y escriben en esas carpetas (no directamente en casa). Como SSH no está permitido para ellos, funciona perfectamente. Puede ajustar qué directorios se crearán para los nuevos usuarios en / etc / skel / (al menos en openSUSE, no estoy tan familiarizado con otras distribuciones).Otra posibilidad sería ACL ( documentación de openSUSE ): puede agregar permiso de escritura para el usuario respectivo para su directorio de inicio.
fuente
packet_write_wait: Connection to 10.0.0.42 port 22: Broken pipe
Recientemente hemos encontrado una solución alternativa que dice así:
/ etc / ssh / sshd_config:
permisos de directorio:
Ahora
/home
satisface los requisitosChrootDirectory
y los usuarios restringidos no pueden enumerarlos, pero lossftponly
usuarios no podrán iniciar sesión si sus directorios de inicio están configurados como de costumbre (/home/$LOGNAME
): en el entorno chrooteado, sus directorios de inicio no están dentro/home
sino directamente debajo raíz (/
).solución 1
Establezca las casas restringidas de los usuarios para que aparezcan en chroot:
advertencia 1
Si alguno de los usuarios sin restricciones o alguna secuencia de comandos de administración usa la expansión tilde de bash como
~username
se expandirá hasta/username
ahora, que no es lo que se quiere decir.Además, el administrador que crea
sftponly
usuarios tiene que recordar usar el hogar no predeterminado. Solucionable con un guión. Que el administrador debe recordar usar.solución 2
Esta es una alternativa a la anterior que terminamos usando:
Es decir, crear un enlace simbólico dentro
/home
de su propio nombre de directorio. Ahora bajo chroot/home/username
apunta al mismo directorio que sin chroot. Para el usuario restringido que inició sesión con sftp, aparecería como/username
. Este directorio se puede escribir a su propietario (usuario restringido). El usuario restringido no puede enumerar sus directorios principales o principales de ninguno de los hermanos por nombre.Lo único especial de un
sftponly
usuario es su participación en elsftponly
grupo. Encontramos que es más fácil de tratar que la solución 1.advertencias 2
/home/home
/home
jerarquía y siguen los enlaces simbólicos.fuente
Debe crear una estructura dentro del directorio de inicio del usuario, como directorios de entrada y salida. Esos directorios deben ser propiedad del usuario y allí podrá colocar y obtener archivos.
fuente
Debe crear la siguiente estructura de directorio:
/Usuario doméstico
/ home / user / home / user <- el directorio real al que tendrá acceso el usuario
Opcionalmente:
/home/user/.ssh/authorized_keys <- si desea autenticarse con una clave pública
fuente
En referencia a la sección 'permisos de directorio' en la respuesta de @artm (que acabo de probar) ... encontré:
No permite que la conexión sftp funcione en ubuntu con permisos de ejecución solo en todo, es decir, 111.
Encontre eso:
Funciona con conexión a sftp con los permisos Leer y Ejecutar, es decir, 555. No estoy seguro si debian vs otros sabores son diferentes, pero eso es lo que funciona en mis instalaciones de ubuntu.
fuente
Cuando crea un usuario, debe establecer la propiedad utilizando
chown
cada directorio para cada usuario.Por ejemplo:
fuente