Cách thiết lập WIREGUARD trên máy chủ BUNTU 20.04

1. WireGuard là gì?

WireGuard là một VPN đơn giản nhưng nhanh chóng và hiện đại. Bạn có thể sử dụng hướng dẫn bên dưới này để  cài đặt và cấu hình máy chủ WireGuard + máy khách.

Bước 1: Cài đặt WireGuard

$ sudo apt update
$ sudo apt install wireguard

Bước 2: Tạo khóa cá nhân

$ wg genkey | sudo tee /etc/wireguard/private.key

Tạo khóa công khai

$ sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Bước 3: Chọn Địa chỉ IPv4 và (hoặc) IPv6

Bạn sẽ cần chọn một dải IP. Trong ví dụ này, chúng tôi sẽ sử dụng phạm vi 192.168.0.0– 192.168.255.255.

Bước 4: Tạo tệp cấu hình máy chủ WireGuard

Mở tệp sau bằng trình soạn thảo văn bản mà bạn chọn. Trong ví dụ này, chúng tôi sẽ sử dụng nano.

$ sudo nano /etc/wireguard/wg0.conf

Viết như sau:

[Interface]
PrivateKey = serves_generated_private_key
Address = 192.168.1.1/24
ListenPort = 51820
SaveConfig = true

Lưu các tập tin.

Bước 5: Điều chỉnh cấu hình mạng máy chủ. Để cấu hình chuyển tiếp, chúng ta cần thêm một dòng vào /etc/sysctl.conf file

$ sudo nano /etc/sysctl.conf

Thêm phần sau vào cuối tệp.

net.ipv4.ip_forward=1

Nếu bạn đang sử dụng IPv6, bạn có thể thêm phần sau vào cuối tệp.

net.ipv6.conf.all.forwarding=1

Để đọc và tải các giá trị mới của phiên đầu cuối hiện tại của bạn, hãy chạy lệnh sau.

$ sudo sysctl -p

Đầu ra:

net.ipv4.ip.forward = 1

hoặc

net.ipv6.conf.all.forwarding = 1

Tùy thuộc vào sự lựa chọn của bạn về cấu hình.

Bước 6: Cấu hình tường lửa máy chủ.

Chúng tôi cần tìm giao diện mạng công cộng của máy chủ. Chúng ta có thể làm điều đó bằng cách chạy lệnh sau.

$ ip route list default

Đầu ra

default via XXX.XXX.XXX.XXX dev eth0 onlink

Trong trường hợp eth0là giao diện của mạng công cộng của chúng tôi

Chúng tôi sẽ thêm giao diện này vào quy tắc bảng ip.

Mở tệp cấu hình.

$ sudo nano /etc/wireguard/wg0.conf

Ở cuối tệp. Thêm những điều sau:

PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Phần cuối cùng của cấu hình tường lửa là cho phép lưu lượng đến và đi từ cổng WireGuard UPD. Cổng mà chúng ta sẽ cần mở là 51820. Nếu bạn đã chọn một cổng khác, hãy đảm bảo sử dụng cổng đó trong lệnh sau.

$ sudo ufw allow 51280/udp

Sau khi thêm các quy tắc, chúng ta cần tắt và bật lại UFW.

$ sudo ufw disable
$ sudo ufw enable

Bạn có thể kiểm tra xem tất cả các quy tắc có được áp dụng chính xác hay không bằng cách thực hiện lệnh sau.

$ sudo ufw status

Đầu ra

To                         Action      From
--                         ------      ----
51820/udp                  ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
51820/udp (v6)             ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

Bước 7: Khởi động Máy chủ WireGuard.

Chúng tôi có thể kích hoạt dịch vụ WireGuard để khởi động khi khởi động.

$ sudo systemctl enable wg-quick@wg0.service

Hãy bắt đầu dịch vụ.

$ sudo systemctl start wg-quick@wg0.service

Đảm bảo rằng dịch vụ đang hoạt động. Bạn có thể kiểm tra điều này bằng cách chạy lệnh sau.

$ sudo systemctl status wg-quick@wg0.service

Bước 8: Định cấu hình ứng dụng khách WireGuard trên MacOS và Windows 10 Trong ví dụ này, chúng tôi đang sử dụng ứng dụng khách Mac Os

Đối với MacOS, bạn có thể tải xuống ứng dụng từ App Store. Chỉ cần tìm kiếm WireGuard. Sau khi tải xuống ứng dụng, bạn có thể khởi động nó.

Ở góc trái của màn hình, bạn sẽ thấy một dấu +. Nhấp vào nó và chọn tùy chọn Add Empty Tunnel.

 

Bạn sẽ thấy rằng nó đã tạo khóa công khai và khóa riêng tư cho hệ thống khách hàng của bạn. Tuy nhiên, chúng ta vẫn cần thêm một số quy tắc vào tệp. Thêm các dòng sau vào tệp của bạn.

[Interface]
PrivateKey = YOUR_CLIENTS_PRIVATE_KEY
Address = 192.168.1.10/24
DNS = 8.8.8.8, 8.8.4.4

[Peer]
PublicKey = YOUR_SERVERS_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = YOUR_SERVERS_WAN_IP:51820

Đặt tên cho tệp và nhấp vào lưu. Bạn có thể nhận được thông báo cho biết “WireGuard” Muốn Thêm Cấu hình VPN Đảm bảo nhấn Allow.

Bây giờ trở lại máy chủ. Chạy lệnh sau để cho biết máy chủ bây giờ là khách hàng.

$ sudo wg set wg0 peer YOUR_CLIENTS_PUBLIC_KEY allowed-ips 192.168.1.10

Bây giờ hãy kiểm tra kết nối xem chúng có hoạt động không? Chúc các bạn thành công.

Leave a Reply