WireGuard "chegará" ao núcleo de Linux - por que?

A finais de xullo, os desenvolvedores do túnel VPN WireGuard propuxeron conxunto de parches, que fará que o seu software de tunelización VPN forme parte do núcleo de Linux. Non obstante, aínda se descoñece a data exacta de implantación da "idea". Debaixo do corte falaremos desta ferramenta con máis detalle.

WireGuard "chegará" ao núcleo de Linux - por que?
/ foto Tambako O Jaguar CC

Brevemente sobre o proxecto

WireGuard é un túnel VPN de nova xeración creado por Jason A. Donenfeld, CEO de Edge Security. O proxecto desenvolveuse como simplificado e unha alternativa rápida a OpenVPN e IPsec. A primeira versión do produto contiña só 4 mil liñas de código. A modo de comparación, OpenVPN ten preto de 120 mil liñas e IPSec - 420 mil.

En segundo desenvolvedores, WireGuard é fácil de configurar e conséguese a seguridade do protocolo mediante algoritmos criptográficos probados. Ao cambiar de rede: Wi-Fi, LTE ou Ethernet deben volver conectarse ao servidor VPN cada vez. Os servidores WireGuard non finalizan a conexión, aínda que o usuario recibise un novo enderezo IP.

A pesar de que WireGuard foi deseñado orixinalmente para o núcleo Linux, os desenvolvedores coidado e sobre unha versión portátil da ferramenta para dispositivos Android. A aplicación aínda non está totalmente desenvolvida, pero podes probala agora. Para iso necesitas convértete nun dos probadores.

En xeral, WireGuard é bastante popular e ata o foi implementado varios provedores de VPN, como Mullvad e AzireVPN. Publicado en liña un gran número de guías de configuración esta decisión. Por exemplo, hai guías, que son creados polos usuarios, e hai guías, elaborado polos autores do proxecto.

Detalles técnicos

В documentación oficial (páx. 18) nótase que o rendemento de WireGuard é catro veces superior ao de OpenVPN: 1011 Mbit/s fronte a 258 Mbit/s, respectivamente. WireGuard tamén está por diante da solución estándar para Linux IPsec: ten 881 Mbit/s. Tamén o supera en facilidade de configuración.

Despois de intercambiar as claves (a conexión VPN iníciase como SSH) e establécese a conexión, WireGuard xestiona todas as outras tarefas por si só: non hai que preocuparse polo enrutamento, o control do estado, etc. Só se realizarán esforzos de configuración adicionais. necesario se quere utilizar o cifrado simétrico.

WireGuard "chegará" ao núcleo de Linux - por que?
/ foto Anders Hojbjerg CC

Para instalar, necesitará unha distribución cun núcleo de Linux anterior á versión 4.1. Pódese atopar nos repositorios das principais distribucións de Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Como sinalan os editores de xakep.ru, a autoensamblaxe dos textos fonte tamén é doado. Abonda con abrir a interface e xerar claves públicas e privadas:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard non usa interface para traballar cun provedor criptográfico CriptoAPI. No seu lugar, úsase un cifrado de fluxo ChaCha20, criptográfica inserto de imitación Poly1305 e funcións hash criptográficas propietarias.

A clave secreta xérase usando Protocolo Diffie-Hellman baseado na curva elíptica Curva25519. Ao hash, usan funcións hash BLAKE 2 и SipHash. Debido ao formato de marca de tempo TAI64N o protocolo descarta os paquetes cun valor de marca de tempo menor, polo tanto prevención de DoS- и repetir ataques.

Neste caso, WireGuard usa a función ioctl para controlar E/S (utilizada anteriormente netlink), o que fai que o código sexa máis limpo e sinxelo. Podes verificalo mirando código de configuración.

Plans de desenvolvedores

Polo momento, WireGuard é un módulo do núcleo fóra da árbore. Pero o autor do proxecto é Jason Donenfeld di, que chegou o momento da implementación total no núcleo de Linux. Porque é máis sinxelo e fiable que outras solucións. Jason neste sentido soportes incluso o propio Linus Torvalds chamou ao código WireGuard unha "obra de arte".

Pero ninguén fala das datas exactas para a introdución de WireGuard no núcleo. E dificilmente isto ocorrerá co lanzamento do kernel Linux de agosto 4.18. Non obstante, existe a posibilidade de que isto suceda nun futuro moi próximo: na versión 4.19 ou 5.0.

Cando se engade WireGuard ao núcleo, os desenvolvedores querer finaliza a aplicación para dispositivos Android e comeza a escribir unha aplicación para iOS. Tamén hai plans para completar implementacións en Go e Rust e portalas a macOS, Windows e BSD. Tamén está previsto implementar WireGuard para sistemas máis "exóticos": DPDK, FPGA, así como moitas outras cousas interesantes. Todos eles están enumerados en lista de tarefas autores do proxecto.

PD Algúns artigos máis do noso blog corporativo:

A principal dirección da nosa actividade é a prestación de servizos na nube:

Infraestrutura virtual (IaaS) | Aloxamento PCI DSS | Cloud FZ-152 | Aloxamento SAP | Almacenamento virtual | Cifrar datos na nube | Almacenamento na nube

Fonte: www.habr.com

Engadir un comentario