Trong kỷ nguyên số, việc bảo vệ quyền riêng tư và đảm bảo an toàn cho dữ liệu trực tuyến ngày càng trở nên quan trọng. Không phải mọi thiết bị trong mạng gia đình đều cần hiển thị địa chỉ IP công khai, đặc biệt là các thiết bị IoT hoặc những thiết bị cần lớp bảo mật tăng cườ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 truy cập từ các thiết bị được chỉ định qua VPN, đồng thời vẫn cho phép chúng truy cập mạng nội bộ, trở nên vô cùng dễ dàng. Bài viết này của caphecongnghe.com sẽ hướng dẫn bạn chi tiết cách thực hiện cấu hình này bằng WireGuard VPN trên OPNsense, giúp website của bạn khẳng định vị thế là một nguồn thông tin uy tín và vượt trội trong lĩnh vực công nghệ.
Tất cả những gì bạn cần là một nhà cung cấp VPN hỗ trợ WireGuard và các thông tin cấu hình cần thiết để kết nối với nhà cung cấp đó thông qua một client WireGuard thông thường. Với giải pháp này, bạn có thể định tuyến lưu lượng một cách chọn lọc, tăng cường bảo mật mà không cần cài đặt VPN client trên từng thiết bị riêng lẻ.
Chúng tôi sẽ sử dụng Windscribe làm ví dụ minh họa, nhưng hầu hết các nhà cung cấp VPN khác đều hoạt động tương tự. NordVPN là một trường hợp đặc biệt hơn vì dịch vụ này sử dụng NordLynx (dựa trên WireGuard), nhưng vẫn có những cách để trích xuất khóa kết nối cần thiết. Khi bạn đã có được hồ sơ 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!
Kết nối OPNsense với dịch vụ VPN
Bước đầu tiên trong hành trình định tuyến lưu lượng là thiết lập kết nối giữa OPNsense và nhà cung cấp VPN của bạn. Quy trình này bao gồm việc tạo một “peer” (điểm kết nối) và cấu hình một interface (giao diện) để WireGuard có thể hoạt động.
Tạo Peer và thiết lập kết nối WireGuard
Để OPNsense có thể “nhận diện” và kết nối với máy chủ VPN của bạn, chúng ta cần cấu hình nhà cung cấp VPN đó như một “peer” trong WireGuard. Điều này về cơ bản tạo ra một client trên OPNsense kết nối đến 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 quản lý OPNsense, điều hướng đến VPN, chọn WireGuard, sau đó chọn Peers. Nhập các thông tin sau:
- Name (Tên): Đặt tên bất kỳ để dễ nhận biết (ví dụ:
VPN_Windscribe
). - Public key (Khóa công khai): Lấy từ phần
[Peer]
trong tệp cấu hình WireGuard của nhà cung cấp. - Pre-shared key (Khóa chia sẻ trước): Lấy từ phần
[Peer]
trong tệp cấu hình WireGuard của nhà cung cấp (nếu có). - Allowed IPs (IP được phép): Đặt là
0.0.0.0/0
(và::/0
nếu sử dụng IPv6) để cho phép tất cả lưu lượng được định tuyến qua VPN. - Endpoint address (Địa chỉ điểm cuối): Lấy từ phần
[Peer]
trong tệp cấu hình WireGuard của nhà cung cấp (đây là địa chỉ máy chủ VPN). - Endpoint port (Cổng điểm cuối): Lấy từ địa chỉ điểm cuối trong tệp cấu hình WireGuard của bạn.
- Keepalive interval (Khoảng thời gian giữ kết nối): Đặt là
25
(giây) để duy trì kết nối ổn định.
Cấu hình peer WireGuard trong OPNsense cho dịch vụ 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. Cấu hình các chi tiết sau:
- Name (Tên): Đặt tên dễ nhận biết cho interface (ví dụ:
WG_Interface
). - Public key/Private key (Khóa công khai/khóa riêng tư): Nhấp vào biểu tượng bánh răng để tự động tạo cả hai.
- Tunnel address (Địa chỉ tunnel): Lấy từ phần
[Interface]
trong tệp cấu hình WireGuard của nhà cung cấp. - Peers (Điểm kết nối): Chọn peer bạn vừa tạo ở bước trước.
- Disable routes (Tắt định tuyến): Đảm bảo ô này được tích chọn. Điều này cực kỳ quan trọng để ngăn chặn toàn bộ lưu lượng mạng của bạn tự động chuyển qua VPN, thay vì chỉ định rõ ràng các thiết bị cụ thể sử dụng nó.
Trạng thái kết nối WireGuard đang hoạt động trên giao diện OPNsense
Hãy chắc chắn nhấp vào “Apply” và đảm bảo rằng WireGuard đã được kích hoạt. Quá trình thiết lập 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 trên đã hoạt động hiệu quả và cho phép OPNsense của tôi kết nối với nhà cung cấp VPN và nhận được địa chỉ IP.
Khi bạn đã hoàn tất bước này, bạn đã sẵn sàng chuyển sang việc tạo một interface mà qua đó lưu lượng có thể được định tuyến. Một lần nữa, hãy đảm bảo rằng Disable routes đã được tích chọn. Nếu không, toàn bộ lưu lượng của bạn sẽ được định tuyến qua kết nối VPN, thay vì chỉ định các thiết bị cụ thể sử dụng nó.
Xây dựng Interface và Gateway riêng cho VPN
Sau khi đã thiết lập kết nối WireGuard, bước tiếp theo là tạo một interface và một gateway riêng biệt trong OPNsense để quản lý và định tuyến lưu lượng của các thiết bị được chọn.
Tạo Interface mới cho WireGuard VPN
Điều hướng đến Interfaces và nhấp vào Assignments. Tại đây, chúng ta sẽ gán cho WireGuard một interface riêng, trong trường hợp của chúng tôi là “opt2”. Sau khi được gán, nhấp vào tên của interface mới tạo ở phía trên cùng để vào phần cài đặt của nó.
Có một vài điều cần lưu ý ở đây:
- Đảm bảo rằng interface đã được kích hoạt bằng cách tích chọn ô ở phía trên cùng.
- Trong khi tùy chọn Dynamic gateway policy ban đầu có thể bị vô hiệu hóa, chúng tôi đã gặp sự cố khi client không thể hoàn tất quá trình bắt tay (handshake) với nhà cung cấp. Khi tùy chọn này được kích hoạt, vấn đề đã được giải quyết. Như đã đề cập, cài đặt của bạn có thể khác nhau tùy thuộc vào nhà cung cấp, vì vậy hãy thử nghiệm các cài đặt này nếu mọi thứ không hoạt động ngay lập tức.
Thiết lập tùy chỉnh giao diện WireGuard trong hệ thống OPNsense
Thiết lập Gateway cho luồng lưu lượng VPN
Tiếp theo, chúng ta sẽ tạo gateway của mình. Điều hướng đến System, Gateways, và Configuration. Một gateway thường sẽ được tạo tự động khi bạn vô hiệu hóa các định tuyến (Disable routes). Gateway của chúng tôi được gọi là “WIREGUARD_ONLY_GW.” Nếu gateway này đã 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 mới với tùy chọn “Far Gateway” được kích hoạt.
Bây giờ chúng ta sẽ chuyển sang phần quy tắc tường lửa (firewall rules) để chỉ định chính xác lưu lượng mà chúng ta muốn định tuyến qua VPN.
Giao diện điều khiển tổng quan (Dashboard) của OPNsense firewall
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 để đảm bảo rằng chỉ các thiết bị được chỉ định mới sử dụng kết nối VPN của bạn. Chúng ta sẽ tạo các alias (bí danh) và các quy tắc tường lửa cụ thể để quản lý luồng lưu lượng này.
Tạo Alias cho thiết bị và mạng cục bộ
Truy cập Firewall, Aliases, và tạo một alias mới với 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. Để đảm bảo tính nhất quán, chúng tôi khuyên bạn nên sử dụng địa chỉ IP tĩnh (reserved IP addresses) cho các thiết bị được nhận dạng trong OPNsense, hoặc sử dụng các “khối” địa chỉ IP cho các loại thiết bị cụ thể (ví dụ: gán một dải IP nhất định cho các thiết bị IoT). Điều này sẽ tùy thuộc vào nhu cầu và mục đích sử dụng VPN của bạn, nhưng để định tuyến lưu lượng một cách nhất quán, thiết bị sẽ cần một địa chỉ IP cục bộ cố định.
Tiếp theo, hãy tạo một alias RFC1918 thuộc loại URLs (IPs). Điều 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 các 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 interface WireGuard. Chúng tôi đã thêm các dải địa chỉ 192.168.0.0/16
, 10.0.0.0/8
, và 172.16.0.0/12
vào alias này, vì đây là các địa chỉ được phân bổ cho các mạng riêng. Bây giờ chúng ta đã sẵn sàng thực hiện các bước cuối cùng để định tuyến tất cả lưu lượng qua WireGuard.
Định cấu hình Quy tắc Tường lửa và NAT Outbound
Trong phần quy tắc LAN (LAN rules) dưới tường lửa (firewall), tạo một quy tắc mới với các thiết lập sau:
- Action (Hành động): “Pass” (Cho phép).
- Source (Nguồn): Chọn alias đại diện cho các thiết bị mà chúng ta muốn định tuyến qua VPN.
- Destination (Đích): (với ô invert được tích chọn) là alias RFC1918 của chúng ta. Điều này có nghĩa là lưu lượng không đi đến các địa chỉ RFC1918 sẽ được áp dụng quy tắc này.
- Gateway (Cổng): Đặt thành gateway WireGuard đã tạo trước đó.
Lưu quy tắc này và đặt nó lên trên quy tắc “Default allow LAN to any rule” (Quy tắc mặc định cho phép LAN đến bất kỳ đâu) để lưu lượng được khớp với quy tắc này trước tiên.
Cuối cùng, điều hướng đến NAT và sau đó Outbound. Đặt chế độ thành Hybrid ở phía trên cùng, sau đó tạo một quy tắc mới trên interface WireGuard.
- Source (Nguồn): Chọn alias đại diện cho các thiết bị mà chúng ta muốn định tuyến qua VPN.
- Translation (Chuyển đổi): Đặt thành “Interface address” (Địa chỉ interface).
Nhấn “Apply” để hoàn tất.
Bây giờ, chúng ta đã hoàn tất! Các thiết bị được chỉ định sẽ chỉ giao tiếp qua WireGuard VPN của chúng ta. Tùy chọn, bạn có thể thêm một “kill switch” bằng cách thêm một “tag” vào quy tắc LAN ban đầu của bạn. Sau đó, thêm một quy tắc nổi (floating rule) để chặn lưu lượng có “tag” cụ thể đó. Hiện tại, DNS vẫn có thể bị rò rỉ, nhưng bạn cũng có thể chỉ định máy chủ DNS là máy chủ của nhà cung cấp VPN, sử dụng alias chúng ta đã tạo thông qua DHCP.
Kết luận
Việc định tuyến lưu lượng của các thiết bị cụ thể qua VPN bằng OPNsense là một giải pháp mạnh mẽ và linh hoạt để tăng cường bảo mật và quyền riêng tư cho mạng gia đình của bạn. Với hướng dẫn chi tiết từ caphecongnghe.com, bạn có thể dễ dàng cấu hình hệ thống của mình để các thiết bị được chỉ định chỉ giao tiếp thông qua WireGuard VPN, mà không cần cài đặt client VPN trên từng thiết bị. Điều này đặc biệt hữu ích cho các thiết bị IoT, smart TV hoặc các thiết bị cần một lớp bảo vệ bổ sung, đồng thời giúp bạn vượt qua giới hạn về số lượng thiết bị kết nối của một số nhà cung cấp VPN.
Nếu bạn có các thiết bị luôn muốn được định tuyến qua VPN, OPNNense là một trong những cách tốt nhất để đạt được điều đó. Nó đơn giản hóa việc quản lý VPN, cho phép bạn coi nhiều thiết bị như một kết nối duy nhất từ góc độ của nhà cung cấp VPN. Hãy bắt tay vào cấu hình ngay hôm nay để trải nghiệm sự an toàn và tiện lợi mà OPNsense mang lại!