Cómo confinar usuarios a sus directorios de inicio con OpenSSH 4.9p1 o más reciente
Con las versiones anteriores de OpenSSH, la única forma de confinar a los usuarios en sus directorios de inicio era mediante hacks de terceros o configuraciones complicadas de chroot. Sin embargo, la versión 4.9p1 recientemente lanzada de OpenSSH proporciona la capacidad de confinar a los usuarios sin usar complementos de terceros, lo que es una adición bienvenida a esta poderosa herramienta.
Chrooting de usuarios con OpenSSH
Además, ahora es mucho más sencillo proporcionar servicios de SFTP que restringen a los usuarios a su directorio de inicio.
Para empezar, asegúrate de tener instalado OpenSSH 4.9p1 o una versión más reciente. Luego, edita /etc/ssh/sshd_config (/etc/sshd_config en algunas distribuciones) y configura las siguientes opciones:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Asegúrate de que la directiva "Match" esté al final del archivo. Esto le indica a OpenSSH que todos los usuarios del grupo sftp deben ser confinados en su directorio de inicio (que se representa como %h en el comando ChrootDirectory), fuerza el uso del ayudante internal-sftp y deshabilita el reenvío de puertos TCP. El comando Subsystem habilitado previamente es necesario para permitir el uso del subsistema SFTP. Esto puede ser una ruta al ayudante sftp-server o el internal-sftp, pero con el propósito del chrooting, el comando internal-sftp funciona mejor y no requiere una shell ni bibliotecas instaladas en el chroot.
Confirmando usuarios con chrooting
Para cualquier usuario que desees confinar, añádelos al grupo sftp usando:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
El comando usermod de arriba añadirá al usuario joe al grupo sftp y establecerá su shell en /bin/false para que no tenga acceso a la shell en absoluto. Los comandos chown y chmod establecerán los permisos necesarios para el directorio. Con estos permisos establecidos, al usuario se le permitirá subir y descargar archivos, pero no podrá crear directorios ni archivos en el directorio raíz. En otras palabras, si se utiliza para alojamiento web, asegúrate de que exista un subdirectorio en el directorio raíz, como /home/joe/public_html/, y que sea propiedad del usuario; de esta manera, podrán escribir y crear directorios en /home/joe/public_html/, pero no podrán realizar cambios en el directorio raíz (/home/joe) en sí.
Cómo utilizar Isearch para buscar archivos de texto en LinuxChrooting de cuentas de shell
El chrooting de cuentas de shell es un poco más complicado, ya que requiere que ciertos archivos de dispositivos y una shell estén disponibles en el directorio de inicio del usuario. Los siguientes comandos configurarán un sistema básico de chroot en Mandriva Linux:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
Con lo anterior, el usuario joe podrá hacer ssh y estará limitado al chroot. Desafortunadamente, esto no hace mucho, pero te da una idea de cómo se puede configurar. Dependiendo de lo que desees proporcionar, deberás instalar bibliotecas y binarios adicionales. Una idea podría ser tener una configuración de chroot que sea una instalación mínima del sistema operativo. Por ejemplo, con Mandriva puedes instalar una segunda copia del sistema operativo usando urpmi en el directorio /chroot. La información de autenticación se toma del anfitrión, por lo que no es necesario crear y mantener contraseñas de usuario dentro del chroot, y esto permitiría otro grado de separación del sistema operativo principal/anfitrión hacia donde se les permite a los usuarios acceder, encarcelándolos efectivamente en un segundo sistema operativo con herramientas y funcionalidades limitadas.
De las dos opciones, el chrooting de SFTP es el más fácil de configurar y mantener, y es probablemente suficiente para la mayoría de los casos de acceso remoto.
Obtén la versión en PDF de este tip.
Guía para entender y gestionar los permisos de archivos y directorios en LinuxEn Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Código abierto, allí encontraras muchos artículos similares a Cómo confinar usuarios a sus directorios de inicio con OpenSSH 4.9p1 o más reciente , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados