1. Vì sao cần bảo mật Nginx ở mức cấu hình?
Ngay cả khi:
Hệ điều hành đã được hardening
Firewall đã cấu hình đúng
SSL đã triển khai chuẩn
Web Server vẫn là:
điểm tiếp xúc trực tiếp và liên tục với Internet.
Rất nhiều tấn công không nhằm:
Khai thác lỗ hổng hệ điều hành
mà nhằm:Dò endpoint
Quét CMS
Tạo tải giả (flood)
Khai thác cấu hình web sơ hở
Bài này tập trung vào 3 nhóm biện pháp bảo mật đơn giản nhưng hiệu quả:
Security header
Rate limiting
Deny rule
2. Nguyên tắc bảo mật Nginx trong môi trường production
Trong loạt bài này, chúng ta áp dụng:
Chỉ bật những gì hiểu rõ
Không “chặn bừa cho chắc”
Bảo mật phải dễ quan sát – dễ rollback
Ưu tiên biện pháp phòng ngừa phổ biến
Nguyên tắc:
Bảo mật tốt là bảo mật không làm hệ thống khó vận hành.
3. Security Headers – tăng bảo mật phía trình duyệt
3.1. Vì sao cần security header?
Security header:
Không bảo vệ server trực tiếp
Nhưng giảm rủi ro khai thác phía client
Giúp trình duyệt xử lý nội dung an toàn hơn
3.2. Các header khuyến nghị cho production
Trong server block HTTPS, thêm:
Giải thích ngắn gọn:
X-Frame-Options: chống clickjackingnosniff: chống đoán MIMEXSS-Protection: hỗ trợ chống XSS cơ bảnReferrer-Policy: kiểm soát thông tin referrerPermissions-Policy: chặn quyền không cần thiết
Nguyên tắc:
Chỉ bật header không ảnh hưởng logic ứng dụng.
3.3. Lưu ý về Content-Security-Policy (CSP)
CSP rất mạnh, nhưng:
Dễ gây lỗi nếu cấu hình sai
Không nên bật vội
Khuyến nghị:
Chỉ cấu hình CSP khi đã hiểu rõ tài nguyên ứng dụng.
4. Rate limiting – chống brute force và flood nhẹ
4.1. Rate limit là gì?
Rate limit giúp:
Giới hạn số request từ một IP
Giảm brute force login
Giảm bot scan, flood nhẹ
Không thay thế firewall hay WAF, nhưng:
Giảm tải và giảm rủi ro rất hiệu quả.
4.2. Cấu hình rate limit cơ bản
Trong block http (nginx.conf hoặc conf.d):
4.3. Áp dụng rate limit cho website
Trong server block:
Giải thích:
rate=10r/s: 10 request/giây/IPburst=20: cho phép burst ngắnnodelay: không làm chậm request hợp lệ
Khuyến nghị:
Chỉ áp dụng rate limit cho các endpoint cần thiết.
5. Deny rule – chặn truy cập không mong muốn
5.1. Chặn truy cập file và thư mục nhạy cảm
Chặn:
.git.env.htaccessFile ẩn
5.2. Chặn truy cập đường dẫn không cần thiết
Ví dụ chặn endpoint hay bị scan:
Áp dụng khi:
Website không dùng WordPress
5.3. Chặn theo IP (khi cần)
Chỉ dùng khi:
Có IP tấn công rõ ràng
Không chặn diện rộng
6. Kết hợp deny rule và log
Khuyến nghị:
Theo dõi access log
Chỉ chặn khi có bằng chứng
Tránh “chặn mù”
Nguyên tắc:
Deny rule phải dựa trên log, không dựa trên cảm giác.
7. Những sai lầm phổ biến khi bảo mật Nginx
Chặn quá mạnh gây lỗi ứng dụng
Bật CSP khi chưa hiểu
Rate limit quá thấp
Chặn IP động theo cảm tính
Những sai lầm này khiến:
Bảo mật trở thành nguyên nhân gây sự cố.
8. Checklist bảo mật Nginx cơ bản
Security headers đã bật
Rate limit cấu hình hợp lý
Chặn file ẩn và đường dẫn nhạy cảm
Không bật cấu hình không hiểu rõ
Có thể rollback nhanh
9. Liên hệ với các lớp bảo mật khác
Bảo mật Nginx là:
Lớp thứ hai sau firewall
Lớp đầu tiên tiếp xúc với HTTP/HTTPS
Nó cần được:
Kết hợp với firewall
Kết hợp với bảo mật ứng dụng
Không hoạt động đơn lẻ
10. Bài tiếp theo
Trong Bài 25, chúng ta sẽ bước sang phần backend:
Tổng quan PHP-FPM trong hệ thống Web Server
Bài này sẽ giúp:
Hiểu rõ vai trò PHP
Chuẩn bị cho cài đặt PHP đúng cách
Tránh lỗi cấu hình chồng chéo
- Đăng nhập để gửi ý kiến