WireGuard és la gran VPN del futur?

WireGuard és la gran VPN del futur?

Ha arribat el moment en què la VPN ja no és una eina exòtica dels administradors de sistemes barbuts. Els usuaris tenen diferents tasques, però el fet és que tothom necessita una VPN.

El problema de les solucions VPN actuals és que són difícils de configurar correctament, són costoses de mantenir i estan plenes de codi heretat de qualitat qüestionable.

Fa uns quants anys, l'especialista canadenc en seguretat de la informació Jason A. Donenfeld va decidir que n'havia tingut prou i va començar a treballar-hi WireGuard. WireGuard s'està preparant per a la seva inclusió al nucli de Linux i fins i tot ha rebut elogis Linus Torvalds i Senat dels EUA.

Avantatges reivindicats de WireGuard sobre altres solucions VPN:

  • Fàcil d'usar.
  • Utilitza criptografia moderna: marc de protocol Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etc.
  • Codi compacte i llegible, més fàcil d'investigar per detectar vulnerabilitats.
  • Gran actuació.
  • Clar i elaborat especificació.

S'ha trobat una bala de plata? És hora d'enterrar OpenVPN i IPSec? Vaig decidir fer front a això, i al mateix temps ho vaig fer script per instal·lar automàticament un servidor VPN personal.

Principis de treball

Els principis de funcionament es poden descriure així:

  • Es crea una interfície WireGuard i se li assignen una clau privada i una adreça IP. Es carreguen els paràmetres d'altres companys: les seves claus públiques, adreces IP, etc.
  • Tots els paquets IP que arriben a la interfície WireGuard estan encapsulats en UDP i lliurat amb seguretat altres companys.
  • Els clients especifiquen l'adreça IP pública del servidor a la configuració. El servidor reconeix automàticament les adreces externes dels clients quan es reben dades correctament autenticades d'ells.
  • El servidor pot canviar l'adreça IP pública sense interrompre el seu treball. Al mateix temps, enviarà una alerta als clients connectats i aquests actualitzaran la seva configuració sobre la marxa.
  • S'utilitza el concepte d'encaminament Enrutament de criptografia. WireGuard accepta i envia paquets basats en la clau pública del parell. Quan el servidor desxifra un paquet correctament autenticat, es comprova el seu camp src. Si coincideix amb la configuració allowed-ips peer autenticat, la interfície WireGuard rep el paquet. Quan s'envia un paquet de sortida, es produeix el procediment corresponent: s'agafa el camp dst del paquet i, en funció d'ell, es selecciona el peer corresponent, el paquet es signa amb la seva clau, es xifra amb la clau del peer i s'envia al punt final remot. .

Tota la lògica bàsica de WireGuard ocupa menys de 4 mil línies de codi, mentre que OpenVPN i IPSec tenen centenars de milers de línies. Per donar suport als algorismes criptogràfics moderns, es proposa incloure una nova API criptogràfica al nucli de Linux zinc. Actualment hi ha una discussió sobre si aquesta és una bona idea.

Productivitat

L'avantatge màxim de rendiment (en comparació amb OpenVPN i IPSec) es notarà als sistemes Linux, ja que WireGuard s'implementa com a mòdul del nucli allà. A més, s'admeten macOS, Android, iOS, FreeBSD i OpenBSD, però en ells WireGuard s'executa a l'espai d'usuari amb totes les conseqüències de rendiment que se'n deriven. S'espera que el suport de Windows s'afegeixi en un futur proper.

Resultats de referència amb El lloc oficial:

WireGuard és la gran VPN del futur?

La meva experiència d'ús

No sóc un expert en VPN. Una vegada vaig configurar OpenVPN manualment i va ser molt tediós, i ni tan sols vaig provar IPSec. Hi ha massa decisions per prendre, és molt fàcil disparar-se al peu. Per tant, sempre he utilitzat scripts ja fets per configurar el servidor.

Per tant, WireGuard, des del meu punt de vista, és generalment ideal per a l'usuari. Totes les decisions de baix nivell es prenen a l'especificació, de manera que el procés de preparació d'una infraestructura VPN típica només triga uns minuts. És gairebé impossible fer trampes a la configuració.

Procés d'instal·lació descrit amb detall al lloc web oficial, m'agradaria destacar per separat l'excel·lent Suport OpenWRT.

Les claus de xifratge les genera la utilitat wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

A continuació, heu de crear una configuració del servidor /etc/wireguard/wg0.conf amb el següent contingut:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

i aixecar el túnel amb un guió wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

En sistemes amb systemd, podeu utilitzar-ho en el seu lloc sudo systemctl start [email protected].

A la màquina client, creeu una configuració /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 

I puja el túnel de la mateixa manera:

sudo wg-quick up /etc/wireguard/wg0.conf

Només queda configurar NAT al servidor perquè els clients puguin accedir a Internet, i ja està!

Aquesta facilitat d'ús i compacitat de la base de codi es va aconseguir eliminant la funcionalitat de distribució de claus. No hi ha un sistema de certificat complex i tot aquest horror corporatiu; les claus de xifratge curtes es distribueixen com les claus SSH. Però això planteja un problema: WireGuard no serà tan fàcil d'implementar en algunes xarxes existents.

Entre els desavantatges, val la pena assenyalar que WireGuard no funcionarà mitjançant un servidor intermediari HTTP, ja que només el protocol UDP està disponible com a transport. Es planteja la pregunta: serà possible ofuscar el protocol? Per descomptat, aquesta no és la tasca directa d'una VPN, però per a OpenVPN, per exemple, hi ha maneres de disfressar-se d'HTTPS, cosa que ajuda els residents dels països totalitaris a utilitzar completament Internet.

Troballes

En resum, aquest és un projecte molt interessant i prometedor, ja el podeu utilitzar en servidors personals. Quin és el benefici? Alt rendiment en sistemes Linux, facilitat de configuració i suport, base de codi compacta i llegible. Tanmateix, és massa aviat per apressar-se a transferir una infraestructura complexa a WireGuard; val la pena esperar la seva inclusió al nucli de Linux.

Per estalviar el meu (i el vostre) temps, vaig desenvolupar Instal·lador automàtic de WireGuard. Amb la seva ajuda, podeu configurar una VPN personal per a vosaltres mateixos i els vostres amics sense ni tan sols entendre-hi res.

Font: www.habr.com

Afegeix comentari