Mi Blog
👉 Cómo configurar TLS en ProFTPD

Cómo configurar TLS en ProFTPD

 
(5 votos)

Cifrar los datos en una conexión FTP si es posible utilizando TLS. Las comunicaciones y los datos en una conexión estándar de FTP van si cifrar, por tanto, cualquier persona podría conocer los datos de acceso e incluso interceptar los ficheros que transferimos. Por eso, es necesario otorgar al protocolo FTP de una capa extra de seguridad que evite estos problemas. Gracias a TLS la información va cifrada y nuestros datos viajarán de forma segura a través de la red.

Seguid leyendo y aprenderéis como configurar y activar TLS en ProFTPD...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES TLS?

SSL son las siglas en inglés de Secure Socket Layer (en español capa de conexión segura). Es un protocolo criptográfico (un conjunto de reglas a seguir relacionadas a seguridad, aplicando criptografía) empleado para realizar conexiones seguras entre un cliente (como por ejemplo un navegador Web de Internet) y un servidor (como lo son las computadoras que despachan páginas web).

Este protocolo ha sido relevado por TLS, que son las siglas en inglés de Transport Layer Security (en español seguridad de la capa de transporte). Versiones de TLS tienen un equivalente en SSL, por ejemplo TLS 1.2 corresponde a SSL 3.3; de ahí que aún sea común que se refiera al protocolo TLS como SSL y que en un contexto informal se utilicen estos términos de forma intercambiable.

 

 

TLS ofrece la capa de seguridad al FTP que no ofrece por sí mismo.

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un equipo con GNU/Linux + ProFTPD instalado
  • Conexión a Internet (por si necesitamos instalar algún programa)
  • Cliente FTP (Por ejemplo Filezilla)

 

 

2.- CONFIGURACIÓN INICIAL

Siguiendo la serie de tutoriales de ProFTPD, este tutorial se basa en la configuración final del anterior tutorial. Por tanto, os recomiendo tener claro primero los anteriores tutoriales si queréis entender perfectamente el por qué de cada una de las líneas. La configuración en la que nos vamos a basar, es la que generamos en el anterior tutorial Cómo configurar VirtualHosts en ProFTPD, y es la siguiente:

Include /etc/proftpd/modules.conf
Include /etc/proftpd/virtuals.conf

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

<IfModule mod_quotatab.c>
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
<IfModule mod_quotatab_file.c>
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
</IfModule>
</IfModule>

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>

 

 

Es necesario realizar las operaciones con usuario root o con sudo.

 

 

3.- CONFIGURAR Y ACTIVAR TLS

En el fichero de configuración principal /etc/proftpd/proftpd.conf tenemos que añadir la siguiente línea para importar la configuración de TLS:

Include /etc/proftpd/tls.conf

 

 

Y el fichero tls.conf debemos configurarlo para que tenga las siguientes opciones:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSRequired on
</IfModule>

 

 

4.- GENERACIÓN DE CERTIFICADOS

Para la generación delos certificados, tanto el público como el privado, lo mejor es utilizar la propia herramienta que trae ProFTPD llamada proftpd-gencert. Tan solo debemos ejecutar el comando y un asistente muy sencillo nos irá preguntando los datos con los que queremos que se generen los certificados:

raul@ns1:~$ sudo proftpd-gencert 
Generating a RSA private key
.........+++++
.....................................................................................................................................................................................................................................................................................................................................+++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES <--- INTRODUCIMOS VALOR
State or Province Name (full name) [Some-State]:ESPAÑA <--- INTRODUCIMOS VALOR
Locality Name (eg, city) []:LEÓN <--- INTRODUCIMOS VALOR
Organization Name (eg, company) [Internet Widgits Pty Ltd]:RPF <--- INTRODUCIMOS VALOR
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.raulprietofernandez.net <--- INTRODUCIMOS VALOR
Email Address []:Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. <--- INTRODUCIMOS VALOR

Use the following information in your ProFTPD configuration:

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key

See /etc/proftpd/tls.conf for suggested TLS related configuration
items and include that file in your /etc/proftpd/proftpd.conf file.

 

 

Debemos asegurarnos que los ficheros generados en el paso anterior proftpd.crt y proftpd.key, están ubicados en el mismo sitio que tenemos configurado en el fichero tls.conf. El siguiente paso será reiniciar el servidor ProFTPD para aplicar los cambios:

raul@ns1:~$ sudo /etc/init.d/proftpd restart
[ ok ] Restarting proftpd (via systemctl): proftpd.service.

 

 

5.- PROBANDO LA CONEXIÓN TLS

Para poder utilizar TLS; debemos crear en nuestro cliente FTP una nueva conexión y forzaremos a que use TLS:

TLS ProFTPDNuevo perfil de conexión

 

 

En la primera conexión, se podrá ver que el servidor envía un certificado a nuestro cliente con los datos que configuramos en los pasos anteriores:

TLS ProFTPDAceptar certificado

 

 

TLS ProFTPDConexión FTP con TLS correcta

 

 

6.- CONFIGURACIÓN FINAL

A continuación pongo el contenido completo del fichero proftpd.conf descrito en este tutorial junto con la configuración realizada en tutoriales anteriores. Tened en cuenta que para TLS no son necesarias todas las configuraciones que hay en el fichero abajo descrito, ya que es la acumulación de la configuración de todos los tutoriales anteriores. El fichero principal proftpd.conf es el siguiente:

Include /etc/proftpd/modules.conf
Include /etc/proftpd/virtuals.conf
Include /etc/proftpd/tls.conf

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

<IfModule mod_quotatab.c>
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
<IfModule mod_quotatab_file.c>
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
</IfModule>
</IfModule>

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>

 

 

Y el fichero de tls.conf es el siguiente:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSRequired on
</IfModule>

 

 

ENJOY!