Pada akhir Juli, pengembang tunnel VPN WireGuard mengusulkan satu
set tambalan yang akan menjadikan perangkat lunak organisasi VPN tunnel mereka menjadi bagian dari kernel Linux. Namun, tanggal pasti untuk implementasi "ide" masih belum diketahui. Di bawah kucing, kita akan berbicara tentang alat ini secara lebih rinci.
/ foto Tambako The Jaguar CCSecara singkat tentang proyek
WireGuard adalah terowongan VPN generasi berikutnya yang dibuat oleh Jason A. Donenfeld, kepala Edge Security. Proyek ini dikembangkan sebagai alternatif yang
disederhanakan dan gesit untuk OpenVPN dan IPsec. Versi pertama produk hanya berisi 4 ribu baris kode. Sebagai perbandingan, di OpenVPN sekitar 120 ribu baris, dan di IPSec - 420 ribu.
Menurut pengembang, WireGuard mudah untuk dikonfigurasi, dan keamanan protokol dicapai
melalui algoritma kriptografi yang terbukti .
Saat mengubah jaringan : Wi-Fi, LTE atau Ethernet, Anda harus menyambung kembali ke server VPN setiap kali. Server WireGuard tidak memutus koneksi, bahkan jika pengguna menerima alamat IP baru.
Terlepas dari kenyataan bahwa WireGuard awalnya diasah untuk kernel Linux, para pengembang
menjaga versi portabel alat untuk perangkat Android. Aplikasi ini masih belum selesai, tetapi Anda dapat mencobanya dalam praktik sekarang. Untuk melakukan ini, Anda harus
menjadi salah satu penguji .
Secara umum, WireGuard cukup populer dan bahkan telah
diimplementasikan oleh beberapa penyedia VPN, seperti Mullvad dan AzireVPN. Jaringan telah menerbitkan sejumlah
besar panduan untuk mengkonfigurasi solusi ini. Misalnya,
ada panduan yang dibuat pengguna, dan ada panduan yang
disiapkan oleh penulis proyek .
Rincian teknis
Dalam
dokumentasi resmi (hlm. 18), tercatat bahwa bandwidth WireGuard empat kali lebih tinggi daripada OpenVPN: 1011 Mbit / dtk dibandingkan 258 Mbit / dtk, masing-masing. WireGuard unggul dari solusi Linux IPsec standar - 881 Mbps. Ini melampaui dalam hal kemudahan pengaturan.
Setelah bertukar kunci (koneksi VPN diinisialisasi hampir seperti di SSH) dan membuat koneksi, WireGuard secara mandiri menyelesaikan semua tugas lain: tidak perlu khawatir tentang perutean, memantau keadaan, dll. Upaya konfigurasi tambahan perlu diterapkan hanya jika Anda ingin menggunakan enkripsi simetris.
/ foto Anders Hojbjerg CCUntuk menginstal, Anda memerlukan distribusi dengan kernel Linux "lebih tua" 4.1. Ini dapat ditemukan di repositori distribusi Linux utama.
$ sudo add-apt-repository ppa:hda-me/wireguard $ sudo apt update $ sudo apt install wireguard-dkms wireguard-tools
Menurut editor xakep.ru, perakitan sendiri dari sumber juga tidak rumit. Cukup untuk meningkatkan antarmuka dan menghasilkan kunci publik dan pribadi:
$ sudo ip link add dev wg0 type wireguard $ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard
tidak menggunakan antarmuka untuk bekerja dengan penyedia kriptografi
CryptoAPI . Sebagai gantinya, stream cipher
ChaCha20 , insert cryptographic
imitasi Poly1305 dan fungsi hash kriptografiknya digunakan.
Kunci rahasia dibuat menggunakan
protokol Diffie-Hellman berdasarkan kurva eliptik
Curve25519 . Hashing menggunakan
fungsi hash BLAKE2 dan
SipHash . Karena format cap waktu
TAI64N , protokol membuang paket dengan nilai cap waktu yang lebih rendah, sehingga
mencegah DoS dan
serangan replay .
Pada saat yang sama, WireGuard menggunakan fungsi ioctl untuk mengontrol I / O (digunakan untuk menggunakan
Netlink ), yang membuat kode lebih bersih dan lebih sederhana. Anda dapat memverifikasi ini dengan melihat
kode konfigurasi .
Paket Pengembang
Sejauh ini, WireGuard adalah modul kernel out-of-tree. Tetapi penulis proyek Jason Donenfeld
mengatakan waktunya telah tiba untuk implementasi penuh di kernel Linux. Karena lebih sederhana dan lebih dapat diandalkan daripada solusi lain. Jason
didukung dalam hal ini bahkan oleh Linus Torvalds sendiri - ia menyebut kode WireGuard "sebuah karya seni".
Tetapi tidak ada yang berbicara tentang tanggal yang tepat untuk memperkenalkan WireGuard ke dalam kernel. Dan ini
tidak mungkin terjadi dengan rilis kernel Linux 4.18 Agustus. Namun, kemungkinan ini akan terjadi dalam waktu dekat: dalam versi 4.19 atau 5.0.
Ketika WireGuard ditambahkan ke kernel, pengembang
ingin memperbaiki aplikasi untuk perangkat Android dan mulai menulis aplikasi untuk iOS. Selain itu, direncanakan untuk menyelesaikan implementasi di Go and Rust dan port mereka ke macOS, Windows dan BSD. Juga direncanakan untuk mengimplementasikan WireGuard untuk lebih banyak "sistem eksotis":
DPDK ,
FPGA , serta banyak hal menarik lainnya. Semuanya tercantum dalam daftar yang
harus dilakukan penulis proyek.
NB Beberapa artikel lagi dari blog perusahaan kami:
Arah utama aktivitas kami adalah penyediaan layanan cloud:
Infrastruktur Virtual (IaaS) | Hosting PCI DSS | Cloud FZ-152 | SAP hosting | Penyimpanan Virtual | Enkripsi Data di Awan | Penyimpanan cloud