Proteger servidores OpenSSH y OpenVPN (también con Latch) (y II)

viernes, 20 de junio de 2014

OpenVPN es el software multiplataforma que permite crear redes privadas virtuales y punto a punto de forma remota y segura. Imiplementar una buena seguridad en OpenVPN es fundamental para evitar accesos no deseados, debido a que se utiliza principalmente en entornos profesionales para acceder desde cualquier punto a la red corporativa, el control de un atacante podría resultar fatal.

Algunas recomendaciones para asegurar un servidor OpenVPN pasan por:

  • Crear claves criptográficamente robustas. Para ello es importante usar los algoritmos más recientes de cifrado. Para establecer TLSv1.2 (sólo en versiones OpenVPN a partir de 2.3.3) se debe utilizar la siguiente directiva en el archivo de configuración: 
Tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384

Gracias a esta directiva, el servidor utilizará Diffie-Hellmann Ephemeral, de tal forma que si en algún momento un atacante captura la clave privada, las comunicaciones anteriores no podrán descifrarse por usar Perfect Forward Secrecy. También se utilizan las claves RSA para la autenticación, un cifrado simétrico robusto como AES-256 en modo GCM y un algoritmo de hash como SHA2.

  • Incorporar TLS-AUTH para que todos los paquetes que no posean la firma HMAC se bloqueen. Esta característica proporciona un nivel de seguridad adicional a la que proporciona TLSv1.2 porque mitiga posibles ataques DoS. El mecanismo consiste en cerrar la comunicación sin esperar a comprobar los certificados y así la carga de CPU es mucho menor.

  • Algunas recomendaciones adicionales de seguridad pasan por autenticar a cada cliente OpenVPN contra la PAM del servidor al que se conecta, utilizando su usuario y contraseña de acceso al sistema. 

Pero una vez más, estas medidas de seguridad se ven empañadas si un atacante consigue credenciales de acceso. Latch soluciona este problema de forma elegante. Permite controlar permanentemente los accesos al servidor OpenVPN, avisando de los intentos de acceso cuando el "pestillo" digital está cerrado. La instalación y configuración de Latch con OpenVPN es realmente fácil.

La única modificación necesaria en el servidor OpenVPN es habilitar la autenticación PAM (si no lo está ya) añadiendo la siguiente línea al archivo de configuración (ejemplo para Ubuntu 14.04 LTS):

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn

Al intentar iniciar una conexión con el Latch cerrado, se generará el siguiente log en el servidor:

Logs de OpenVPN con Latch

Con el correspondiente aviso de la aplicación advirtiendo que se ha intentado acceder con el "pestillo" cerrado.

El proceso de instalación de Latch en este tipo de servidores es realmente rápida y sencilla, puesto que el proceso se encuentra perfectamente documentado. El uso de esta herramienta es recomendable tanto para los usuarios que se conectan al servidor como para los administradores que podrán proteger sus accesos de forma sencilla.

Conclusiones

Hace un tiempo perdí el smartphone, con todas las claves privadas en su interior. Quien encontrase el terminal podría haberlas extraído y usarlos para conectarse al servidor. La primera medida que tomé fue acceder vía SSH para detener el servidor OpenVPN, porque en ese momento no disponía ni de las herramientas ni del tiempo necesario para revocar los certificados. De esta forma evité que el potencial atacante se pudiera conectar, pero aun así hubo un tiempo de exposición que supuso un riesgo. Si Latch hubiera existido entonces, la ventana de exposición y por tanto el problema hubiera sido menor (o incluso nulo), puesto que el "pestillo" habría estado cerrado y aunque tuviera los certificados no podría haberse conectado.

Aunque Latch por sí solo no proporcione mayor seguridad, sí permitirá tener todos los accesos bajo control. Desde el punto de vista del usuario, le será útil para disfrutar de una mayor seguridad en banca o en el correo electrónico, pero para los administradores de sistemas podría suponer un elemento fundamental en entornos donde un acceso no autorizado tendría graves consecuencias.

Proteger servidores OpenSSH y OpenVPN (también con Latch) (I)

Sergio de Luz
sergio.deluz@redeszone.net

No hay comentarios:

Publicar un comentario en la entrada