1. Tổng quan.
WireGuard là một công nghệ mạng ảo (VPN) mới, được thiết kế để cung cấp kết nối mạng an toàn, nhanh chóng và đơn giản hơn so với các công nghệ VPN truyền thống như OpenVPN hay IPsec.
WireGuard được xây dựng với mục tiêu đơn giản hóa các phương thức mã hóa và xác thực, giảm thiểu kích thước mã nguồn và tăng tốc độ kết nối. Với chỉ khoảng 4.000 dòng mã nguồn, WireGuard có kích thước nhỏ hơn rất nhiều so với các giải pháp VPN khác, giúp cho việc triển khai và bảo trì trở nên dễ dàng hơn.
WireGuard sử dụng một giao thức mới gọi là “Noise Protocol Framework” để cung cấp mã hóa và xác thực, và sử dụng “Curve25519” để thực hiện việc trao đổi khóa. Các tính năng bảo mật này được cho là rất tốt, giúp WireGuard trở thành một lựa chọn hấp dẫn cho các công ty và tổ chức có nhu cầu tăng cường bảo mật cho kết nối mạng của mình.
2. Cài đặt Wireguard Client.
2.1. Đối với các MacOS version cũ.
Cách sử dụng terminal để kết nối đối với MacOS, với cách này có thể áp dụng cho các MacOS version cũ từ Catalina trở về trước.
Đầu tiên hãy tải Wireguard về máy bằng Brew.
brew install wireguard-tools
Bạn có thể verify lại kết quả cài đặt.
$ sudo wg --version
wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
Bạn hãy tạo thư mục chứa file config.
sudo mkdir -p /usr/local/etc/wireguard/
Di chuyển vào /usr/local/etc/wireguard/
và sử dụng lệnh wg genkey
để tạo private.key
và sau đó sử dụng lệnh wg pubkey
để tính toán tạo ra file public.key
từ private.key
. Dưới đây là cách thực hiện:
cd /usr/local/etc/wireguard/
wg genkey | tee private.key | wg pubkey > public.key
Phân quyền thực thi cho chương trình vừa tạo ở bước trên.
$ ls
private.key public.key
Hãy xem nội dung 2 file private.key
và public.key
.
$ cat private.key
yHy16eN40Bs3mWc54IX6RVVrA3KtWqOL5gwI3UkNLE8=
$ cat public.key
++18O0maMGnlwb4EYk71k2VEXFRssvJJjLd+lEvLlVM=
Trong thư mục /usr/local/etc/wireguard/
hãy chạy đoạn Script để tạo ra file mycompany.conf
với nội dung như dưới, trước khi chạy thì bạn cần thay thế các giá trị như sau:
- Tại block
[Interface]
chỗPrivateKey
bạn lấy nó ở fileprivate.key
đã tạo ở trên. - Các thông tin còn lại phía bên đội quản trị Wireguard Server sẽ cung cấp cho bạn.
cat > /usr/local/etc/wireguard/mycompany.conf << 'OEF'
[Interface]
PrivateKey = yHy16eN40Bs3mWc54IX6RVVrA3KtWqOL5gwI3UkNLE8=
ListenPort = 51820
Address = 10.10.10.6/32
DNS = 10.10.10.1
[Peer]
PublicKey = CLnGaiAfyf6kTBJKh0M529MnlqfFqoWJ5K4IAJ2+X08=
AllowedIPs = 0.0.0.0/0
Endpoint = 115.79.197.124:51820
OEF
Việc tiếp theo là để có thể tạo kết nối tới Wireguard Server thì bạn cung cấp thông tin trong file public.key
đã lấy được ở trên gửi cho các bạn đang quản trị Wireguard Server để họ thêm thông tin này vào hệ thống.
Sau khi bên phía quản trị Wireguard Server thông báo đã thêm thông tin PublicKey của bạn xong thì bạn có thể sử dụng lệnh sudo wg-quick up mycompany
với mycompany
chính là tên file mycompany.conf
đã lược bỏ phần đuôi .conf
của bạn đã tạo ở bước trên.
$ sudo wg-quick up mycompany
Password:
[#] wireguard-go utun
[+] Interface for mycompany is utun2
[#] wg setconf utun2 /dev/fd/63
[#] ifconfig utun2 inet 10.10.10.6/32 10.10.10.6 alias
[#] ifconfig utun2 up
[#] route -q -n add -inet 0.0.0.0/1 -interface utun2
[#] route -q -n add -inet 128.0.0.0/1 -interface utun2
[#] route -q -n add -inet 115.79.197.124 -gateway 172.16.3.254
[#] networksetup -getdnsservers Built-in Serial Port (1)
[#] networksetup -getsearchdomains Built-in Serial Port (1)
[#] networksetup -getdnsservers Ethernet
[#] networksetup -getsearchdomains Ethernet
[#] networksetup -getdnsservers Ethernet 2
[#] networksetup -getsearchdomains Ethernet 2
[#] networksetup -getdnsservers Bluetooth PAN
[#] networksetup -getsearchdomains Bluetooth PAN
[#] networksetup -getdnsservers NTJ
[#] networksetup -getsearchdomains NTJ
[#] networksetup -getdnsservers VPN (L2TP)
[#] networksetup -getsearchdomains VPN (L2TP)
[#] networksetup -setdnsservers Ethernet 2 10.10.10.1
[#] networksetup -setsearchdomains Ethernet 2 Empty
[#] networksetup -setdnsservers Bluetooth PAN 10.10.10.1
[#] networksetup -setsearchdomains Bluetooth PAN Empty
[#] networksetup -setdnsservers NTJ 10.10.10.1
[#] networksetup -setsearchdomains NTJ Empty
[#] networksetup -setdnsservers Built-in Serial Port (1) 10.10.10.1
[#] networksetup -setsearchdomains Built-in Serial Port (1) Empty
[#] networksetup -setdnsservers Ethernet 10.10.10.1
[#] networksetup -setsearchdomains Ethernet Empty
[#] networksetup -setdnsservers VPN (L2TP) 10.10.10.1
[#] networksetup -setsearchdomains VPN (L2TP) Empty
[+] Backgrounding route monitor
Sau khi chạy lệnh wg-quick up mycompany
xong bạn có thể sử dụng lệnh sudo wg show
để xem trạng thái kết nối đã thành công hay chưa.
$ sudo wg show
interface: utun2
public key: ++18O0maMGnlwb4EYk71k2VEXFRssvJJjLd+lEvLlVM=
private key: (hidden)
listening port: 51820
peer: Dzp6GPid44raS15Er1M6epYc+1VK6qWMLTz/KlZeWEc=
endpoint: 115.79.197.124:51820
allowed ips: 0.0.0.0/0
latest handshake: 41 seconds ago
transfer: 2.39 MiB received, 403.32 KiB sent
Nếu bạn thấy thông tin transfer có dữ liệu sent và received thì bạn đã kết nối thành công.
transfer: 2.39 MiB received, 403.32 KiB sent
2.2. Đối với các MacOS mới hỗ trợ dạng APP.
Đối với các phiên bản MacOS cao hơn thì mọi chuyện đơn giản hơn nhiều. Bạn chỉ cần vào App Store tìm Wirreguard và tải nó về như các phần mềm khác.
Sau khi cài đặt xong hãy chạy nó và bạn sẽ thấy biểu tượng như hình dưới. Hãy nhấp vào nó và chọn Manage Tunnels.
Lưu ý: Mình đã có sẵn một số VPN rồi nên bạn đừng quan tâm tới nó nhé.
Hãy bấm vào dấu cộng (1) và bấm vào Add Empty Tunnel… (2) để tạo một kết nối mới.
Khi nhấp vào bạn nhận được các thông tin như dưới.
Hãy đặt tên cho kết nối này, ví dụ của mình là mycompany và điền các thông tin như dưới. Cũng như hướng dẫn sử dụng lệnh ở trên thì phần này bạn cũng phải thay đổi một số thông tin tương tự.
- Tại block
[Interface]
chỗPrivateKey
hệ thống đã tạo cho bạn nên bạn giữ nguyên nó không thay đổi gì. - Các thông tin còn lại phía bên đội quản trị Wireguard Server sẽ cung cấp cho bạn.
Cuối cùng các bạn nhớ bấm Save để lưu lại và đóng cửa sổ.
Và đây là kết quả của mình, mình đã tạo ra một kết nối có tên là mycompany, giờ bạn hãy chọn nó và bấm vào Active để bắt đầu kết nối.
Kết nối thành công, bây giờ các bạn có thể truy cập vào nội bộ công ty rồi.
2.3. Đối với Windows.
Vào trang https://www.wireguard.com/install/
để download Wireguard dành cho Windows về máy và cài đặt nó.
Sau khi cài đặt xong bạn hãy vào Wireguard và bấm vào Add empty tunnel… để thêm kết nối mới.
Tại đây giống như trên MacOS bạn sẽ có sẵn thông tin [Interface] bao gồm PrivateKey và PublicKey.
Cũng như phần hướng dẫn của MacOS, bạn cần cung cấp PublicKey cho người quản trị Wireguard để họ access thiết bị của bạn trên hệ thống. Phần này bạn cũng phải thay đổi một số thông tin tương tự.
- Tại block
[Interface]
chỗPrivateKey
hệ thống đã tạo cho bạn nên bạn giữ nguyên nó không thay đổi gì. - Các thông tin còn lại phía bên đội quản trị Wireguard Server sẽ cung cấp cho bạn.
Cuối cùng các bạn nhớ bấm Save để lưu lại và đóng cửa sổ.
Sau khi bấm Save bạn sẽ có một thông tin kết nối VPN mới như dưới. Hãy chọn nó và bấm Active để kết nối VPN.
Và kết quả như dưới là bạn đã kết nối thành công VPN vào công ty của bạn.