DDoS là kiểu tấn công làm cho mục tiêu, là các trang web, dịch vụ trực tuyến, trở nên quá tải. Người dùng gặp khó khăn, hay thậm chí không thể truy cập vào các trang web, dịch vụ này.

Cấu hình Nginx chống DDoS

Hiện chưa có giải pháp ngăn chặn triệt để kiểu tấn công từ chối dịch vụ phân tán DDoS (Distributed Denial of Service), chỉ có thể hạn chế phần nào thiệt hại hay giảm bớt cường độ tấn công. Ở bài trước, chúng ta đã sử dụng giải pháp IPtables, bài này giới thiệu cách cấu hình Nginx.

Tại tập tin /etc/nginx/nginx.conf, thêm 2 câu lệnh sau vào giữa http {...}.

http {
    ...
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
    ...
}

Ngoài ra bạn cũng có thể cập nhật 2 giá trị client_body_timeoutclient_header_timeout về 5s.

Thêm 2 câu lệnh tiếp theo vào giữa server {...} của tập tin /etc/nginx/conf.d/default.conf.

server {
    ...
    limit_conn conn_limit_per_ip 10;
    limit_req zone=req_limit_per_ip burst=10 nodelay;
    ...
}

Sau đó khởi động lại Nginx.

systemctl restart nginx.service

Kích hoạt bảo vệ của sysctl bằng cách thêm 2 dòng sau vào /etc/sysctl.conf.

net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1

Tải lại sysctl.

sudo sysctl --system

Chúc các bạn thành công!