Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 17. Bảo mật Reverse Proxy

ICT

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:

  1. Giảm bề mặt tấn công

  2. Không tin Internet

  3. Chỉ mở những gì cần thiết

  4. Bảo vệ theo nhiều lớp

  5. 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ổngMục đích
80HTTP (ACME challenge, redirect)
443HTTPS
22SSH (quản trị)

Tất cả cổng khác đóng mặc định.


3.2. Cấu hình firewall (UFW – ví dụ)

ufw default deny incoming
ufw default allow outgoing

ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp

ufw enable
 

 

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ụ:

ufw allow from <IP-quan-tri> to any port 22

4.2. Vô hiệu hóa đăng nhập root trực tiếp

Trong /etc/ssh/sshd_config:

 
PermitRootLogin no

Sau đó reload SSH:

 
systemctl reload sshd

4.3. Dùng SSH key, không dùng mật khẩu

 
PasswordAuthentication no

Đ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:

if ($request_method !~ ^(GET|POST|HEAD|PUT|DELETE|OPTIONS)$) {
   return 444;
}

Á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:

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;

Trong server block:

limit_req zone=req_limit burst=20 nodelay;

Á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:

deny 10.0.0.0/8;
deny 172.16.0.0/12;
deny 192.168.0.0/16;

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:

 
include snippets/headers/security-headers.conf;

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:

real_ip_header CF-Connecting-IP;
set_real_ip_from <Cloudflare IP ranges>;

9. Logging và phát hiện sớm bất thường

9.1. Theo dõi log Nginx

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

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ị.