Cách thiết lập WireGuard VPN trên Ubuntu 20.04

theanh

Administrator
Nhân viên
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.

Đ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
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:
Mã:
apt-get install iptables -y
Sau khi cài đặt hoàn tất, bạn có thể tiến hành bước tiếp theo.

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
Sau khi gói WireGuard đã được cài đặt, bạn có thể tiến hành bước tiếp theo.

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
Sau khi cả hai khóa được tạo, bạn có thể kiểm tra chúng bằng lệnh sau:
Mã:
ls /etc/wireguard
Bạn sẽ thấy đầu ra sau:
Mã:
privatekey publickey
Bạn có thể hiển thị nội dung của khóa riêng bằng lệnh sau:
Mã:
cat /etc/wireguard/privatekey
Bạn sẽ thấy đầu ra sau:
Mã:
4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=
Bạn có thể hiển thị nội dung của khóa công khai bằng lệnh sau:
Mã:
cat /etc/wireguard/publickey
Bạn sẽ thấy đầu ra sau đầu ra:
Mã:
00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
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:
Mã:
nano /etc/wireguard/wg0.conf
Thêm các dòng sau:
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
Lưu và đóng tệp khi bạn hoàn tất.

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.
Tiếp theo, hãy thiết lập quyền thích hợp cho tệp privatekey và wg0.
Mã:
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
Tiếp theo, hãy bật giao diện wg0 bằng cách chạy lệnh sau:
Mã:
wg-quick up wg0
Bạn sẽ nhận được kết quả sau:
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
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:
Mã:
systemctl start [emailprotected]
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:
Mã:
systemctl enable [emailprotected]
Tiếp theo, hãy xác minh trạng thái của dịch vụ WireGuard bằng lệnh sau:
Mã:
systemctl status [emailprotected]
Bạn sẽ nhận được kết quả đầu ra sau:
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.
Bạn cũng có thể kiểm tra trạng thái của giao diện wg0 bằng lệnh sau:
Mã:
wg show wg0
Bạn sẽ nhận được kết quả sau:
Mã:
interface: wg0 public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= private key: (hidden) listening port: 51820
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:
Mã:
ip a show wg0
Bạn sẽ nhận được kết quả sau đầu ra:
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
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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
Thay đổi dòng sau:
Mã:
net.ipv4.ip_forward=1
Lưu và đóng tệp sau đó chạy lệnh sau để áp dụng các thay đổi cấu hình:
Mã:
sysctl -p
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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
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:
Mã:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
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:
Mã:
nano /etc/wireguard/wg0.conf
Thêm các dòng sau:
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
Lưu và đóng tệp khi bạn hoàn tất.

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.
Tiếp theo, bạn sẽ cần thêm khóa công khai và địa chỉ IP của máy khách trên máy chủ.

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
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:
Mã:
wg-quick up wg0
Bạn sẽ nhận được kết quả sau:
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
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:
Mã:
wg
Bạn sẽ nhận được kết quả sau:
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

Kết luận​

Xin chúc mừng! bạn đã cài đặt và định cấu hình thành công máy chủ và máy khách VPN WireGuard trên máy chủ Ubuntu 20.04. Bây giờ, lưu lượng truy cập từ máy khách của bạn sẽ được định tuyến qua máy chủ của bạn. Bây giờ bạn có thể lướt internet ẩn danh và giữ dữ liệu của mình ở chế độ riêng tư. Hãy xem hướng dẫn lệnh tee Linux của chúng tôi.
 
Back
Bên trên