Montar servidor FTP en Ubuntu es una solución excelente y práctica para intercambiar archivos entre ordenadores, crear copias de seguridad remotas o gestionar el contenido de un sitio web. Ubuntu es una base ideal para este tipo de tareas por su reconocida estabilidad y sus flexibles herramientas de configuración.
En esta guía completa, te mostraremos cómo instalar y preparar correctamente un servidor FTP paso a paso. Siguiendo este tutorial, te asegurarás de que tu conexión sea no solo rápida y cómoda, sino también completamente segura.
- ¿Qué es FTP y Por Qué Usarlo en Ubuntu?
- Elección del Software de Servidor FTP Adecuado
- Preparación del Sistema para la Instalación
- Instalación y Configuración Básica de vsftpd
- Creación de Usuarios y Permisos de Acceso
- Habilitar Conexiones Seguras con FTPS (FTP sobre SSL/TLS)
- Configuración Avanzada del Firewall para FTP
- Conclusión y Recomendaciones Finales de Seguridad
¿Qué es FTP y Por Qué Usarlo en Ubuntu?
El Protocolo de Transferencia de Archivos (FTP), por sus siglas en inglés, es un estándar de red diseñado para simplificar el intercambio de datos entre un cliente (tu ordenador) y un servidor. Su principal función es permitirte subir y descargar archivos, gestionar directorios y modificar contenidos a distancia.
En un servidor Ubuntu, FTP es útil para:
- Administrar proyectos web: Sube nuevas versiones de tu sitio de forma rápida y sencilla.
- Crear copias de seguridad: Guarda archivos importantes en una ubicación remota y segura.
- Intercambiar datos: Facilita el acceso a archivos entre diferentes oficinas o para empleados que trabajan en remoto.
Para trabajar con FTP, se suelen utilizar programas cliente como FileZilla. La conexión a través de estos clientes permite arrastrar y soltar archivos cómodamente y seguir la estructura de directorios en el servidor.
Elección del Software de Servidor FTP Adecuado

Para montar un servidor FTP en Ubuntu, existen varias soluciones de software robustas y probadas. Las tres más populares son:
- vsftpd (Very Secure FTP Daemon): Es la opción más recomendada para la mayoría de los casos. Destaca por ser un servidor sencillo, rápido y muy seguro. Admite conexiones anónimas y seguras (FTPS) con un consumo mínimo de recursos del sistema.
- ProFTPD: Un servidor extremadamente flexible y potente, ideal si necesitas configuraciones avanzadas, como reglas de acceso complejas por usuario o registros de eventos muy detallados.
- Pure-FTPd: Se enfoca principalmente en la seguridad y la simplicidad. Es una gran alternativa que también soporta usuarios virtuales y encriptación.
Para la mayoría de las tareas en Ubuntu, vsftpd
es suficiente. Es estable, se configura rápidamente y es ideal para un uso básico.
Preparación del Sistema para la Instalación
Antes de instalar cualquier software nuevo, una buena práctica es actualizar los paquetes de tu sistema. Abre una terminal y ejecuta los siguientes comandos:
sudo apt update
sudo apt upgrade
Una vez actualizado, debemos asegurarnos de que el firewall de Ubuntu, conocido como ufw
(Uncomplicated Firewall), permitirá las futuras conexiones al servidor. Por ahora, solo abriremos el puerto principal de FTP:
sudo ufw allow 21/tcp
También, asegúrate de tener acceso por SSH para la gestión remota del servidor y la copia de archivos de configuración. Si necesitas una referencia, aquí tienes una guía completa de comandos SSH para administrar servidores.
Instalación y Configuración Básica de vsftpd
Ahora que el sistema está listo, el siguiente paso para montar servidor FTP en Ubuntu es instalar el software vsftpd
.
- Instala el paquete con el siguiente comando:
sudo apt install vsftpd
- Una vez instalado, el servicio se inicia automáticamente. El archivo de configuración principal se encuentra en
/etc/vsftpd.conf
. Para editarlo, usa un editor de texto comonano
:
sudo nano /etc/vsftpd.conf
- Dentro del archivo, realiza los siguientes ajustes básicos de seguridad y funcionalidad:
- Deshabilita las conexiones anónimas.
- Permite que los usuarios locales (del sistema) puedan iniciar sesión.
- Habilita los permisos de escritura para que los usuarios puedan subir archivos.
Busca y modifica estas líneas para que queden así:
anonymous_enable=NO
local_enable=YES
write_enable=YES
- Guarda los cambios (Ctrl+O, luego Enter) y cierra el editor (Ctrl+X). Finalmente, reinicia el servicio de
vsftpd
para aplicar la nueva configuración:
sudo systemctl restart vsftpd
¡Listo! Ya puedes probar la conexión usando un cliente como FileZilla o desde la terminal con el comando ftp <IP_de_tu_servidor>
.
Creación de Usuarios y Permisos de Acceso
Para mantener la seguridad, no es recomendable usar tu usuario principal para FTP. En su lugar, vamos a crear un usuario dedicado y a “enjaularlo” en su propio directorio personal, impidiendo que pueda acceder a otras partes del sistema.
- Crea un nuevo usuario (reemplaza
ftpuser
con el nombre que prefieras):
sudo adduser ftpuser
El sistema te pedirá que establezcas una contraseña y completes algunos datos (puedes dejarlos en blanco).
- Restringe al usuario a su directorio
home
. Vuelve a editar el archivo de configuración:
sudo nano /etc/vsftpd.conf
Busca la línea #chroot_local_user=YES
, quítale el símbolo #
(descoméntala) y asegúrate de que esté en YES
:
chroot_local_user=YES
- Reinicia el servidor una vez más:
sudo systemctl restart vsftpd
Con esta configuración,
ftpuser
solo podrá ver y modificar archivos dentro de su carpeta/home/ftpuser
, lo que protege el resto de tu sistema.
Habilitar Conexiones Seguras con FTPS (FTP sobre SSL/TLS)
El protocolo FTP estándar transmite credenciales y datos en texto plano, lo cual es inseguro. Para proteger la información, debemos habilitar la encriptación mediante FTPS.
- Genera un certificado SSL autofirmado. Este comando creará una clave privada y un certificado público válidos por un año:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt
- Asegura la clave privada restringiendo sus permisos para que solo el usuario
root
pueda leerla:
sudo chmod 600 /etc/ssl/private/vsftpd.key
- Indica a
vsftpd
dónde encontrar los certificados. Edita/etc/vsftpd.conf
y añade estas líneas al final:
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
- Reinicia el servicio para activar la configuración segura:
sudo systemctl restart vsftpd
Ahora, al conectarte con FileZilla, asegúrate de seleccionar el protocolo “FTPS – FTP sobre TLS explícito” para establecer una conexión encriptada y segura.
Una alternativa moderna: SFTP
Es importante no confundir FTPS con SFTP (SSH File Transfer Protocol). SFTP es un protocolo completamente diferente que se ejecuta sobre una conexión SSH.
Si ya tienes acceso SSH a tu servidor (puerto 22), ¡ya puedes usar SFTP sin instalar nada más! Para muchos, es una alternativa más simple y igual de segura.
Configuración Avanzada del Firewall para FTP
Además del puerto 21 (para comandos), el modo pasivo de FTP requiere un rango de puertos adicionales para la transferencia de datos.
- Define el rango de puertos pasivos en la configuración de
vsftpd
. Añade estas líneas en/etc/vsftpd.conf
:
pasv_min_port=40000
pasv_max_port=50000
- Permite este rango en el firewall
ufw
junto con el puerto SSH para no perder el acceso:
sudo ufw allow 40000:50000/tcp
sudo ufw allow ssh
- Reinicia
vsftpd
para que aplique los cambios. Esta configuración limita las conexiones a los puertos estrictamente necesarios, reforzando la seguridad.
Conclusión y Recomendaciones Finales de Seguridad
¡Felicidades! Has logrado montar servidor FTP en Ubuntu de forma segura y funcional. Para mantenerlo protegido a largo plazo, sigue siempre estas buenas prácticas:
- Mantén tu sistema actualizado: Actualiza regularmente los paquetes para protegerte de vulnerabilidades.
- Usa siempre conexiones seguras: Prioriza FTPS o SFTP para proteger tus datos.
- Vigila los registros: Revisa periódicamente los logs del servidor (ubicados en
/var/log/vsftpd.log
) en busca de actividad sospechosa. - Realiza copias de seguridad: Asegúrate de tener backups de tus datos importantes.
- Utiliza contraseñas fuertes: Aplica contraseñas robustas para todas las cuentas de usuario.
Siguiendo todos los consejos mencionados aquí, podrás mantener un funcionamiento estable del servidor y una conexión segura para que los usuarios accedan a tus archivos.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.