WireGuard là gì? Hướng dẫn cài đặt WireGuard chi tiết

WireGuard là gì? Hướng dẫn cài đặt WireGuard chi tiết

Tác giả: admin@
16:37 23/02/2022

WireGuard hiện tại là 1 giải pháp VPN chủ yếu tập trung vào bảo mật. Theo đó WireGuard đang sử dụng những giao thức mã hóa cũng như những thuật toán nhằm bảo vệ dữ liệu. Để hiểu rõ hơn WireGuard là gì và cơ chế mã hóa trên thị trường hiện nay, hãy cùng FPT Cloud điểm qua những thông tin sau đây.

WireGuard là gì?

Nếu như đang sử dụng VPN thì rất có thể sẽ chạy bằng IPsec hoặc OpenVPN, vốn là các tiêu chuẩn đã thống trị trong 1 thời gian dài. Nhưng hiện tại nó đã thay đổi tất cả mọi thứ.

WireGuard được mã hóa 1 cách rõ ràng, kết nối chỉ trong tích tắc, dùng mật mã hiện đại đã thử nghiệm cũng như hoạt động với tất cả mọi thứ. Thậm chí nó còn được đưa trực tiếp vào Linux kernel 5.6. Vậy khái niệm WireGuard là gì?

Khái niệm

WireGuard hiện tại là 1 giải pháp VPN (hay Virtual Private Network) chủ yếu tập trung vào bảo mật. Theo đó ban đầu nó được biết tới phổ biến vì rất dễ dàng sử dụng và có tính đơn giản. 

Hiện tại nó đang sử dụng những giao thức mã hóa cũng như những thuật toán nhằm bảo vệ dữ liệu. Nó ban đầu được phát triển để dành cho Linux. Đến thời điểm hiện tại nó đã dần trở nên phổ biến trên các thiết bị macOS, BSD, Windows, Android và iOS. 

Đối với những doanh nghiệp đang hoạt động trên thị trường hiện nay mạng riêng ảo VPN đang là thành phần không thể nào thiếu. Theo đó họ hoàn toàn có thể liên kết những chi nhánh khác nhau từ xa tới mạng chính của công ty. Và từ đó cho phép tất cả nhân viên có thể sử dụng những ứng dụng nội bộ thuộc công ty. Bên cạnh đó cho phép những cloud server trở thành 1 phần của mạng, tương tự giống như những máy chủ on-premises.

Những giải pháp VPN trước đây hầu hết đều tương đối chậm và thiết kế khá phức tạp. Ngược lại đối với WireGuard lại đặt sự đơn giản và tính bảo mật lên hàng đầu.

Super deal 032023

Lịch sử hình thành 

Jason Donenfeld - nhà nghiên cứu phát triển và bảo mật kernel vào năm 2017 đã có ý tưởng dành cho WireGuard. Ở thời điểm đó, Jason Donenfel đang cần 1 giải pháp tunneling lưu lượng 1 cách bí mật. Từ đó hoàn toàn có thể dùng chúng cho những cuộc penetration testing (thử nghiệm xâm nhập). 

Tuy nhiên sau khi xem xét và nghiên cứu 1 cách kỹ lưỡng về những tùy chọn lúc bấy giờ hiện có, Jason Donenfel càng nhận ra các hệ thống VPN như OpenVPN hay IPsec thật sự không hoạt động tốt. Ngoài ra nó cũng khó để có thể quản lý đúng cách và cấu hình.

Chính vì vậy, Donenfeld đã bắt đầu tạo ra 1 giao thức VPN mới hoàn toàn. Anh mong muốn rằng nó có thể tránh lối mòn thiết kế của những hệ thống khác. Donenfled cần một sự đơn giản và không muốn nó trở thành những dự án với các code bases khổng lồ như trước.

>>> Có thể bạn quan tâm: Bytefence anti-malware là gì? Cách gỡ Bytefence anti-malware hoàn toàn

Cơ chế mã hóa của WireGuard

Cơ chế mã hóa 

WireGuard đầu tiên sẽ loại trừ đi tính linh hoạt trong mật mã. Theo đó nó sẽ cung cấp những lựa chọn giữa trao đổi key và thuật toán mã hóa. Vì trên thực tế nó sẽ dẫn tới việc triển khai không đảm bảo độ an toàn với những công nghệ khác. Giao thức của nó thay vào đó sẽ sử dụng 1 lựa chọn những bản mã hiện đại. Chính vì vậy những chọn lựa mật mã mặc định này phải đủ mạnh để tất cả người dùng không thể nào thay đổi hay cấu hình sai.

WireGuard đã sử dụng ChaCha20 để có thể mã hóa đối xứng cùng với Polu1305 dành cho message authentication. Theo đó sự kết hợp này sẽ đạt được hiệu quả hơn so với AES trên những kiến trúc CPU được nhúng và hoàn toàn không có khả năng giúp tăng tốc về phần cứng mật mã (hay cryptographic hardware acceleration) và Curve25519 dành cho Diffie-Hellman (ECDH). Hoặc BLAKE2s dùng để hashing, nhanh hơn so với SHA-3 cũng như 1.5-RTT dựa vào nền tảng Noise. Bên cạnh đó nó cũng gồm có tính năng bảo vệ khỏi tình trạng giả mạo, replay attack và từ chối dịch vụ.

1 số lưu ý

Mỗi peer trong giao thức này được xác định với những peer khác thông qua các public key. Điều này tương tự như cách thức xác thực dựa vào khóa trong OpenSSH. Những public key cũng sẽ được dùng để có thể thiết lập địa chỉ IP được chỉ định cho mỗi peer bên trong tunnel. Đây là 1 phần thuộc khái niệm mới và được Wireguard gọi với cái tên là “cryptokey routing”.

Hiện tại giao thức này sẽ không phản hồi với những packet nó không nhận ra. Do đó quá trình network scanning không thể cho thấy nó hiện đang chạy trên server. Ngoài ra nó cũng có thể hoạt động cùng 1 lúc như cả server lẫn client.

Khả năng hoạt động của WireGuard

WireGuard trên Linux hoạt động ở kernel space. Chính vì vậy hiệu suất của nó sẽ cao hơn rất nhiều so với OpenVPN – trong virtual network interface driver và userspace. Trong WireGuard điểm benchmark cho tốc độ và hiệu suất kết nối cao hơn so với OpenVPN tới 4 lần. Bên cạnh đó tốc độ cũng cao hơn nhiều so với VPN dựa vào IPsec, trên cùng 1 phần cứng.

Tuy nhiên, trên iOS, Android, Windows, OpenBSD và macOS việc triển khai nó sẽ được viết bằng Go.  Ngoài 1 số những dự án dành cho Android đã được hỗ trợ tích hợp đối với WireGuard kernel module bởi cộng đồng, những triển khai không thuộc Linux chạy trong userspace cũng như không hưởng lợi nhờ vào hiệu suất tương tự như việc triển khai ở kernel. Như vậy điều này cho thấy được rằng nó vẫn hoàn toàn có thể quản lý nhằm phù hợp. Bên cạnh đó trong hầu hết mọi mặt vẫn vượt trội hơn so với OpenVPN.

Super deal 032023

WireGuard có tương thích với Linux kernel

Linux Kernel từ phiên bản 5.6 được phát hành chính thức vào ngày 29/3/2020, thì đây đã là 1 trong các công nghệ tích hợp mặc định. Đây được coi là lần đầu tiên phát hành ổn định của WireGuard (thuộc phiên bản 1.0.0).

Sau đó những kế hoạch của Donenfled có liên quan tới việc hợp nhất 1 API mã hóa mới và đơn giản hơn vào trong Linux kernel được gọi là Zinc. Donefled đã cho rằng Zinc sẽ giúp cho những developer thực hiện những thao tác mã hóa thuộc ứng dụng 1 cách dễ dàng hơn. Trong quá trình upstream WireGuard vào trong hệ thống Linux subsystem điều này đã đánh dấu 1 bước ngoặt vô cùng quan trọng. Kể từ đó đã có rất nhiều những bước tiến đáng kể và nhanh chóng trước khi Zinc chính thức phát hành ổn định.

Cách để cài đặt Wireguard VPN Server

Để cài đặt Wireguard VPN Server quá trình thực hiện cần trải qua tổng cộng 3 công đoạn sau đây:

  • Cài đặt phần mềm Wireguard package
  • Enable IP Forwarding
  • Tiến hành cấu hình NAT dành cho iptables

Ngoài ra không bắt buộc: Người dùng cũng có thể tắt SElinux and Firewalld (nằm trên CentOS) để từ đó quá trình cài đặt cũng như sử dụng được dễ dàng hơn

Cài đặt dành cho Wireguard package

Load module wireguard vào trong kernel

Enable ip_forward dành cho Kernel

Như vậy phần cài đặt những pakage dành cho Wireguard VPN Server tới đây là đã hoàn tất. Theo đó bước tiếp theo bạn cần phải tạo ra những file config tương ứng cho client và server để có thể bắt đầu sử dụng.

>>> Có thể bạn quan tâm: OneDrive là gì? Cách cài đặt và sử dụng OneDrive mới nhất

Cách để config Wireguard đơn giản

Nó đang hoạt động dựa theo mô hình là public_key/private_key. Chính vì vậy cần phải:

  • Tạo một cặp private/ public key dành cho Server: Public key sẽ được gửi cho client, còn Private key sẽ lưu trữ bí mật ở trên server.
  • Tạo một cặp private/ public key dành cho mỗi một Client: Public key sẽ khai báo ở trên server, còn Private key sẽ giữ bởi client

Cách tạo server keys:

Cách tạo client keys:

Ngay sau khi đã tạo bộ key cần thiết xong, cần tạo file config dành cho Wireguard VPN Client và Wireguard VPN Server.

Cách tạo server config:

Như vậy tới đây đã hoàn tất được quá trình tạo file config dành cho server ở vị trí là /etc/wireguard/wg0.conf. Theo đó khởi chạy dịch vụ của Wireguard VPN Server như sau:

Cách tạo client config:

Tới đây, trên server đã tạo file là /etc/wireguard/keys/client.conf. Theo đó để có thể sử dụng, cần copy file này về trên máy cần sử dụng VPN cũng như import vào trong ứng dụng Wireguard là đã có thể connect.

Như vậy qua bài viết trên FPT Cloud đã cung cấCách tạo client configp những thông tin liên quan tới khái niệm và lịch sử hình thành của Wireguard. Theo đó có thể thấy được rằng WireGuard được mã hóa 1 cách rõ ràng, kết nối chỉ trong tích tắc. Hy vọng rằng với những thông tin về cơ chế mã hóa và cách cài đặt trên sẽ giúp bạn sử dụng được hiệu quả nhất có thể.

Liên hệ với chúng tôi để biết thêm thông tin chi tiết về dịch vụ của FPT Smart Cloud

WireGuard là gì? Hướng dẫn cài đặt WireGuard chi tiết