Trong môi trường mạng gia đình hiện đại, có rất nhiều thiết bị không cần địa chỉ IP công khai hay phải kết nối trực tiếp với internet. Chúng ta có thể kể đến các thiết bị IoT, camera an ninh, hoặc các thiết bị giải trí. Việc định tuyến lưu lượng của những thiết bị này qua một mạng riêng ảo (VPN) là giải pháp lý tưởng để tăng cường bảo mật và quyền riêng tư, đồng thời giấu địa chỉ IP thật của chúng. Nếu bạn đang sử dụng OPNsense làm tường lửa và bộ định tuyến chính, việc tự động định tuyến lưu lượng đã chọn qua VPN, đồng thời vẫn cho phép truy cập cục bộ, thực sự rất dễ dàng.
Bài viết này trên khothuthuat.net sẽ hướng dẫn bạn cách thiết lập để đạt được điều đó. Tất cả những gì bạn cần là một nhà cung cấp VPN hỗ trợ WireGuard và các chi tiết cấu hình cần thiết để kết nối với nhà cung cấp bằng một ứng dụng WireGuard thông thường. Các nhà cung cấp phổ biến như Windscribe thường hoạt động tốt. Với NordVPN, dù sử dụng NordLynx (dựa trên WireGuard), bạn vẫn có thể trích xuất khóa kết nối cần thiết. Khi đã có cấu hình WireGuard từ nhà cung cấp và đã cài đặt plugin WireGuard VPN trên OPNsense, bạn đã sẵn sàng bắt đầu.
Chuẩn bị trước khi bắt đầu
Trước khi đi sâu vào cấu hình, hãy đảm bảo bạn đã có đầy đủ các yếu tố cần thiết:
- Dịch vụ VPN hỗ trợ WireGuard: Đảm bảo bạn đã đăng ký một dịch vụ VPN cung cấp cấu hình WireGuard.
- Plugin WireGuard trên OPNsense: Truy cập System -> Firmware -> Plugins và tìm kiếm “os-wireguard” để cài đặt nếu chưa có.
- Thông tin cấu hình WireGuard từ nhà cung cấp VPN: Bạn cần các thông tin như Public Key, Pre-shared Key, Endpoint Address, Endpoint Port và Tunnel Address.
Kết nối OPNsense với VPN của bạn
Bước đầu tiên là thiết lập kết nối giữa OPNsense và nhà cung cấp VPN của bạn.
Tạo Peer và thiết lập kết nối
Bạn sẽ cần cấu hình nhà cung cấp VPN của mình như một “peer” trong WireGuard đang chạy trên OPNsense. Về cơ bản, điều này tạo ra một máy khách kết nối với nhà cung cấp, mặc dù chưa có lưu lượng nào được định tuyến qua nó.
Trong giao diện OPNsense, điều hướng đến VPN, chọn WireGuard, sau đó chọn Peers. Nhấn vào nút “Add” để tạo một peer mới và nhập các thông tin sau:
- Name: Đặt tên bất kỳ để dễ nhận biết (ví dụ: WindscribeVPN).
- Public key: Lấy từ phần
[Peer]
trong cấu hình WireGuard của nhà cung cấp. - Pre-shared key: Lấy từ phần
[Peer]
trong cấu hình WireGuard của nhà cung cấp (nếu có). - Allowed IPs: Nhập
0.0.0.0/0
(và::/0
nếu sử dụng IPv6). Điều này cho phép VPN xử lý mọi lưu lượng đến. - Endpoint address: Lấy từ phần
[Peer]
trong cấu hình WireGuard của nhà cung cấp. - Endpoint port: Lấy từ địa chỉ endpoint trong cấu hình WireGuard của bạn.
- Keepalive interval: Đặt là
25
(giúp duy trì kết nối ổn định).
Thiết lập cấu hình WireGuard Peer trên OPNsense cho Windscribe VPN
Tiếp theo, chúng ta sẽ tạo một interface cho WireGuard. Trong OPNsense, một interface đóng vai trò là cổng cho luồng lưu lượng. Chúng ta sẽ sử dụng WireGuard như một interface cho các thiết bị được chỉ định. Điều hướng đến VPN, chọn WireGuard, sau đó chọn Settings. Nhập các chi tiết sau:
- Name: Đặt tên bất kỳ để dễ nhận biết (ví dụ: WG_Interface).
- Public key/Private key: Nhấp vào biểu tượng bánh răng để tự động tạo cả hai khóa.
- Tunnel address: Lấy từ phần
[Interface]
trong cấu hình WireGuard của nhà cung cấp (ví dụ: 10.x.x.x/24). - Peers: Đặt thành peer bạn vừa tạo ở trên.
- Disable routes: Đảm bảo rằng tùy chọn này được đánh dấu (checked). Điều này cực kỳ quan trọng để ngăn tất cả lưu lượng của bạn bị định tuyến qua VPN thay vì chỉ các thiết bị được chỉ định.
Kiểm tra trạng thái kết nối
Sau khi hoàn tất các cài đặt trên, hãy nhấp vào “Apply” và đảm bảo WireGuard được bật trong phần Settings tổng thể. Cấu hình có thể khác một chút tùy thuộc vào nhà cung cấp VPN của bạn, nhưng các bước này thường đủ để OPNsense kết nối với VPN và nhận một địa chỉ IP.
Kiểm tra lại trạng thái kết nối tại VPN -> WireGuard -> Status. Bạn sẽ thấy kết nối được thiết lập và có địa chỉ IP từ nhà cung cấp VPN.
Trạng thái kết nối WireGuard đang hoạt động trên OPNsense
Sau khi kiểm tra kết nối, bạn đã sẵn sàng chuyển sang bước tạo một interface mà qua đó lưu lượng có thể được định tuyến. Hãy nhớ, đảm bảo Disable routes đã được đánh dấu, nếu không, toàn bộ lưu lượng mạng của bạn sẽ bị định tuyến qua kết nối VPN.
Tạo Interface và Gateway chuyên biệt
Để các thiết bị cụ thể có thể sử dụng VPN, chúng ta cần tạo một interface riêng và gateway cho nó.
Gán Interface cho WireGuard
Điều hướng đến Interfaces và nhấp vào Assignments. Tại đây, chúng ta sẽ gán WireGuard một interface riêng, thường sẽ là một trong các tùy chọn (ví dụ: “opt2”). Sau khi đã gán, nhấp vào tên interface mới của bạn ở phía trên để vào cài đặt của nó.
Có một số điều cần lưu ý ở đây:
- Kích hoạt Interface: Đảm bảo rằng interface được kích hoạt bằng cách đánh dấu vào ô kiểm ở trên cùng.
- Dynamic gateway policy: Trong một số trường hợp, việc bật tùy chọn “Dynamic gateway policy” có thể giải quyết các vấn đề về kết nối (ví dụ: client không thể hoàn tất handshake với nhà cung cấp). Nếu gặp sự cố, hãy thử bật cài đặt này. Cài đặt có thể thay đổi tùy thuộc vào nhà cung cấp, vì vậy hãy thử nghiệm nếu có vấn đề.
Cài đặt WireGuard Interface trong OPNsense
Thiết lập Gateway cho VPN
Tiếp theo, chúng ta sẽ tạo gateway của mình. Điều hướng đến System, chọn Gateways, và sau đó chọn Configuration. Một gateway thường đã được tạo tự động khi bạn tắt tính năng định tuyến, ví dụ như “WIREGUARD_ONLY_GW”. Nếu gateway đã tồn tại, bạn có thể tiếp tục. Nếu không, bạn có thể tự tạo một gateway bằng cách bật “Far Gateway”.
Sau khi đã có gateway, chúng ta sẽ chuyển sang các quy tắc tường lửa để chỉ định lưu lượng cụ thể mà chúng ta muốn định tuyến qua VPN.
Thiết lập Alias và Quy tắc Tường lửa (Firewall Rules)
Đây là bước cuối cùng và quan trọng nhất để điều hướng lưu lượng của các thiết bị cụ thể.
Tạo Alias cho các thiết bị cần định tuyến
Truy cập Firewall, chọn Aliases, và tạo một alias mới có kiểu Host. Alias này sẽ đại diện cho các địa chỉ IP của các thiết bị mà chúng ta muốn định tuyến qua VPN.
- Khuyến nghị: Để định tuyến lưu lượng một cách nhất quán, thiết bị cần có địa chỉ IP cục bộ cố định. Bạn nên sử dụng các địa chỉ IP được đặt trước (reserved IP addresses) cho các thiết bị quan trọng như camera an ninh, thiết bị IoT hoặc các thiết bị giải trí. Bạn cũng có thể sử dụng “khối” địa chỉ IP cho các loại thiết bị cụ thể (ví dụ: 192.168.1.100-192.168.1.150 cho các thiết bị IoT).
Tạo Alias RFC1918 cho truy cập cục bộ
Tiếp theo, hãy tạo một alias RFC1918 có kiểu URLs (IPs). Alias này không bắt buộc nhưng nó sẽ cho phép các thiết bị đó vẫn thực hiện kết nối cục bộ như bình thường. Nếu không có alias này, lưu lượng gửi đến các địa chỉ IP cục bộ từ các thiết bị đó cũng sẽ bị định tuyến qua WireGuard interface.
Thêm các dải địa chỉ IP sau vào alias này, đây là các địa chỉ được phân bổ cho mạng riêng tư:
192.168.0.0/16
10.0.0.0/8
172.16.0.0/12
Áp dụng Quy tắc Tường lửa LAN
Trong phần quy tắc LAN của tường lửa (Firewall -> Rules -> LAN), tạo một quy tắc mới với các thiết lập sau:
- Action: “Pass” (cho phép).
- Source: Alias bạn đã tạo để đại diện cho các thiết bị cần định tuyến qua VPN.
- Destination: Đặt invert checked (đảo ngược) và chọn alias RFC1918 của bạn. Điều này có nghĩa là mọi lưu lượng không đi đến các địa chỉ IP cục bộ sẽ được xử lý bởi quy tắc này.
- Gateway: Đặt là gateway WireGuard của bạn (ví dụ: WIREGUARD_ONLY_GW).
Lưu quy tắc này và điều quan trọng là đặt quy tắc này lên trên quy tắc “Default allow LAN to any rule” để đảm bảo lưu lượng khớp với nó trước tiên.
Cấu hình NAT Outbound
Cuối cùng, điều hướng đến NAT và sau đó là Outbound. Chuyển chế độ sang Hybrid ở phía trên. Sau đó, tạo một quy tắc mới trên WireGuard interface của bạn với các thiết lập:
- Source: Alias đại diện cho các thiết bị mà chúng ta muốn định tuyến qua VPN.
- Translation: Đặt là “Interface address”.
Nhấp vào “Apply” để lưu thay đổi.
Bây giờ, bạn đã hoàn tất! Các thiết bị được chỉ định của bạn sẽ chỉ giao tiếp qua VPN WireGuard.
Kết luận
Với OPNsense, việc định tuyến lưu lượng của các thiết bị cụ thể qua VPN trở nên vô cùng đơn giản và mạnh mẽ. Giải pháp này giúp bạn tăng cường đáng kể quyền riêng tư và bảo mật cho các thiết bị không cần IP công khai, đặc biệt là các thiết bị IoT, mà không cần cài đặt ứng dụng VPN trên từng thiết bị. Điều này không chỉ đơn giản hóa việc quản lý mà còn giúp tối ưu số lượng thiết bị được phép kết nối đồng thời với nhà cung cấp VPN của bạn.
Bạn cũng có thể xem xét các tùy chọn nâng cao như:
- Thêm Kill Switch: Bằng cách thêm một thẻ (tag) vào quy tắc LAN ban đầu của bạn, sau đó tạo một quy tắc nổi (floating rule) để chặn lưu lượng có thẻ đó nếu kết nối VPN bị ngắt.
- Định tuyến DNS qua VPN: Chỉ định máy chủ DNS của nhà cung cấp VPN thông qua alias bạn đã tạo trong cài đặt DHCP để ngăn rò rỉ DNS.
Hy vọng hướng dẫn chi tiết này từ khothuthuat.net đã giúp bạn tự tin cấu hình OPNsense để bảo vệ mạng gia đình của mình một cách hiệu quả. Nếu có bất kỳ câu hỏi hoặc kinh nghiệm nào muốn chia sẻ, đừng ngần ngại để lại bình luận bên dưới nhé!