Table of Contents
Cómo restringir a los usuarios de SFTP a los directorios de inicio usando chroot Jail
En este tutorial, discutiremos cómo restringir a los usuarios de SFTP. a sus directorios personales o directorios específicos. Significa que el usuario solo puede acceder a su directorio de inicio respectivo, no a todo el sistema de archivos.
Restringir los directorios de inicio de los usuarios es vital, especialmente en un entorno de servidor compartido, para que un usuario no autorizado no se cuele eche un vistazo a los archivos y carpetas de otros usuarios.
Importante. tenga en cuenta también que el propósito de este artículo es proporcionar acceso SFTP únicamente, no Los inicios de sesión SSH, siguiendo este artículo, tendrán los permisos para realizar transferencias de archivos, pero no podrán realizar una sesión SSH remota.
Lectura sugerida: Restringir el acceso de usuarios SSH a ciertos directorios usando Chrooted Jail
El La forma más sencilla de hacer esto es crear un entorno de cárcel con chroot para el acceso SFTP. Este método es el mismo para todos los sistemas operativos Unix/Linux. Usando el entorno chrooted, podemos restringir a los usuarios a su directorio de inicio oa un directorio específico.
Restringir usuarios a directorios de inicio
En esta sección, crearemos un nuevo grupo llamado sftpgroup. y asigne la propiedad y los permisos correctos a las cuentas de usuario. Hay dos opciones para restringir a los usuarios a directorios particulares o específicos, veremos ambas formas en este artículo.
Crear o modificar usuarios y grupos freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: ” tecmint_incontent “);
Restringamos al usuario existente, por ejemplo tecmint, a su directorio personal llamado/home/tecmint. Para esto, necesita crear un nuevo grupo sftpgroup. usando el comando groupadd. como se muestra:
# groupadd sftpgroup
A continuación, asigne el usuario ‘ tecmint ‘ al grupo sftpgroup.
# usermod-G sftpgroup tecmint
También puede crear un nuevo usuario usando el comando useradd, por ejemplo, senthil y asignar el usuario a sftpusers. group.
# adduser senthil-g sftpgroup-s/sbin/nologin # passwd tecmint Modificar el archivo de configuración SSH
Abra y agregue las siguientes líneas al archivo de configuración/etc/ssh/sshd_config .
Subsistema sftp internal-sftp Match Group sftpgroup ChrootDirectory/home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Guarde y salga del archivo, reinicie el servicio sshd para que los nuevos cambios surtan efecto.
# systemctl restart sshd OR # service sshd restart
Si crea un chroot a varios usuarios en el mismo directorio, debe cambiar los permisos de cada usuario. ome directorio para evitar que todos los usuarios naveguen por los directorios de inicio de los demás usuarios.
# chmod 700/home/tecmint Verifique el inicio de sesión de los usuarios SSH y SFTP
Ahora es el momento de verificar el inicio de sesión desde un local sistema. Intente ssh su sistema remoto desde su sistema local.
# ssh [email protected]
Aquí,
- tecmint. nombre de usuario del sistema remoto.
- 192.168.1.150. dirección IP del sistema remoto.
Resultado de muestra: contraseña de [email protected]: no se pudo acceder al directorio de inicio/home/tecmint: No existe tal archivo o directorio. Este servicio solo permite conexiones sftp. Conexión a 192.168.1.150 cerrada.
Luego, acceda al sistema remoto usando SFTP.
# sftp [email protected] Salida de muestra: Contraseña de [email protected]: Conectado a 192.168.1.150. sftp>
Comprobemos el directorio de trabajo actual:
sftp & gt pwd. Directorio de trabajo remoto:/ sftp & gt ls. tecmint
Aquí, tecmint es el directorio de inicio. Cd al directorio tecmint. y cree los archivos o carpetas que desee.
sftp & gt cd tecmint. Directorio de trabajo remoto:/ sftp & gt mkdir test. tecmint
Restringir usuarios a un directorio específico
En nuestro ejemplo anterior, restringimos los usuarios existentes al directorio de inicio. Ahora, veremos cómo restringir un nuevo usuario a un directorio personalizado.
Crear grupo y nuevos usuarios
Crear un nuevo grupo sftpgroup.
# groupadd sftpgroup
A continuación, crear un directorio para SFTP agrupe y asigne permisos para el usuario root.
# mkdir-p/sftpusers/chroot # chown root: root/sftpusers/chroot/
A continuación, cree nuevos directorios para cada usuario, a los que tendrán acceso. Por ejemplo, crearemos un usuario tecmint y su nuevo directorio de inicio con el permiso de grupo correcto usando la siguiente serie de comandos.
# adduser tecmint-g sftpgroup-s/sbin/nologin # passwd tecmint # mkdir/sftpusers/chroot/tecmint # chown tecmint: sftpgroup/sftpusers/chroot/tecmint/# chmod 700/sftpusers/chroot/tecmint/Configure SSH para acceso SFTP
Modifique o agregue las siguientes líneas al final del archivo:
#Subsistema sftp/usr/libexec/openssh/sftp-server Subsistema sftp internal-sftp Match Group sftpgroup ChrootDirectory/sftpusers/chroot/ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Guarde y salga del archivo. Reinicie el servicio sshd para que se apliquen los cambios guardados.
# systemctl restart sshd O # service sshd restart
Eso es todo, puede verificar iniciando sesión en su servidor SSH y SFTP remoto mediante el paso proporcionado anteriormente en Verificar Inicio de sesión SSH y SFTP.
Tenga en cuenta que este método deshabilitará el acceso al shell, es decir, no podrá acceder a la sesión del shell del sistema remoto mediante SSH. Solo puede acceder a los sistemas remotos a través de SFTP y realizar transferencias de archivos desde y hacia los sistemas locales y remotos.
Conclusión
Ahora sabe cómo restringir los directorios de inicio de los usuarios utilizando un entorno Chroot en Linux. Si encuentra esto útil, comparta este artículo en sus redes sociales y háganos saber en la sección de comentarios a continuación si existe algún otro método para restringir los directorios de inicio de los usuarios.