Chống HTTP DoS or DDoS attack trong OS linux CentOS
Cách giải quyết:
Cho phép user "Apache" có thể sử dụng iptables - qua sudoers - để chặn các IP DDOS
Trong Apache có một mod là mod_dosevasive
cấu hình mod
HTML Code:
LoadModule dosevasive20_module modules/mod_dosevasive20.so
<ifmodule mod_dosevasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
# Optional Directives - /usr/share/doc/mod_dosevasive/README for more info
DOSEmailNotify
admin@domain.be
DOSWhitelist 192.168.1.*
DOSSystemCommand "
sudo /sbin/iptables -A INPUT -s %s -j DROP"
</ifmodule>
Chú ý dòng in đậm
sudo /sbin/iptables -A INPUT -s %s -j DROP
tức là nâng quyền user Apache cho phép sử dụng iptables chặn các IP không hợp lệ
Trước đó ta phải login vào root và cho phép user này sử dụng iptables bằng cách
HTML Code:
vim /etc/sudoers
thêm vào dòng này
HTML Code:
apache ALL=(ALL) NOPASSWD: /sbin/iptables -A INPUT -s [0-9.]* -j DROP
Cấu hình mod trên có tác dụng chặn các IP request vào với điều kiện:
- Request vào cùng 1 trang nhiều hơn 5 lần / 1 giây
- Tạo hơn 50 concurrent requests trên cùng một child mỗi giây
- Tạo ra các request khác khi đã tạm cho vào blacklisted (on a blocking list)
Sưu tập