Servidor FTP seguro con Debian y ProFTPD

Uno de los antiguos servicios básicos de Internet es, sin duda, el que hoy día sigue generando mayor peligro en nuestros sistemas: FTP o File Transfer Protocol, es decir Protocolo para la Transferencia de Ficheros, que aunque va siendo reemplazado cada día mas por las redes P2P y el protocolo HTTP sigue teniendo una gran importancia.

¿Cual es el problema de FTP? Sencillamente que todas las transferencias se hacen sin ningún tipo de cifrado, por lo que todos los comandos y datos (y lo que es más grave, los datos de usuario y contraseña) que enviemos y recibamos pueden ser capturados por terceras personas.

Algunos se estarán preguntando por que no usar RSSH, que aportaría una solución sobre servidores SSH. La razón es que quiero servicios totalmente independientes, que corran sobre puertos diferentes y que me permitan opciones adicionales.

En mi caso usaré ProFTPD, ya que es un servidor soportado por Webmin, con lo que la configuración puede simplificarse para algunas cosas. De todas formas recomiendo hacerlo todo a mano.

Instalar ProFTPD es muy sencillo, basta con ejecutar como root el comando:

apt-get install proftpd

Con eso quedará todo configurado por defecto. CHROOT está activo por defecto, con lo que nuestros usuarios quedan ceñidos estrictamente a su directorio HOME, del que no pueden salir.

Pero falta enseñar a ProFTPD como reconocer conexiones TLS, y si lo deseamos, enseñarle a que fuerce a los usuarios a utilizar TLS (altamente recomendado).

Lo primero es generar un certificado para el servidor, ejecutando (de nuevo como root):

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/proftpd.pem

Necesitaremos introducir los datos pertinentes.

Ahora editamos /etc/proftpd.conf (siempre como root) y añadimos al final lo siguiente:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/ftpd/tls.log
TLSProtocol TLSv1
# Obligar a los clientes a usar TLS (on/off)
TLSRequired on
# Certificado del Servidor
TLSRSACertificateFile /etc/ssl/certs/proftpd.pem
# Permitir a usuarios que deseen usar FTP sobre TLS (on/off)
TLSVerifyClient on
</IfModule>

Tras ello reiniciamos el servidor ftp con:

/etc/init.d/proftpd restart

¡Y listo! Con la configuración que acabamos de poner solo quien use TLS podrá identificarse en el servidor. Las contraseñas ya no viajarán nunca en texto plano.

Documentación empleada:

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.