WireGuard Linux yadrosiga "keladi" - nega?

Iyul oyi oxirida WireGuard VPN tunnelini ishlab chiquvchilar taklif qilishdi yamoq to'plami, bu ularning VPN tunnel dasturini Linux yadrosining bir qismiga aylantiradi. Biroq, "g'oya" ni amalga oshirishning aniq sanasi noma'lumligicha qolmoqda. Kesish ostida biz ushbu vosita haqida batafsilroq gaplashamiz.

WireGuard Linux yadrosiga "keladi" - nega?
/ rasm Tambako Yaguar CC

Loyiha haqida qisqacha

WireGuard - bu Edge Security bosh direktori Jeyson A. Donenfeld tomonidan yaratilgan yangi avlod VPN tunnelidir. Loyiha sifatida ishlab chiqilgan soddalashtirilgan va OpenVPN va IPsec-ga tezkor alternativ. Mahsulotning birinchi versiyasida atigi 4 ming qator kod mavjud edi. Taqqoslash uchun, OpenVPN 120 mingga yaqin qatorga ega, IPSec esa 420 ming.

haqida ko'ra Ishlab chiquvchilar uchun WireGuard-ni sozlash oson va protokol xavfsizligiga erishiladi isbotlangan kriptografik algoritmlar orqali. Tarmoqni o'zgartirganda: Wi-Fi, LTE yoki Ethernet har safar VPN serveriga qayta ulanishi kerak. WireGuard serverlari, hatto foydalanuvchi yangi IP-manzil olgan bo'lsa ham, ulanishni to'xtatmaydi.

WireGuard dastlab Linux yadrosi uchun ishlab chiqilganiga qaramay, ishlab chiquvchilar g'amxo'rlik qilingan va Android qurilmalari uchun vositaning portativ versiyasi haqida. Ilova hali toʻliq ishlab chiqilmagan, lekin hozir uni sinab koʻrishingiz mumkin. Buning uchun sizga kerak sinovchilardan biriga aylaning.

Umuman olganda, WireGuard juda mashhur va hatto bo'lgan amalga oshirildi Mullvad va AzireVPN kabi bir nechta VPN provayderlari. Onlayn nashr katta miqdorda o'rnatish qo'llanmalari bu qaror. Masalan, ko'rsatmalar mavjudfoydalanuvchilar tomonidan yaratilgan va ko'rsatmalar mavjud, loyiha mualliflari tomonidan tayyorlangan.

texnik

В rasmiy hujjatlar (18-bet) qayd etilishicha, WireGuard’ning o‘tkazuvchanligi OpenVPN’dan to‘rt baravar yuqori: mos ravishda 1011 Mbit/s 258 Mbit/s. WireGuard Linux IPsec uchun standart yechimdan ham oldinda - 881 Mbit/s. O'rnatish qulayligi bo'yicha ham undan oshib ketadi.

Kalitlar almashtirilgandan so'ng (VPN ulanishi xuddi SSH kabi ishga tushiriladi) va ulanish o'rnatilgandan so'ng, WireGuard boshqa barcha vazifalarni o'zi hal qiladi: marshrutlash, holatni boshqarish va hokazolar haqida tashvishlanishning hojati yo'q. Qo'shimcha konfiguratsiya harakatlari faqat nosimmetrik shifrlashdan foydalanmoqchi bo'lsangiz kerak.

WireGuard Linux yadrosiga "keladi" - nega?
/ rasm Anders Xoybjerg CC

O'rnatish uchun sizga Linux yadrosi 4.1 dan eski bo'lgan tarqatish kerak bo'ladi. Uni asosiy Linux distributivlarining omborlarida topish mumkin.

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

Xakep.ru muharrirlarining ta'kidlashicha, manba matnlaridan o'z-o'zini yig'ish ham oson. Interfeysni ochish va umumiy va shaxsiy kalitlarni yaratish kifoya:

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

WireGuard foydalanmaydi kripto provayderi bilan ishlash uchun interfeys KriptoAPI. Buning o'rniga oqim shifridan foydalaniladi ChaCha20, kriptografik taqlid kiritma Poly1305 va xususiy kriptografik xesh funksiyalari.

Maxfiy kalit yordamida yaratiladi Diffie-Hellman protokoli elliptik egri chiziqqa asoslangan Curve25519. Hashing paytida ular foydalanadilar hash funktsiyalari Bleyk2 и SipHash. Vaqt tamg'asi formati tufayli TAI64N protokol kichikroq vaqt tamg'asi qiymatiga ega bo'lgan paketlarni olib tashlaydi, shu bilan DoS-ning oldini olish и takroriy hujumlar.

Bunday holda, WireGuard I/U ni boshqarish uchun ioctl funksiyasidan foydalanadi (ilgari ishlatilgan netlink), bu kodni yanada toza va sodda qiladi. Buni ko'rib chiqish orqali tasdiqlashingiz mumkin konfiguratsiya kodi.

Ishlab chiquvchi rejalari

Hozircha WireGuard daraxtdan tashqari yadro modulidir. Ammo loyiha muallifi - Jeyson Donenfeld U gapiradi, Linux yadrosida to'liq amalga oshirish vaqti keldi. Chunki u boshqa yechimlarga qaraganda sodda va ishonchli. Bu borada Jeyson qo'llab-quvvatlash hatto Linus Torvaldsning o'zi WireGuard kodini "san'at asari" deb atagan.

Ammo WireGuard-ni yadroga kiritishning aniq sanalari haqida hech kim gapirmayapti. VA zo'rg'a bu avgust Linux yadrosi 4.18 chiqishi bilan sodir bo'ladi. Biroq, bu juda yaqin kelajakda sodir bo'lishi ehtimoli bor: 4.19 yoki 5.0 versiyalarida.

WireGuard yadroga qo'shilganda, ishlab chiquvchilar istayman Android qurilmalari uchun dasturni yakunlang va iOS uchun dastur yozishni boshlang. Shuningdek, Go va Rust-da amalga oshirishni yakunlash va ularni macOS, Windows va BSD-ga o'tkazish rejalashtirilgan. Shuningdek, WireGuard-ni ko'proq "ekzotik tizimlar" uchun joriy etish rejalashtirilgan: DPDK, FPGA, shuningdek, boshqa ko'plab qiziqarli narsalar. Ularning barchasi ro'yxatga kiritilgan ro'yxatini qilish loyiha mualliflari.

PS Korporativ blogimizdan yana bir nechta maqolalar:

Faoliyatimizning asosiy yo'nalishi - bulutli xizmatlarni taqdim etish:

Virtual infratuzilma (IaaS) | PCI DSS hosting | Cloud FZ-152 | SAP hosting | Virtual saqlash | Bulutdagi ma'lumotlarni shifrlash | Bulutli saqlash

Manba: www.habr.com

a Izoh qo'shish