# yum install httpd-devel
# yum install mod_evasive

* É necessário ativar o repositório EPEL

Reinicia-se o Apache para ativar o módulo

# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Verificar que o módulo está ativo

# php -r 'phpinfo();' | grep -i evasive
^ Loaded Modules | core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_dbm mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_groupfile mod_authz_dbm mod_authz_default util_ldap mod_authnz_ldap mod_include mod_log_config mod_logio mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate
mod_headers mod_usertrack mod_setenvif mod_mime mod_dav mod_status mod_autoindex mod_info mod_dav_fs mod_vhost_alias mod_negotiation mod_dir mod_actions mod_speling mod_userdir mod_alias mod_rewrite mod_proxy mod_proxy_balancer mod_proxy_ftp mod_proxy_http mod_proxy_connect mod_cache mod_suexec mod_disk_cache mod_file_cache mod_mem_cache mod_cgi mod_version mod_evasive20 mod_perl mod_php5 mod_proxy_ajp mod_python mod_ssl |

Agora vamos configurar o módulo. Esta é a configuração que estou a testar de momento, parece funcionar bem mesmo num servidor partilhado com muitos acessos.

Editar o ficheiro /etc/httpd/conf.d/mod_evasive.conf:

<IfModule mod_evasive20.c>
   DOSHashTableSize 3097
   DOSPageCount 6
   DOSSiteCount 100
   DOSPageInterval 2
   DOSSiteInterval 2
   DOSBlockingPeriod 600
</IfModule>

Reinicia-se novamente o Apache para recarregar as configurações:

# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]