El enjaulado ya sea para FTP o SFTP en Solaris proporciona un acceso limitado al Sistema de Archivos,
normalmente en el home de cada usuario y el acceso se limita a esta.
La configuracion normal o por default permite a los usuarios navegar o moverse por todo el sistema de
archivo o carpetas de usuarios arriesgando la confidencialidad del sistema con el simple hecho de ver.
Para evitarlo se tiene que configurar el enjaulado en su directorio home y no podra subir de este nivel.
Nota: El usuario no podra realizar conexiones del tipo SSH o nivel comandos, es requisito o restricción
del ChrootDirectory de OpenSSH que los permisos del directorio Jaula y los directorios sobre este
debe ser root. Por lo que la cuenta de usuario a enjaular su rol o uso debe ser unicamente de
transferencia.
1. Permisos y propietario de la jaula
En este ejemplo se configura un usuario con acceso SFTP enjaulado; el propietario del directorio jaula
y los directorios sobre este, debe ser root. Así para este ejemplo, las carpetas /export/home,
/export/home/user01 deberán ser propiedad de root con los permisos 755.
Si se deja de esta forma la configuración anterior, el usuario no tendría privilegios de escritura
sobre su directorio. Para solucionar este problema, se crea al usuario el directorio 'archivos', dentro
de la jaula, que sea de su propiedad, y es allí donde él podrá tanto escribir como leer sus archivos.
Quedando de esta forma /export/home/user01/archivos
2. Configuración del enjaulado SFTP
Para configurar un servidor SFTP restringido uno debería usar las directivas ForceCommand y ChrootDirectory
en el archivo de configuración sshd_config, que se encuentra en /etc/ssh/sshd_config o en /usr/local/etc.
Primero hay que cambiar, la linea en /etc/ssh/sshd_config:
Comentar
# override default of no subsystems
Subsystem sftp /usr/local/libexec/sftp-server
Agregar en su lugar:
Subsystem sftp internal-sftp
Puede restringirse el servicio a usuarios, de modo que si se requiere aplicar enjaulado al user01 usamos la
directiva Match como sigue
Match user user01
ChrootDirectory /export/home/user01
ForceCommand internal-sftp
Para el enjaulado de un grupo se hace de manera similar (de esta forma aparecerán en el directorio
raíz todos los usuarios que hayamos creado):
Match group app_mx
ChrootDirectory /export/home/app_mx_downl
ForceCommand internal-sftp
3. Para que la configuración tome efecto, reiniciar el proceso o daemon de ssh
# svcadm refresh ssh
|