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.

Índice de Contenido
  1. Chrooting de usuarios con OpenSSH
  2. Confirmando usuarios con chrooting
  3. Chrooting de cuentas de shell

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 Linux

Chrooting 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 Linux

En 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

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.