Configurar VSFTPD para conexiones seguras (TLS/SSL/SFTP)

Configurar VSFTPD para conexiones seguras (TLS/SSL/SFTP)

Si hace tiempo hablábamos en estas mismas líneas de cómo poner en marcha un servidor FTP utilizando VSFTPD, hoy completamos esa entrada comentando cómo configurarlo para que acepte conexiones seguras.

¿Por qué es tan importante que el servidor acepte conexiones seguras? El protocolo FTP, aunque muy práctico no codifica los datos ni siquiera de los credenciales del usuario.

El hecho de que alguien pudiera capturar un paquete en la ruta, sería muy grave para la seguridad del sistema, tened en cuenta que los servicios de FTP normalmente tienen acceso a datos relevantes. La solución es utilizar un protocolo seguro.

SSL sobre FTP

Veamos cómo configurar el servidor VSFTPD para que trabaje sobre SSL de forma que la conexión esté cifrada. Damos por supuesto que tenemos instalado y configurado el servidor VSFTPD como se explica aquí y que tenemos instalado OpenSSH. Si no lo tenemos siempre podremos hacer uso del gestor de paquetes:

  • yum install openssh
  • apt-get install openssh

Generar un certificado

Lo primero será generar un certificado que almacenaremos en /etc/vsftpd y le daremos un tiempo de vida de un año (365 días). La instrucción es la siguiente:

 [carazo@pgserver] openssl req -x509 -nodes -days 365 -newkey rsa:1024 \
 -keyout /etc/vsftpd/vsftpd.pem \
 -out /etc/vsftpd/vsftpd.pem

Las barras tipo Windows son para partir la orden en varias líneas (sino la etiqueta PRE hace que se salga el texto).

Modificar fichero de configuración

Ahora sólo nos queda modificar el fichero de configuración. Su nombre vsftpd.conf y podréis encontrarlo en /etc/vsftpd/. Más que probablemente no estarán las siguientes líneas escritas, por lo que podéis añadirlas al final del mismo.

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem

Reiniciar el servicio

Para que los cambios surjan efecto deberéis reiniciar el servicio:

service vsftpd restart

Conexión

Ya podemos conectarnos. Deberemos indicarle a nuestro cliente de FTP los mismos datos que antes pero escogiendo:

  • Tipo de servidor: SFTP, SSH FTP
  • Puerto: 22