Categorías
Debian Linux

Como Configurar TLS para Pureftp en Debian

El servicio FTP es bastante inseguro, sobre todo si lo instalamos en modo «plano», es decir sin encriptar. De este modo, estamos pasando por internet las credenciales (usuario y password), en plano, y por lo tanto cualquier «hacker», nos las podría robar.

Para evitarlo, vamos a dotar a nuestro servidor basado en pureftp de la tecnologia TLS de modo que las credenciales, y los datos, se transmitan en modo encriptado.

En esta entrada, suponemos que tenemos el pureftp ya instalado en nuestro sistema Debian o derivado.

Instalar el OpenSSL

El primer paso seria instalar el openssl(si no lo hemos hecho ya), asi que simplemente habria que escribir desde el terminal

apt-get install openssl

Una vez instalado el openssl, deberemos configurar nuestro servidor pureftp, para que acepte conexiones encriptadas.

Configurar servidor pureftp

Aquí tenemos dos opciones:

Aceptar FTP sin encriptar(plano) y con TLS. De modo que aceptariamos conexiones seguras e inseguras a la vez. Para ello pondriamos en el terminal

echo 1 > /etc/pure-ftpd/conf/TLS

O, la opción mas segura que nuestro server solo acepte conexiones encriptadas.

echo 2 > /etc/pure-ftpd/conf/TLS

Creación del certificado

Para poder establecer las comunicaciones de manera encriptada, necesitaremos un certificado con el cifrar las transmisiones, el modo mas sencillo y economico, es crearnos nuestro propio certificado, ya que es rápido y gratuito.

Primero crearemos el directorio donde lo vamos a alojar(podemos omitir este paso si ya está creado)

mkdir -p /etc/ssl/private/

Ahora ya podemos crear nuestro certificado con la siguiente instrucción

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Con la instrucción anterior hemos creado un certificado en el directorio /etc/ssl/private con el nombre pure-ftpd.pem con validez para 730 dias (2 años). Al ejecutar la instrucción nos hara una serie de preguntas como veremos en la imagen de mas abajo.

Por último, como podreis ver al final de la imagen anterior, solo nos quedara, dar permisos de lectura al propietario con la instrucción

chmod 600 /etc/ssl/private/pure-fptd.pem

Y reiniciar el servicio del FTP para que coja los cambios

/etc/init.d/pure-ftpd restart

Como podreis comprobar si os conectais a vuestro server, ahora las conexiones ya son encriptadas.

Conexión al server FTP mediante TLS

Renovación del certificado

Me han preguntado muchas veces que hacer cuando el certificado ha caducado, puesto que cuando esto ocurre, y nos conectamos al servidor FTP, se muestra un mensaje avisando de que el certificado ha caducado. La conexion seguira encriptandose, pero hace muy mal efecto frente a los demás.

La solución es muy simple, solo habria que crear un nuevo certificado «machacando» el anterior. De modo que las instrucciones serian las siguientes.

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

chmod 600 /etc/ssl/private/pure-fptd.pem

/etc/init.d/pure-ftpd restart

Con las tres instrucciones, estamos creando un certificado nuevo, nos aseguramos que es de lectura para el autor y reiniciamos el servicio para que coja el nuevo certificado.

Espero que os haya servido de ayuda. Por favor, dejad comentarios de lo que os ha parecido el artículo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *