Eu não sabia muito sobre a configuração do seu servidor, mas vou tentar ajudar.
Primeiro inicie iptables
e não permita atacar seu servidor
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
Depois disso, acho que logrotate
pode nos ajudar a encontrar um site com maior impacto.
Instale logrotate
sudo apt-get install logrotate
Para verificar se o logrotate foi instalado com sucesso, execute isto no prompt de comando.
logrotate
Configurações e opções padrão para o utilitário logrotate
estão presentes em:
/etc/logrotate.conf
Algumas das configurações importantes são: intervalo de rotação, tamanho do arquivo de log, contagem de rotação e compactação.
Informações do arquivo de log específicas do aplicativo (para substituir os padrões) são mantidas em:
/etc/logrotate.d/
Minha ideia é monitorar o arquivo de acesso http. Site com mais acesso deve ter maior log de acesso. Logrotate
e cron
vão assistir a nós sobre isso e enviarão um e-mail sobre o problema ...
Edite logrotate.conf
e adicione algum código
sudo nano /etc/logrotate.conf
/path_to_apache_logs/*.log {
size 1M
dateext
postrotate
/usr/bin/killall -HUP httpd
ls -ltr /path_to_apache_logs/ | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]
endscript
}
Você deve personalizar
size
- tamanho do arquivo de log, mude com base nas suas necessidades
path_to_apache_logs
- altera o caminho baseado no caminho do log em vhost.conf
Mais sobre a personalização de logrotate.conf
, você pode encontrar aqui
Configure cron
para executar logrotate
a cada 5 min
*/5 * * * * root /usr/sbin/logrotate /etc/logrotate.conf
Quando você está em "ataque", acessa o log com rapidez de crescimento. Cron
executará logrotate
para verificar o tamanho do arquivo de log e, se o tamanho do arquivo for XX, ele irá girar o log, reiniciar o ataque e enviar mensagens para você.
Como cada host virtual possui um arquivo de acesso próprio, você saberá que o site é o servidor "killer"