Cách thiết lập Wireguard VPN trên Linux

Wireguard là một daemon mạng riêng ảo (VPN) mã nguồn mở mạnh mẽ có thể chạy trên cả desktop và thiết bị di động. Nó cung cấp một giải pháp thay thế nhanh và nhẹ cho các VPN truyền thống như IPsec và OpenVPN. Bài viết hôm nay sẽ chỉ cho bạn cách cài đặt Wireguard và tạo một thiết lập VPN đơn giản bằng 3 máy Linux.

Tải Wireguard

Bước đầu tiên để thiết lập Wireguard trên Linux là tải xuống các công cụ cốt lõi của nó từ kho lưu trữ của bản phân phối. Điều này cho phép bạn kiểm soát mô-đun kernel Wireguard tích hợp bằng các lệnh userspace.

Để cài đặt các công cụ cốt lõi trong Ubuntu và Debian, hãy chạy lệnh sau:

sudo apt install wireguard wireguard-tools

Trong Fedora, bạn có thể sử dụng trình quản lý gói dnf:

sudo dnf install wireguard-tools

Đối với Arch Linux, bạn có thể chạy pacman để tải các công cụ cốt lõi của Wireguard:

sudo pacman -S wireguard-tools

Xác nhận rằng bạn đã cài đặt đúng các công cụ Wireguard bằng cách load màn hình trợ giúp của nó:

wg -h
Menu trợ giúp cho công cụ userspace Wireguard
Menu trợ giúp cho công cụ userspace Wireguard

Thiết lập Wireguard server

Giả định: Bài viết này giả định rằng bạn đang cài đặt Wireguard server trên hệ thống Linux có địa chỉ IPv4 có thể truy cập công khai. Các hướng dẫn vẫn sẽ hoạt động trên máy chủ đằng sau một NAT, nhưng nó sẽ không tìm thấy những node bên ngoài mạng con của nó.

Với bộ công cụ cốt lõi Wireguard trên máy Linux, giờ đây bạn có thể thiết lập server node của VPN. Node này sẽ đóng vai trò là cổng Internet cho các client node trong mạng.

Bắt đầu bằng cách điều hướng đến thư mục cấu hình Wireguard và đặt quyền mặc định của nó thành "root only":

cd /etc/wireguard
sudo umask 077

Lưu ý: Một số hệ thống có thể ngăn bạn vào thư mục "/etc/wireguard" với tư cách là người dùng thông thường. Để khắc phục điều đó, hãy chuyển sang người dùng root bằng sudo -s.

Tạo public và private key cho Wireguard server:

sudo sh -c 'wg genkey | tee /etc/wireguard/server-private-key | wg pubkey > /etc/wireguard/server-public-key'

Tạo file cấu hình máy chủ bằng trình soạn thảo văn bản yêu thích:

sudo nano /etc/wireguard/wg0.conf

Dán block code sau vào file cấu hình máy chủ:

[Interface]
PrivateKey = PASTE-YOUR-SERVER-PRIVATE-KEY-HERE
Address = 10.0.0.1/32
ListenPort = 60101
PostUp = iptables -t nat -I POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE

Mở một phiên terminal mới, sau đó in Wireguard private key của máy chủ:

sudo cat /etc/wireguard/server-private-key

Sao chép private key của máy chủ vào clipboard.

Sao chép private key của máy chủ trên Ubuntu
Sao chép private key của máy chủ trên Ubuntu

Thay thế giá trị của biến PrivateKey bằng key trên clipboard.

Private key của máy chủ trong cấu hình Wireguard
Private key của máy chủ trong cấu hình Wireguard

Tìm network interface có quyền truy cập Internet bằng lệnh ip:

ip route get 8.8.8.8
Tên của network interface có quyền truy cập Internet.
Tên của network interface có quyền truy cập Internet.

Đặt giá trị của flag -o trên cả hai biến PostUp và PostDown thành giao diện có quyền truy cập Internet, sau đó lưu file cấu hình.

Tên thiết bị phù hợp trong file cấu hình của Wireguard server.
Tên thiết bị phù hợp trong file cấu hình của Wireguard server.

Mở file "/etc/sysctl.conf" của máy chủ bằng trình soạn thảo văn bản yêu thích:

sudo nano /etc/sysctl.conf

Cuộn xuống dòng có chứa net.ipv4.ip_forward=1, sau đó xóa dấu thăng (#) ở phía trước.

Vị trí của tùy chọn chuyển tiếp IPv4 trong sysctl.conf.
Vị trí của tùy chọn chuyển tiếp IPv4 trong sysctl.conf.

Load lại cấu hình sysctl mới bằng cách chạy: sudo sysctl -p.

Quá trình load lại file sysctl.conf.
Quá trình load lại file sysctl.conf.

Thiết lập và kết nối Wireguard client

Lúc này, bạn đã có Wireguard server được cấu hình đúng mà không có bất kỳ peer nào. Để sử dụng, bạn cần thiết lập và kết nối Wireguard client đầu tiên của mình.

Điều hướng đến thư mục cấu hình Wireguard của hệ thống client và đặt quyền mặc định của nó:

cd /etc/wireguard
sudo umask 077

Tạo cặp key Wireguard của client bằng lệnh sau:

sudo sh -c 'wg genkey | tee /etc/wireguard/client1-private-key | wg pubkey > /etc/wireguard/client1-public-key'

Tạo file cấu hình Wireguard của client bằng trình soạn thảo văn bản yêu thích:

sudo nano /etc/wireguard/wg0.conf

Dán block code sau vào file cấu hình client:

[Interface]
PrivateKey = PASTE-YOUR-CLIENT1-PRIVATE-KEY-HERE
Address = 10.0.0.2/32
ListenPort = 60101
 
[Peer]
PublicKey = PASTE-YOUR-SERVER-PUBLIC-KEY-HERE
AllowedIPs = 0.0.0.0/0
Endpoint = PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60101
PersistentKeepalive = 25

Thay thế biến PrivateKey bằng private key của client.

Private key cho Wireguard client đầu tiên.
Private key cho Wireguard client đầu tiên.

Mở phiên terminal của Wireguard server, sau đó in public key của nó:

sudo cat /etc/wireguard/server-public-key

Đặt giá trị của biến PublicKey thành public key của máy chủ.

Public key của Wireguard server trong file cấu hình của client thứ hai.
Public key của Wireguard server trong file cấu hình của client thứ hai.

Thay đổi biến Endpoint thành địa chỉ IP của Wireguard server.

Địa chỉ IP của Wireguard server.
Địa chỉ IP của Wireguard server.

Lưu file cấu hình, sau đó sử dụng lệnh wg-quick để khởi động Wireguard client:

sudo wg-quick up wg0
Quá trình khởi động daemon Wireguard client.
Quá trình khởi động daemon Wireguard client.

Lưu ý: Lệnh này sẽ vô hiệu hóa kết nối mạng của client cho đến khi bạn khởi động Wireguard server. Để quay lại mạng ban đầu, hãy chạy sudo wg-quick down wg0.

Liên kết Wireguard server với client

Truy cập phiên terminal của Wireguard server, sau đó mở file cấu hình của máy chủ:

sudo nano /etc/wireguard/wg0.conf

Dán block code sau vào sau phần [Interface]:

[Peer]
PublicKey = PASTE-YOUR-CLIENT1-PUBLIC-KEY-HERE
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25

Đặt biến PublicKey thành public key của Wireguard client.

Vị trí của block [Peer] và public key của client.
Vị trí của block [Peer] và public key của client.

Lưu ý: Bạn có thể lấy public key bằng cách chạy sudo cat /etc/wireguard/client1-public-key trên client của mình.

Lưu file cấu hình, sau đó chạy lệnh sau để khởi động service Wireguard trên máy chủ:

sudo wg-quick up wg0
Thứ Ba, 06/08/2024 17:28
31 👨 65
0 Bình luận
Sắp xếp theo
    ❖ Linux