Logo
Featured Image

Hướng dẫn Thiết lập Đường hầm VPN WireGuard giữa pfSense và Web Server (Linux)

Author
Tobi 22/04/2026 3 views

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

  1. Truy cập System > Package Manager > Available Packages.

  2. Tìm kiếm và Install gói WireGuard.

  3. Truy cập VPN > WireGuard > Settings.

  4. Tích chọn Enable WireGuard, lưu lại (Save & Apply Changes).

Bước 2: Tạo Tunnel và Sinh Khóa (Key)

  1. Chuyển sang tab Tunnels, chọn Add Tunnel.

  2. Enable: Tích chọn.

  3. Description: VPN_To_WebServer.

  4. Listen Port: 51820.

  5. 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.

  6. Interface Addresses:

    • IP: 10.0.0.1

    • Subnet: 24

  7. Bấm SaveApply 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: 51820 to 51820.

    • 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

  1. Truy cập SSH vào Web Server và cài đặt WireGuard:

    sudo apt update && sudo apt install wireguard -y
    
  2. Tự động sinh cặp khóa và lưu ra file:

    wg genkey | tee privatekey | wg pubkey > publickey
    
  3. 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)

  1. Tạo và chỉnh sửa file cấu hình:

    sudo nano /etc/wireguard/wg0.conf
    
  2. 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
    
  3. 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

  1. Quay lại giao diện pfSense: VPN > WireGuard > Peers -> Add Peer.

  2. Tunnel: Chọn tun_wg0.

  3. Dynamic Endpoint: Tích chọn (bỏ trống ô IP/Port).

  4. Public Key: Dán Public Key của máy Web (đã lấy ở Phần 2 - Bước 1) vào đây.

  5. 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).

  6. Bấm SaveApply 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

  1. Trên Web Server, bật kết nối VPN:

    sudo wg-quick up wg0
    
  2. Kiểm tra trạng thái Bắt tay (Handshake):

    sudo wg show
    

    Cần thấy dòng latest handshake kèm thời gian và transfer có 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.

 

Bình luận (0)

+ =
Zalo