WireGuard là một mạng riêng ảo mã nguồn mở và tập trung vào bảo mật được thiết kế để đơn giản và dễ sử dụng. Nó hỗ trợ nhiều hệ điều hành khác nhau bao gồm Linux, macOS, Windows, BSD và Android. Đây là một VPN đơn giản và có mục đích chung có thể dễ dàng triển khai trên các thiết bị nhỏ đến các máy chủ cao cấp. Đây là một máy chủ VPN điểm tới điểm thay vì mô hình máy khách-máy chủ. Nó sử dụng cơ chế trao đổi khóa công khai để xác thực máy khách.
Nếu bạn đang tìm kiếm một VPN nhẹ và nhanh thì WireGuard VPN là lựa chọn tốt nhất dành cho bạn. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt máy chủ và máy khách WireGuard VPN trên Ubuntu 20.04.
Sau khi tất cả các gói được cập nhật, bạn sẽ cần cài đặt Iptables trong hệ thống của mình. Bạn có thể cài đặt nó bằng lệnh sau:
Sau khi cài đặt hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi gói WireGuard đã được cài đặt, bạn có thể tiến hành bước tiếp theo.
WireGuard cung cấp tiện ích dòng lệnh wg và wg-quick để tạo khóa và quản lý giao diện.
Bạn có thể tạo cả khóa công khai và khóa riêng tư bằng lệnh sau:
Sau khi cả hai khóa được tạo, bạn có thể kiểm tra chúng bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn có thể hiển thị nội dung của khóa riêng bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bạn có thể hiển thị nội dung của khóa công khai bằng lệnh sau:
Bạn sẽ thấy đầu ra sau đầu ra:
Tiếp theo, bạn sẽ cần tạo một giao diện mạng cho WireGuard. Bạn có thể tạo giao diện này bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Nơi:
Tiếp theo, hãy bật giao diện wg0 bằng cách chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn cũng có thể khởi động dịch vụ WireGuard bằng systemd như được hiển thị bên dưới:
Tiếp theo, hãy bật dịch vụ WireGuard để khởi động khi khởi động lại hệ thống bằng lệnh sau:
Tiếp theo, hãy xác minh trạng thái của dịch vụ WireGuard bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Bạn cũng có thể kiểm tra trạng thái của giao diện wg0 bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn có thể nhận được trạng thái địa chỉ IP của giao diện wg0 bằng lệnh sau:
Bạn sẽ nhận được kết quả sau đầu ra:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thay đổi dòng sau:
Lưu và đóng tệp sau đó chạy lệnh sau để áp dụng các thay đổi cấu hình:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt gói WireGuard, hãy tạo khóa riêng và khóa công khai bằng lệnh sau:
Sau khi cả hai khóa được tạo, bạn sẽ cần tạo một tệp cấu hình mới.
Bạn có thể tạo tệp này bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Nơi:
Trên máy chủ, hãy chạy lệnh sau để thêm cả hai:
Tiếp theo, bạn sẽ cần mở giao diện wg0 trên máy khách.
Trên máy khách, hãy chạy lệnh sau để mở giao diện:
Bạn sẽ nhận được kết quả sau:
Lúc này, máy khách của bạn đã được kết nối với máy chủ VPN WireGuard. Bạn có thể kiểm tra trạng thái kết nối bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Nếu bạn đang tìm kiếm một VPN nhẹ và nhanh thì WireGuard VPN là lựa chọn tốt nhất dành cho bạn. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt máy chủ và máy khách WireGuard VPN trên Ubuntu 20.04.
Điều kiện tiên quyết
- Hai máy chủ chạy Ubuntu 20.04.
- Cấu hình mật khẩu gốc trên cả hai máy chủ.
Bắt đầu
Trước tiên, bạn nên cập nhật các gói hệ thống lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Mã:
apt-get install iptables -y
Cài đặt WireGuard VPN Server
Theo mặc định, gói WireGuard có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt nó bằng cách chạy lệnh sau:
Mã:
apt-get install wireguard -y
Cấu hình WireGuard Server
WireGuard hoạt động bằng cách trao đổi khóa công khai giữa mỗi thiết bị trong mạng WireGuard. Vì vậy, bạn sẽ cần tạo khóa công khai và khóa riêng tư trên máy chủ.WireGuard cung cấp tiện ích dòng lệnh wg và wg-quick để tạo khóa và quản lý giao diện.
Bạn có thể tạo cả khóa công khai và khóa riêng tư bằng lệnh sau:
Mã:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Mã:
ls /etc/wireguard
Mã:
privatekey publickey
Mã:
cat /etc/wireguard/privatekey
Mã:
4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=
Mã:
cat /etc/wireguard/publickey
Mã:
00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
Mã:
nano /etc/wireguard/wg0.conf
Mã:
[Interface]Address = 10.0.0.1/24SaveConfig = trueListenPort = 51820PrivateKey = server-private-keyPostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Nơi:
- Address : Địa chỉ IP riêng cho giao diện wg0.
- ListenPort : Chỉ định cổng lắng nghe của WireGuard.
- PrivateKey : Khóa riêng được lưu trữ trong tệp /etc/wireguard/privatekey.
- PostUp : Chỉ định lệnh cho phép lưu lượng rời khỏi máy chủ và cấp cho máy khách VPN quyền truy cập Internet. Ngoài ra, hãy thay thế eth0 bằng tên giao diện mạng của bạn.
Mã:
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
Mã:
wg-quick up wg0
Mã:
[#] ip link add wg0 type wireguard[#] wg setconf wg0 /dev/fd/63[#] ip -4 address add 10.0.0.1/24 dev wg0[#] ip link set mtu 1420 up dev wg0[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Mã:
systemctl start [emailprotected]
Mã:
systemctl enable [emailprotected]
Mã:
systemctl status [emailprotected]
Mã:
? [emailprotected] - WireGuard qua wg-quick(8) cho wg0 Đã tải: đã tải (/lib/systemd/system/[emailprotected]; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đã thoát) kể từ Thu 2020-12-10 11:42:14 UTC; 7 giây trước Tài liệu: man:wg-quick(8) man:wg(8) https://www.wireguard.com/ https://www.wireguard.com/quickstart/ https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8 https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8 Tiến trình: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS) PID chính: 2173 (code=exited, status=0/SUCCESS)10 tháng 12 11:42:14 ubuntu2004 systemd[1]: Đang khởi động WireGuard qua wg-quick(8) cho wg0...10 tháng 12 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard10-12 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/6310-12 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg010-12 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg010-12 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE10 tháng 12 11:42:14 ubuntu2004 systemd[1]: Hoàn thành WireGuard qua wg-quick(8) cho wg0.
Mã:
wg show wg0
Mã:
interface: wg0 public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= private key: (hidden) listening port: 51820
Mã:
ip a show wg0
Mã:
13: wg0:
mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.1/24 scope global wg0 valid_lft forever preferred_lft forever
Bật chuyển tiếp IP
Tiếp theo, bạn sẽ cần bật chuyển tiếp IP trong máy chủ của mình để định tuyến các gói tin giữa các máy khách VPN và Internet. Bạn có thể bật nó bằng cách chỉnh sửa tệp /etc/sysctl.conf:
Mã:
nano /etc/sysctl.conf
Mã:
net.ipv4.ip_forward=1
Mã:
sysctl -p
Cài đặt và cấu hình WireGuard Client
Trước tiên, bạn sẽ cần cài đặt gói WireGuard trên máy khách. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
apt-get install wireguard -y
Mã:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/wireguard/wg0.conf
Mã:
[Interface]PrivateKey = client-private-keyAddress = 10.0.0.2/24[Peer]PublicKey = server-public-keyEndpoint = server-ip-address:51820AllowedIPs = 0.0.0.0/0
Nơi:
- Address : Địa chỉ IP riêng cho giao diện wg0.
- PrivateKey : Chỉ định khóa riêng trên máy khách máy.
- PublicKey: Chỉ định khóa công khai trên máy chủ.
- Endpoint: Chỉ định địa chỉ IP của máy chủ.
- AllowedIPs: Chỉ định danh sách địa chỉ IP được phép.
Trên máy chủ, hãy chạy lệnh sau để thêm cả hai:
Mã:
wg set wg0 peer client-public-key allowed-ips 10.0.0.2
Trên máy khách, hãy chạy lệnh sau để mở giao diện:
Mã:
wg-quick up wg0
Mã:
[#] ip link add wg0 type wireguard[#] wg setconf wg0 /dev/fd/63[#] ip -4 address add 10.0.0.2/24 dev wg0[#] ip link set mtu 1420 up dev wg0[#] wg set wg0 fwmark 51820
Mã:
wg
Mã:
giao diện: wg0 khóa công khai: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4= khóa riêng: (ẩn) cổng lắng nghe: 38830 fwmark: 0xca6cpeer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= điểm cuối: 69.87.216.36:51820 ip được phép: 0.0.0.0/0 lần bắt tay gần nhất: 41 giây trước chuyển: 5,27 KiB đã nhận, 12,97 KiB đã gửi