WireGuard hè a grande VPN di u futuru?

WireGuard hè a grande VPN di u futuru?

U tempu hè ghjuntu quandu VPN ùn hè più un strumentu esoticu di amministratori di sistema barbuti. L'utilizatori anu diverse attività, ma u fattu hè chì tutti anu bisognu di una VPN.

U prublema cù e soluzioni VPN attuali hè chì sò difficiuli di cunfigurà currettamente, caru di mantene, è sò pieni di codice legatu di qualità dubbiosa.

Parechji anni fà, u specialista canadianu di sicurezza di l'infurmazioni Jason A. Donenfeld hà decisu ch'ellu avia avutu abbastanza è hà cuminciatu à travaglià. WireGuard. WireGuard hè avà preparatu per l'inclusione in u kernel Linux è hà ancu ricevutu elogi da Linus Torvalds è in Senatu di i Stati Uniti.

Vantaghji rivendicati di WireGuard nantu à altre soluzioni VPN:

  • Facile à aduprà.
  • Utilizà a criptografia moderna: framework di protokollu Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etc.
  • Codice compactu, leggibile, più faciule da investigà per e vulnerabilità.
  • Alta prestazione.
  • Chjara è elaboratu specificazione.

Hè statu trovu una bala d'argentu ? Hè ora di intarrà OpenVPN è IPSec? Aghju decisu di trattà cun questu, è à u stessu tempu aghju fattu script per installà automaticamente un servitore VPN persunale.

Principi di travagliu

I principii di u funziunamentu pò esse discrittu cum'è questu:

  • Una interfaccia WireGuard hè creata è una chjave privata è l'indirizzu IP sò assignati. I paràmetri di l'altri pari sò caricati: e so chjave pubbliche, indirizzi IP, etc.
  • Tutti i pacchetti IP chì arrivanu à l'interfaccia WireGuard sò incapsulati in UDP è consegnatu in modu sicuru altri pari.
  • I clienti specificanu l'indirizzu IP publicu di u servitore in i paràmetri. U servitore ricunnosce automaticamente l'indirizzi esterni di i clienti quandu i dati autentificati currettamente sò ricevuti da elli.
  • U servitore pò cambià l'indirizzu IP publicu senza interrompe u so travagliu. À u listessu tempu, mandarà una alerta à i clienti cunnessi è aghjurnà a so cunfigurazione nantu à a mosca.
  • U cuncettu di routing hè utilizatu Routing Cryptokey. WireGuard accetta è manda pacchetti basati nantu à a chjave publica di u peer. Quandu u servitore decripta un pacchettu autentificatu currettamente, u so campu src hè verificatu. Se currisponde à a cunfigurazione allowed-ips peer autenticatu, u pacchettu hè ricevutu da l'interfaccia WireGuard. Quandu invià un pacchettu in uscita, a prucedura currispundente si faci: u campu dst di u pacchettu hè pigliatu è, basatu annantu à questu, u peer currispundente hè sceltu, u pacchettu hè firmatu cù a so chjave, criptatu cù a chjave di u peer è mandatu à l'endpoint remota. .

Tutta a logica core di WireGuard occupa menu di 4 mila linee di codice, mentri OpenVPN è IPSec anu centinaie di millaie di linee. Per sustene l'algoritmi criptografici muderni, hè prupostu di include una nova API criptografica in u kernel Linux. Zinc. Attualmente ci hè una discussione nantu à se questa hè una bona idea.

Produttività

U vantaghju massimu di rendiment (in paragunà à OpenVPN è IPSec) serà notevule in i sistemi Linux, postu chì WireGuard hè implementatu cum'è un modulu di kernel quì. Inoltre, macOS, Android, iOS, FreeBSD è OpenBSD sò supportati, ma in elli WireGuard corre in u spaziu di l'utilizatori cù tutte e cunsequenze di rendiment chì ne seguitanu. U supportu di Windows hè previstu per esse aghjuntu in un futuru vicinu.

Benchmark risultati cun situ ufficiali:

WireGuard hè a grande VPN di u futuru?

A mo sperienza di usu

Ùn sò micca un espertu di VPN. Una volta aghju stabilitu OpenVPN manualmente è era assai tediosa, è ùn aghju mancu pruvatu IPSec. Ci sò troppu decisioni per fà, hè assai faciule di sparà in u pede. Dunque, aghju sempre usatu scripts pronti per cunfigurà u servitore.

Allora, WireGuard, da u mo puntu di vista, hè generalmente ideale per l'utilizatori. Tutte e decisioni di livellu bassu sò fatti in a specificazione, cusì u prucessu di preparazione di una infrastruttura VPN tipica dura solu uni pochi di minuti. Hè quasi impussibile di ingannà in a cunfigurazione.

Prucessu di installazione descrittu in detail nant'à u situ ufficiali, mi piacerebbe nutà separatamente l'eccellente Supportu OpenWRT.

I chjavi di criptografia sò generati da l'utilità wg:

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

Dopu, avete bisognu di creà una configurazione di u servitore /etc/wireguard/wg0.conf cù u seguenti cuntenutu:

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

è elevà u tunnel cun un script wg-quick:

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

Nantu à i sistemi cù systemd pudete aduprà questu invece sudo systemctl start [email protected].

In a macchina cliente, crea una cunfigurazione /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 

È alzate u tunnel in u listessu modu:

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

Tuttu ciò chì resta hè di cunfigurà NAT in u servitore per chì i clienti ponu accede à Internet, è avete finitu!

Questa facilità d'usu è a compattezza di a basa di codice hè stata ottenuta eliminendu a funziunalità di distribuzione chjave. Ùn ci hè micca un sistema di certificatu cumplessu è tuttu questu horrore corporativu; e chjavi di criptografia brevi sò distribuite cum'è e chjave SSH. Ma questu pone un prublema: WireGuard ùn serà micca cusì faciule da implementà in alcune rete esistenti.

Trà i svantaghji, vale a pena nutà chì WireGuard ùn hà micca travagliatu via un proxy HTTP, postu chì solu u protocolu UDP hè dispunibule cum'è trasportu. Ci hè a quistione: serà pussibule di offuscà u protocolu ? Di sicuru, questu ùn hè micca u compitu direttu di una VPN, ma per OpenVPN, per esempiu, ci sò manere di disguise si cum'è HTTPS, chì aiuta à i residenti di i paesi totalitarii à aduprà Internet.

scuperti

Per riassume, questu hè un prughjettu assai interessante è promettente, pudete digià aduprà nantu à i servitori persunali. Chì ghjè u prufittu ? Alte prestazioni in sistemi Linux, facilità di installazione è supportu, basa di codice compatta è leggibile. Tuttavia, hè troppu prestu per affruntà à trasfiriri una infrastruttura cumplessa à WireGuard; vale a pena aspittà per a so inclusi in u kernel Linux.

Per salvà u mo (è u vostru) tempu, aghju sviluppatu Installatore automaticu WireGuard. Cù u so aiutu, pudete stabilisce una VPN persunale per sè stessu è i vostri amichi senza mancu capisce nunda.

Source: www.habr.com

Add a comment