25 septiembre 2015

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

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

Cualquiera puede capturar un paquete en camino. La solución es utilizar un protocolo seguro, tan simple como eso.

SSL sobre FTP
Ahora vamos a configurar el servidor VSFTPD para que trabaje sobre SSL de forma que la conexión esté cifrada siempre.
Si no esta instalado y configurado el servidor VSFTPD y OpenSSH:

Verificamos si no estan instalados los servidores:

root@gostir:~# slapt-get --search vsftpd
vsftpd-3.0.2-x86_64-1 [inst=no]: vsftpd (Very Secure FTP Daemon)

root@gostir:~# slapt-get -i openssh
openssh-6.7p1-x86_64-2 [inst=no]: openssh (Secure Shell daemon and clients)


Instalando los paquetes necesarios:
root@gostir:~# slapt-get -i vsftpd openssh

Generando un certificado
Vamos a generar un certificado SSL, que queda en /etc/vsftpd y como ejemplo le damos un tiempo válido por un año (365 días):

root@gostir:~# openssl req -x509 -nodes -days 365 -newkey rsa:1024 \
 -keyout /etc/vsftpd/vsftpd.pem \
 -out /etc/vsftpd/vsftpd.pem


Modificar fichero de configuración
Ahora sólo nos queda modificar el fichero de configuración. Se llama vsftpd.conf y esta en /etc/vsftpd/. Si faltan, agregamos las siguientes líneas:

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, reiniciar el servicio:

/etc/rc.d/rc.vsftpd restart

Que te diviertas!