OpenVPN es el conocido software capaz de crear redes privadas virtuales con cifrado punto a punto para proteger nuestras comunicaciones. OpenVPN es multiplataforma y está disponible para sistemas operativos Windows y cualquier tipo de distribución Linux. Las últimas versiones son compatibles con TLSv1.2 por lo que tendremos un extra de seguridad en nuestras comunicaciones.
Hasta la versión de OpenVPN 2.3.2 tan sólo era compatible con TLSv1.0 con cifrados basados en RSA, incluso estas versiones antiguas eran compatibles con DHE (Diffie Hellmann Ephimeral) con Perfect Forward Secrecy para asegurar nuestras comunicaciones anteriores si la clave privada caía en malas manos.
La suite de cifrados compatibles con 2.3.2 era la siguiente:
- TLS-DHE-RSA-WITH-AES-256-CBC-SHA
- TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA
- TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA
- TLS-DHE-RSA-WITH-AES-128-CBC-SHA
- TLS-DHE-RSA-WITH-SEED-CBC-SHA
- TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
- TLS-DHE-RSA-WITH-DES-CBC-SHA
Ahora se ha integrado la suite de cifrados de TLSv1.2 proporcionándonos mayor seguridad, exactamente los cifrados compatibles con esta nueva versión son los siguientes:
- TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
- TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
- TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
- TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
Para configurar el servidor y el cliente basta con poner:
tls-cipher [algoritmo]
Siendo algoritmo una de las cadenas anteriores (entera).
Si no tenemos servidores o clientes compatibles con TLSv1.2 es recomendable aumentar el algoritmo HASH que por defecto es SHA1 160bits y SHA256 o SHA512 con la siguiente directiva:
auth [SHA256, SHA512]
Debemos indicar que ninguna versión de OpenVPN soporta aún las curvas elípticas, por lo que tendremos que seguir utilizando los algoritmos típicos. Otra de las mejoras importantes en estas últimas versiones es la solución al grave problema HeartBleed.
Podéis acceder a estas nuevas descargas desde la página web oficial, actualmente la nueva versión no se encuentra en los repositorios de Debian ni tampoco en FreeBSD por poner un ejemplo, habrá que compilarlo de forma manual para poder utilizarlo.
Os recomendamos leer nuestro tutorial sobre cómo configurar un servidor OpenVPN con TLS 1.3.