Servidor FTP · 5 min read · Sep 23, 2025

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

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 considera inseguro porque transfiere datos junto con las credenciales del usuario sin ningún tipo de cifrado.

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

VSFTPD también es conocido como “Very Secure File Transfer Protocol Daemon” con soporte de SSL, IPv6, FTPS explícito e implícito.

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

Requisitos previos

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

1. Instalar Vsftpd

Antes de comenzar la instalación, actualiza tu 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, así que puedes instalar fácilmente el vsftpd ejecutando el siguiente comando:

sudo apt install vsftpd -y

Después de la instalación del paquete, inicia el servicio Vsftpd, verifica el estado del servicio y habilita el servicio al inicio.

sudo systemctl start vsftpd  
  
sudo systemctl status vsftpd  
  
systemctl enable vsftpd.service

2. Crear un usuario FTP y configurar para el inicio de sesión FTP

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

sudo adduser sohan

Los usuarios añadidos en el archivo vsftpd.userlist tienen permiso para acceder al servidor FTP.

A continuación, necesitamos agregar el usuario sohan en la lista de usuarios de vsftpd. Abre el archivo y agrega un usuario ejecutando el siguiente comando:

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

3. Crear el directorio del usuario FTP

A continuación, necesitamos 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, crea un directorio donde se puedan subir archivos y da 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

4. Configurar Vsftpd

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

Primero, crea una copia de seguridad del archivo de configuración original de vsftpd.

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 usuarios anónimos y solo otorgaremos acceso al usuario específico.

A continuación, abre el archivo vsftpd.conf y realiza los cambios como se indica a continuación:

vim /etc/vsftpd.conf
anonymous_enable=NO  
  
local_enable=YES

Hay algunos otros cambios que necesitamos hacer en la configuración. Primero abre vsftpd.conf

sudo vim /etc/vsftpd.conf

A continuación, asegúrate 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

Guarda y cierra el archivo. Puedes cambiar la configuración anterior de acuerdo a tus necesidades.

Ahora reinicia el servicio vsftpd y verifica el estado del servicio ejecutando los siguientes comandos:

sudo systemctl restart vsftpd

A continuación, asegúrate 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 firewall y acceder al servidor vsftpd

A continuación, si estás utilizando un firewall, permite 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, abre cualquier cliente FTP como FileZilla e ingresa los detalles de tu servidor, como Protocolo, Host, Usuario:

Configurar el Firewall
Ahora, haz clic en conectar, luego ingresa tu contraseña:

Ingresar contraseña

Luego, mostrará detalles como a continuación, haz clic en OK.

Aceptar nuevo host

En este punto, estás conectado al servidor FTP, y puedes subir y descargar archivos/carpetas.

La conexión al servidor FTP fue exitosa

6. Asegurar Vsftpd usando SSL/TLS

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

Puedes crear un certificado usando OpenSSL con 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, necesitarás editar el archivo vsftpd.conf y hacer algunos cambios:

sudo vim /etc/vsftpd.conf

Agrega las siguientes líneas al final:

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

Guarda y sal del archivo, luego reinicia Vsftpd usando el siguiente comando:

sudo systemctl restart vsftpd

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

Abre el cliente FTP FileZilla y ve a Archivo>Administrador de sitios. Aquí, haz clic en agregar nuevo sitio e ingresa el nombre del host/sitio, agrega la dirección IP, define el protocolo a usar, Cifrado: Requerir FTP explícito sobre TLS y tipo de inicio de sesión. Luego haz clic en el botón Conectar. Deberías ver la siguiente imagen:

Acceder a FTP a través de SSL/TLS

A continuación, ingresa tu contraseña:

Ingresar contraseña
A continuación, verás el certificado SSL, verifica los detalles del certificado y haz clic en OK.

Aceptar certificado SSL
Por último, verás el contenido de tu servidor FTP y podrás transferir tus datos de forma segura de un sistema a otro.

Conexión al servidor FTP exitosa

Conclusión

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

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.