Hướng dẫn Thiết lập Đường hầm VPN WireGuard giữa pfSense và Web Server (Linux)
TỔNG QUAN KIẾN TRÚC MẠNG
-
pfSense Firewall (VPN Server):
-
IP Public (WAN):
103.110.85.143 -
IP VPN Nội bộ (Đầu hầm 1):
10.0.0.1/24
-
-
Web Server (VPN Client):
-
Hệ điều hành: Ubuntu/CentOS
-
IP VPN Nội bộ (Đầu hầm 2):
10.0.0.2/24
-
PHẦN 1: CẤU HÌNH TRÊN PFSENSE (VPN SERVER)
Bước 1: Cài đặt và Kích hoạt WireGuard
-
Truy cập System > Package Manager > Available Packages.
-
Tìm kiếm và Install gói
WireGuard. -
Truy cập VPN > WireGuard > Settings.
-
Tích chọn Enable WireGuard, lưu lại (
Save&Apply Changes).

Bước 2: Tạo Tunnel và Sinh Khóa (Key)
-
Chuyển sang tab Tunnels, chọn Add Tunnel.
-
Enable: Tích chọn.
-
Description:
VPN_To_WebServer. -
Listen Port:
51820. -
Interface Keys: Bấm nút Generate để sinh cặp khóa tự động.
-
Lưu ý quan trọng: Copy và lưu trữ lại chuỗi Public Key của pfSense ra một file text để sử dụng cho Web Server ở Phần 2.
-
-
Interface Addresses:
-
IP:
10.0.0.1 -
Subnet:
24
-
-
Bấm Save và Apply Changes.

Bước 3: Thiết lập Tường lửa (Mở cửa cho VPN)
Mở cổng giao tiếp ngoài (WAN):
-
-
Vào Firewall > Rules > WAN.
-
Thêm Rule: Action:
Pass| Protocol:UDP| Destination Port Range:51820to51820. -
Lưu lại.
-

Mở cổng lưu lượng bên trong (WireGuard):
-
-
Vào Firewall > Rules > WireGuard.
-
Thêm Rule: Action:
Pass| Protocol:Any| Source:Any| Destination:Any. -
Lưu và Apply Changes.
-

PHẦN 2: CẤU HÌNH TRÊN WEB SERVER (VPN CLIENT)
Bước 1: Cài đặt và Sinh Khóa
-
Truy cập SSH vào Web Server và cài đặt WireGuard:
sudo apt update && sudo apt install wireguard -y -
Tự động sinh cặp khóa và lưu ra file:
wg genkey | tee privatekey | wg pubkey > publickey -
Xem và copy đoạn mã Public Key của Web Server (gõ lệnh
cat publickey).
Bước 2: Tạo File Cấu Hình (wg0.conf)
-
Tạo và chỉnh sửa file cấu hình:
sudo nano /etc/wireguard/wg0.conf -
Khai báo thông số mạng và trao đổi khóa:
[Interface] PrivateKey = <Dán Private Key CỦA MÁY WEB vào đây> Address = 10.0.0.2/24 [Peer] PublicKey = <Dán Public Key CỦA PFSENSE đã lưu ở Phần 1 vào đây> Endpoint = 103.110.85.143:51820 AllowedIPs = 10.0.0.0/24 PersistentKeepalive = 25 -
Lưu file (
Ctrl+O,Enter,Ctrl+X).

PHẦN 3: KẾT NỐI VÀ KIỂM TRA (HANDSHAKE)
Bước 1: Khai báo Peer trên pfSense
-
Quay lại giao diện pfSense: VPN > WireGuard > Peers -> Add Peer.
-
Tunnel: Chọn
tun_wg0. -
Dynamic Endpoint: Tích chọn (bỏ trống ô IP/Port).
-
Public Key: Dán Public Key của máy Web (đã lấy ở Phần 2 - Bước 1) vào đây.
-
Allowed IPs: Điền
10.0.0.2/32.-
(Giải thích cho báo cáo: Dùng /32 thay vì /24 để thiết lập bảo mật đặc quyền tối thiểu (Least Privilege), đảm bảo chỉ duy nhất máy Web có IP 10.0.0.2 được phép đi qua đường hầm này).
-
-
Bấm Save và Apply Changes.

Vào Status > Services, bấm khởi động lại (Restart) dịch vụ WireGuard để làm mới cấu hình.

Bước 2: Khởi động đường hầm và Kiểm tra
-
Trên Web Server, bật kết nối VPN:
sudo wg-quick up wg0 -
Kiểm tra trạng thái Bắt tay (Handshake):
sudo wg showCần thấy dòng
latest handshakekèm thời gian vàtransfercó dữ liệu.

Kiểm tra lưu thông mạng (Ping Test):
ping 10.0.0.1 -c 4
Kết quả thành công khi nhận được các dòng phản hồi 64 bytes from 10.0.0.1... và tỷ lệ 0% packet loss.
