Servidor FTP · 7 min read · Dec 22, 2025

Cómo instalar un servidor FTP seguro con vsftpd en Debian 12

vSFTPd o Very Secure FTP Daemon es un software de servidor FTP gratuito y de código abierto. Es un demonio FTP para sistemas operativos similares a Unix y está licenciado bajo la Licencia Pública General de GNU. vSFTPd es uno de los demonios FTP más utilizados, es rápido y ligero en términos de recursos del sistema, seguro gracias a la integración de PAM y SSL, y estable. vSFTPd ha ganado la confianza de grandes empresas como RedHat, SUSE, Debian, Gnome, KDE, etc. debido a su sofisticación.

vSFTPd puede funcionar con IPv6 y admite configuraciones y usuarios de IP virtuales. Puede ejecutarse como un demonio independiente o a través de inetd. Para la gestión de usuarios, vSFTPd proporciona una función que permite a los usuarios establecer su propia configuración, como restricciones por IP de origen, reconfigurabilidad y limitación de ancho de banda. Además, vSFTPd admite un módulo de autenticación de complemento (PAM) para usuarios virtuales y también proporciona integración de seguridad con SSL/TLS.

En este tutorial, aprenderás a configurar y crear un servidor FTP seguro con vsftpd en un servidor Debian 12. En esta guía también aprenderás a asegurar la instalación de tu servidor FTP a través de UFW (Firewall poco complicado) y cómo conectarte al servidor FTP utilizando el cliente FTP FileZilla.

Prerrequisitos

Antes de continuar, asegúrate de tener lo siguiente:

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador sudo.
  • El paquete openssl está instalado en tu servidor.

Instalando vsftpd

El vsftpd es una implementación del protocolo FTP para sistemas operativos UNIX y Linux. El paquete vsftpd está disponible en la mayoría de las distribuciones de Linux, incluyendo Debian. Ahora instalarás vsftpd a través de APT y verificarás el servicio vsftpd para asegurarte de que el servicio esté en funcionamiento.

Antes de instalar el paquete vsftpd, ejecuta el siguiente comando para actualizar tu repositorio de Debian.

sudo apt update

update repo

Ahora instala el paquete vsftpd usando el comando apt install a continuación.

sudo apt install vsftpd

Confirma la instalación escribiendo y y presiona ENTER.

install vsftpd

Después de que vsftpd esté instalado, el servicio vsftpd se ejecutará automáticamente y estará habilitado. Verifica el servicio vsftpd usando el siguiente comando.

sudo systemctl is-enabled vsftpd  
sudo systemctl status vsftpd

La siguiente salida confirma que el servicio vsftpd está en funcionamiento y habilitado. Además, el servicio vsftpd se ejecutará automáticamente al iniciar el sistema.

verify vsftpd

Configurando vsftpd

En el siguiente paso, configurarás y crearás un servidor FTP seguro con vsftpd. Generarás certificados SSL/TLS y modificarás la configuración predeterminada de vsftpd /etc/vsftpd.conf.

Primero, ejecuta el comando openssl a continuación para generar nuevos certificados TLS que se utilizarán para la instalación de tu servidor vsftpd.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ingresa tu información cuando se te solicite. Después de que el proceso haya finalizado, tus certificados TLS estarán disponibles en /etc/ssl/private/vsftpd.pem.

generate tls

Ahora ejecuta el comando a continuación para crear un nuevo archivo /etc/vsftpd.userlist para almacenar usuarios FTP.

touch /etc/vsftpd.userlist

Después de eso, ejecuta el siguiente comando para hacer una copia de seguridad de la configuración de vsftpd. Luego, abre la configuración de vsftpd /etc/vsftpd.conf usando el editor nano.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig  
sudo nano /etc/vsftpd.conf

Desactiva el acceso anónimo a tu servidor vsftpd cambiando la opción anonymous_enable a NO.

anonymous_enable=NO

Permite que los usuarios locales dentro del archivo /etc/passwd y los usuarios PAM inicien sesión en el servidor vsftpd cambiando la opción local_enable a YES.

local_enable=YES

Permite que los usuarios FTP suban archivos al servidor vsftpd cambiando la opción write_enable a YES.

write_enable=YES

Ahora habilita chroot o cárcel para los usuarios FTP agregando las siguientes opciones. Esto bloqueará al usuario FTP en el directorio /home/$USER/chroot. Por ejemplo, el usuario FTP bob estará bloqueado dentro del directorio /home/bob/chroot.

chroot_local_user=YES  
user_sub_token=$USER  
local_root=/home/$USER/chroot

A continuación, agrega la siguiente configuración para configurar usuarios virtuales en vsftpd. Cualquier usuario dentro del archivo /etc/vsftpd.userlist podrá iniciar sesión en el servidor vsftpd.

userlist_enable=YES  
userlist_file=/etc/vsftpd.userlist  
userlist_deny=NO

Agrega las siguientes líneas para asegurar tu servidor vsftpd con certificados SSL/TLS. Esto forzará el inicio de sesión de usuario y la conexión de transferencia de datos a utilizar conexiones seguras.

rsa_cert_file=/etc/ssl/private/vsftpd.pem  
rsa_private_key_file=/etc/ssl/private/vsftpd.pem  
ssl_enable=YES  
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

Ahora agrega la configuración a continuación para configurar las conexiones en modo pasivo utilizando puertos entre 20000 y 25000.

pasv_min_port=20000  
pasv_max_port=25000

Guarda y sal del archivo cuando termines.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio vsftpd y aplicar los cambios que has realizado.

sudo systemctl restart vsftpd

Con esto, tu servidor vsftpd ahora está funcionando con nuevas configuraciones.

Configurando el Firewall

En el siguiente paso, instalarás UFW (Firewall poco complicado) en tu servidor Debian y asegurarás la instalación de tu servidor FTP con él. Instalarás UFW a través de APT, abrirás el puerto del servidor FTP 20:21/tcp, y el puerto de conexión de datos en modo pasivo 20000:25000/tcp.

Instala UFW usando el siguiente comando apt. Escribe y para proceder con la instalación.

sudo apt install ufw

install ufw

Después de que UFW esté instalado, ejecuta los comandos ufw a continuación para abrir el puerto para el servicio OpenSSH, los puertos del servidor vsftpd 20:21, y la conexión FTP en modo pasivo entre los puertos 20000 a 25000.

sudo ufw allow OpenSSH  
sudo ufw allow 20:21/tcp  
sudo ufw allow 20000:25000/tcp

A continuación, ejecuta el comando ufw a continuación para iniciar y habilitar UFW.

sudo ufw enable

Escribe para confirmar y UFW debería estar en funcionamiento y habilitado en tu sistema Debian.

setup ufw

Verifica el estado detallado de UFW usando el comando a continuación.

sudo ufw status

La salida activa confirma que UFW está en funcionamiento y habilitado. Además, el servicio OpenSSH está agregado, y algunos puertos para el servidor vsftpd 20:21/tcp y 20000:25000/tcp están agregados.

verify ufw

Configurando usuarios virtuales FTP

En este punto, has terminado la configuración de tu servidor vsftpd, ahora crearás un nuevo usuario FTP que se utilizará para iniciar sesión en el servidor FTP y subir archivos en él.

Ejecuta el siguiente comando para crear un nuevo archivo /bin/ftponly. Luego, hazlo ejecutable a través del comando chmod a continuación. El archivo /bin/ftponly se utilizará como shell predeterminado para los usuarios FTP.

echo -e '#!/bin/sh
echo "Shell para usuarios FTP solamente."' | sudo tee -a  /bin/ftponly  
sudo chmod a+x /bin/ftponly

Agrega el archivo /bin/ftponly a /etc/shells para asegurarte de que sea una shell válida.

sudo echo "/bin/ftponly" >> /etc/shells

Ahora crea un nuevo usuario FTP bob y configura la contraseña ejecutando el comando a continuación. Ingresa tu contraseña y repítela.

sudo useradd -m -s /bin/ftponly bob  
sudo passwd bob

Después de eso, ejecuta el siguiente comando para crear un nuevo directorio chroot /home/bob/chroot para el usuario bob. Además, te asegurarás de que el directorio chroot /home/bob/chroot tenga la propiedad adecuada.

sudo -u bob mkdir -p /home/bob/chroot  
sudo chown -R bob: /home/bob/chroot

A continuación, ejecuta el comando a continuación para crear otros nuevos directorios data y upload que se utilizarán para almacenar datos de usuarios FTP. Asegúrate de configurar la propiedad adecuada para esos directorios.

sudo -u bob mkdir -p /home/bob/chroot/{data,upload}  
sudo chown -R bob: /home/bob/chroot/{data,upload}

Ahora ejecuta el comando a continuación para cambiar el permiso del directorio /home/bob/chroot a 550 y ambos directorios data y upload a 750.

sudo chmod 550 /home/bob/chroot  
sudo chmod 750 /home/bob/chroot/{data,upload}

Ahora que has creado un nuevo usuario, ejecuta el comando a continuación para agregar al usuario bob al archivo /etc/vsftpd.userlist.

echo "bob" >> /etc/vsftpd.userlist

Por último, ejecuta el siguiente comando para reiniciar el servicio vsftpd y aplicar los cambios. Después de ejecutar el comando, tu usuario FTP bob está listo.

sudo systemctl restart vsftpd

Subiendo archivos al servidor FTP

Para verificar tu instalación del servidor vsftpd, te conectarás al servidor FTP con el nuevo usuario que has creado a través del software cliente FTP. Luego, también subirás nuevos archivos para asegurarte de que tu instalación sea exitosa.

Descarga e instala el cliente FTP para tu máquina local. Puedes usar FileZilla, que se puede instalar en Windows, Linux y MacOS. Una vez que FileZilla esté instalado, ábrelo para conectarte a tu servidor FTP seguro.

Ingresa la dirección IP de tu servidor FTP, y el nombre de usuario y la contraseña de tu usuario FTP. Luego, haz clic en Conexión rápida para confirmar.

Selecciona la opción Siempre confiar en este certificado en futuras sesiones y haz clic en OK para confirmar.

accept certificates

Una vez conectado a tu servidor FTP, deberías ver dos directorios de datos y carga disponibles en tu servidor FTP. Puedes subir archivos a ambos directorios de datos y carga, pero no puedes subir archivos fuera de esos directorios protegidos a través de chroot.

connected to ftp server

Puedes arrastrar y soltar tus archivos para subirlos al servidor FTP.

uploAded files

Conclusión

Para concluir, has creado con éxito un servidor FTP seguro con vsftpd en el servidor Debian 12. También has asegurado la instalación de tu servidor FTP a través de UFW (Firewall poco complicado) y has aprendido a crear usuarios FTP. Ahora puedes usar el servidor FTP como el principal medio de transferencia de datos entre tu máquina local y tu servidor. También puedes encontrar otro software cliente FTP según tus preferencias.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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