Tất cả tài liệu

VPN Site-to-Site

    Cấu hình kết nối thiết bị behind NAT đến VPN_S2S
    Cấu hình kết nối thiết bị behind NAT đến VPN_S2S
    Updated on 05 May 2025

    Bài viết này hướng dẫn cách build thiết bị Behind NAT để kết nối VPN_S2S với dịch vụ VPN Site-to-Site của FPT Smart Cloud.

    Cần đảm bảo các điều kiện sau:

    • VPN Site-to-Site trên trang Portal
    • Pfsense đã được download và boot image trên cloud với tên: Pfsense
    • Public IP, giảm độ phức tạp thì gắn trực tiếp vào VM, không dùng Floating IP
    • 1 VM Pfsense để phục vụ debug( Optional )
    • 2 VM 2 đầu, VM-01 Ubuntu đầu Pfsense1 có IP 172.20.2.87, 1 VM-02 Ubuntu ở đầu Pfsense3 có IP 172.18.7.147

    Mô hình như sau: file

    Bước 1: Build Pfsense for Cloud

    • Build Image Pfsense trên Horizon cấu hình 2C4G- 1 IP public gắn trực tiếp, 1 IP mạng Local cần VPN
    • Có thể vào console VM thông qua SSH ---

    Bước 2: Cấu hình cho VPN Site-to-Site (Pfsense 3)

    Truy cập và tạo VPN Site-to-Site trên https://console.fptcloud.com/

    - Tạo IPSec policy: file - Tạo IKE policy: file - Tạo Customer Gateway:
    +Remote private network: dãy Lan Subnet cần peering của Pfsense
    +Remote IP public: IP public của Pfsense file - Tạo VPN Connection:

    Với thông số "Pre-shared key" cần lưu lại để điền vào Pfsense file

    Bước 3: Cấu hình cho Pfsense 1

    - Đăng nhập vào console của Pfsense 1, thiết lập IP tĩnh 80.80.80.211 cho WAN, 172.20.0.27 cho LAN

    - Thiết lập Default Gateway của Pfsense 1 là IP LAN của Pfsense 2: 80.80.80.13

    - Đăng nhập vào website theo địa chỉ IP: https://80.80.80.211 , có thể hiện thông báo SSL như sau: file

    • Thông tin đăng nhập mặc định:

    User: Admin

    Pass: Pfsense (Có thể set lại pass khi đăng nhập lần đầu trên web)

    - Nếu chưa có LAN thì add thêm LAN vào như hình: file - Tiến hành config Tunnel cho Pfsense:

    Tại tab VPN, chọn IPsec → Tunnels và ấn chọn Add P1. file

    • Set up Phase 1 như sau:

    Chú ý:

    • Pre-Shared Key: có thể tạo mới và nhớ lưu lại để nhập vào Pfsense 2 trong quá trình kết nối.
    • Remote Gateway: là IP LAN của Pfsense2 (80.80.80.13) file
    • Set up Phase 2 như sau: file

    Bước 4: Cấu hình cho Pfsense 2

    - Đăng nhập vào console của Pfsense 1, thiết lập IP tĩnh 103.176.147.48 cho WAN, 80.80.80.13 cho LAN

    - Đăng nhập vào website theo địa chỉ IP: https://103.176.147.48 , có thể hiện thông báo SSL như sau: file Thông tin đăng nhập mặc định:

    User: Admin

    Pass: Pfsense (Có thể set lại pass khi đăng nhập lần đầu trên web)

    - Nếu chưa có LAN thì add thêm LAN vào như hình: file

    • Tiến hành cấu hình Tunnel 1 cho Pfsense2 kết nối Pfsense1:_**

    Tại tab VPN, chọn IPsec → Tunnels và ấn chọn Add P1. file

    • Set up Phase 1 như hình sau:

    Chú ý:

    • Pre-Shared Key: Dùng lại cua Pfsense1 vào Pfsense02 trong quá trình kết nối.
    • Remote Gateway: là IP WAN Psense1 (80.80.80.211) file
    • Set up Phase 2 như sau: file - Tiến hành cấu hình Tunnel 1 cho Pfsense2 kết nối ( VPN S2S) Pfsense3:

    Tại tab VPN, chọn IPsec → Tunnels và ấn chọn Add P1. file

    • Set up Phase 1 như sau:

    Chú ý:

    • Pre-Shared Key: Dùng lại của Pfsense3 vào Pfsense2 trong quá trình kết nối (trong quá trình tạo VPN Site-to-Site đã có key)
    • Remote Gateway: là IP WAN Pfsense3. (203.29.19.216)
    • My identifier: là IP WAN của Pfsense2. (103.176.147.48) file
    • Set up Phase 2 như sau: file ---

    Bước 5: Cấu hình NAT cho Pfsense2, mở Firewall trên Pfsense 1 và Pfsense 2

    Vào đường dẫn cấu hình NAT như sau:

    Firewall/NAT/Outbound/ → chọn Manual Outbound NAT rule generation(AON - Advanced Outbound NAT)

    Chọn Add cho cả chiều file Cấu hình như sau cho chiều:file file Cấu hình như sau cho chiều:file file

    Bước 6 : Mở Firewall trên Pfsense1 và Pfsense2

    Trên Pfsense1 theo đường dẫn: Firewall/Rules sẽ có 3 tag cần mở: WAN, LAN và IPsec file

    Trong cả 3 mục trên ta đều sẽ Add 2 chiều filefile cho tất cả protocol từ bất kì thiết bị nào cũng có thể đi qua (Lab nên không cần quá khắt khe secure) file Làm tương tự như trên cho Pfsense 2

    Lưu ý vì trên Pfsense2 là IP Public nên có thể phải rào về mục source và any khi cấu hình cho WAN, chỉ cho phép kết nối đến từ source Pfsense3: "203.29.19.216"

    Bước 7: Cấu hình Route cho VM-01

    Ta ssh vào: 172.20.2.87 theo câu lệnh

    ssh [email protected]
    root@clientlinux:~# ping 172.18.7.187
    PING 172.18.7.187 (172.18.7.187) 56(84) bytes of data.
    64 bytes from 172.18.7.187: icmp_seq=1 ttl=60 time=34.6 ms
    64 bytes from 172.18.7.187: icmp_seq=2 ttl=60 time=24.3 ms
    64 bytes from 172.18.7.187: icmp_seq=3 ttl=60 time=23.0 ms
    64 bytes from 172.18.7.187: icmp_seq=4 ttl=60 time=23.3 ms

     
    Cấu hình iproute như sau: Chọn gateway là IP LAN của pfsense01 ( 172.20.0.27)

    sudo ip route add 172.18.7.0/24 via 172.20.0.27
    sudo ip route add 203.29.19.216/32 via 172.20.0.27

    Bước trên có thể cấu hình Static route trong Router dưới hạ tầng OSP thông qua giao diện Horizon, hoặc OSP Cli (có nhiều cách)

    Tiến hành Ping tới IP của VM-02:172.18.7.147

    ping 172.18.7.187

    Nếu output là như hình dưới thì đã kết nối VPN behind NAT Pfsense01↔ Pfsense02(NAT) ↔ VPN S2S thành công.

    root@clientlinux:~# ping 172.18.7.187
    PING 172.18.7.187 (172.18.7.187) 56(84) bytes of data.
    64 bytes from 172.18.7.187: icmp_seq=1 ttl=60 time=34.6 ms
    64 bytes from 172.18.7.187: icmp_seq=2 ttl=60 time=24.3 ms
    64 bytes from 172.18.7.187: icmp_seq=3 ttl=60 time=23.0 ms
    64 bytes from 172.18.7.187: icmp_seq=4 ttl=60 time=23.3 ms

    Bước 8: Debug- Tracert