Requisitos:
Para esta práctica solamente necesitas un equipo con sistema operativo Linux Ubuntu (u otra distribución basada en Debian) con el servidor FTP ProFTPD instalado en él, y otro equipo en la misma red para hacer las pruebas.
Instalación de OpenSSL:
sudo apt install openssl
Crear el certificado para TLS:
Primero crea un directorio para guardar el certificado, puedes guardarlo en el mismo directorio de proftpd:
sudo mkdir /etc/proftpd/ssl
En el directorio anterior genera el certificado SSL con el siguiente comando:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
OpenSSL te preguntará unos cuantos datos, debes ir entrando las respuestas:
Este código genera dos ficheros uno con el certificado y otro con la clave. Para asegurarnos que nadie más tiene acceso cambia los permisos sobre ellos:
sudo chmod 600 /etc/proftpd/ssl/proftpd.*
Activar TLS en la configuración de ProFTPD:
En el fichero de configuración de proftpd (/etc/proftpd/proftpd.conf) debes descomentar la línea siguiente:
Y editar el fichero para la configuración TLS: /etc/proftpd/tls.conf, el cual debe quedar así:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
</IfModule>
La línea TLSRequired on indica que solamente se podrán conectar clientes FTP a nuestro servidor que utilicen TLS, dando un error de conexión los clientes que no lo utilicen.
Comentando dicha línea se da acceso a los clientes que tengan TLS y a los que no, y es el cliente quién elige la seguridad de la conexión.
Cuando conectes con un cliente como Filezilla te mostrará un mensaje con los datos del certificado para que confirmes si deseas continuar la conexión.
Seguridad extra en la configuración:
Uno de los factores de riesgo a la hora de utilizar software es que los atacantes sepan qué software y versión estamos utilizando, para evitar que cualquiera sepa la versión de ProFTPD que corre en nuestro equipo podemos hacer que ProFTPD solamente muestre un mensaje pero no la versión, para ello deberás editar /etc/proftpd/proftpd.conf y escribir la siguiente línea:
ServerIdent on "Bienvenido al servidor DOOM."
Con el mensaje que quieras entre comillas.