miércoles, 18 de noviembre de 2015

Revisar IPs en el Log de Apache para detener ataques de denegación de servicio

Como parte del mantenimiento de servidores web es necesario hacer revisión del número de accesos de los usuarios a nuestro servidor web para detectar un ataque de denegación de servicio. Para esto veremos como revisar el Log de nuestro servidor web Apache.

Para realizar la revisión buscaremos las IPs que tienen mas de 500 visitas a nuestro portal, para luego bloquearlas. Esto bajo el supuesto que las IPs que pasan las 500 visitas están realizando ataques a nuestra web. (Puede tomar otro valor mayor o menor según como Ud. considere)

Para esto ejecutamos las siguientes líneas.

FILE=/var/log/httpd/access_log;
 for ip in `sudo cat $FILE |cut -d ' ' -f 1 |sort |uniq`;
 do { COUNT=`sudo grep ^$ip $FILE |wc -l`;
 if [[ "$COUNT" -gt "500" ]]; then echo "$COUNT:   $ip";
 fi }; done

La ejecución anterior nos devolverá las IPs con los números de visitas de estas IPs, podemos ayudarnos con una herramienta de Tracking Web  ( como http://www.ip-tracker.org/) para ver cual es el origen de estas IPs y hacer un análisis de que acción tomar con estas IPs. Por ejemplo, si nuestro portal vende productos peruanos a los peruanos, y observamos en los Logs excesivas visitas de Rusia o USA, deberíamos bloquear esas IPs.

Para bloquear las IPs podemos hacerlo actualizando nuestro portal web, específicamente el archivo .htaccess al cual añadiremos las siguientes líneas (donde IPx es la IP del visitante)

order allow,deny
deny from IP1
deny from IP2
...
deny from IP3
allow from all 

No hay comentarios: