Cómo instalar el servidor FTP vsftpd y asegurarlo con TLS en Debian 11

Crear directorio FTP

El Protocolo de transferencia de archivos o FTP es un protocolo de red muy antiguo y uno de los más conocidos. No es seguro en comparación con SFTP o SCP en estos días, pero sigue siendo la primera opción de muchos usuarios para transferir archivos entre un servidor y un cliente. FTP se conoce como inseguro porque transfiere datos junto con las credenciales del usuario sin ningún tipo de encriptación.

Tenemos una gran variedad de servidores FTP de código abierto disponibles hoy en día, como FTPD, VSFTPD, PROFTPD y pureftpd. Entre todos ellos, VSFTPD es un protocolo muy seguro, rápido y el más usado para transferir archivos entre dos sistemas.

VSFTPD también se conoce como «Demonio de protocolo de transferencia de archivos muy seguro» con soporte para SSL, IPv6, FTPS explícito e implícito.

En esta guía, le mostraremos cómo instalar el servidor FTP vsftpd en Debian 11.

Requisitos previos

Un servidor que ejecuta Debian 11.
Un usuario no root con privilegios sudo.

1. Instalar Vsftpd

Antes de comenzar la instalación, actualice su servidor Debian 11 ejecutando el siguiente comando en la terminal:

sudo apt update -y
sudo apt upgrade -y

Debian tiene un repositorio muy grande y el paquete vsftpd está disponible en el repositorio oficial, por lo que puede instalar fácilmente vsftpd ejecutando el siguiente comando:

sudo apt install vsftpd -y

Después de la instalación del paquete, inicie el servicio Vsftpd, verifique el estado del servicio y habilite el servicio al inicio.

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service


2. Cree un usuario de FTP y configure el inicio de sesión de FTP

Ahora, cree una nueva cuenta de usuario para FTP, con este usuario iniciaremos sesión en el servidor FTP más tarde.

sudo adduser sohan

Los usuarios agregados en el archivo vsftpd.userlist tienen permiso para acceder al servidor FTP.

A continuación, debemos agregar el usuario sohan en la lista de usuarios de vsftpd. Abra el archivo y agregue un usuario ejecutando el siguiente comando:

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3. Crear directorio de usuarios FTP

A continuación, debemos crear un directorio FTP para nuestro usuario FTP y establecer la propiedad con el siguiente comando:

sudo mkdir -p /home/sohan/ftp_directory

sudo chown nobody:nogroup /home/sohan/ftp_directory

sudo chmod a-w /home/sohan/ftp_directory


Ahora, cree un directorio donde se puedan cargar los archivos y otorgue la propiedad al usuario sohan ejecutando el comando:

sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

Crear directorio FTP

4. Configurar Vsftpd

A continuación, debe cambiar algunos parámetros predeterminados para configurar un servidor FTP.

Primero, cree una copia de respaldo del archivo de configuración vsftpd original.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

En el servidor FTP, los usuarios anónimos tienen acceso por defecto. Para hacer que el servidor FTP sea más seguro, deshabilitaremos el inicio de sesión de usuario anónimo y solo otorgaremos acceso al usuario específico.

A continuación, abra el archivo vsftpd.conf y realice los cambios de la siguiente manera:

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES


Hay algunos otros cambios que debemos hacer en la configuración, primero abrir vsftpd.conf

sudo vim /etc/vsftpd.conf

A continuación, asegúrese de que vsftpd.conf contenga las siguientes líneas:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Guarde y cierre el archivo. Puede cambiar la configuración anterior según sus necesidades.

Ahora reinicie el servicio vsftpd y verifique el estado del servicio ejecutando los siguientes comandos:

sudo systemctl restart vsftpd

A continuación, asegúrese de que el servicio vsftpd esté en estado de ejecución ejecutando el siguiente comando en la Terminal:

sudo systemctl status vsftpd

5. permitir vsftpd en el cortafuegos y acceder al servidor vsftpd

A continuación, si está utilizando un firewall, permita el puerto 21 y el puerto 22 ejecutando el siguiente comando:

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp


Luego recarga el firewall para aplicar los cambios:

sudo ufw reload

A continuación, abra cualquier cliente FTP como FileZilla e ingrese los detalles de su servidor, como Protocolo, Host, Usuario:

Configurar el cortafuegos
Ahora, haga clic en conectar, luego ingrese su contraseña:

Introducir la contraseña

Luego, mostrará detalles como a continuación, haga clic en Aceptar.

Aceptar nuevo anfitrión

En este punto, está conectado al servidor FTP y puede cargar y descargar archivos/carpetas.

La conexión del servidor FTP fue exitosa

6. Asegure Vsftpd usando SSL/TLS

Digamos que desea transferir datos cifrados a través de FTP, para hacerlo necesita crear un certificado SSL y habilitar la conexión SSL/TLS.

Puede crear un certificado usando OpenSSL usando el siguiente comando:

sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem

Ahora, deberá editar el archivo vsftpd.conf y realizar algunos cambios:

sudo vim /etc/vsftpd.conf

Agregue las siguientes líneas por fin:

rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Guarde y salga del archivo, luego reinicie Vsftpd usando el siguiente comando:

sudo systemctl restart vsftpd

7. Acceda a FTP a través de SSL/TLS

Abra el cliente FTP de FileZilla y vaya a Archivo>Administrador de sitios. Aquí, haga clic en Agregar nuevo sitio e ingrese el nombre del host/sitio, agregue la dirección IP, defina el protocolo a usar, Cifrado: Requerir para explicar FTP sobre TLS y tipo de inicio de sesión. Luego haga clic en el botón Conectar. Deberías ver la siguiente imagen:

Acceda a FTP sobre SSL/TLS

A continuación, introduzca su contraseña:

Introducir la contraseña
A continuación, verá el certificado SSL, verificará los detalles del certificado y hará clic en Aceptar.

Aceptar certificado SSL
Por fin, verá el contenido de su servidor FTP y podrá transferir sus datos de forma segura de un sistema a otro.

Conexión al servidor FTP exitosaAnuncio publicitario

Conclusión

En la guía anterior, hemos instalado el servidor VSFTPD en Debian 11. También aprendemos cómo conectarnos a través de una conexión cifrada y no cifrada utilizando un certificado SSL.

Deja una respuesta

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