Giới thiệu

Nếu bạn đang cần một công cụ để có thể join vào mạng LAN tại nhà mình, phục vụ một số nhu cầu như Wake-on-LAN PC, RDP tới máy tại nhà không cần phải nhờ nhà mạng public port ra ngoài Internet. Hay đơn giản chỉ là sử dụng để chạy NAS lấy dữ liệu một cách an toàn. Thì bài viết này là dành cho bạn.

Ngoài cách mở port thông qua nhà mạng, mình sẽ giới thiệu một kiểu khác để có thể truy cập private LAN từ xa, thông qua Cloudflare.

Cài đặt

Cài đặt Cloudflare

Đăng ký tài khoản Cloudflare + dịch vụ ZeroTrust

Bắt đầu bằng việc đăng ký tài khoản trên Cloudflare. Sau đó, truy cập vào trang quản lý Cloudflare để đăng ký dịch vụ ZeroTrust (đừng lo, có phiên bản miễn phí). Chọn tên cho dịch vụ của bạn và làm theo hướng dẫn để đăng ký ZeroTrust.

image.png

Nếu mọi thứ diễn ra suôn sẻ, bạn có thể truy cập vào mục “Setting” như hình bên dưới. Chọn tab “Network” và cấu hình theo mục đích sử dụng của bạn. Dưới đây là ví dụ về cài đặt của mình.

image.png

Để ZeroTrust hoạt động, bạn cần thêm một số rule để kết nối an toàn hơn. Trong phần “Setting”, chọn “WARP Client”, sau đó chọn “Manage” trong phần “Device enrollment”.

image.png

Tại đây, bạn có thể tạo các rule để chỉ cho những người dùng đã xác thực mới có thể vượt qua ZeroTrust.

image.png

Mình sử dụng phương thức xác thực qua email. Nhập đúng email và bạn sẽ nhận được mã PIN 6 số. Nhớ lưu lại sau khi cài đặt xong.

image.png

Tiếp theo, trong phần “WARP Client”, chọn “Device Settings” và chỉnh sửa cấu hình “Default”.

image.png

Trong phần “Split Tunnel”, truy cập vào “Manage” và loại bỏ tất cả các range IP mà bạn không muốn exclude. Ở đây, mình xoá bỏ hết, và khi cần exclude, bạn có thể thêm vào sau.

image.png

Đừng quên lưu lại profile sau khi cài đặt xong.

Tạo Tunnels

Để sử dụng Tunnels tới mạng LAN riêng tại nhà của bạn, bạn cần một thiết bị luôn hoạt động (ví dụ như mini PC, Raspberry Pi - những thiết bị luôn bật và tiết kiệm điện).

Truy cập vào Networks, tab Tunnels để thực hiện cài đặt Tunnels image.png

Tạo một profile tunnel. Ví dụ, nếu bạn sử dụng Raspberry Pi, hãy chọn môi trường là Debian và kiến trúc là arm64-bit. Sau đó, sao chép lệnh command được hiển thị và dán nó vào Raspberry Pi của bạn. image.png

Nếu mọi thứ diễn ra suôn sẻ, dịch vụ cloudflared sẽ hoạt động trên máy client tại nhà của bạn.

Trong tab Private Network, thêm dải IP mà bạn muốn truy cập. Ví dụ, bạn có thể thêm 192.168.1.0/24 là dải IP của nhà bạn.

image.png

Nếu Status hiển thị như này thì ok

image.png

Trích xuất cấu hình Wireguard

Thực tế, có ứng dụng 1.1.1.1 để tham gia vào mạng ZeroTrust. Tuy nhiên, bạn có thể sử dụng Wireguard vì nó khởi động nhanh hơn (thực tế, 1.1.1.1 vẫn sử dụng Wireguard bên dưới). Để lấy cấu hình Wireguard, bạn có thể sử dụng CLI mượt mà hơn mà không cần GUI.

Mở trình duyệt và truy cập vào trang ZeroTrust của bạn (có dạng https://<tên bạn đặt ở bước 1>.cloudflareaccess.com/). Thực hiện xác thực với các quy tắc bạn đã cài đặt trong bước 1.

image.png

Sau khi xuất hiện như thế này, chuột phải chọn Inspect, lấy đoạn token từ “ey…” trở đi

image.png

Sử dụng wgcf-teams để trích xuất profile Wireguard. Bạn sẽ nhận được một profile Wireguard giống như hình dưới.

image.png

Sử dụng profile này với Wireguard. Kích hoạt nó và bạn đã tham gia vào mạng của Cloudflare.

image.png

Và bạn có thể truy cập vào địa chỉ private LAN của mình (ví dụ 192.168.1.1) ở bất kỳ đâu, miễn là raspberry-pi ở nhà còn chạy :hehe:

Request của bạn sẽ được gửi tới Cloudflare, tại đây Cloudflare sẽ thực hiện tunnel tới raspberry-pi nếu request đó nằm trong Private Network mà bạn đã setup.

Kết

Việc sử dụng ZeroTrust của Cloudflare sẽ khiến tất cả lưu lượng mạng được xuất phát từ máy chủ của Cloudflare tới các trang web, server khác. Điều này có thể sẽ ảnh hưởng tới các quản trị viên đang tin tưởng toàn bộ traffic đến từ Cloudflare.

Ngoài Cloudflare cũng có AWS sử dụng WireGuard-over-S3. Các công cụ monitor network sẽ không phân biệt được lượt truy cập hợp phát tới S3 AWS hoặc attacker có thể sử dụng S3 AWS để làm bình phong.

Tham khảo