Tutoriales

Cómo configurar Chrooted SFTP en Linux

Esta guía explica cómo configurar Chrooted SFTP en Linux para restringir el acceso de los usuarios SSH al directorio de inicio o un directorio específico. En otras palabras, vamos a forzar a los usuarios a ingresar a un directorio específico y configurar su shell en /bin/nologin u otro shell que niega el acceso a un inicio de sesión SSH. Tan pronto como se configura el SFTP chrooted, los usuarios solo pueden acceder a su directorio de inicio asignado, pero no a todo el sistema de archivos

Habilitar el acceso SFTP chrooted tiene las siguientes ventajas:

  • Permita que los usuarios se conecten solo mediante SFTP, no SSH.
  • Restrinja una sesión de usuario SSH a su directorio de inicio o un directorio específico de su elección.
  • Restrinja el acceso SSH a usuarios específicos y aún permítales transferir archivos entre sistemas locales y remotos.
  • Denegar el acceso de los usuarios a todo el sistema de archivos.

Ahora sigamos adelante y configuremos Chrooted SFTP para restringir a los usuarios de SSH al directorio de inicio y / o cualquier otro directorio con chrooted jail en Linux.

Este manual ha sido probado oficialmente en las distribuciones Debian 11 Bullseye, Ubuntu 20.04 LTS y Ubuntu 18.04 LTS. Sin embargo, los pasos que se enumeran a continuación deberían funcionar para cualquier distribución de Linux que admita openSSH.

Configurar SFTP chrooted en Linux

A partir de la versión 4.9, openSSH tiene una función llamada subsistema sftp interno que solo permite el acceso SFTP, pero no el acceso SSH. Los usuarios solo pueden acceder a los datos en el servidor, pero no a través de SSH.

Crea un directorio chroot

Primero, cree un directorio chrooted con el comando:

$ sudo mkdir /sftp

Hacer que este directorio sea propiedad exclusiva de root Usuario con comando:

$ sudo chown root:root /sftp/

En este directorio, cree directorios separados para cada usuario, como por ejemplo: /sftp/user1, /sftp/user2, y /sftp/user3 Etcétera.

Para este tutorial, crearé un directorio llamado ostechnix debajo /sftp Directorio.

$ sudo mkdir /sftp/ostechnix

Este es el directorio en el que los usuarios pueden guardar los datos. Además, los usuarios no pueden exceder este directorio. Es como ellos $ INICIO Directorio.

Cree un grupo sftp y asigne usuarios a este grupo

Ahora necesitamos crear los usuarios para acceder al directorio chroot de SFTP.

Crea un grupo llamado sftponly como se muestra en el siguiente comando:

$ sudo groupadd sftponly

Luego cree nuevos usuarios SFTP o asigne a los usuarios existentes el "sftponly" Agrupe como se muestra a continuación.

Por ejemplo, déjame crear un nuevo usuario. senthily asígnelo a "sftponly" Grupo. Y luego configuró su directorio de inicio como un /sftp/ostechnix y la carcasa estándar como /sbin/nologin.

Podemos hacer esto con el siguiente comando en línea:

$ sudo useradd -g sftponly -d /ostechnix -s /sbin/nologin senthil

Establezca la contraseña para el usuario recién creado con el comando:

$ sudo passwd senthil

Para cambiar el usuario existente, use "usermod" En lugar de "useradd" Comando de la siguiente manera:

$ sudo usermod -g sftponly -d /ostechnix -s /sbin/nologin senthil

Asignar los permisos correctos al directorio chrooted

Debe otorgar a los usuarios de SFTP los permisos correctos para acceder a su directorio INICIO como se muestra a continuación.

$ sudo chown senthil:sftponly /sftp/ostechnix
$ sudo chmod 700 /sftp/ostechnix/

Los otros usuarios de SFTP no pueden acceder a este directorio.

También asigne los permisos adecuados a todos los demás usuarios de SFTP.

Descarga recomendadaLibro electrónico gratuito: «Aprenda Linux en 5 días»

Configurar SFTP chrooted

Para editar /etc/ssh/sshd_config Expediente:

$ sudo vi /etc/ssh/sshd_config

Busque y comente las siguientes líneas (es decir, agregue un asterisco # delante para comentarlo).

#Subsystem       sftp    /usr/libexec/openssh/sftp-server

En algunas distribuciones, por ejemplo Ubuntu 18.04 LTS, busque y comente la siguiente línea:

#Subsystem sftp /usr/lib/openssh/sftp-server

A continuación, agregue las siguientes líneas al final del archivo:

Subsystem       sftp    internal-sftp
Match group sftponly
     ChrootDirectory /sftp/
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Configurar SFTP chrooted

Si desea restringir a los usuarios a $HOME Directorio, solo reemplácelo /sftp con /home en el código anterior. Asegúrese de haber especificado la ruta correcta al directorio sftp. Presione ESC y escriba :wq para guardar el archivo y salir.

Empezar de nuevo ssh Servicio para actualizar los cambios.

$ sudo systemctl restart sshd

Ahora intente SSH a este sistema con el usuario sftp (en nuestro caso, senthil) de todos los demás sistemas de la red.

$ ssh [email protected]

Recibirá el siguiente mensaje de error.

[email protected]'s password: 
This service allows sftp connections only.
Connection to 192.168.122.181 closed.

Aquí, 192.168.122.181 es la dirección IP de mi sistema Debian remoto donde configuré SFTP.

Solo puedes ir con. acceder al sistema remoto sftp Como se muestra abajo.

$ sftp [email protected]
[email protected]'s password: 
Connected to 192.168.43.2.
sftp>

¿Ver? El usuario «senthil» puede conectarse a través de sftp, pero no a través de ssh.

Para averiguar el directorio de trabajo actual, use 'pwd' Mando:

sftp> pwd
Remote working directory: /ostechnix
sftp>
Configurar SFTP chrooted en Linux

Configurar SFTP chrooted en Linux

Comandos SFTP básicos

Podemos conectarnos a través de un puerto alternativo con -p Bandera.

$ sftp -P <port_number> [email protected]_host

Para transferir un archivo remoto al sistema local, haga lo siguiente:

sftp> get /path/remote_file

Podemos transferir el archivo local al sistema remoto con el comando:

sftp> put /path/local_file

Para transferir de forma recursiva una carpeta remota al sistema local:

sftp> get -R /path/remote_folder

Para ver la lista de archivos en la computadora local:

sftp> lls

Para ver la lista de archivos en la computadora remota:

sftp> ls

Para obtener más información sobre el uso de sftp, consulte las páginas del manual.

$ man sftp

diploma

En esta guía, discutimos cómo configurar y configurar SFTP chrooted en sistemas operativos Linux como Debian y Ubuntu.

Lectura recomendada:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba