WireGuard sẽ “đến” với nhân Linux - tại sao?

Vào cuối tháng XNUMX, các nhà phát triển đường hầm WireGuard VPN đã đề xuất bộ vá, điều này sẽ biến phần mềm đường hầm VPN của họ trở thành một phần của nhân Linux. Tuy nhiên, ngày thực hiện chính xác “ý tưởng” vẫn chưa được biết. Dưới đây chúng ta sẽ nói chi tiết hơn về công cụ này.

WireGuard sẽ “đến” với nhân Linux - tại sao?
/ hình chụp Báo đốm Tambako CC

Sơ lược về dự án

WireGuard là đường hầm VPN thế hệ tiếp theo được tạo bởi Jason A. Donenfeld, Giám đốc điều hành của Edge Security. Dự án được phát triển như giản thể và một giải pháp thay thế nhanh chóng cho OpenVPN và IPsec. Phiên bản đầu tiên của sản phẩm chỉ có 4 nghìn dòng mã. Để so sánh, OpenVPN có khoảng 120 nghìn dòng và IPSec - 420 nghìn.

Trên theo các nhà phát triển, WireGuard rất dễ cấu hình và đạt được bảo mật giao thức thông qua các thuật toán mã hóa đã được chứng minh. Khi thay đổi mạng: Wi-Fi, LTE hoặc Ethernet cần kết nối lại với máy chủ VPN mọi lúc. Máy chủ WireGuard không chấm dứt kết nối, ngay cả khi người dùng đã nhận được địa chỉ IP mới.

Mặc dù thực tế là WireGuard ban đầu được thiết kế cho nhân Linux, nhưng các nhà phát triển quan tâm và về phiên bản di động của công cụ dành cho thiết bị Android. Ứng dụng này chưa được phát triển đầy đủ nhưng bạn có thể dùng thử ngay bây giờ. Đối với điều này bạn cần trở thành một trong những người thử nghiệm.

Nhìn chung, WireGuard khá phổ biến và thậm chí đã được thực hiện một số nhà cung cấp VPN, chẳng hạn như Mullvad và AzireVPN. Xuất bản trực tuyến một số lượng lớn hướng dẫn thiết lập quyết định này. Ví dụ, có hướng dẫn, được tạo bởi người dùng và có hướng dẫn, do các tác giả của dự án chuẩn bị.

Chi tiết kỹ thuật

В tài liệu chính thức (tr. 18), cần lưu ý rằng thông lượng của WireGuard cao hơn bốn lần so với OpenVPN: tương ứng là 1011 Mbit/s so với 258 Mbit/s. WireGuard cũng đi trước giải pháp tiêu chuẩn dành cho Linux IPsec - nó có tốc độ 881 Mbit/s. Nó cũng vượt qua nó trong việc dễ dàng thiết lập.

Sau khi các khóa được trao đổi (kết nối VPN được khởi tạo giống như SSH) và kết nối được thiết lập, WireGuard tự xử lý tất cả các tác vụ khác: không cần phải lo lắng về việc định tuyến, kiểm soát trạng thái, v.v. Những nỗ lực cấu hình bổ sung sẽ chỉ được thực hiện cần thiết nếu bạn muốn sử dụng mã hóa đối xứng.

WireGuard sẽ “đến” với nhân Linux - tại sao?
/ hình chụp Anders Hojbjerg CC

Để cài đặt, bạn sẽ cần bản phân phối có nhân Linux cũ hơn 4.1. Nó có thể được tìm thấy trong kho của các bản phân phối Linux chính.

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

Như các biên tập viên của xakep.ru lưu ý, việc tự lắp ráp từ văn bản nguồn cũng dễ dàng. Chỉ cần mở giao diện và tạo khóa chung và khóa riêng là đủ:

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

Dây bảo vệ không sử dụng giao diện để làm việc với nhà cung cấp tiền điện tử API tiền điện tử. Thay vào đó, mật mã luồng được sử dụng ChaCha20, mật mã chèn giả Poly1305 và các hàm băm mật mã độc quyền.

Khóa bí mật được tạo bằng cách sử dụng Giao thức Diffie-Hellman dựa trên đường cong elip Curve25519. Khi băm, họ sử dụng hàm băm BẠCH2 и SipHash. Do định dạng dấu thời gian TAI64N giao thức loại bỏ các gói có giá trị dấu thời gian nhỏ hơn, do đó ngăn chặn DoS- и phát lại các cuộc tấn công.

Trong trường hợp này, WireGuard sử dụng hàm ioctl để điều khiển I/O (trước đây được sử dụng netlink), điều này làm cho mã sạch hơn và đơn giản hơn. Bạn có thể xác minh điều này bằng cách nhìn vào mã cấu hình.

Gói dành cho nhà phát triển

Hiện tại, WireGuard là một mô-đun hạt nhân nằm ngoài cây. Nhưng tác giả của dự án là Jason Donenfeld nói, đã đến lúc triển khai đầy đủ trong nhân Linux. Bởi vì nó đơn giản và đáng tin cậy hơn các giải pháp khác. Jason về vấn đề này ủng hộ ngay cả chính Linus Torvalds cũng gọi mã WireGuard là một “tác phẩm nghệ thuật”.

Nhưng không ai nói về ngày chính xác đưa WireGuard vào kernel. VÀ khó điều này sẽ xảy ra với việc phát hành hạt nhân Linux tháng 4.18 4.19. Tuy nhiên, có khả năng điều này sẽ xảy ra trong tương lai rất gần: ở phiên bản 5.0 hoặc XNUMX.

Khi WireGuard được thêm vào kernel, các nhà phát triển muốn hoàn thiện ứng dụng cho thiết bị Android và bắt đầu viết ứng dụng cho iOS. Ngoài ra còn có kế hoạch hoàn thành việc triển khai trong Go và Rust và chuyển chúng sang macOS, Windows và BSD. Nó cũng được lên kế hoạch triển khai WireGuard cho nhiều “hệ thống kỳ lạ” hơn: CHDCND Triều Tiên, FPGA, cũng như nhiều điều thú vị khác. Tất cả chúng đều được liệt kê trong những việc cần làm các tác giả của dự án.

Tái bút Một số bài viết khác từ blog công ty của chúng tôi:

Hướng hoạt động chính của chúng tôi là cung cấp dịch vụ đám mây:

Cơ sở hạ tầng ảo (IaaS) | Lưu trữ PCI DSS | Đám mây FZ-152 | Lưu trữ SAP | Lưu trữ ảo | Mã hóa dữ liệu trên đám mây | Lưu trữ đám mây

Nguồn: www.habr.com

Thêm một lời nhận xét