GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo crear solo un usuario SFTP en Debian 11

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 primero es una regla general para los administradores del sistema. En algunos casos, necesitamos permitir que los usuarios remotos accedan al sistema de archivos en nuestro sistema, pero no desea permitirles obtener un shell. Esto le permitirá un canal seguro para brindar acceso limitado a archivos y directorios específicos.

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

Requisitos

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

Paso 1:crear 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 usar cualquier nombre de su elección o requerimiento.

sudo adduser --shell /bin/false sftpuser 

Paso 2:cree un directorio para acceso SFTP

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

Cree la estructura de directorios con el siguiente comando:

sudo mkdir -p /var/sftp/files 

A continuación, debemos establecer el permiso adecuado en los directorios para configurar como acceso chroot con acceso de escritura para el usuario. Aquí /var/sftp debe tener la propiedad raíz y el grupo con el permiso adecuado. Para establecer ese permiso, escriba:

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

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

sudo chown sftpuser:sftpuser /var/sftp/files 

Una vez que sftpuser se conecte al servidor, obtendrá /var/sftp como directorio raíz. No puede acceder al sistema de archivos fuera de él. Además, el usuario puede leer/escribir archivos solo en el directorio "archivos".

Paso 3:configurar sshd solo para SFTP

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

sudo nano /etc/ssh/sshd_config 

y 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

Vuelva a verificar que todas las configuraciones sean correctas. Luego guarde los cambios y reinicie el servicio SSH para aplicar los cambios.

sudo systemctl restart ssh 

Todo listo, el uso exclusivo de SFTP se crea con éxito en su sistema Debian. Ahora intente iniciar sesión en el sistema remoto con las credenciales del nuevo usuario y compruebe si todo funciona correctamente.

Paso 4:Conéctese a SFTP

Uno puede conectarse a un servidor SFTP remoto usando una línea de comando o aplicaciones gráficas como Filezilla o WinSCP. En este tutorial, le mostraré las dos formas de conectar el servidor SFTP.

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

sftp [email protected] 

[email protected]'s password:
sftp>

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

Verificar que no haya acceso shell:

Como esta cuenta está configurada solo para conexión SFTP. Entonces, si algún usuario intentó conectarse a través de SSH, se desconectará inmediatamente después de la 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.tecadmin.net closed.

Conclusión

En esta guía práctica, aprendió a crear un entorno chroot jail 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 está creado y probado con el sistema Debian 11 Bullseye, pero funcionará en otras versiones de Debian.


Debian
  1. Cómo configurar un servidor SFTP en Debian 11 Server

  2. Centos:¿cómo crear un usuario Sftp en Centos?

  3. Cómo crear y eliminar un usuario en Debian 9

  4. Cómo crear un usuario SFTP sin acceso Shell en CentOS 8

  5. ¿Cómo puedo crear un usuario solo para sftp?

Cómo crear un usuario ssh encarcelado con Jailkit en Debian/Ubuntu

Cómo agregar un usuario a Sudoers en Debian 10

Cómo instalar Fathom en Debian 11

Cómo instalar Git en Debian 10

Cómo crear un usuario Sudo en Ubuntu y Debian

Cómo crear un usuario o contacto