
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 recomendada – Libro 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
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: