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
Ahora instala el paquete vsftpd usando el comando apt install a continuación.
sudo apt install vsftpdConfirma la instalación escribiendo y y presiona ENTER.

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 vsftpdLa 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.

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.pemIngresa 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.

Ahora ejecuta el comando a continuación para crear un nuevo archivo /etc/vsftpd.userlist para almacenar usuarios FTP.
touch /etc/vsftpd.userlistDespué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.confDesactiva el acceso anónimo a tu servidor vsftpd cambiando la opción anonymous_enable a NO.
anonymous_enable=NOPermite 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=YESPermite que los usuarios FTP suban archivos al servidor vsftpd cambiando la opción write_enable a YES.
write_enable=YESAhora 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/chrootA 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=NOAgrega 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=HIGHAhora 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=25000Guarda 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 vsftpdCon 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
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/tcpA continuación, ejecuta el comando ufw a continuación para iniciar y habilitar UFW.
sudo ufw enableEscribe para confirmar y UFW debería estar en funcionamiento y habilitado en tu sistema Debian.

Verifica el estado detallado de UFW usando el comando a continuación.
sudo ufw statusLa 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.

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/ftponlyAgrega el archivo /bin/ftponly a /etc/shells para asegurarte de que sea una shell válida.
sudo echo "/bin/ftponly" >> /etc/shellsAhora 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 bobDespué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/chrootA 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.userlistPor ú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 vsftpdSubiendo 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.

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.

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

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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.