Cómo crear un usuario solo SFTP en Debian 11

7 ott 2021 3 min di lettura
Cómo crear un usuario solo SFTP en Debian 11
Indice dei contenuti

Introducción

SFTP (Protocolo de transferencia de archivos SSH) es un protocolo de archivo seguro que se utiliza para acceder, administrar y transferir archivos a través de una sesión de transporte SSH cifrada. La seguridad, en primer lugar, es una regla general para los administradores de sistemas. En algunos casos, necesitamos permitir que los usuarios remotos accedan al sistema de archivos en nuestro sistema, pero no desea permitirles que obtengan un shell. Esto le permitirá un canal seguro para proporcionar acceso limitado a archivos y directorios específicos.

Este tutorial le ayudará a configurar el acceso SFTP únicamente (sin acceso shell) en el sistema Debian 11. Creará un entorno chroot en su sistema para restringir el usuario SFTP a un directorio específico únicamente. Además, solo permitirá el acceso SFTP sin acceso SSH al usuario.

Prerrequisitos

  • Un sistema Linux en ejecución Debian 11 Bullseye
  • Debe tener una cuenta sudo privilegiada con acceso al shell

Crea un nuevo usuario

En primer lugar, cree un nuevo usuario para conectarse con el servidor sftp. El siguiente comando creará una nueva cuenta llamada sftpuser sin acceso al shell. Puede utilizar cualquier nombre de su elección o requisito.

sudo adduser --shell /bin/false sftpuser 

Cree un directorio para el acceso SFTP

Ha creado un usuario para sftp. Ahora, cree un directorio para configurarlo como chroot para sftp. Para este ejemplo, crearé un directorio / var / sftp. El directorio debe tener la propiedad raíz para configurarse como un directorio chroot. Luego crearemos un subdirectorio en / var / sftp con acceso de escritura a la cuenta sftp.

Cree la estructura del directorio con el siguiente comando:

sudo mkdir -p /var/sftp/files 

A continuación, debemos establecer los permisos adecuados en los directorios que se configurarán como acceso chroot con acceso de escritura para el usuario. Aquí /var/sftpdebe tener la propiedad raíz y el grupo con los permisos adecuados. Para establecer este permiso, escriba:

sudo chown root:root /var/sftp 
sudo chmod 755 /var/sftp 

Ahora, cambie el permiso del directorio "files"para permitir el acceso de escritura a sftpuser. Para establecer estos permisos, escriba:

sudo chown sftpuser:sftpuser /var/sftp/files 

Una vez que sftpuser se conecte al servidor, se convertirá /var/sftpen root. No puede acceder al sistema de archivos fuera de él. Además, el usuario solo puede leer / escribir archivos en el directorio " archivos ".

Configurar sshd solo para SFTP

A continuación, debe configurar el servidor SSH para permitir que "sftpuser" se conecte al servidor solo con sFTP sin acceso de shell. Para realizar los cambios necesarios, edite el archivo de configuración SSH:

sudo nano /etc/ssh/sshd_config 

Agregue la siguiente configuración al final del archivo.

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

Verifique que todos los ajustes sean correctos. Luego, guarde los cambios y reinicie el servicio SSH para aplicar los cambios.

sudo systemctl restart ssh 

Todo hecho, el uso de SFTP solo se ha creado con éxito en su sistema Debian. Ahora intente iniciar sesión en el sistema remoto con las credenciales del nuevo usuario y verifique si todo funciona bien.

Conectarse a SFTP

Puede conectarse a un servidor SFTP remoto mediante una línea de comandos o aplicaciones gráficas como Filezilla o WinSCP. En este tutorial, le mostraré ambas formas de conectar el servidor SFTP.

Los usuarios de Linux pueden utilizar la utilidad de línea de comandos sftp para conectarse a instancias sftp remotas:

sftp [email protected] 
[email protected]'s password:
sftp>

La interfaz GUI o los usuarios de Windows pueden utilizar clientes sftp gráficos. Por ejemplo, use el cliente Filezilla para conectar solo la cuenta sftp remota en el sistema remoto.

Como esta cuenta está configurada solo para conexión SFTP. Por lo tanto, si un usuario ha intentado conectarse a través de SSH, se cerrará la sesión inmediatamente después de una autenticación exitosa. El usuario recibirá el siguiente mensaje:

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

Conclusión

En esta guía, aprendió cómo crear un entorno de jail chroot para usuarios de SFTP sin acceso de shell al servidor. El entorno Chroot protege el sistema de archivos al evitar que los usuarios accedan a archivos fuera del directorio definido. Este tutorial fue creado y probado con el sistema Debian 11 Bullseye, pero funcionará en otras versiones de Debian.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.