Por qué amo IKEv2 más que otras VPN



Ahora todo el mundo está configurando una VPN para empleados remotos. Me duele ver cómo las personas instalan programas con errores monstruosos, configuran algún tipo de certificados, instalan controladores TUN / TAP y realizan muchas operaciones complejas, mientras que la mejor solución ya está integrada en el sistema operativo.

IKEv2 es un protocolo VPN moderno desarrollado por Microsoft y Cisco. Se usa de forma predeterminada para nuevas conexiones VPN en Windows, macOS, iOS. Es más rápido y seguro que la mayoría de los protocolos VPN y se puede configurar fácilmente en el lado del cliente en dos clics sin usar programas de terceros.

Creo que IPsec IKEv2 es excelente no solo para conectar servidores, sino también para conexiones VPN de usuario final. En esta publicación, intentaré convencerlo de que use IPsec IKEv2 para usuarios domésticos habituales en lugar de OpenVPN.

IKEv2 más rápido


En igualdad de condiciones, IKEv2 siempre será más rápido que OpenVPN. Esto es especialmente notable en sistemas de baja potencia con memoria lenta, como enrutadores o computadoras de una sola placa.

El hecho es que IPsec funciona en el contexto del núcleo del sistema operativo, y OpenVPN en el contexto del usuario (espacio de usuario), y el procesamiento de cada paquete cambia el contexto entre los procesos del núcleo y los procesos del usuario. Esto afecta tanto el rendimiento como la latencia.


Comparación de retrasos para diferentes protocolos VPN.

La captura de pantalla anterior muestra la diferencia de retraso a la mitad entre IPsec y OpenVPN. Por supuesto, la diferencia de 1 ms es imposible de notar a simple vista, pero con una carga en el sistema, estos valores pueden variar significativamente. Además, los indicadores reales dependen en gran medida de las características de un sistema en particular, por lo que no daré cifras absolutas para comparar los dos protocolos. Los retrasos son muy importantes cuando se usa voz y video a través de VPN.

Según mis sentimientos subjetivos, IKEv2 en Windows 10 funciona notablemente más receptivo que OpenVPN. Después de todo, el uso real de una computadora de escritorio es muy diferente de las pruebas sintéticas de los protocolos VPN. La carga en el procesador y la memoria no es constante, el usuario puede ejecutar programas exigentes, todo esto afectará el rendimiento.

IKEv2 más fácil de configurar


Todos los sistemas operativos modernos (excepto Android) son compatibles con IPsec IKEv2 desde el primer momento. No es necesario instalar ningún programa , controladores virtuales TUN / TAP, etc. Toda la administración de VPN proviene del menú del sistema.

Al mismo tiempo, la configuración en el cliente se puede simplificar a tres líneas:

  • Dominio : para IPsec, se requiere un dominio, ya que se emite un certificado SSL.
  • iniciar sesión
  • contraseña

Ya no necesita transferir archivos con certificados y claves al cliente, forzarlo a importar certificados raíz en el almacenamiento del sistema. Un nombre de usuario y una contraseña son suficientes, y la conexión será tan segura como en OpenVPN cuando se usan certificados, porque la conexión usa el mismo certificado x.509 que para los sitios web con HTTPS.

Configuración en Windows 10


El asistente de configuración de VPN se llama desde el menú de conexión WiFi. Un usuario de cualquier calificación puede manejar la configuración de una ventana. La conexión creada se activa desde el menú con una lista de redes WiFi.


Interfaz para configurar una nueva conexión IKEv2 en Windows 10

Configuración de MacOS
macOS IKEv2 10.11 (El Capitan). .

image

. .

image

, . «Server Address» IP- , «Remote ID», DNS-, .

image

/etc/ipsec.secrets

image

Configuración de iOS
iOS , mobileconfig.

macOS:

-> VPN -> VPN

IKEv2 es seguro


En el paso anterior, descubrimos que un inicio de sesión y una contraseña son suficientes para configurar la conexión. Pero, ¿cómo puede el cliente verificar que la conexión no se está aprovechando, que los datos no se están reemplazando y que el servidor es realmente quien dice ser? Para esto, se utilizan certificados SSL ordinarios, que estamos acostumbrados a usar para sitios web y HTTPS.



El cliente instala un túnel SSL seguro con el servidor, y una contraseña de inicio de sesión ya se transmite dentro de él. Por defecto, en Windows y macOS, el algoritmo mschapv2 se usa para transmitir la contraseña. Por lo tanto, con la ayuda de un certificado SSL, el cliente verifica la autenticidad del servidor y, utilizando la contraseña de inicio de sesión, el servidor verifica la autenticidad del cliente.

Un servidor IKEv2 puede usar el mismo certificado con un servidor web, por ejemplo, del popular Let's Encrypt. Esto simplifica enormemente la gestión de certificados.

Se usa el mismo modelo en OpenVPN, y si lo desea, puede usar un certificado de Lets Encrypt; sin embargo, en cualquier caso, el administrador deberá transferir el archivo al usuario para configurar la VPN.

Configurar el servidor IKEv2


Puede implementar su servidor IKEv2 en un par de minutos usando scripts de instalación automatizados o usando contenedores listos para usar. No se recomienda usar docker, ya que su subsistema de red reduce el rendimiento de IPsec a tasas de VPS baratas. También puede configurar el servidor IKEv2 manualmente, hay artículos en Habré con ejemplos de configuraciones del servidor Strongswan .

Utilizaremos uno de los scripts de configuración automática más exitosos github.com/jawj/IKEv2-setup
Este script es bueno porque usa certificados de Lets Encrypt y genera automáticamente un certificado válido.

Paso 1: Selección del servidor


Para iniciar el servidor VPN, necesitamos VDS. La configuración más simple con un solo núcleo de procesador servirá. La secuencia de comandos de nuestro ejemplo se prueba mejor en Ubuntu 18.04, por lo que al crear el servidor, seleccione esta imagen del sistema operativo.



Estamos esperando que finalice la instalación del servidor y copiemos los detalles de la conexión. La contraseña de root se enviará al correo o se puede configurar manualmente a través de la interfaz web. A continuación, ingresamos todos los comandos



Paso 2: instalar Strongswan


Estamos conectados por el cliente SSH y ejecutamos el script de instalación:

#     IKEv2 
wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
chmod u+x setup.sh
./setup.sh
....
#      IP- 
#   sslip.io     
Hostname for VPN: 123-45-67-89.sslip.io
#   VPN
VPN username: coolguy
#  
VPN password (no quotes, please):
....
#     SSH-,    .

Paso 3: configuración del cliente


Los detalles de usuario de VPN ingresados ​​ahora deben usarse para la configuración en el cliente. Es importante usar exactamente el nombre de dominio que ingresó en Hostname para VPN .

Paso 4: Agregar nuevos usuarios


Para agregar un nuevo usuario a un servidor ya creado, edite el archivo /etc/ipsec.sectes.

# nano /etc/ipsec.secrets
123-45-67-89.sslip.io : RSA "privkey.pem"
coolguy : EAP "C00lPassword"
badguy : EAP "bAdP$$word"

Después de agregar el usuario, ejecute el comando ipsec secrets para que Strongswan vuelva a leer la configuración.

Conclusión


Revisamos la experiencia del usuario de IKEv2. La administración de dicho servidor no es más complicada y, a veces, incluso más fácil que OpenVPN. Si solo planea organizar el acceso remoto para sus empleados, asegúrese de mirar hacia IKEv2. No obligue a sus usuarios a instalar programas innecesarios si todo lo que necesita ya está en su computadora. Es más conveniente, más seguro y mucho más avanzado.


All Articles