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 eth0
là 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.