Actividad 10: OpenVPN con clave compartida

per Victor Carceler darrera modificació 2020-03-25T16:26:21+02:00

En la actividad anterior se utilizó OpenVPN para crear una VPN entre dos equipos, pero esta VPN no utilizaba ningún tipo de cifrado. Así que no proporcionaba ninguna confidencialidad a los datos transmitidos. Cifrar de un modo seguro todo el tráfico es la razón habitual por la que se monta una VPN. De modo, que partiendo de la actividad anterior vamos a cambiar la configuración de la VPN para utilizar cifrado simétrico (o de clave compartida).

En este cifrado se utiliza una misma clave para cifrar y descifrar, así que los dos extremos de la VPN deben compartir la clave. Además, en este modo de funcionamiento OpenVPN también utiliza la clave compartida para autenticar a la estación remota.

Resulta por tanto esencial:

  • Transmitir la clave de un equipo a otro utilizando un canal seguro.
  • Evitar accesos indeseados a la clave en cualquiera de las estaciones.

Evidentemente si la clave se compromete se pierde toda la confidencialidad y es necesario establecer el uso de una nueva clave en ambos extremos. Los algoritmos de cifrado simétrico no son inseguros por naturaleza y son más rápidos que los algoritmos de cifrado asimétrico.

Puede obtener información sobre cómo utilizar una configuración con clave compartida en la web de OpenVPN: Static Key Mini-HOWTO.

Actividad:

  1. Encienda las máquinas de la actividad anterior y compruebe que ambas establecen un túnel funcional.
  2. En la primera máquina, genere la clave compartida /etc/openvpn/static.key.
  3. Utilice SSH para copiar la clave a la segunda máquina.
  4. Escriba nuevos ficheros de configuración (A2-B2.conf, B2-A2.conf, ...) en cada una de las máquinas para configurar un túnel cifrado. En este caso, en los ficheors de configuración se utilizará la interfaz virtual tap1 y se declarará el parámetro: secret static.key
  5. Reinicie el servicio OpenVPN en ambas máquinas y compruebe que está disponible el nuevo túnel. Revise el fichero de registro /var/log/syslog, observe qué algoritmo de cifrado se está utilizando.
  6. Utilice en la línea de comandos la opción --show-ciphers de OpenVPN para ver la lista de algoritmos de cifrado soportados.
  7. Utilice el comando nc para transmitir 1GB de datos utilizando ambos túneles. Tome nota del tiempo necesario y el uso de CPU en cada caso.
  8. Utilice las opciones de configuración auth y cipher para cambiar el algoritmo de autenticación y cifrado.
  9. Utilice tcpdump para visualizar el tráfico al realizar ping entre las estaciones:
  • Utilizando la interfaz de red física
  • Utilizando el túnel sin cifrado
  • Utilizando el túnel con cifrado