¿Qué es mejor elegir: Wireguard u OpenVPN? La VPN favorita de Linus Torvalds





Las tecnologías VPN rara vez son objeto de mucho escrutinio: hay y hay. Jason A. Donenfeld, creador de Wireguard, tuvo suerte después de la dura y elogiosa evaluación de Linus Torvalds sobre la calidad del código.



¿Puedo expresar una vez más mi amor por él y esperar que se fusione pronto? Tal vez el código no sea perfecto, pero lo he hojeado y comparado con los horrores que son OpenVPN e IPSec, es una obra de arte.


Poco después, Wireguard terminó en la fase inicial del kernel estable de Linux. ¿Qué hace que Wireguard sea tan bueno y diferente de otras VPN?



Cifrado: diferencias entre Wireguard y OpenVPN



Wireguard adopta un enfoque minimalista y sensato del cifrado, eliminando deliberadamente la flexibilidad y las opciones de protocolo que son demasiado caras. Si no hay elección de protocolos, no hay un proceso de negociación en el que tradicionalmente se encuentren agujeros de seguridad. Además, las vulnerabilidades de SSL / TLS, que vienen en un flujo uniforme, tampoco favorecen la riqueza de opciones.



Wireguard





A diferencia de OpenVPN, Wireguard no usa certificados X.509 y no tiene problemas asociados . En cambio, Wireguard utiliza cifrado asimétrico de clave pública y privada.



Protocolos de cifrado OpenVPN



OpenVPN admite muchos algoritmos criptográficos que utilizan la biblioteca OpenSSL . Más específicamente, los siguientes algoritmos se utilizan para el cifrado y la autenticación. Estas funciones están disponibles para sumas hash. OpenVPN junto con OpenSSL admite los estándares PKI RSA, DSA y ECDSA, pero no todos son adecuados para todos los escenarios de usuario. Por ejemplo, las claves ECDSA aún no han recibido un apoyo generalizado de las CA raíz.



aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb

aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb

aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb

aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1

aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb

aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8

aria-256-ctr aria-256-ecb aria-256-ofb base64

bf bf-cbc bf-cfb bf-ecb

bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc

camellia-192-ecb camellia-256-cbc camellia-256-ecb cast

cast-cbc cast5-cbc cast5-cfb cast5-ecb

cast5-ofb des des-cbc des-cfb

des-ecb des-ede des-ede-cbc des-ede-cfb

des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb

des-ede3-ofb des-ofb des3 desx

idea idea-cbc idea-cfb idea-ecb

idea-ofb rc2 rc2-40-cbc rc2-64-cbc

rc2-cbc rc2-cfb rc2-ecb rc2-ofb

rc4 rc4-40 rc5 rc5-cbc

rc5-cfb rc5-ecb rc5-ofb seed

seed-cbc seed-cfb seed-ecb seed-ofb

sm4-cbc sm4-cfb sm4-ctr sm4-ecb












(1:701)$ openssl dgst --list



Supported digests:



-blake2b512 -blake2s256 -md4

-md5 -md5-sha1 -mdc2

-ripemd -ripemd160 -rmd160

-sha1 -sha224 -sha256

-sha3-224 -sha3-256 -sha3-384

-sha3-512 -sha384 -sha512

-sha512-224 -sha512-256 -shake128

-shake256 -sm3 -ssl3-md5

-ssl3-sha1 -whirlpool











  • UDP / TCP : como protocolo de capa de transporte;
  • El secreto hacia adelante perfecto es el principio para evitar el compromiso de las claves de sesión.


Conclusiones sobre cifrado y estándares de seguridad



Wireguard es arquitectónicamente más seguro debido al hecho de que la superficie de ataque es mucho más pequeña en comparación con OpenVPN. Sin embargo, OpenVPN se considera muy seguro y confiable, ya que se ha sometido a auditorías de código independientes muchas veces. Debido a esto, OpenVPN se beneficia de un enfoque conservador para elegir una solución VPN.



Al mismo tiempo, la falta de flexibilidad y la elección del método de cifrado crea obstáculos importantes para el uso de Wireguard en el segmento corporativo de usuarios de VPN. Imagine una situación típica para nuestros empleados en la que los empleados se conectan a una red de trabajo a través de VPN desde varios dispositivos. En tal situación, la falta de flexibilidad y elección creará muchos más problemas de los que puede eliminarlos.



Comparación de rendimiento



Dado que Wireguard se implementa en el espacio del kernel y OpenVPN está en el espacio del usuario, el primero debería tener una ventaja de velocidad. Esto se debe al hecho de que los paquetes se copian constantemente de un espacio a otro y, además, se requiere un servicio OpenVPN en segundo plano constante.



Todo esto debe comprobarse en la práctica, afortunadamente existen muchas medidas de velocidad para túneles VPN. Para empezar, puede echar un vistazo a los resultados de VPN derby del propio autor de Wireguard. A continuación, se muestran algunos detalles y resultados de medición.



  • Tecnologías : IPSEC, OpenVPN y Wireguard;
  • Procesadores IntelCore i7-3820QM e Intel Core i7-5200U;
  • Tarjetas de red : Intel 82579LM e Intel I218LM gigabit Ethernet;






Comparación de rendimiento de VPN de Jason A. Donenfeld



Tanto en las pruebas de rendimiento como de respuesta de ping, Wireguard superó significativamente a OpenVPN, así como a las dos variaciones de IPSec. Además, durante la prueba de rendimiento con OpenVPN e IPSec, la utilización de la CPU alcanzó el 100% . Al mismo tiempo, el uso de Wireguard no cargó tanto el procesador central, por lo que fue posible utilizar completamente los recursos de la tarjeta de red Gigabit Ethernet.



Es natural suponer que el autor de Wireguard puede estar sesgado al crear scripts e interpretar los resultados de la medición del rendimiento de las tecnologías VPN. Por lo tanto, tiene sentido mirar otras pruebas de velocidad de diferentes VPN. Afortunadamente, todo lo que se necesita para esto es un servidor VPS, VPN y un paquete iperf3.



Pero otras pruebas similares muestran la superioridad de Wireguard en las pruebas de rendimiento.





Comparación del rendimiento de Wireguard y OpenVPN



Un hecho inesperado es que openvpn-tcp es más rápido que openvpn-udp, pero tras una inspección más detallada, todo encaja. La secuencia TCP tiene menos pruebas completadas que UDP. En cualquier caso, Wireguard también muestra aquí los mejores resultados de rendimiento.



En la misma serie de pruebas, es interesante comparar la velocidad de una conexión VPN en función del número de sockets abiertos. Con un aumento en su número, el rendimiento de Wireguard cae abruptamente, aunque sigue siendo más alto que openvpn-tcp y openvpn-udp.





Comparación del rendimiento de Wireguard y OpenVPN dependiendo del número de sockets abiertos. TestID 0-600 corresponde a openvpn-udp, 700-1200 a openvpn-tcp y 1300-1800 a Wireguard



Conclusiones sobre la velocidad de la conexión VPN



Las pruebas de velocidad sintéticas de varios autores que utilizan el paquete iperf3 sugieren que Wireguard es más rápido que OpenVPN.



Privacidad de datos



Los protocolos VPN ponen mucho más énfasis en la seguridad de la conexión que en la privacidad. Sin embargo, la posibilidad de mantener el anonimato también es importante: ¿quién quiere escribir notas explicativas sobre el hecho de descargar un libro de texto de Oracle o un emulador de topología de Cisco? Nada delata una violación tan bien como la dirección IP de un usuario.



La configuración de Wireguard contiene explícitamente las direcciones IP de los usuarios y esta circunstancia no les permitirá pasar desapercibidos después de que el servidor esté interesado en las agencias de aplicación de la ley. Por supuesto, no podrá leer el tráfico de la red, pero puede identificar a los participantes en la conexión segura.



Configurar una conexión segura Wireguard en sí es bastante sencillo. Instalación primero.



(1:530)$ sudo emerge -av wireguard-modules wireguard-tools
These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary  N     ] net-dns/openresolv-3.11.0  USE="(-selinux)" 
[binary  N     ] virtual/resolvconf-1 
[ebuild  N     ] net-vpn/wireguard-modules-1.0.20201221  USE="module -debug -module-src" 
[binary  N     ] net-vpn/wireguard-tools-1.0.20200827  USE="wg-quick" 

Would you like to merge these packages? [Yes/No] 
      
      





Creamos claves públicas y privadas.



(1:531)$ wg genkey | tee privatekey | wg pubkey > publickey
      
      





A continuación, debe configurar el archivo /etc/wireguard/wg0.conf.



/etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24, fdc9:1f28:04d7:9ee9::1/64
SaveConfig = true
ListenPort = 51820
PrivateKey = 2JtKAUFzecmgIVzbscQh3iUZrZanxIzvbejcIkvC5Hk= #PEER_A_PRIVATE_KEY

[Peer]
PublicKey = rgqd1cHKgRWX3IkYYSlrKA/SW3qZUhSJMqwTq4+3eFs= #PEER_B_PUBLIC_KEY
PresharedKey = PEER_A-PEER_B-PRESHARED_KEY
AllowedIPs = 10.0.0.2/32, fdc9:1f28:04d7:9ee9::2/128
Endpoint = pb.example.com:51280
      
      





El segundo participante de la conexión debe configurar el mismo archivo en sí mismo, especificando su clave privada y la clave pública del participante A. Para establecer la conexión, cada parte la realiza wg-quick up interface_name.







. visible en los archivos de registro del sistema y las tablas SNMP hasta que se reinicie el servidor.

OpenVPN protege mejor la confidencialidad de las conexiones de los clientes, ya que no requiere que se ingresen las direcciones IP o los nombres de red de las computadoras cliente antes de establecer una conexión segura.



Conclusiones sobre la privacidad de los datos



En esta nominación, OpenVPN tiene una ventaja definitiva debido al hecho de que solo Wireguard asume el almacenamiento de las direcciones IP de los usuarios en un servidor VPN durante mucho tiempo.



Conclusión: ¿Qué VPN elegir?



Existe una gran cantidad de casos de uso de VPN personalizados, y es poco probable que la misma recomendación sea buena para todos. En consecuencia, para diferentes escenarios, hay dos grupos con la solución VPN más adecuada.



  • Si es un usuario habitual;
  • Necesita una VPN para evitar cualquier restricción ridícula de RKN;
  • la velocidad le importa, por ejemplo, para compartir archivos o para el funcionamiento de su aplicación;


Utilice Wireguard.



  • Usuarios comerciales de empresas medianas y grandes que utilizan VPN para el acceso remoto a la red interna;
  • usuarios comerciales que brindan acceso remoto a través de VPN a recursos de TI que contienen datos confidenciales o secretos comerciales;
  • cualquiera que necesite una solución VPN confiable y probada en el tiempo;




Mejor use OpenVPN.



Bueno, ya sabes qué VPS usar para VPN.






All Articles