El viernes el servidor donde un cliente aloja unos 100 blogs y que administra mi empresa se cayó 2 veces. Ya se había caído varias veces en las últimas semanas. Reiniciando el servidor Apache y el servidor de base de datos MySQL solucionaba el problema.
Las caídas eran siempre con el mismo patrón: nro máximo de consultas SQL de MySQL alcanzado, nro máximo de procesos de Apache alcanzados, uso de I/O de disco casi al 100%.
Puse a loggear todo, consultas SQL, vmstat, nro de consultas SQL por usuario, etc y después que se cayó pude ver claramente lo que pasaba.
Algo con user-agent “HMSE_Robot” estaba accediendo intempestivamente al servidor (llegué a ver 400 accesos GET diferentes en 20 segundos).
Acá me enteré que:
“HMSE_Robot es un “nuevo” bot de origen coreano que recorre la red en busca de direcciones que recolectar para hacer spam y contenido que plagiar y lucrarse.
No respeta el robots.txt [...]
Es decir: estamos ante todo un señor comedor de ancho de banda ajeno.
El bot se identifica tal cual, con la cadena HMSE_Roboty la IP pertenece a un ISP llamado Hanaro Telecom, Inc. Parece ser que tienen todo el rango 222.239.220.xxx asignado siendo la IP 222.239.220.202 la principal fuente.”
Asi que finalmente lo bloqueé con el 
siguiente código en el archivo httpd.conf:
SetEnvIfNoCase User-Agent "HMSE_Robot" robot
Order Allow,Deny
Allow from all
Deny from env=robot
(SetEnvIfNoCase -del módulo mod_setenvif- asigna la variable “robot” si el user-agent con el cual se identifica el programa accediendo al servidor Apache es “HMSE_Robot” -no importando mayúsculas y minúsculas- y Deny niega el acceso en ése caso.)
Filed under: apache, hmse_robot, mysql | Deja un Comentario »