Acabo de configurar mi servidor SFTP y funciona bien cuando lo uso desde mi primera cuenta de usuario. Quería agregar un usuario al que llamaremos 'magnarp'. Al principio me gustó esto en sshd_config:
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Eso funcionó lo suficientemente bien, el usuario magnarp entró en su directorio de inicio. Luego intenté agregarle un enlace simbólico.
home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"
El enlace simbólico funcionó bien a través de SSH pero no a través de SFTP.
Entonces, lo que quiero hacer ahora es agrupar a Chroot en sftponly a / home / DUMP y me gustó esto:
Match group sftponly
ChrootDirectory /home/DUMP
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
La carpeta DUMP tiene los siguientes permisos.
drwxrwxrwx 5 root root 4096 aug 18 02:25 DUMP
Y este es el código de error:
Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp
A) ¿Cuál sería el punto de hacer chroot si hacer simlinks ayudaría a evadir el chroot? (Cualquier usuario podría cargar un enlace sim y luego acceder a todo el sistema de archivos)
B) Un chmod 777 más y te llamará theo ( http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg ). Consulte http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html para comprender por qué openssh es tan exigente con los permisos del directorio chroot.
fuente