Trong hành trình xây dựng phòng lab cá nhân (home lab) của bạn, khi số lượng các ứng dụng tự host (self-hosted apps) ngày càng tăng lên, việc ghi nhớ và quản lý tất cả các địa chỉ URL, địa chỉ IP cùng số cổng (port) để truy cập từng dịch vụ có thể nhanh chóng trở thành một cơn ác mộng. Chưa kể, mỗi khi có bất kỳ thay đổi nào trong cấu hình mạng gia đình, bạn lại phải mất công chỉnh sửa mọi thứ thủ công. Thay vào đó, một giải pháp hiệu quả và chuyên nghiệp hơn là thiết lập một máy chủ proxy ngược (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ó thể được truy cập dễ dàng từ cùng một URL bên ngoài duy nhất.
Về cơ bản, reverse proxy là một máy chủ khác nằm trong mạng nội bộ của bạn, đóng vai trò trung gian giữa internet rộng lớn và các ứng dụ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 quan trọng, vì các yêu cầu từ phía 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ị trở nên đơn giản hơn rất nhiều. Một khi bạn đã thiết lập các quy tắc mạng nội bộ, điểm 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 (nếu có). Bạn có thể nghĩ rằng việc thiết lập một reverse proxy là phức tạp, nhưng các dịch vụ hiện đại đã tối giản hóa phần lớn công việc. Bài viết này sẽ tập trung vào một phương pháp cụ thể bằng cách sử dụng thiết bị lưu trữ mạng Synology (Synology NAS), đồng thời giải thích quy trình tổng quát hơn để bạn có thể áp dụng nếu muốn sử dụng một máy chủ reverse proxy khác.
Những gì bạn cần chuẩn bị để thiết lập Reverse Proxy
Mặc dù chúng ta sẽ sử dụng Synology NAS trong hướng dẫn này, quá trình thiết lập reverse proxy về cơ bản sẽ tương tự đối với các máy chủ proxy ngược khác. Để bắt đầu triển khai reverse proxy trên Synology NAS cho các ứng dụng tự host của bạn, bạn sẽ không cần quá nhiều thứ. Điều quan trọng là có danh sách các dịch vụ mà bạn dự định đặt phía sau reverse proxy, và một thiết bị Synology NAS đang chạy phiên bản mới nhất của hệ điều hành DSM.
Ngoài ra, bạn sẽ cần chuẩn bị các yếu tố sau:
- Một chứng chỉ SSL: Đây là yếu tố bắt buộc để đảm bảo mục đích bảo mật cho kết nối của bạn. Bạn có thể dễ dàng nhận được chứng chỉ SSL miễn phí từ Let’s Encrypt ngay bên trong DSM của Synology.
- Một tên miền: Ví dụ:
yourdomainname.com
. Việc sở hữu tên miền sẽ cho phép bạn tạo các tên miền phụ (subdomain) cho mỗi ứng dụng web mà bạn muốn sử dụng với reverse proxy (ví dụ:app1.yourdomainname.com
,app2.yourdomainname.com
). - Cổng 443 được chuyển tiếp (port forwarding) từ bộ định tuyến (router) của bạn đến địa chỉ IP cục bộ của NAS. Điều này đảm bảo lưu lượng truy cập HTTPS từ bên ngoài có thể đến được NAS của bạn.
- Địa chỉ IP và số cổng (port) cụ thể cho mỗi ứng dụng tự host mà bạn muốn cấu hình.
Hướng dẫn cài đặt Reverse Proxy trên Synology NAS
Trước khi đi sâu vào cấu hình reverse proxy, chúng ta cần đảm bảo các container Docker (nếu có) và ứng dụng tự host đã sẵn sàng. Hiện tại, một trong những dịch vụ tự host phổ biến được nhiều người lựa chọn là Home Assistant, cho phép điều khiển ngôi nhà thông minh từ một bảng điều khiển duy nhất. Việc truy cập Home Assistant bằng địa chỉ IP cục bộ và số cổng có thể bất tiện, vì địa chỉ IP của Synology có thể thay đổi trong quá trình thiết lập phòng lab tại nhà, và việc ghi nhớ nhiều chuỗi IP/port là khó khăn. Hơn nữa, việc mở quá nhiều cổng ra internet cũng tiềm ẩn rủi ro bảo mật.
Vì vậy, hãy bắt đầu bằng việc thiết lập DDNS (Dynamic DNS) để có một tên miền để trỏ tới, và một chứng chỉ SSL Wildcard để chúng ta có thể sử dụng các tên miền phụ một cách linh hoạt và an toàn. Chứng chỉ SSL Wildcard rất quan trọng vì nó sẽ bao phủ tất cả các tên miền phụ mà chúng ta sử dụng. Các ứng dụng web của chúng ta sẽ được thiết lập dưới dạng: tenungdung1.tendomaincuaban.com
, tenungdung2.tendomaincuaban.com
, v.v.
Thiết lập DDNS và chứng chỉ SSL Wildcard
Đầu tiên, chúng ta sẽ tiến hành thiết lập DDNS và chứng chỉ SSL theo các bước sau:
- Đăng nhập vào Synology NAS của bạn.
- Mở Control Panel (Bảng điều khiển), điều hướng đến External Access (Truy cập bên ngoài) > DDNS, và chọn Add (Thêm).
Danh sách cấu hình DDNS trong Synology DSM 7
- Điền vào biểu mẫu như sau: Service Provider (Nhà cung cấp dịch vụ): Synology, Hostname (Tên máy chủ): điền tên miền mong muốn của bạn (ví dụ:
xda.synology.me
), sau đó nhấp vào Test Connection (Kiểm tra kết nối).
Giao diện thêm cấu hình DDNS mới trên Synology DSM 7
- Nếu kiểm tra thất bại, tức là tên máy chủ đó đã được sử dụng và bạn sẽ phải thử các phiên bản khác nhau cho đến khi tìm được một tên chưa ai dùng.
- Ngoài ra, trước khi tiếp tục, hãy đánh dấu vào ô bên cạnh Get a certificate from Let’s Encrypt and set it as default (Lấy chứng chỉ từ Let’s Encrypt và đặt làm mặc định).
- Nhấp vào OK.
- Điều hướng đến Security (Bảo mật) > Certificate (Chứng chỉ) và chọn Add (Thêm).
Giao diện quản lý chứng chỉ SSL trong Synology DSM
- Chọn Replace an existing certificate (Thay thế chứng chỉ hiện có) và chọn chứng chỉ mà chúng ta vừa tạo, sau đó nhấp vào Next (Tiếp theo).
- Chọn Get a certificate from Let’s Encrypt (Lấy chứng chỉ từ Let’s Encrypt) và đánh dấu vào ô bên cạnh Set as default certificate (Đặt làm chứng chỉ mặc định).
- Chọn Next (Tiếp theo).
- Điền Hostname (Tên máy chủ):
tenmiencuaban.com
, Địa chỉ email của bạn:[email protected]
, và đừng quên thêm ký tự wildcard vào ô với *`.tenmiencuaban.synology.me`**.
Điền thông tin để tạo chứng chỉ SSL Wildcard từ Let's Encrypt trên Synology
- Chứng chỉ SSL Wildcard cho phép chúng ta sử dụng nhiều tên miền phụ với cùng một chứng chỉ mà không cần tạo các chứng chỉ mới riêng lẻ. Đây là một điểm cực kỳ quan trọng, hãy nhấp Next (Tiếp theo) khi bạn hoàn tất để lưu chứng chỉ SSL.
Cấu hình Reverse Proxy cho ứng dụng của bạn
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 tên miền phụ mỗi lần để nó đại diện cho ứng dụng web mà bạn muốn trỏ tới.
- Chúng ta vẫn đang làm việc trong Control Panel (Bảng điều khiển) trên Synology.
- Đi tới Login Portal (Cổng đăng nhập) > Advanced (Nâng cao).
- Nhấp vào Reverse Proxy (Proxy ngược).
- Nhấp vào Create (Tạo).
- Đặt Proxy name (Tên proxy), thay đổi giao thức nguồn (source protocol) thành HTTPS, nhập tên máy chủ tên miền phụ của bạn (ví dụ:
hass.tenmiencuaban.synology.me
), đặt cổng nguồn (source port) thành 443, Enable HSTS (Bật HSTS), đặt tên máy chủ đích (destination hostname) thành localhost hoặc địa chỉ IP của ứng dụng web của bạn và cổng đích (destination port) thành cổng mà ứng dụng web của bạn đang sử dụng.
Cấu hình chi tiết Reverse Proxy cho ứng dụng trên Synology NAS
Giao diện thiết lập Reverse Proxy trong Synology DSM 7
- Chọn tab Custom Header (Tiêu đề tùy chỉnh).
- Nhấp vào Create (Tạo).
- Chọn WebSocket.
- Nhấp vào Save (Lưu).
- Nhấp vào Close (Đóng).
- Đi tới Network (Mạng) > Connectivity (Kết nối) và Enable HTTP/2 (Bật HTTP/2), sau đó nhấp vào Apply (Áp dụng).
- Sau đó, đi tới Security (Bảo mật) > Advanced (Nâng cao), bật HTTP Compression (Nén HTTP) và nhấp vào Apply (Áp dụng).
- Cuối cùng, đi tới Security (Bảo mật) > Certificate (Chứng chỉ), nhấp vào Settings (Cài đặt), và chọn chứng chỉ SSL của bạn từ menu thả xuống bên cạnh mục
hass.tenmiencuaban.synology.me
.
Chọn chứng chỉ SSL cho quy tắc Reverse Proxy trong cài đặt Synology
Giờ đây, reverse proxy của bạn đã được thiết lập để truy cập phiên bản Home Assistant (hoặc bất kỳ ứng dụng nào khác) từ cả bên trong và bên ngoài mạng gia đình của bạn, chỉ bằng cách sử dụng địa chỉ tên miền phụ bạn đã cấu hình, ví dụ: hass.tenmiencuaban.synology.me
.
Tối ưu hóa quản lý ứng dụng tự host với Reverse Proxy
Việc thiết lập một reverse proxy không chỉ giúp việc truy cập vào các ứng dụng tự host như Vaultwarden hay Home Assistant trở nên dễ dàng hơn rất nhiều mà còn tăng cường đáng kể mức độ an toàn tổng thể cho mạng gia đình của bạn. Thay vì phải mở nhiều cổng khác nhau ra internet cho từng dịch vụ, bạn chỉ cần mở duy nhất một cổng (cổng 443 cho HTTPS) cho tất cả các ứng dụng tự host của mình. Điều này giúp giảm thiểu bề mặt tấn công và đơn giản hóa việc quản lý tường lửa.
Tuy nhiên, việc sử dụng reverse proxy không có nghĩa là bạn có thể lơ là các biện pháp bảo mật khác. Bạn vẫn cần cẩn thận để đảm bảo rằng mình đã liên kết chứng chỉ SSL một cách chính xác và tuân thủ các nguyên tắc bảo mật mạng cơ bản. Với reverse proxy, việc tổ chức và truy cập các dịch vụ tự host trong phòng lab cá nhân của bạn sẽ trở nên gọn gàng, tiện lợi và an toàn hơn bao giờ hết.
Bạn có thấy giải pháp này hữu ích cho phòng lab cá nhân của mình không? Hãy chia sẻ ý kiến và kinh nghiệm của bạn ở phần bình luận bên dưới nhé!