Trong hành trình xây dựng phòng lab tại gia (home lab) với nhiều ứng dụng tự host, việc ghi nhớ tất cả các địa chỉ URL để truy cập từng trang quản lý dịch vụ có thể nhanh chóng trở thành một cơn ác mộng. Hơn nữa, nếu có bất kỳ thay đổi nào trong cấu hình mạng gia đình, bạn sẽ phải mất công điều chỉnh mọi thứ thủ công. Giải pháp tối ưu cho vấn đề này chính là thiết lập một Reverse Proxy để định tuyến lưu lượng truy cập đến các ứng dụng tự host của bạn, giúp tất cả các dịch vụ có thể truy cập được từ cùng một địa chỉ URL bên ngoài duy nhất.
Về cơ bản, Reverse Proxy là một máy chủ khác trong mạng gia đình của bạn, nằm giữa internet và các ứng dụng cùng máy chủ tự host của bạn. Điều này tạo thêm một lớp bảo mật, vì các yêu cầu từ máy khách bên ngoài chỉ biết đến máy chủ mà Reverse Proxy được cài đặt. Nó cũng giúp việc quản trị dễ dàng hơn bởi vì một khi bạn đã thiết lập các quy tắc mạng nội bộ, nơi duy nhất bạn cần thay đổi chúng là trên máy chủ DNS tùy chỉnh của mình. Mặc dù nhiều người có thể nghĩ việc thiết lập Reverse Proxy khá phức tạp, nhưng các dịch vụ hiện đại đã đơn giản hóa hầu hết các công việc cho bạn. Trong bài viết này, congnghehot.net sẽ cùng bạn tìm hiểu một phương pháp phổ biến, sử dụng thiết bị lưu trữ mạng Synology NAS, đồng thời giải thích cách thức hoạt động chung để bạn có thể áp dụng cho các máy chủ Reverse Proxy khác nếu muốn.
Tủ mạng gia đình với các thiết bị chuyển mạch và dây cáp, minh họa cho hệ thống home lab và các ứng dụng tự host
Reverse Proxy là gì và tại sao bạn nên sử dụng nó cho Home Lab?
Reverse Proxy đóng vai trò như một cầu nối thông minh, tiếp nhận các yêu cầu từ internet (người dùng bên ngoài) và chuyển tiếp chúng một cách an toàn đến các máy chủ hoặc ứng dụng nội bộ trong mạng gia đình (home lab) của bạn. Thay vì mỗi ứng dụng tự host (như Home Assistant, Vaultwarden hay Jellyfin) phải có một cổng và IP riêng được mở ra internet, Reverse Proxy cho phép bạn chỉ mở duy nhất một cổng (thường là 443 cho HTTPS) trên router, và mọi yêu cầu sẽ đi qua cổng này.
Những lợi ích chính khi sử dụng Reverse Proxy cho home lab bao gồm:
- Tăng cường bảo mật: Chỉ có Reverse Proxy được công khai ra internet, che giấu địa chỉ IP và số cổng thực của các ứng dụng nội bộ. Điều này giảm thiểu bề mặt tấn công và bảo vệ các dịch vụ nhạy cảm khỏi các mối đe dọa trực tiếp từ bên ngoài.
- Đơn giản hóa quản lý URL: Thay vì phải nhớ các địa chỉ IP và số cổng khác nhau cho từng ứng dụng (ví dụ:
192.168.1.100:8123
cho Home Assistant,192.168.1.100:8000
cho Vaultwarden), bạn có thể truy cập chúng bằng các subdomain dễ nhớ (ví dụ:ha.tênmiềncủabạn.com
,vault.tênmiềncủabạn.com
). - Hỗ trợ SSL/TLS tập trung: Reverse Proxy có thể xử lý chứng chỉ SSL (ví dụ: từ Let’s Encrypt) cho tất cả các ứng dụng, giúp bạn dễ dàng mã hóa lưu lượng truy cập và đảm bảo kết nối an toàn với giao thức HTTPS.
- Cân bằng tải (Load Balancing): Đối với các ứng dụng có lưu lượng truy cập cao, Reverse Proxy có thể phân phối các yêu cầu đến nhiều máy chủ back-end khác nhau, giúp cải thiện hiệu suất và độ ổn định.
Những yếu tố cần chuẩn bị trước khi thiết lập Reverse Proxy trên Synology NAS
Để thiết lập Reverse Proxy một cách suôn sẻ trên thiết bị Synology NAS cho các ứng dụng tự host, bạn sẽ cần chuẩn bị một vài yếu tố quan trọng sau đây:
- Thiết bị Synology NAS: Đảm bảo NAS của bạn đang chạy phiên bản DiskStation Manager (DSM) mới nhất để có được các tính năng và bản vá bảo mật cập nhật nhất.
- Danh sách các dịch vụ/ứng dụng tự host: Liệt kê rõ ràng tất cả các ứng dụng bạn muốn đặt phía sau Reverse Proxy, bao gồm địa chỉ IP nội bộ và số cổng mà chúng đang sử dụng.
- Chứng chỉ SSL: Để đảm bảo kết nối an toàn (HTTPS), bạn cần có một chứng chỉ SSL. Trên DSM, bạn có thể dễ dàng lấy chứng chỉ miễn phí từ Let’s Encrypt.
- Tên miền riêng: Một tên miền cá nhân (ví dụ:
tenmiencuaban.com
) là cần thiết để bạn có thể tạo các subdomain cho mỗi ứng dụng web mà bạn muốn sử dụng với Reverse Proxy (ví dụ:webapp1.tenmiencuaban.com
,webapp2.tenmiencuaban.com
). - Chuyển tiếp cổng (Port Forwarding): Cần chuyển tiếp cổng 443 (cho HTTPS) từ router của bạn đến địa chỉ IP cục bộ của Synology NAS.
- Địa chỉ IP và số cổng: Ghi chú lại địa chỉ IP nội bộ và số cổng chính xác cho mỗi ứng dụng tự host của bạn.
Giao diện ứng dụng quản lý mật khẩu Bitwarden đang chạy trên Synology NAS, minh họa một ứng dụng tự host phổ biến
congnghehot.net hiện chỉ có duy nhất dịch vụ tự host Home Assistant đang chạy trên Synology NAS. Lý do là sau một sự cố không mong muốn, tôi đã phải thiết lập lại toàn bộ hệ thống NAS. Điều này đã dạy tôi những bài học đau đớn, buộc tôi phải bắt đầu lại từ đầu với các chính sách bảo mật và sao lưu mới, cùng với cấu hình RAID dự phòng hai ổ đĩa. Thông thường, tôi kết nối với Home Assistant bằng cách sử dụng kết hợp địa chỉ IP cục bộ và số cổng của nó, nhưng điều này gây nhiều phiền toái. Thứ nhất, địa chỉ IP của Synology có thể thay đổi tùy thuộc vào cách tôi thiết lập home lab, và tôi không thích phải ghi nhớ chuỗi địa chỉ IP và số cổng. Tôi cũng không muốn phải mở quá nhiều cổng ra internet công cộng. Vì vậy, hãy bắt đầu bằng việc thiết lập DDNS và chứng chỉ SSL Wildcard để chúng ta có một tên miền để trỏ tới và một chứng nhận SSL để sử dụng cho các subdomain. Chứng chỉ Wildcard SSL rất quan trọng vì nó sẽ bao gồm bất kỳ subdomain nào chúng ta sử dụng, đảm bảo an toàn cho tất cả các ứng dụng web của chúng ta sẽ được thiết lập dưới dạng yourwebappname1.domainname.com, yourwebappname2.domainname.com, v.v.
Hướng dẫn thiết lập Reverse Proxy trên Synology NAS chi tiết
Sau khi đã chuẩn bị đầy đủ các yếu tố cần thiết, chúng ta sẽ bắt tay vào việc cấu hình Reverse Proxy trên Synology NAS theo các bước sau:
Bước 1: Cấu hình DDNS và chứng chỉ SSL Wildcard
- Đăng nhập vào Synology NAS của bạn.
- Mở Control Panel, điều hướng đến External Access > DDNS, và chọn Add.
Danh sách cấu hình DDNS (Dynamic DNS) trong Control Panel của Synology DSM 7, hiển thị trạng thái kết nối
- Điền thông tin vào biểu mẫu như sau:
- Service Provider: Chọn Synology.
- Hostname: Nhập tên máy chủ mong muốn (ví dụ:
mydomainname
hoặccongnghehot.synology.me
). - Sau đó, nhấp vào Test Connection để kiểm tra tính khả dụng.
Hộp thoại thêm cấu hình DDNS mới trên Synology DSM 7, với các trường thông tin cho nhà cung cấp dịch vụ và tên máy chủ
- Nếu kiểm tra thất bại, tên máy chủ đó đã được sử dụng, bạn sẽ phải thử một vài tên khác cho đến khi tìm được một tên khả dụng.
- Trước khi chuyển sang bước tiếp theo, hãy đánh dấu vào ô bên cạnh Get a certificate from Let’s Encrypt and set it as default.
- Nhấp vào OK.
- Điều hướng đến Security > Certificate và chọn Add.
Menu quản lý chứng chỉ SSL trong Control Panel của Synology DSM, hiển thị danh sách các chứng chỉ đã cài đặt
- Chọn Replace an existing certificate và chọn chứng chỉ mà chúng ta vừa tạo trước đó, sau đó nhấp vào Next.
- Chọn Get a certificate from Let’s Encrypt và đánh dấu vào ô bên cạnh Set as default certificate.
- Chọn Next.
- Điền thông tin:
- Hostname:
mydomainname.com
(hoặc tên miền bạn đã đăng ký). - Email:
[email protected]
(địa chỉ email của bạn). - Đừng quên thêm ký tự wildcard
*
vào ô cùng với tên miền của bạn (ví dụ:*.mydomainname.synology.me
).
- Hostname:
Giao diện nhập thông tin để tạo chứng chỉ SSL Wildcard từ Let's Encrypt trên Synology DSM, với trường tên máy chủ và email
- Chứng chỉ SSL Wildcard cho phép chúng ta sử dụng các subdomain khác nhau dưới cùng một chứng chỉ mà không cần tạo chứng chỉ mới. Điều này rất quan trọng, vì vậy hãy nhấp Next khi bạn hoàn thành để lưu chứng chỉ SSL.
Bước 2: Thiết lập Reverse Proxy cho ứng dụng tự host
Bây giờ là lúc thiết lập Reverse Proxy cho ứng dụng tự host đầu tiên của bạn. Nếu bạn có nhiều hơn một ứng dụng, hãy lặp lại phần này của quy trình, thay đổi subdomain mỗi lần để nó đại diện cho ứng dụng web bạn muốn trỏ tới.
- Chúng ta vẫn đang làm việc trên Control Panel của Synology.
- Đi đến Login Portal > Advanced.
- Nhấp vào Reverse Proxy.
- Nhấp vào Create.
- Thiết lập các thông số sau:
- Proxy name: Đặt tên cho proxy (ví dụ: Home Assistant Proxy).
- Source Protocol: Thay đổi thành HTTPS.
- Source Hostname: Nhập subdomain cho ứng dụng của bạn (ví dụ:
hass.mydomainname.synology.me
). - Source Port: Đặt là 443.
- Enable HSTS: Chọn tùy chọn này.
- Destination Hostname: Có thể là localhost hoặc địa chỉ IP của ứng dụng web của bạn.
- Destination Port: Đặt số cổng mà ứng dụng web của bạn đang sử dụng.
Hộp thoại cấu hình Reverse Proxy trên Synology NAS, hiển thị cài đặt nguồn (Source) và đích (Destination) cho một ứng dụng cụ thể
- Chọn tab Custom Header.
- Nhấp Create.
- Chọn WebSocket.
- Nhấp Save.
- Nhấp Close.
- Đi đến Network > Connectivity và Enable HTTP/2, sau đó nhấp Apply.
- Sau đó, đi đến Security > Advanced, bật HTTP Compression, và nhấp Apply.
- Cuối cùng, đi đến Security > Certificate, nhấp vào Settings, và chọn chứng chỉ SSL của bạn từ menu thả xuống bên cạnh mục nhập
hass.mydomainname.synology.me
(hoặc subdomain tương ứng của bạn).
Cửa sổ cài đặt chứng chỉ SSL trong Synology DSM, cho phép người dùng gán chứng chỉ cho các dịch vụ Reverse Proxy
Bây giờ, Reverse Proxy của bạn đã được thiết lập để truy cập Home Assistant từ cả bên trong và bên ngoài mạng gia đình của bạn bằng cách sử dụng hass.mydomainname.synology.me
.
Kết luận
Việc thiết lập Reverse Proxy giúp việc truy cập vào các ứng dụng tự host như Vaultwarden hoặc Home Assistant để kiểm soát nhà thông minh trở nên dễ dàng hơn bao giờ hết. Hơn nữa, nó còn giúp mạng gia đình của bạn an toàn hơn tổng thể, vì bạn chỉ cần mở duy nhất một cổng ra internet cho tất cả các ứng dụng tự host của mình. Điều này không có nghĩa là bạn có thể lơ là về bảo mật; bạn vẫn cần phải cẩn thận để đảm bảo đã liên kết các chứng chỉ SSL đúng cách.
Vậy bạn nghĩ sao về việc triển khai Reverse Proxy cho hệ thống home lab của mình? Bạn có gặp khó khăn hay có mẹo nhỏ nào muốn chia sẻ không? Hãy để lại bình luận bên dưới để cùng congnghehot.net thảo luận nhé!