En una instalación por defecto de ProFTPd solo podremos utilizar el servicio sin cifrado debido a que este no dispone de un certificado SSL configurado. En este artículo, os vamos a mostrar los pasos para configurar un certificado SSL de Let's Encrypt sobre un servidor ProFTPd.
Información
Si no tenéis configurado un servidor ProFTPd podéis seguir el siguiente enlace: Configurar proFTPd en GNU/Linux
Instalación de Let's Encrypt y generación del certificado
Para instalar Let's Encrypt tenemos que añadir el repositorio e instalar certbot:
# add-apt-repository ppa:certbot/certbot
# apt-get update
# apt-get install certbot
Una vez instalado podemos proceder a generar el certificado SSL. Si no disponéis de un dominio propio podéis utilizar el hostname asignado al servidor por Clouding.
Para saber que hostname tiene nuestro servidor accedemos al panel de cliente y en "Mis Servidores" hacemos clic en el servidor que estamos instalando el certificado SSL para ProFTPd.
En "Ajustes" tenemos el apartado "Cómo acceder al servidor" y copiaremos el valor que se nos muestra en "Nombre de Host" como podéis ver en la siguiente imagen.
Ahora que ya tenemos el hostname del servidor o un dominio propio volvemos a nuestro servidor y ejecutamos el siguiente comando para generar el certificado:
# certbot certonly --standalone --preferred-challenges http -d 3e093052-6120-46fc-900b-270910d1233b.clouding.host
En "-d 3e093052-6120-46fc-900b-270910d1233b.clouding.host" tenéis que cambiar el hostname del ejemplo por el hostname de vuestro servidor.
El proceso os solicitará un correo electrónico para enviaros notificaciones en casos de renovaciones urgentes o problemas de seguridad. En los términos y servicios escribiremos "A" para aceptarlos y por últimos indicaremos "N" para que no se comparta nuestro correo electrónico.
Si todo ha funcionado correctamente veréis un mensaje como el siguiente:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/3e093052-6120-46fc-900b-270910d1233b.clouding.host/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/3e093052-6120-46fc-900b-270910d1233b.clouding.host/privkey.pem
Your cert will expire on 2020-10-20. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
Ahora ya tenemos nuestro certificado SSL de Let's Encrypt y ya podemos proceder a configurar ProFTPd para que lo utilice en las conexiones TLS.
Configurar ProFTPd con el certificado SSL de Let's Encrypt
Para configurar TLS en proFTPd editaremos el siguiente fichero:
# vi /etc/proftpd/tls.conf
Y descomentamos las siguientes líneas.
TLSEngine on
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSCACertificateFile /etc/ssl/certs/CA.pem
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
Ahora tenemos que editar los "path" de las variables "LSRSACertificateFile, TLSRSACertificateKeyFile y TLSCACertificateFile" para que utilice el certificado creado por Let's Encrypt.
Los paths que necesitaremos son los siguientes:
/etc/letsencrypt/live/hostname/cert.pem
/etc/letsencrypt/live/hostname/privkey.pem
/etc/letsencrypt/live/hostname/chain.pem
Por lo que las lineas descomentadas anteriormente las dejaremos de la siguiente forma:
TLSEngine on
TLSRSACertificateFile /etc/letsencrypt/live/hostname/cert.pem
TLSRSACertificateKeyFile /etc/letsencrypt/live/hostname/privkey.pem
TLSCACertificateFile /etc/letsencrypt/live/hostname/chain.pem
Para que ProFTPd importe este fichero de configuración deberemos editar el siguiente archivo:
# vi /etc/proftpd/proftpd.conf
Y descomentamos la siguiente linea:
Include /etc/proftpd/tls.conf
Por último reiniciamos el servidor ProFTPd para que cargue la nueva configuración:
# service proftpd restart
Conectar a ProFTPd con TLS desde Filezilla
Para conectar por TLS a nuestro servidor ProFTPd abriremos Filezilla y haremos clic en "Gestor de Sitios"
Añadimos un nuevo sitio y en servidor especificaremos el hostname utilizado anteriormente. En cifrado seleccionaremos "Requiere FTP explícito sobre TLS".
Hacemos clic en "Opciones de Transferencia" y seleccionamos el modo "Pasivo" y por último clic en "Conectar".
Escribimos la contraseña de nuestro usuario FTP.
Filezilla nos mostrará el certificado SSL generado anteriormente, lo revisamos y hacemos clic en "Aceptar".
Por último veremos que se ha podido conectar correctamente por TLS.
¿Lo has probado? ¡Déjanos tus comentarios! 🙂