Search
Close this search box.

Cómo Configurar el Servidor SFTP en Ubuntu

Ubuntu arte 2
Actualizado el 27 noviembre, 2023 13:11:05

SFTP es el acrónimo de “Secure File Transfer Protocol” misma que es una tecnología que se utiliza para transferir archivos de un lugar a otro a través de Internet y funciona de manera similar a FTP (File Text Protocol), pero la diferencia entre ambos es que SFTP también asegura la privacidad del archivo mediante el servicio SSH, que protege los datos cifrándolos, para que nadie pueda los pueda acceder.

Aunque tiene la ventaja de que encripta los datos y los transfiere a la ubicación de destino de manera más segura, también tiene una desventaja; al llegar a la ubicación de destino, cualquier usuario puede leer el dato.

Entonces, para hacerlo más seguro, debemos restringir el acceso de otros usuarios, además de los usuarios permitidos.

En este artículo veremos cómo instalar el servidor SFTP en Ubuntu, si aún no está instalado, y cómo configurarlo usando la interfaz de linea de comandos de Ubuntu.

Cómo Instalar el Servidor SFTP en UBUNTU

El servidor SFTP generalmente se instala en Ubuntu de manera predeterminada, pero si aún no está instalado, es posible realizarlo. 

Antes de instalarlo, debido a que SFTP usa el servidor SSH, para verificar que el servidor SFTP ya esté instalado o no, ejecutaremos el comando mencionado a continuación:

sudo systemctl status ssh

Dependiendo del caso podríamos obtener como respuesta una de las dos capturas de pantallas siguientes:

Respuesta cuando el SSH está instalado y funcionando en el servidor
Cuando no se ha instalado SSH obtenemos esta respuesta

Si no tenemos instalado aún el SSH, procedemos a instalarlo mediante el siguiente comando:

sudo apt install ssh -y

Una vez instalado lo habilitaremos mediante el comando:

sudo systemctl enable ssh

Entonces, iniciamos el servicio a través del comando:

sudo systemctl start ssh

Y realizamos de nuevo la verifica con el comando:

sudo systemctl status ssh

Solo cuando el servicio este activo y ejecutándose podremos realizar los siguientes pasos.

Creación de una cuenta de usuario SFTP

Podemos crear usuarios directamente o creando un grupo de usuarios SFTP y luego crear usuarios individuales para darles acceso al SFTP.

Procedo a crear un grupo, al que llamaré “sfe”. Ejecuto el comando:

sudo addgroup <mi nombre de grupo>

Podemos crear un usuario con el comando:

sudo useradd <mi nombre de usuario>

Ahora verificamos el usuario apenas creado, con el comando:

less /etc/passwd | grep <usuario creado>

Hemos elegido utilizar SFTP por motivos de seguridad, entonces es el momento de atribuir una contraseña al usuario apenas creado. Escribimos el comando:

sudo passwd <nombre usuario>

El siguiente paso es agregar el usuario al grupo que creamos al principio. Ejecutamos el comando:

sudo usermod -a -G <grupo> <usuario>

Verificamos que el usuario esté dentro del grupo. 

grep <grupo> /etc/group

Creación del directorio para transferencias de archivos

Para restringir el acceso a un directorio en manera que solo los usuarios autorizados puedan ver la información, crearemos un directorio “Documentos” en la ruta /var/<miGrupo> que será propiedad del root (usuario admin).

Entonces solo el usuario que hallamos creado pueda acceder a ese directorio y cargar archivos en él.

Para hacerlo, primero, crearemos un directorio de “Documentos” usando el comando:

sudo mkdir -p /var/<grupo>/documentos

Asignamos entonces la ruta raíz al usuario root. escribimos:

sudo chown root:<usuario root> /var/<grupo>
Otorgamos permisos de escritura del directorio y permiso para que otros usuarios solo puedan leer. Ejecutamos el comando:
sudo chmod 755 /var/<grupo>

Por último atribuimos el permiso del  directorio documentos al usuario creado.

sudo chown <usuario>:<usuario> /var/<grupo>/documentos

Configuración de SSH daemon

Una vez completada la instalación, abriremos el archivo de configuración del servidor SSH con cualquier editor y lo configuraremos.

Restringiremos al usuario creado, al directorio /var/sfe, y ninguno de los otros usuarios podrá acceder a este directorio.

Para modificar el archivo de configuración, ejecutamos el siguiente comando:

sudo nano /etc/ssh/sshd_config

Escribimos la sección evidenciada en el recuadro verde de la captura de pantalla anterior. 

Debemos tener cuidado de utilizar los nombres de grupo y usuario que hemos utilizado previamente.

Asegurarse también de escribir las lineas debajo de la linea con el comando:

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

Las lineas de parámetros que se ingresan significan:

Match User le dice al SSH que implemente estos cambios en el usuario mencionado, en el caso de nuestro ejemplo es “zeven”

ChrootDirectory asegura que el usuario no tendrá acceso a ningún otro directorio excepto al que se especifica, en el caso del ejemplo “/var/sfe”.

AllowTcpForwarding y X11Forwarding habilitarán o deshabilitarán la tunelización de puertos y el reenvío X11, en el caso del ejemplo, ambos se deshabilitan escribiendo “no”.

ForceCommand garantiza que SSH ejecute el servidor SFTP solo después del inicio de sesión

Una vez realizados los cambios, guárdelos presionando CTRL+O y luego salga del editor presionando CTRL+X.

Para aplicar estos nuevos cambios, reinicie el servidor SSH usando el comando:

sudo systemctl restart ssh

Verificación de la configuración

Para verificar la correcta configuración del usuario apenas creado, procedemos a conectarnos en modo regular (debería no permitirlo), con el comando:

ssh <usuario>@localhost

Todo está bien hecho si nos indica que solo se permiten conexiones SFTP para este usuario.

Utilizamos este comando para verificar en cambio la conexión en modo correcto:

sftp <usuario>@127.0.0.1

Nos hemos conectado al servidor SFTP.

Verificamos el contenido a traves del comando ls

Conclusión

El servidor SFTP cifra el archivo y lo transfiere a los destinos, y decodifica el archivo allí para comunicar los datos de forma segura.

La seguridad es necesaria para transferir archivos, ya que a veces los archivos contienen información confidencial que solo debe entregarse a una persona autorizada, esto se puede hacer con la ayuda de SFTP.

En este artículo, aprendimos cómo instalar el servidor SFTP en UBUNTU si no está instalado de forma predeterminada. 

Sobre el mismo argumento...

Deja una respuesta

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

Más leídos (últimos 30 días)

Archivo

Argumentos