Apa WireGuard VPN sing apik ing mangsa ngarep?

Apa WireGuard VPN sing apik ing mangsa ngarep?

Wektu wis teka nalika VPN ora dadi alat eksotis administrator sistem janggut. Pangguna duwe tugas sing beda-beda, nanging kasunyatane saben wong butuh VPN.

Masalah karo solusi VPN saiki yaiku angel dikonfigurasi kanthi bener, larang kanggo njaga, lan kebak kode warisan sing bisa dipertanyakan.

Sawetara taun kepungkur, spesialis keamanan informasi Kanada Jason A. Donenfeld mutusake yen dheweke wis cukup lan wiwit nggarap. WireGuard. WireGuard saiki lagi disiapake kanggo dilebokake ing kernel Linux lan malah entuk pujian saka Linus Torvalds lan ing Senat AS.

Kauntungan sing diklaim WireGuard tinimbang solusi VPN liyane:

  • Gampang digunakake.
  • Nggunakake kriptografi modern: Kerangka protokol gangguan, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, lsp.
  • Kode sing kompak, bisa diwaca, luwih gampang diselidiki babagan kerentanan.
  • Kualitas apik.
  • Cetha lan njlimet spesifikasi.

Apa peluru perak ditemokake? Apa wektu kanggo ngubur OpenVPN lan IPSec? Aku mutusake kanggo ngatasi iki, lan ing wektu sing padha aku nindakake script kanggo nginstal server VPN pribadi kanthi otomatis.

Prinsip kerja

Prinsip operasi bisa diterangake kaya iki:

  • Antarmuka WireGuard digawe lan kunci pribadi lan alamat IP ditugasake. Setelan kanca liyane dimuat: kunci umum, alamat IP, lsp.
  • Kabeh paket IP teka ing antarmuka WireGuard encapsulated ing UDP lan dikirim kanthi aman kanca liyane.
  • Klien nemtokake alamat IP umum server ing setelan kasebut. Server kanthi otomatis ngenali alamat eksternal klien nalika data sing wis dikonfirmasi kanthi bener ditampa saka dheweke.
  • Server bisa ngganti alamat IP umum tanpa ngganggu karyane. Ing wektu sing padha, bakal ngirim tandha menyang klien sing disambungake lan bakal nganyari konfigurasi kanthi cepet.
  • Konsep routing digunakake Cryptokey Routing. WireGuard nampa lan ngirim paket adhedhasar kunci umum peer. Nalika server dekripsi paket sing wis dikonfirmasi kanthi bener, lapangan src dicenthang. Yen cocog karo konfigurasi allowed-ips peer asli, paket ditampa dening antarmuka WireGuard. Nalika ngirim paket metu, ana prosedur sing cocog: kolom dst paket dijupuk lan, adhedhasar iku, peer sing cocog dipilih, paket kasebut ditandatangani nganggo kunci, dienkripsi nganggo kunci peer lan dikirim menyang titik pungkasan sing adoh. .

Kabeh logika inti WireGuard njupuk kurang saka 4 ewu baris kode, nalika OpenVPN lan IPSec duwe atusan ewu baris. Kanggo ndhukung algoritma kriptografi modern, diusulake kanggo nyakup API kriptografi anyar ing kernel Linux seng. Saiki ana diskusi babagan apa iki minangka ide sing apik.

Produktivitas

Kauntungan kinerja maksimal (dibandhingake karo OpenVPN lan IPSec) bakal katon ing sistem Linux, amarga WireGuard diimplementasikake minangka modul kernel ing kana. Kajaba iku, macOS, Android, iOS, FreeBSD lan OpenBSD didhukung, nanging ing kana WireGuard mlaku ing ruang panganggo kanthi kabeh konsekuensi kinerja. Dhukungan Windows samesthine bakal ditambahake ing mangsa ngarep.

Hasil pathokan karo situs resmi:

Apa WireGuard VPN sing apik ing mangsa ngarep?

Pengalaman panggunaanku

Aku dudu pakar VPN. Aku tau nyiyapake OpenVPN kanthi manual lan banget mboseni, lan aku ora nyoba IPSec. Ana akeh banget pancasan kanggo nggawe, iku gampang banget kanggo njupuk dhewe ing sikil. Mulane, aku tansah nggunakake skrip siap kanggo ngatur server.

Dadi, WireGuard, saka sudut pandangku, umume cocog kanggo pangguna. Kabeh keputusan tingkat rendah digawe ing spesifikasi, mula proses nyiapake infrastruktur VPN sing khas mung butuh sawetara menit. Iku meh mokal kanggo ngapusi ing konfigurasi.

Proses instalasi diterangake kanthi rinci ing website resmi, Aku kaya kanggo kapisah Wigati banget Dhukungan OpenWRT.

Tombol enkripsi digawe dening sarana wg:

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

Sabanjure, sampeyan kudu nggawe konfigurasi server /etc/wireguard/wg0.conf kanthi isi ing ngisor iki:

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

lan mundhakaken trowongan karo script wg-quick:

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

Ing sistem karo systemd sampeyan bisa nggunakake iki tinimbang sudo systemctl start [email protected].

Ing mesin klien, nggawe konfigurasi /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 

Lan mundhakaken trowongan kanthi cara sing padha:

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

Kabeh sing isih ana yaiku ngatur NAT ing server supaya klien bisa ngakses Internet, lan sampeyan wis rampung!

Gampang panggunaan lan kekompakan basis kode digayuh kanthi ngilangi fungsi distribusi utama. Ora ana sistem sertifikat sing rumit lan kabeh horor perusahaan iki; kunci enkripsi cendhak disebarake kaya tombol SSH. Nanging iki nyebabake masalah: WireGuard ora bakal gampang dileksanakake ing sawetara jaringan sing wis ana.

Antarane cacat, WireGuard ora bakal bisa digunakake liwat proxy HTTP, amarga mung protokol UDP sing kasedhiya minangka transportasi. Pitakonan muncul: apa bisa ngganggu protokol kasebut? Mesthi, iki dudu tugas langsung VPN, nanging kanggo OpenVPN, umpamane, ana cara kanggo nyamar dadi HTTPS, sing mbantu warga negara totalitarian nggunakake Internet kanthi lengkap.

temonan

Kanggo ngringkes, iki minangka proyek sing menarik lan janjeni, sampeyan wis bisa nggunakake ing server pribadi. Apa bathi? Kinerja dhuwur ing sistem Linux, gampang persiyapan lan dhukungan, basis kode sing kompak lan bisa diwaca. Nanging, awal banget kanggo cepet-cepet nransfer infrastruktur kompleks menyang WireGuard; kudu ngenteni dilebokake ing kernel Linux.

Kanggo ngirit wektu (lan sampeyan), aku ngembangake Pemasang otomatis WireGuard. Kanthi bantuan, sampeyan bisa nyiyapake VPN pribadi kanggo sampeyan lan kanca-kanca tanpa ngerti apa-apa.

Source: www.habr.com

Add a comment