Ang WireGuard ba ang maayo nga VPN sa umaabot?

Ang WireGuard ba ang maayo nga VPN sa umaabot?

Miabot na ang panahon nga ang VPN dili na usa ka exotic nga himan sa mga balbas nga sysadmins. Ang mga tiggamit adunay lainlaing mga buluhaton, apan ang kamatuoran mao nga ang VPN nahimong kinahanglanon alang sa tanan.

Ang problema sa kasamtangan nga mga solusyon sa VPN mao nga sila lisud sa husto nga pag-configure, mahal sa pagpadayon, ug puno sa kadudahan nga kalidad nga legacy code.

Pipila ka tuig ang milabay, ang Canadian information security specialist Jason A. Donenfeld nakahukom nga igo na ug nagsugod sa pagtrabaho WireGuard. Karon ang WireGuard nangandam na nga maapil sa Linux kernel ug nakadawat pa gani og mga pagdayeg gikan sa Linus Torvalds ug sa Senado sa US.

Giangkon nga mga bentaha sa WireGuard sa ubang mga solusyon sa VPN:

  • Dali gamiton.
  • Gigamit ang modernong cryptography: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, ug uban pa.
  • Compact nga mabasa nga code, mas sayon ​​nga imbestigahon alang sa mga kahuyangan.
  • Taas nga kahimoan.
  • Tin-aw ug gihimo espesipikasyon.

Nakit-an na ba ang pilak nga bala? Panahon na ba aron ilubong ang OpenVPN ug IPSec? Nakahukom ko nga atubangon kini, apan sa samang higayon akong gibuhat script alang sa awtomatikong pag-instalar sa personal nga VPN server.

Mga prinsipyo sa pagtrabaho

Ang mga prinsipyo sa operasyon mahimong gihulagway sa mosunod:

  • Ang usa ka WireGuard interface gihimo, kini gi-assign sa usa ka pribado nga yawe ug usa ka IP address. Ang mga setting sa ubang mga kaedad gikarga: ang ilang mga yawe sa publiko, mga adres sa IP, ug uban pa.
  • Ang tanan nga mga IP packet nga moabut sa WireGuard interface gi-encapsulated sa UDP ug gihatud nga luwas ubang mga pirata.
  • Gibutang sa mga kliyente ang publiko nga IP address sa server sa mga setting. Awtomatiko nga nahibal-an sa server ang mga eksternal nga adres sa mga kliyente kung ang husto nga gipamatud-an nga datos gikan kanila.
  • Mahimong usbon sa server ang pampublikong IP address nga dili makabalda sa trabaho. Sa parehas nga oras, magpadala kini usa ka pahibalo sa mga konektado nga kliyente ug i-update nila ang ilang configuration sa langaw.
  • Ang konsepto sa ruta gigamit Cryptokey Routing. Ang WireGuard nakadawat ug nagpadala sa mga pakete base sa publikong yawe sa kaubanan. Kung ang server nag-decrypt sa usa ka husto nga gipamatud-an nga pakete, ang src field niini gisusi. Kung kini mohaum sa configuration allowed-ips authenticated peer, unya ang packet madawat sa WireGuard interface. Sa pagpadala sa usa ka outgoing packet, ang katugbang nga pamaagi mahitabo: ang dst field sa packet gikuha ug, base niini, ang katugbang nga peer gipili, ang packet gipirmahan gamit ang kaugalingong yawe, gi-encrypt sa peer's key ug gipadala ngadto sa remote katapusan nga punto.

Ang tibuok core logic sa WireGuard nagkinahanglan og ubos pa sa 4 ka libo nga linya sa code, samtang ang OpenVPN ug IPSec adunay gatusan ka libo nga linya. Aron pagsuporta sa modernong cryptographic algorithms, gisugyot nga ilakip ang usa ka bag-ong cryptographic API sa Linux kernel. zinc. Sa pagkakaron, adunay panaghisgot bahin sa kung unsa ka maayo kini nga ideya.

Pag-uswag

Ang labing taas nga bentaha sa pasundayag (itandi sa OpenVPN ug IPSec) mamatikdan sa mga sistema sa Linux, tungod kay ang WireGuard gipatuman ingon usa ka module sa kernel didto. Dugang pa, gisuportahan ang macOS, Android, iOS, FreeBSD ug OpenBSD, apan gipadagan nila ang WireGuard sa userspace uban ang tanan nga nagsunod nga mga implikasyon sa pasundayag. Ang suporta sa Windows gilauman nga idugang sa umaabot nga umaabot.

Mga resulta sa benchmark nga adunay opisyal nga site:

Ang WireGuard ba ang maayo nga VPN sa umaabot?

Akong kasinatian sa paggamit

Dili ako eksperto sa pag-setup sa VPN. Sa higayon nga akong gi-set up ang OpenVPN nga adunay mga gunitanan ug kini masulub-on kaayo, ug ang IPSec wala gani mosulay. Daghan kaayo nga mga desisyon nga himuon, dali ra kaayo ang pagpusil sa imong kaugalingon sa tiil. Busa, kanunay nakong gigamit ang andam nga mga script aron ma-configure ang server.

Mao nga, ang WireGuard, gikan sa akong panan-aw, kasagaran nga sulundon alang sa tiggamit. Ang tanan nga ubos nga lebel nga mga desisyon gihimo sa espesipikasyon, mao nga ang proseso sa pag-andam sa usa ka tipikal nga imprastraktura sa VPN nagkinahanglan lamang og pipila ka minuto. Ang Nafakapit sa configuration halos imposible.

Proseso sa pag-instalar gihulagway sa detalye sa opisyal nga website, gusto ko nga bulag nga timan-an ang maayo kaayo Suporta sa OpenWRT.

Ang mga yawe sa pag-encrypt gihimo sa utility wg:

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

Sunod, kinahanglan nimo nga maghimo usa ka config sa server /etc/wireguard/wg0.conf uban sa mosunod nga sulod:

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

ug ipataas ang tunel gamit ang script wg-quick:

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

Sa mga sistema nga adunay systemd, mahimo nimong gamiton kini sudo systemctl start [email protected].

Sa makina sa kliyente, paghimo og config /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 

Ug sa samang paagi ipataas ang tunel:

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

Nagpabilin nga i-configure ang NAT sa server aron ang mga kliyente maka-access sa Internet, ug nahuman ka!

Ang ingon nga kasayon ​​​​sa paggamit ug pagkakomplikado sa base sa code nakab-ot pinaagi sa pagwagtang sa yawe nga pag-apod-apod. Walay komplikado nga sistema sa mga sertipiko ug kining tanan nga kalisang sa korporasyon, mubu nga mga yawe sa pag-encrypt gipang-apod-apod sama sa mga yawe sa SSH. Apan kini nagpatunghag problema: Ang WireGuard dili sayon ​​nga ipatuman sa pipila ka kasamtangan nga mga network.

Lakip sa mga kakulangan, angay nga matikdan nga ang WireGuard dili molihok pinaagi sa usa ka proxy nga HTTP, tungod kay adunay usa lamang ka protocol sa UDP ingon usa ka transportasyon. Ang pangutana mitungha, posible ba nga ma-obfuscate ang protocol? Siyempre, kini dili usa ka direkta nga buluhaton sa VPN, apan alang sa OpenVPN, pananglitan, adunay mga paagi sa pagtakuban sa ilang mga kaugalingon ingon nga HTTPS, nga makatabang sa mga residente sa totalitarian nga mga nasud sa hingpit nga paggamit sa Internet.

kaplag

Sa pag-summing, kini usa ka makapaikag ug promising nga proyekto, mahimo na nimo kini gamiton sa mga personal nga server. Unsa ang ganansya? Taas nga pasundayag sa mga sistema sa Linux, kasayon ​​sa pag-setup ug pagmentinar, compact ug mabasa nga code base. Bisan pa, sayo pa kaayo nga magdali aron ibalhin ang komplikado nga imprastraktura sa WireGuard, angayan nga maghulat alang sa paglakip sa Linux kernel.

Aron makadaginot sa akong (ug sa imong) oras, nag-develop ko wireguard auto installer. Uban niini, mahimo nimong i-set up ang usa ka personal nga VPN para sa imong kaugalingon ug sa imong mga higala nga wala gani makasabut sa bisan unsa mahitungod niini.

Source: www.habr.com

Idugang sa usa ka comment