- ProFTPd es un servidor FTP modular y muy flexible para Linux y Unix, ideal para entornos donde se requiere control detallado de permisos y usuarios.
- La configuración se centra en el archivo proftpd.conf, donde se definen directorios, políticas de acceso, usuarios, modo pasivo y opciones avanzadas.
- El uso de TLS (FTPES) con certificados propios permite cifrar credenciales y datos, endureciendo notablemente la seguridad del servidor.
- Una buena gestión de firewall, logs, límites de conexión y resolución de errores típicos es clave para mantener el servicio estable y protegido.
Si trabajas con servidores Linux y gestionas proyectos web o entornos corporativos, tarde o temprano vas a necesitar un servidor FTP robusto, seguro y flexible. Ahí es donde ProFTPd brilla con luz propia: permite controlar al detalle quién accede, desde dónde, qué puede hacer y cómo se cifra cada transferencia.
A lo largo de esta guía vas a ver paso a paso cómo instalar, configurar y endurecer ProFTPd en Linux, incluyendo creación de usuarios (del sistema y virtuales), limitación de directorios, acceso anónimo, FTPS/FTPES con TLS 1.2 y 1.3, comandos de administración, resolución de errores típicos y comparativa con otras alternativas como vsftpd o pure-ftpd. La idea es que termines con un servidor FTP listo para producción y sin sustos de seguridad.
Qué es ProFTPd y por qué se usa tanto en Linux
ProFTPd es un servidor FTP de código abierto, multiplataforma y con una configuración muy parecida a la de Apache, basado en directivas y bloques de configuración. Está disponible en la mayoría de distribuciones Linux y Unix (Debian, Ubuntu, CentOS, FreeBSD, sistemas NAS, etc.), y se caracteriza por un diseño modular y enorme flexibilidad.
Funciona tanto en modo standalone (servidor independiente) como integrado con inetd/xinetd, lo que permite ajustarlo a entornos con poco tráfico o a servidores con cientos de conexiones simultáneas. Su archivo central /etc/proftpd/proftpd.conf concentra casi toda la configuración, y también puede usar ficheros por directorio tipo .ftpaccess con una filosofía muy similar a los .htaccess de Apache.
El protocolo FTP como tal utiliza una arquitectura cliente-servidor y, por defecto, el puerto TCP 21 para el canal de control. Para el canal de datos podemos tener modo activo (antiguo, con muchos problemas detrás de NAT) o modo pasivo (PASV), que es el habitual hoy en día. ProFTPd permite definir un rango de puertos pasivos y una MasqueradeAddress para funcionar correctamente tras routers y firewalls, algo crítico en redes modernas.
Además, incorpora de serie el módulo mod_tls, gracias al cual puedes levantar un servidor FTPES (FTP explícito sobre TLS) que cifra tanto las credenciales como los datos con TLS 1.2 o TLS 1.3. Con las suites modernas (por ejemplo, AES-256-GCM) y CPUs con soporte de AES-NI, el rendimiento es muy alto y el impacto del cifrado se reduce significativamente.
Ventajas clave de ProFTPd frente a otros servidores FTP
Una de las razones por las que ProFTPd se sigue usando tanto es que reúne potencia, control granulado y buen rendimiento. No es el más simple, pero sí uno de los más completos.
Para empezar, cuenta con un único archivo de configuración principal muy estructurado, con directivas y bloques que resultan bastante familiares si ya has tocado Apache. Esto facilita la curva de aprendizaje a quien ya está acostumbrado a servidores web basados en directivas.
Su diseño modular permite cargar solo los componentes necesarios. Hay módulos para SQL, LDAP, RADIUS, IPv6, TLS/SSL, cuotas, usuarios virtuales y mucho más. Esto hace posible montar desde un FTP sencillo casero hasta una plataforma multiempresa con cientos de usuarios y políticas distintas.
También es importante que puede ejecutarse con usuarios sin privilegios y aislar directorios y permisos al estilo Unix. Al no exigir que el proceso principal tenga permisos de root más allá de lo estrictamente necesario, se reduce de forma notable la superficie de ataque y el impacto de posibles exploits.
Otro punto interesante es que los directorios anónimos no necesitan una estructura rígida ni binarios del sistema. Además, no implementa comandos como SITE EXEC, que en otros tiempos eran muy usados pero hoy se consideran un quebradero de cabeza para la seguridad.
Rendimiento, estabilidad, seguridad y escalabilidad
En un servidor de transferencia de archivos, no basta con que “funcione”: hace falta que sea rápido, estable y seguro incluso bajo carga. ProFTPd está pensado justo para eso.
En términos de velocidad, está muy optimizado para transferencias de archivos grandes y gestión de muchas conexiones concurrentes. Por eso se utiliza tanto en entornos con tráfico intenso en centros de datos, repositorios de software y alojamientos web compartidos.
En cuanto a estabilidad, ProFTPd es conocido por ser bastante tolerante a fallos. Si se produce algún problema puntual (caída de red, corte de energía, etc.), suele recuperarse con rapidez, lo que se agradece especialmente cuando hablamos de servicios críticos donde una parada supone tiempo y dinero.
En el apartado de seguridad, aunque FTP puro no cifra nada, ProFTPd ofrece múltiples mecanismos para endurecer el servicio: autenticación basada en usuarios y grupos, registros detallados de actividad, controles de acceso por IP o por red, límites de conexiones, integración con TLS/SSL, ejecución con usuario no privilegiado y soporte de usuarios virtuales con rutas y permisos aislados.
También destaca por su gran escalabilidad: puede gestionar muchas conexiones y usuarios simultáneos sin despeinarse si el hardware acompaña. Gracias a su arquitectura modular, puedes ir ampliando capacidades (por ejemplo, añadiendo autenticación vía SQL o LDAP) sin tener que rehacer toda la infraestructura.
Desventajas y puntos a tener en cuenta en ProFTPd
No todo es perfecto, y conviene conocer los puntos débiles o las pegas más habituales de ProFTPd antes de apostar por él en un proyecto grande.
El primer aspecto es la complejidad de configuración. Si vienes de servidores más sencillos o no tienes experiencia con servicios en Linux, ProFTPd puede generar algo de rechazo al principio. No es imposible ni mucho menos, pero sí conviene seguir un buen tutorial al principio y revisar bien la sintaxis para evitar errores tontos.
También es importante recordar que un servidor FTP mal configurado puede ser un blanco fácil. Esto no es culpa de ProFTPd en sí, sino de dejar puertos abiertos de más, permitir accesos anónimos sin control, no cifrar conexiones o no revisar permisos en disco. Si no tienes claro lo que estás tocando, es mejor ser conservador y no abrir más de lo estrictamente necesario.
Otro punto discutible es que ProFTPd suele consumir más recursos que otros servidores minimalistas como vsftpd, especialmente cuando se cargan varios módulos y se trabaja con TLS intensivamente. En entornos con hardware muy justo puede que te convenga afinar la configuración o valorar alternativas más ligeras.
Además, las versiones más modernas no siempre son compatibles con sistemas muy antiguos. Si sigues manejando servidores legacy, puede que te veas limitado a versiones previas o tengas que compilar tú mismo el software con las opciones adecuadas.
A diferencia de soluciones comerciales, no hay un soporte oficial con SLA garantizado. Lo que sí encontrarás es una comunidad muy activa, abundante documentación y foros, pero la responsabilidad última de la instalación y su seguridad recae en ti.
Proceso de instalación de ProFTPd en Linux
Instalar ProFTPd en la mayoría de distribuciones es bastante directo, ya que se encuentra en los repositorios oficiales. Tienes dos caminos: usar el gestor de paquetes o compilar desde código fuente (algo menos habitual hoy en día).
En sistemas basados en Debian o Ubuntu, bastaría con ejecutar en la terminal:
sudo apt install proftpd
En algunas distros (por ejemplo, Debian más antiguas) puedes verlo como proftpd-basic, en cuyo caso el comando sería:
sudo apt-get install proftpd-basic
En entornos CentOS o RHEL suele ser necesario habilitar primero el repositorio EPEL y luego instalar:
sudo yum install epel-release
sudo yum install proftpd
Standalone o inetd: elegir el modo de ejecución
Durante la instalación, muchas distribuciones preguntan si quieres ejecutar ProFTPd como servidor independiente (standalone) o integrado en inetd/xinetd. No es un detalle menor.
Si esperas un número reducido de conexiones y un uso muy esporádico del FTP, puedes optar por inetd/xinetd, que lanza el servicio solo cuando hay peticiones, ahorrando algo de RAM y CPU cuando no se usa.
En cambio, si tu objetivo es montar un servidor FTP con varios usuarios y tráfico constante, lo más lógico es seleccionar standalone. Así el demonio de ProFTPd se mantiene en memoria, gestiona directamente todas las conexiones y ofrece una mejor respuesta bajo carga.
Esta elección se puede cambiar más adelante modificando la configuración correspondiente, pero para la mayoría de escenarios de producción lo habitual es usar standalone desde el principio.
Arranque, parada y control del servicio: SysVinit y systemd
Una vez instalado, necesitas dominar los comandos básicos de gestión del servicio. Dependiendo de la distro puede usarse SysVinit clásico o systemd.
En sistemas con SysVinit, puedes iniciar el servidor con:
/etc/init.d/proftpd start
service proftpd start
Para detenerlo:
/etc/init.d/proftpd stop
service proftpd stop
Y para reiniciarlo tras cambios en la configuración:
/etc/init.d/proftpd restart
service proftpd restart
Si tu sistema usa systemd (lo más habitual hoy), los comandos son:
systemctl start proftpd
systemctl stop proftpd
systemctl restart proftpd
Cuando solo hayas tocado el archivo de configuración y quieras que se recargue sin cortar conexiones, utiliza la opción de reload:
service proftpd reload
systemctl reload proftpd
Para comprobar el estado del servicio tienes:
service proftpd status o /etc/init.d/proftpd status en SysVinit, y systemctl status proftpd en systemd, donde además verás mensajes de error recientes si algo ha fallado.
Activar ProFTPd al arrancar el sistema
Por norma general, al instalar ProFTPd se deja configurado para que se inicie automáticamente al arrancar el servidor. Aun así, conviene saber cómo habilitarlo o deshabilitarlo manualmente.
Si la distro usa SysVinit, puedes forzar el arranque automático con:
chkconfig proftpd on
En sistemas con systemd el equivalente es:
systemctl enable proftpd
Con esto aseguras que cada vez que se reinicie la máquina Linux, el servicio ProFTPd se levante y quede disponible para aceptar conexiones FTP sin intervención manual.
Archivo principal de configuración: proftpd.conf
El corazón de la configuración se encuentra en /etc/proftpd/proftpd.conf. Desde aquí controlas directorios, permisos, mensajes, límites de usuarios, TLS y casi cualquier detalle del servidor.
Para editar el fichero puedes usar el editor que prefieras, desde un entorno gráfico (por ejemplo, gedit) hasta un entorno de solo terminal con nano, vim o vi:
sudo nano /etc/proftpd/proftpd.conf
En este archivo verás que muchas líneas comienzan con #. Esa almohadilla indica que la directiva está comentada y, por tanto, no tiene efecto. Quitar el # equivale a activar esa opción, algo muy común al configurar ProFTPd.
La estructura se basa en directivas sueltas (como ServerName, UseIPv6, etc.) y bloques como <Directory>, <Limit> o <Anonymous>, similares a la forma en la que se trabaja en Apache. Cada directiva tiene valores posibles, la mayoría con alternativas on/off para habilitar o deshabilitar funciones.
Hostname, directorio base y DefaultRoot
Una de las primeras cosas que deberías definir es el nombre del servidor (ServerName) y el directorio raíz al que acceden los usuarios. Aquí entra en juego la directiva DefaultRoot, muy importante para la seguridad.
En muchas configuraciones por defecto verás una línea como:
# DefaultRoot ~
Si eliminas la almohadilla y la dejas así:
DefaultRoot ~
estarás indicando que todos los usuarios quedarán encerrados en su directorio personal (home). Es una forma sencilla y eficaz de evitar que un usuario curiosee por directorios del sistema que no le corresponden.
Si prefieres que todos los usuarios FTP entren a un mismo directorio compartido, podrías establecer algo como:
DefaultRoot /home/ftp
De esta forma, al autenticarse, todos se colocan en /home/ftp (o el directorio que definas) salvo que configures excepciones específicas para ciertos usuarios o grupos.
DefaultRoot avanzado: distintos accesos según usuario o grupo
La directiva DefaultRoot permite una configuración bastante fina cuando mezclas directorios y grupos de usuarios. Su estructura básica admite parámetros para aplicar la raíz solo a determinados grupos o excluir a otros.
Imagina que tienes dos usuarios: A y B. El usuario A debe estar limitado a su carpeta, mientras que B debe tener acceso completo al sistema de ficheros (o a un árbol mucho más amplio). Podrías utilizar líneas como:
DefaultRoot /home/ftp A
DefaultRoot / B
En este ejemplo, el usuario A quedaría restringido al directorio /home/ftp, mientras que B podría moverse libremente por el sistema (teniendo en cuenta siempre los permisos Unix en disco). Es una aproximación simplificada, pero ilustra bien cómo se pueden diferenciar políticas de acceso según el usuario.
Además de DefaultRoot, vale la pena personalizar ServerName (nombre reconocible del servidor) y mensajes como AccessGrantMsg (texto de bienvenida al conectar) y AccessDenyMsg (mensaje de error en caso de fallo), que puedes añadir al final del archivo para ofrecer una experiencia más clara al usuario.
Gestión de usuarios del sistema y usuarios virtuales
ProFTPd, de forma predeterminada, usa los usuarios y grupos del propio sistema Linux. Es decir, si das de alta un usuario con useradd o adduser, ese mismo usuario puede autenticarse por FTP (salvo que lo impidas explícitamente).
Para crear un usuario básico con su directorio home, en muchas distros basta con:
sudo adduser usuario
El asistente te pedirá una contraseña y algunos datos adicionales. Más adelante podrás cambiar la clave con:
sudo passwd usuario
A partir de ahí, “usuario” podrá conectarse al FTP y, dependiendo de lo configurado en DefaultRoot, quedará encerrado en su home o podrá acceder a otras rutas donde tenga permisos.
Cuando quieras que un usuario tenga acceso FTP pero no acceso a la shell del sistema, puedes asignarle un shell falso, por ejemplo /bin/false o /usr/sbin/nologin. Primero asegúrate de que ese shell está permitido en /etc/shells, y luego crea el usuario indicando esa shell:
sudo useradd user1 -d /home/user1 -m -s /usr/sbin/nologin
De esta manera, user1 podrá autenticarse en ProFTPd y trabajar con sus archivos, pero no iniciar sesión interactiva en el sistema, lo cual es una buena práctica de seguridad en muchos entornos.
Acceso anónimo: cuándo activarlo y cómo limitarlo
El acceso anónimo se suele usar para servidores de descarga pública, repositorios de software o mirror sites donde cualquiera puede descargar ficheros sin autenticarse. ProFTPd permite configurar esto mediante bloques <Anonymous>.
Un bloque típico podría ser algo de este estilo (simplificado):
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off
MaxClients 10
<Directory *>
<Limit WRITE>DenyAll</Limit>
</Directory>
</Anonymous>
Aquí estamos indicando que el usuario ftp (cuyo home suele ser /srv/ftp u otra ruta similar) servirá de base para las descargas públicas. Se permiten hasta 10 conexiones anónimas simultáneas y se prohíbe cualquier intento de escritura (subidas, borrados, etc.) dentro del entorno anónimo.
Si decidieras permitir subidas en un directorio concreto (por ejemplo, incoming), tendrías que añadir un bloque <Directory incoming> con límites más permisivos, controlando muy bien los permisos y el uso de espacio, ya que es una puerta potencial a abusos si no se vigila.
Permitir y denegar usuarios de forma explícita
Además de apoyarte en usuarios del sistema, ProFTPd tiene directivas para permitir o bloquear accesos de forma selectiva, algo muy útil si solo quieres que entren ciertas cuentas.
Al final del proftpd.conf puedes añadir reglas como:
AllowUser ruvelro
DenyAll
Con esto, únicamente el usuario “ruvelro” tendría autorización para iniciar sesión, mientras que cualquier otra cuenta quedaría rechazada, aunque exista en el sistema.
Las directivas básicas que debes conocer aquí son:
- AllowUser: permite explícitamente el acceso a uno o varios usuarios concretos.
- DenyUser: bloquea a usuarios específicos.
- AllowAll: abre el acceso a todos (incluido anonymous, si lo tienes activo).
- DenyAll: cierra el acceso a cualquiera que no esté en una excepción.
Con estas reglas puedes construir políticas muy restrictivas, por ejemplo dejando el servidor accesible solo a un puñado de cuentas internas o a usuarios de prueba durante un proyecto concreto.
Registro de actividad y usuarios conectados
Para diagnosticar problemas y vigilar la seguridad es fundamental revisar los logs de ProFTPd. Por defecto, suele existir un archivo de registro en:
/var/log/proftpd/proftpd.log
Para echarle un vistazo basta con:
sudo cat /var/log/proftpd/proftpd.log
Si solo te interesan las últimas líneas o quieres monitorizar en tiempo real, puedes utilizar tail:
sudo tail -f /var/log/proftpd/proftpd.log
Además, ProFTPd incluye utilidades como ftpwho y ftptop para consultar usuarios conectados en tiempo real, ver qué están haciendo y tener una foto instantánea de la actividad en el servidor.
Configurar FTPS/FTPES con TLS 1.2 y 1.3
Si vas a exponer el servicio FTP a Internet o manejas información sensible, prácticamente es obligado usar cifrado con TLS. Con ProFTPd puedes hacerlo mediante FTPS (implícito) o, de forma más flexible, FTPES (explícito).
En FTPES (FTP explícito), el cliente se conecta al puerto 21 como en un FTP normal, pero antes de autenticarse inician una negociación TLS. Esto permite seguir usando el mismo puerto estándar y elegir si forzar o no el cifrado.
Lo primero es asegurarte de que tu proftpd.conf incluye el archivo de configuración TLS. Busca la línea:
# Include /etc/proftpd/tls.conf
y elimínale el comentario:
Include /etc/proftpd/tls.conf
Después hay que generar un certificado y su clave privada. Tienes dos opciones: usar la herramienta integrada proftpd-gencert, que automatiza casi todo, o crear el certificado manualmente con OpenSSL, controlando detalles como la longitud de clave.
Creación manual de certificados con OpenSSL
Si prefieres controlar el proceso, puedes crear una clave RSA robusta con:
openssl genrsa -out /etc/ssl/private/proftpd.key 4096
Este comando genera una clave privada de 4096 bits, más que suficiente para un entorno actual. A continuación, creas el certificado (autofirmado en este caso) con:
openssl req -new -x509 -days 1460 -key /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt
Durante el proceso te pedirá datos como país, provincia, ciudad, nombre de organización, unidad organizativa, dominio (Common Name) y correo electrónico. No es imprescindible que todo sea perfecto en un entorno interno, pero sí conviene que el Common Name coincida con el dominio o IP que usará el cliente para conectar.
Es importante que la clave privada tenga permisos restrictivos (por ejemplo, 600, solo para root) y que el certificado pueda ser leído por el proceso de ProFTPd. Un esquema común es:
chmod 600 /etc/ssl/private/proftpd.key
chmod 640 /etc/ssl/certs/proftpd.crt
Configuración de tls.conf en ProFTPd
Una vez que tienes certificado y clave, toca ajustar /etc/proftpd/tls.conf. Suele venir con un bloque de ejemplo comentado que puedes adaptar. Una configuración típica, centrada en TLS moderno, sería algo como:
TLSEngine on
TLSLog /var/ftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRequired off
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
TLSRenegotiate none
Con estas directivas estás activando el motor TLS, registrando eventos en un log específico, limitando las versiones de protocolo a TLS 1.2 y 1.3, desactivando la obligación de que el cliente se autentique con certificado y evitando renegociaciones innecesarias que puedan generar problemas de compatibilidad.
Si quieres que todas las conexiones requieran cifrado, puedes poner TLSRequired on. De esta manera, cualquier intento de conexión sin usar TLS será rechazado de inmediato.
Tras los cambios, no olvides reiniciar o recargar ProFTPd para que los ajustes de TLS surtan efecto. Después puedes probar la conexión con clientes como FileZilla, eligiendo el modo FTP sobre TLS explícito (FTPS) y aceptando el certificado la primera vez.
Gestión del tamaño y cuotas de almacenamiento
En entornos multiusuario, no querrás que un solo cliente llene todo el disco con sus archivos. Por eso es habitual limitar el espacio de cada cuenta, ya sea al crear usuarios en un hosting o mediante módulos de cuotas en ProFTPd.
Muchos paneles de hosting permiten definir el tamaño máximo de almacenamiento por cuenta FTP desde la interfaz web, de forma muy sencilla. En servidores autogestionados, puedes apoyarte en cuotas de sistema de archivos o en módulos específicos de ProFTPd para establecer estos límites.
La clave está en ir revisando periódicamente el espacio libre en disco y aumentar la capacidad o el plan de hosting cuando veas que te vas a quedar corto. Tener bien dimensionada la cuota evita que una subida masiva deje sin margen al resto de servicios.
Acceso seguro: firewall y puertos
Para que los clientes FTP se conecten, tu firewall debe permitir el tráfico entrante al puerto 21 (y al rango de puertos pasivos que definas). Dependiendo de la herramienta de firewall, los comandos cambian, pero la idea es la misma.
Con iptables podrías hacer algo como:
sudo iptables -I INPUT -p tcp –dport 21 -j ACCEPT
Con firewalld:
sudo firewall-cmd –permanent –zone=public –add-port=21/tcp
sudo firewall-cmd –reload
Y con nftables algo como:
sudo nft add rule ip filter input tcp dport { 21 } ct state new accept
No olvides que, si usas modo pasivo, necesitarás liberar también el rango de puertos que declares para las conexiones de datos. De lo contrario, verás errores como “425 Unable to build data connection”.
Errores típicos en ProFTPd y cómo solucionarlos
Al configurar un servidor ProFTPd, hay una serie de mensajes de error bastante habituales que conviene conocer para no volverse loco.
El clásico “530 Login incorrect” suele indicar usuario o contraseña incorrectos o bien problemas de permisos. Revisa si el usuario existe en el sistema o en el archivo de usuarios virtuales, y comprueba que tiene permiso de acceso FTP y el directorio home correcto.
El error “425 Unable to build data connection” casi siempre tiene que ver con modo pasivo mal configurado o puertos bloqueados por firewall. Define correctamente el rango de puertos pasivos en proftpd.conf, abre esos puertos en el firewall y asegúrate de que cualquier NAT intermedio esté traduciendo bien.
Si ves “550 Permission denied”, el problema apunta a permisos en disco: el usuario no puede leer, escribir o modificar en el directorio o archivo que intenta usar. Revisa los permisos con chmod y el propietario con chown, ajustándolos al nivel justo necesario.
El aviso “Address already in use” suele indicar que otro servicio está usando el puerto 21 (o el que tengas configurado). Puedes usar herramientas como netstat -tuln o ss -tuln para ver qué proceso tiene el puerto ocupado y actuar en consecuencia (parar ese servicio o cambiar el puerto de ProFTPd).
Si obtienes “421 Service not available, closing control connection”, es posible que el servidor haya alcanzado el máximo de conexiones definido en parámetros como MaxInstances o MaxClients, o que haya una mala configuración general. Revisa esos valores, asegúrate de que no estás sobrepasando límites demasiado estrictos y comprueba si algún firewall o proxy está cerrando conexiones prematuramente.
Problemas de rendimiento y conexión lenta
En ocasiones, aunque no aparezcan errores claros, notarás que las conexiones FTP son anormalmente lentas o parecen quedarse colgadas al inicio. Una causa muy típica es tener resolución DNS inversa activada y mal configurada.
ProFTPd, al recibir una conexión, puede intentar hacer un reverse DNS de la IP del cliente. Si el DNS no responde o lo hace muy lento, cada inicio de sesión se ve penalizado. Para evitarlo, puedes desactivar esa funcionalidad con la directiva:
UseReverseDNS off
Con esto se acelera sensiblemente el proceso de conexión, sobre todo en entornos con DNS saturados o mal configurados.
Pruebas de seguridad tras la instalación
Que el servidor arranque y acepte conexiones no significa que esté realmente seguro. Es buena idea dedicar un rato a realizar pruebas básicas de seguridad después de ponerlo en marcha.
Un primer paso es comprobar qué puertos están expuestos desde el exterior. Puedes usar herramientas de escaneo externas para verificar que solo el puerto 21 y el rango pasivo que hayas definido están abiertos, y que no hay otros servicios innecesarios visibles.
También deberías probar la configuración TLS si usas FTPES: verifica que solo se permiten protocolos seguros (TLS 1.2/1.3), que no se aceptan cifrados débiles y que no tienes activadas opciones obsoletas por compatibilidad. Herramientas como clientes avanzados o analizadores TLS pueden ayudarte a ver qué se negocia en cada conexión.
No olvides probar el comportamiento ante intentos de acceso incorrectos: usuarios inexistentes, contraseñas malas, inicios desde IP no permitidas, etc. El servidor debe rechazar estos intentos de forma clara y registrarlos en los logs.
Finalmente, dedica un tiempo a revisar los registros de ProFTPd y TLS. En ellos verás intentos de conexión, errores, negociaciones de cifrado y cualquier anomalía. Con unas pocas pruebas bien orientadas puedes detectar fallos de configuración antes de que alguien los explote.
ProFTPd frente a vsftpd, pure-ftpd y otras alternativas
En el ecosistema Linux tienes varias alternativas para montar un servidor FTP, cada una con su filosofía. ProFTPd es muy versátil y potente, pero no siempre es la mejor opción si buscas algo minimalista.
vsftpd es famoso por ser muy seguro, ligero y conservador. Ofrece pocas florituras, pero su diseño se centra en la seguridad desde el principio. Es una buena opción cuando quieres algo “que funcione y punto”, con configuración relativamente sencilla.
pure-ftpd es otra alternativa muy flexible, con soporte para autenticación en bases de datos, LDAP, múltiples sistemas Unix y cifrado TLS. Destaca por ser modular y portable, con buen rendimiento en entornos Unix variados (Linux, *BSD, Solaris, etc.).
En sistemas Windows, una solución muy popular es FileZilla Server, que soporta FTPS y está pensada específicamente para ese entorno. Para Linux, sin embargo, suele ser más natural trabajar con ProFTPd, vsftpd o pure-ftpd.
La elección dependerá de si priorizas control granulado y extensibilidad (donde ProFTPd brilla) o simplicidad extrema y consumo mínimo de recursos (donde vsftpd tiene ventaja). En todo caso, todas estas opciones son válidas si se configuran de forma cuidadosa.
Al final, ProFTPd ofrece una combinación muy interesante de potencia, modularidad y opciones de seguridad que lo convierten en una de las soluciones más completas para montar un servidor FTP en Linux y Unix. Entendiendo bien su archivo de configuración, gestionando correctamente usuarios y permisos, activando TLS con buenas prácticas y revisando logs con regularidad, puedes disponer de un servicio de transferencia de archivos rápido, estable y preparado para crecer con las necesidades de tu organización.
