Cách cấu hình Nginx để bảo mật máy chủ và ngăn chặn các cuộc tấn công như DDoS và SQL injection

Bảo mật là một yếu tố quan trọng trong việc triển khai một máy chủ web. Nginx, một máy chủ web phổ biến và mạnh mẽ, cung cấp nhiều tính năng và cấu hình để giúp bảo vệ máy chủ và ngăn chặn các cuộc tấn công như DDoS (Distributed Denial-of-Service) và SQL injection. Dưới đây là một số cách cấu hình Nginx để nâng cao bảo mật máy chủ.

1. Điều chỉnh cấu hình DDoS:

– Sử dụng module ngx_http_limit_req_module: Module này giới hạn số lượng yêu cầu mà một IP có thể gửi trong một khoảng thời gian nhất định.

http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location / {
limit_req zone=one burst=5;
}
}
}

 

– Sử dụng module ngx_http_limit_conn_module: Module này giới hạn số lượng kết nối đồng thời từ một IP đến máy chủ.

http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 5;
}
}
}

 

Load Balancing with NGINX and Consul Template | Consul | HashiCorp Developer

2. Bảo vệ chống SQL injection:

– Sử dụng module ngx_http_realip_module: Module này cho phép xác định địa chỉ IP thực của máy chủ và chuyển tiếp các tiêu đề HTTP_X_FORWARDED_FOR.

http {
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 192.168.0.0/16;
real_ip_recursive on;
}

 

– Sử dụng module ngx_http_security_module: Module này cung cấp các tính năng bảo mật bổ sung như chặn truy cập vào các thư mục nhạy cảm, ngăn chặn truy cập từ các User-Agent đáng ngờ, và hạn chế truy cập từ các địa chỉ IP cụ thể.

http {
security on;
...
}

 

How to Configure Different Load Balancing Algorithms on Nginx - CoderPad

3. Sử dụng HTTPS và chứng chỉ SSL:

Sử dụng module ngx_http_ssl_module: Module này cho phép kết nối an toàn qua HTTPS và hỗ trợ chứng chỉ SSL.

http {
server {
listen 443 ssl;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
...
}
}

 

Hosting Harbor on VPS using NGINX as Reverse Proxy

4. Cấu hình tường lửa và giới hạn truy cập:

– Sử dụng module ngx_http_access_module: Module này cho phép giới hạn truy cập dựa trên địa chỉ IP hoặc User-Agent.

http {
server {
location / {
allow 192.168.1.0/24;
deny all;
...
}
}
}

 

– Sử dụng tường lửa và phân tán tải: Kết hợp Nginx với tường lửa để giới hạn truy cập đến máy chủ và sử dụng cân bằng tải để phân tán tải trên nhiều máy chủ.

Block country trên Nginx miễn phí » Canh Me

Tóm lại, cấu hình Nginx để bảo mật máy chủ và ngăn chặn các cuộc tấn công như DDoS và SQL injection đòi hỏi một sự hiểu biết sâu về cấu hình và các tính năng bảo mật của Nginx. Bằng cách sử dụng các module và cấu hình phù hợp, bạn có thể tăng cường bảo mật cho máy chủ web của mình và bảo vệ dữ liệu của người dùng khỏi các cuộc tấn công đáng nguy hiểm.