1. Vai trò của Reverse Proxy trong bảo mật hệ thống
Trong kiến trúc của anh, Reverse Proxy không chỉ là thành phần kỹ thuật trung gian, mà là:
Cổng vào duy nhất từ Internet.
Điểm terminate HTTPS.
Lớp bảo vệ đầu tiên cho toàn bộ backend nội bộ (QMS / AI).
Điều này đồng nghĩa:
Nếu Reverse Proxy bị khai thác, toàn bộ hệ thống phía sau đều gặp rủi ro.
Vì vậy, bảo mật Reverse Proxy không phải là “tùy chọn nâng cao”, mà là yêu cầu bắt buộc trong vận hành hệ thống.
2. Nguyên tắc bảo mật xuyên suốt
Trước khi đi vào cấu hình cụ thể, cần thống nhất 5 nguyên tắc cốt lõi:
Giảm bề mặt tấn công
Không tin Internet
Chỉ mở những gì cần thiết
Bảo vệ theo nhiều lớp
Dễ vận hành, tránh cấu hình quá phức tạp
PHẦN này tập trung vào các biện pháp hiệu quả cao – rủi ro thấp – dễ kiểm soát.
3. Kiểm soát cổng mạng (Firewall cơ bản)
3.1. Những cổng cần mở trên Reverse Proxy
Trên Reverse Proxy, chỉ nên mở:
| Cổng | Mục đích |
|---|---|
| 80 | HTTP (ACME challenge, redirect) |
| 443 | HTTPS |
| 22 | SSH (quản trị) |
Tất cả cổng khác đóng mặc định.
3.2. Cấu hình firewall (UFW – ví dụ)
Lưu ý: Chỉ bật firewall sau khi đã chắc chắn SSH hoạt động ổn định.
4. Bảo vệ SSH (điểm tấn công phổ biến)
4.1. Giới hạn truy cập SSH
Khuyến nghị:
Chỉ cho phép SSH từ IP quản trị cố định (nếu có).
Không để SSH mở cho toàn Internet.
Ví dụ:
4.2. Vô hiệu hóa đăng nhập root trực tiếp
Trong /etc/ssh/sshd_config:
Sau đó reload SSH:
4.3. Dùng SSH key, không dùng mật khẩu
Điều này giảm đáng kể nguy cơ brute-force.
5. Bảo vệ tầng ứng dụng tại Nginx
5.1. Giới hạn method HTTP
Chặn các method không cần thiết:
Áp dụng có chọn lọc cho web app/public endpoint.
5.2. Giới hạn request bất thường (rate limit)
Trong nginx.conf:
Trong server block:
Áp dụng cho:
Login
API public
Endpoint nhạy cảm
6. Bảo vệ backend nội bộ
6.1. Backend không được expose Internet
Không NAT port backend.
Không public IP backend.
Backend chỉ chấp nhận kết nối từ Reverse Proxy.
6.2. Chặn truy cập trực tiếp backend từ Nginx (nếu cần)
Ví dụ snippet:
Chỉ dùng khi hiểu rõ luồng truy cập.
7. Bảo vệ bằng HTTP Security Headers
Đã chuẩn hóa trong snippet:
Các header này giúp:
Giảm clickjacking
Giảm MIME sniffing
Tăng an toàn trình duyệt
8. Bảo vệ khi dùng Cloudflare
Khi Cloudflare đứng trước Reverse Proxy:
Chỉ trust IP Cloudflare.
Khôi phục IP thật bằng
CF-Connecting-IP.Không cho client gửi fake header.
Snippet:
9. Logging và phát hiện sớm bất thường
9.1. Theo dõi log Nginx
Tập trung vào:
4xx/5xx tăng đột biến
Request lặp lại từ một IP
9.2. Không xóa log tùy tiện
Log là dữ liệu điều tra sự cố.
Chỉ xoay vòng (logrotate).
10. Những sai lầm bảo mật cần tránh
Mở cổng “cho tiện”.
Để SSH public không kiểm soát.
Tin toàn bộ header từ Internet.
Áp dụng quá nhiều rule phức tạp, khó hiểu.
11. Checklist bảo mật Reverse Proxy
Chỉ mở 80/443/22
SSH dùng key, không dùng mật khẩu
Backend không expose Internet
Rate limit cho endpoint nhạy cảm
Logging đầy đủ
Kết luận
Bảo mật Reverse Proxy hiệu quả không đến từ cấu hình phức tạp, mà từ:
Kiến trúc đúng ngay từ đầu,
Giảm bề mặt tấn công,
Kiểm soát chặt điểm vào duy nhất.
Với các biện pháp trong bài này, Reverse Proxy của anh đạt mức:
Đủ an toàn cho môi trường Internet,
Dễ vận hành,
Không tạo gánh nặng quản trị.
- Đăng nhập để gửi ý kiến