Para generar nuestro certificado propio SSL, es imprescindible utilizar el programa "OpenSSL" (por defecto está instalado en Raspbian):
$ sudo apt-get install openssl
Una vez instalado, procedemos a la creación del certificado:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
|
Vemos las opciones:
-days: es la caducidad del certificado.
-newkey rsa:1204: es el tipo y los bytes de encriptación (RSA 1024 bit).
-out: el directorio donde se almacenara el archivo del certificado.
A continuación accederemos al archivo de configuración del servidor ftp:
$ sudo nano /etc/vsftpv.conf
Insertamos los siguientes parámetros:
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 require_ssl_reuse=NO ssl_ciphers=HIGH rsa_cert_file=/etc/ssl/private/vsftpd.pem |
También es importante reforzar un poco más nuestro servidor FTP, por ello añadiremos las siguientes líneas en el archivo de configuración:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
max_clients=2 #Máximo de clientes que se conectarán simultáneamente. max_per_ip=2 #Límite de ips que se conectarán simultáneamente. max_login_fails=1 #Máximo de login fallidos. delay_failed_login=30 #Tiempo de espera tras el último login fallido. |
Reiniciamos el servicio:
$ sudo /etc/init.d/vsftpd restart
Ya tenemos un mínimo de seguridad para conectarnos vía ftp desde el exterior (ip pública). Es importante abrir los puertos en el router, tanto para la conexión (21 por defecto si no la hemos cambiado) como para el modo pasivo (abrir los rangos que estén en el archivo de configuración /etc/vsftpd.conf>pasv_min_port-pasv_max_port).
Configurado todo, nos conectaremos al servidor mediante algún cliente ftp (Filezilla) desde fuera de nuestra LAN, elegimos el modo ftp explícito sobre TLS y nos aparecerá un certificado como el siguiente:
Una vez aceptada la conexión entre cliente/servidor estará cifrada.
No hay comentarios:
Publicar un comentario