Instalar vsftpd en Linux: servidor FTP seguro paso a paso

instalar vsftpd

📅 Publicado el 13 de octubre, 2026 · Por Equipo RedServicio

Si necesitas montar un servidor FTP en tu Linux y no quieres complicaciones, vsftpd suele ser la mejor apuesta. Yo lo uso desde hace años en servidores donde gestiono webs propias y, la verdad, apenas me ha dado problemas. Aquí va una guía paso a paso para instalarlo en Ubuntu, Debian y CentOS, y sobre todo para dejar bien configurado su archivo principal, vsftpd.conf, que es donde está la magia (y los desastres, si lo tocas sin cuidado).

¿Qué es vsftpd y por qué elegirlo frente a otros servidores FTP?

vsftpd significa Very Secure FTP Daemon, y no es solo marketing: es un servidor FTP de código abierto cuya prioridad desde el diseño ha sido la seguridad, sin renunciar a rendimiento ni estabilidad. De hecho, es el servidor FTP por defecto en Ubuntu, Debian y Fedora, algo que ya dice bastante de su madurez.

Frente a alternativas como ProFTPD o Pure-FTPd, tiene puntos a favor claros:

  • Menor superficie de ataque: el código base es compacto y está pensado para ser seguro desde el principio. Cuanto menos código, menos agujeros.
  • Soporte nativo de FTPS: puedes cifrar las conexiones con certificados SSL/TLS sin grandes esfuerzos. Imprescindible, porque enviar credenciales en texto plano hoy no se lo deseo a nadie.
  • Aislamiento de usuarios: mediante el «chroot jail», cada usuario queda encerrado en su directorio personal. No puede pasearse por el sistema de archivos del servidor.
  • Rendimiento probado: aguanta miles de conexiones simultáneas consumiendo muy pocos recursos. Ideal si trabajas con un VPS modesto.

¿Tu hosting te da un acceso FTP incómodo? ¿Prefieres llevar tú el control? vsftpd es probablemente el equilibrio más razonable entre simplicidad y robustez.

Cómo instalar vsftpd en Ubuntu, Debian y CentOS

La instalación no tiene misterio en ninguna de las distribuciones principales. Solo necesitas acceso root (o sudo) y tener el sistema al día.

Instalación en Ubuntu y Debian

Estos son los comandos:

  1. Actualiza los repositorios: sudo apt update
  2. Instala vsftpd: sudo apt install vsftpd
  3. Verifica el servicio: sudo systemctl status vsftpd

Nada más. Tras la instalación el servicio arranca solo y queda habilitado para iniciarse con el sistema.

Instalación en CentOS, RHEL y Rocky Linux

En el mundo Red Hat se usa dnf (o yum, si tu versión es antigua):

  1. Instala el paquete: sudo dnf install vsftpd
  2. Habilita e inicia el servicio: sudo systemctl enable –now vsftpd
  3. Abre el firewall: sudo firewall-cmd –permanent –add-service=ftp && sudo firewall-cmd –reload

Consejo: ¿usas SELinux en CentOS? Acuérdate de habilitar el acceso de escritura FTP al directorio home con setsebool -P ftpd_full_access 1. Si no, las subidas fallarán aunque tu configuración sea perfecta. Me ha pasado más de una vez, y el motivo no está nada claro en los logs.

Con el servicio ya corriendo, toca ajustar su comportamiento. Y ahí entra el archivo de configuración.

Configuración esencial de vsftpd: archivo vsftpd.conf explicado

Todo se concentra en un único archivo: /etc/vsftpd.conf (en Debian/Ubuntu) o /etc/vsftpd/vsftpd.conf (en CentOS). Antes de editar nada, haz una copia de seguridad con sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak. Créeme, la agradecerás.

Las directivas que deberías revisar sí o sí:

  • anonymous_enable=NO: desactiva el acceso anónimo. Es la primera medida de seguridad a aplicar y, salvo casos muy concretos, ningún servidor público debería permitir usuarios anónimos.
  • local_enable=YES: permite que los usuarios locales del sistema inicien sesión por FTP. Sin esto, no podrás subir archivos con tu cuenta.
  • write_enable=YES: habilita la escritura (subidas, borrados, modificaciones). Si falta, solo podrás descargar.
  • chroot_local_user=YES: encierra a cada usuario en su directorio home, impidiendo que acceda a otras rutas del sistema. Muy recomendable en servidores multiusuario.
  • local_umask=022: fija los permisos por defecto de lo que subas (644 para archivos, 755 para carpetas). Evita permisos más abiertos de la cuenta.
  • xferlog_enable=YES: activa el registro de transferencias en /var/log/vsftpd.log. Útil cuando necesites auditar qué pasó en el servidor.

Tras cada cambio, reinicia el servicio con sudo systemctl restart vsftpd. ¿No arranca? Revisa el log del sistema con journalctl -u vsftpd. Por experiencia, casi todos los errores vienen de una directiva mal escrita o duplicada. Un punto y coma de más, y adiós.

Este es el archivo básico, dominado. En la siguiente parte de la guía entramos en el cifrado SSL/TLS, la gestión de usuarios virtuales y las reglas de firewall que necesitarás en un entorno de producción.

Cómo asegurar vsftpd con SSL/TLS y usuarios enjaulados

Con la configuración básica lista, toca lo importante: cifrar las comunicaciones. El FTP en texto plano envía credenciales sin ninguna protección (usuario y contraseña viajando en abierto, tal cual), así que configurar SSL/TLS es casi obligatorio en producción. Lo primero es generar un certificado autofirmado, aunque si tienes dominio y puedes usar Let’s Encrypt, mejor:

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

Luego añades estas directivas al archivo vsftpd.conf:

  1. ssl_enable=YES: activa el cifrado TLS en el servidor.
  2. rsa_cert_file=/etc/ssl/certs/vsftpd.pem y rsa_private_key_file=/etc/ssl/private/vsftpd.pem: las rutas del certificado y de la clave.
  3. force_local_logins_ssl=YES y force_local_data_ssl=YES: obligan a cifrar tanto las credenciales como las transferencias de datos.
  4. ssl_tlsv1_2=YES: restringe el protocolo a versiones modernas y seguras de TLS.

Y luego está el aislamiento de usuarios. El «enjaulado» (chroot) evita que alguien navegue por directorios del sistema fuera de su carpeta personal. Se activa con chroot_local_user=YES y, si el directorio raíz del usuario tiene permisos de escritura, necesitas también allow_writeable_chroot=YES. Dicho esto, yo prefiero otra vía: dejar el directorio raíz sin permisos de escritura y crear una subcarpeta tipo /home/usuario/uploads para las transferencias. Es más limpio.

Después de cada cambio, reinicia el servicio: sudo systemctl restart vsftpd. Y ojo con el cliente FTP (FileZilla, por ejemplo): tiene que estar en modo «FTPES explícito», porque las conexiones sin TLS ya no pasarán.

Abrir puertos en el firewall y probar la conexión FTP

Un servidor bien configurado no sirve de nada si el firewall corta el tráfico. vsftpd usa el puerto 21 para el canal de control y un rango de puertos pasivos para los datos. Conviene definir ese rango en la configuración para no acabar abriendo medio sistema:

  • pasv_min_port=40000
  • pasv_max_port=40100
  • pasv_address=TU_IP_PUBLICA (imprescindible si el servidor está detrás de NAT).

Con el rango definido, abres los puertos correspondientes. En UFW (Ubuntu/Debian):

sudo ufw allow 21/tcp
sudo ufw allow 40000:40100/tcp

Y en firewalld (CentOS/Rocky):

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=40000-40100/tcp
sudo firewall-cmd --reload

Para probar, sirve FileZilla o el comando ftp/lftp desde otra máquina. Comprueba tres cosas: que la autenticación funciona, que puedes subir y descargar archivos, y que el cliente muestra el candado o el aviso de conexión TLS. ¿La autenticación pasa pero la transferencia falla? Casi siempre es el rango pasivo mal definido o un pasv_address incorrecto. Es el error más habitual, con diferencia.

Conclusión: un servidor FTP estable y seguro con vsftpd

Montar vsftpd bien hecho va bastante más allá de ejecutar un comando y olvidarse. A lo largo de esta guía has visto cómo preparar el sistema, configurar el archivo principal, habilitar cifrado TLS para proteger credenciales y datos, enjaular a los usuarios dentro de sus directorios y abrir solo los puertos necesarios en el firewall. Ese conjunto de medidas convierte a vsftpd en uno de los servidores FTP más seguros y eficientes disponibles en Linux, capaz de aguantar desde transferencias ocasionales hasta cargas de producción exigentes.

Algunos consejos de última hora: mantén el paquete al día con las actualizaciones de seguridad de tu distribución, revisa de vez en cuando los registros en /var/log/vsftpd.log por si hay intentos de acceso sospechosos, y plantéate añadir Fail2ban para bloquear automáticamente las IP que acumulen demasiados intentos fallidos. No cuesta nada configurarlo y ahorra dolores de cabeza.

Eso sí, si prefieres dedicar tu tiempo a tu proyecto en lugar de a administrar servidores, en RedServicio.net ofrecemos hosting de calidad con soporte técnico 24/7, infraestructura optimizada y configuraciones seguras listas para usar. Podemos ayudarte tanto con la gestión de tus propios servidores como con alternativas de alojamiento que te quiten todo este trabajo de encima. Sea cual sea el camino, dominar herramientas como vsftpd siempre te dará más control y una mejor comprensión de tu infraestructura web.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Clisec — Seguridad informática

Página Gratis — Crea tu web gratis

Scroll al inicio