Gravatar de Armonth

El spam es malo y podría ser peor

A la espera de ver si puedo echar una mano a Cesarius y sin mucho más que hacer hoy al ser domingo sabado me han pedido ayuda por problemas de rendimiento en otro blog.

El blog en cuestión no es que sea muy grande, ni consume mucho — todo ello en palabras de su autor –, un desglose:

  • Blog con plantilla casi por defecto.
  • 400-500 visitas diarias.
  • 50MB diarios.
  • Servidor dedicado.
  • Load average: 9.05.

¿9.05? Eso es mucho. Moviendo entre 12 y 30 veces más megabytes diariamente, muchísimas más visitas y teniendo que compartir máquina con otros usuarios a mí el top me suele devolver valores de 5. Y cabe recordar que una carga de menos de 6 es moderada, no llega ni a alta.

Toca empezar a mirar cosas:

  • ¿WP-Cache? Activado.
  • ¿Otros scripts y recursos? Nada. Lleva dos días con sus otras webs y scripts totalmente cerrado. Solo tiene el blog.
  • ¿Plugins bulímicos? Usa akismet “y gracias”.

En un momento dado, mirando la interfaz me fijo en el número de comentarios cazados por akismet pendientes: casi 35.000.

Y la solución es… el spam. Esos 35.000 han resultado ser desde las últimas 24 horas. Un ataque en toda regla. Lo mejor sin duda ha sido esto:

grep "212.52.4.x" access.log.2007-07-12 | wc -l
0
grep "212.52.4.x" access.log.2007-07-13 | wc -l
92155

Una sola IP que, al menos en los registros de todo el mes, nunca había aparecido y de repente se pone y genera 92155 peticiones. Y como esa había entre 12 y 15 IPs.

Un input oculto como sistema antispam después la carga ha bajado significativamente hasta algo manejable. Un baneo de 12 direcciones IP usando IPtables después la carga ya muestra valores más normales al uso legitimo de la máquina: 0.35.

El spam es malo pero podría ser peor: al menos de momento (y al menos por lo que yo he visto) envían spam a saco desde múltiples sitios y reparten entre los sitios a spamear. El problema viene cuando a uno se le va la mano y lo que es un acto ilícito que consume un porcentaje de tus recursos pasa a ser un perjuicio total consumiendo la totalidad de recursos…

Algunos spammers en lugar de pagar multas deberían ir directamente a la cárcel. Como curiosidad, en mi caso ese 5 de carga ha bajado de media a 3.5 desde que empecé a usar el input oculto y puse en lugar del wp-comment-post.php un <?php die('Quieto parao'); ?>.

16 Comentarios (feed)

  1. Gravatar de Shora Shora nos comenta:

    Yo también he notado una mejora del rendimiento del blog gracias al input oculto. Cuando lo puse ya me estaban llegando entre 1000-2000 spam al día y lo que faltaba por venir…

    Ahora, sólo recibo una media de 5 spam al día y la mayoría por backlinks :)

    Sábado, 14 de Julio/2007 @ 18:24

  2. Gravatar de CrackVan CrackVan nos comenta:

    domingo… ¿domingo?, ahhh no que es sábado aun… joer tío no me des estos sustos!! XD

    La verdad es que son pesados a mas no poder estos spammers, como les dejes te chupan hasta… el server.

    Sábado, 14 de Julio/2007 @ 18:28

  3. Gravatar de Reboot Reboot nos comenta:

    A mí no me llega spam :(
    Corrijo… Me empezó a llegar y metí un captcha casero. Lo que sí me llegan son ataques de una cosa que se llama fuck-machine o algo así, que bueno, no para de chupar errores 404 u_u

    Sábado, 14 de Julio/2007 @ 18:50

  4. Gravatar de Liamngls Liamngls nos comenta:

    ¿Domingo? Are you from the future? xD

    Sábado, 14 de Julio/2007 @ 20:03

  5. Gravatar de Armonth Armonth nos comenta:

    Shora pero tu blog es de medicina y los médicos sois los culpables del spam, del cancer de pezón, de las enfermedades en general y de que llueva en jueves x-D

    CrackVan y Liamngls, ejem lo corrijo, debe haber sido un ataque x-D

    Reboot ya pero los captchas son un puro coñazo :-\

    Sábado, 14 de Julio/2007 @ 20:48

  6. Gravatar de Cesarius Cesarius nos comenta:

    Hombre, pues muchas gracias por la manota que me has dado con el server… me ha quedado algo clarísimo: eres un crack en el tema.

    Gracias de nuevo!!!

    Domingo, 15 de Julio/2007 @ 1:28

  7. Gravatar de aNieto2k aNieto2k nos comenta:

    Hector, creo recordar que 6 es muy alto.

    Debido al problema que tuve con Dreamhost estuve indagando sobre el tema y creo recordar que el Load Average nunca debería superar el número de procesadores que tiene la máquina. Aunque esto es solo la teoría ya que no he logrado bajar de la media que tu comentas (5-7) y con picos de hasta 20 (he llegado a ver en algunos casos concretos).

    Nada de comparación con los 252 que llegué a ver en Dreamhost.

    Domingo, 15 de Julio/2007 @ 3:40

  8. Gravatar de Alex Alex nos comenta:

    Gracias por los consejos

    Domingo, 15 de Julio/2007 @ 4:59

  9. Gravatar de Armonth Armonth nos comenta:

    aNieto2k leete el primer enlace. Es a partir de 6 en adelante que empieza a ser alta / muy alta. Por debajo de eso es moderada.

    Y sobre tu parte en negritas no tiene sentido. Al menos por mi experiencia precisamente el load average se calcula a partir de la carga total de todos los procesadores por lo que si tenemos dos CPUs debemos dividir la carga entre 2. Yo tengo una sola CPU y he puesto el PC a 5, 6, etcétera y es a partir de 7 que empieza a no responder del todo bien.

    En cierto modo un load-average por encima de 1 nos indica es que habrá procesos en cola o con menor prioridad al no disponer de toda la CPU que necesitan.

    Si miras documentación ten cuidado que dependiendo del sistema operativo no se tiene en cuenta los procesos activos, o los procesos en cola, etcétera. Vamos que esto es muy variado y lo mío son indicaciones generales para servidores compartidos. En uno dedicado al poder optimizarlo al gusto entonces ya sí que valores altos son algo preocupante…

    Note that the load average is not only a measure of CPU, it is also a measure of disk I/O and, sometimes, network performance.

    PD: Dado que me comentan problemas para entender la lógica de top, os recomiendo que probeis mpstat:

    mpstat
    10:01:41     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    10:01:41     all    5,38    0,01    0,86    2,11    0,08    0,00    0,00   91,56     82,44
    
    01:02:08     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
    01:02:08     all   57.93    4.17   10.79    0.00    0.00    0.00   27.11    650.98
    

    El primer valor representa mi CPU sin casi nada de carga (en el top todos los procesos marcan 0% de uso de CPU y curiosamente el load average ya marca 0.37) el segundo es el del server y como veis todavía hay bastante CPU sin usar (%idle).

    Domingo, 15 de Julio/2007 @ 9:56

  10. Gravatar de InKiLiNo InKiLiNo nos comenta:

    Pues yo tengo el mismo problema de CPU, hace un mes me fui de DH por eso y ahora en el que estoy me sigue pasando lo mismo, no tanto como en DH pero pasa y eso que yo tengo cero de spam desde que puse en practica el Bad Behavior + Comment Policy + Askimet

    Al final mi solución ha sido pillarme un dedicado, a ver que tal, ya te contaré, y sino ya te pediré HELP !!!!

    Domingo, 15 de Julio/2007 @ 12:12

  11. Gravatar de Diego Sevilla Diego Sevilla nos comenta:

    Hola:

    Lo del campo oculto es una solución temporal, porque hay muchos programas que son capaces de saltarse esa restricción también (lo sé por experiencia). Considero que WP-Hashcash o WP-Morph (http://neuromancer.inf.um.es/blog/index.php?s=wp-morph&submit=Search) son opciones más adecuadas.

    Saludos!
    diego.

    Domingo, 15 de Julio/2007 @ 15:30

  12. Gravatar de Armonth Armonth nos comenta:

    Todo lo temporal que quieras, pero al menos de momento es difícil de saber (y más si no añades clases y lo ocultas sin usar display:none) que campo es oculto y cual no. Usar javascript aunque solo sea por un par de conocidos que usan Noscript “a muerte” no me acaba de convencer :-P

    Domingo, 15 de Julio/2007 @ 17:59

  13. Gravatar de j_aroche j_aroche nos comenta:

    Me recordé de la ocasión cuando el dedicado llego a server load de 150 por una ataque de spam… toco bloquear la IP origen y santo remedio ;)

    Domingo, 15 de Julio/2007 @ 23:56

  14. Gravatar de mariano mariano nos comenta:

    damn… jamas se me ocurrio mirar eso a ver si el MovableType me estaba generando problemas por spam :S

    Lunes, 16 de Julio/2007 @ 4:11

  15. Gravatar de guido_cc guido_cc nos comenta:

    Como miden eso del “Load average”?

    Lunes, 16 de Julio/2007 @ 16:52

  16. Gravatar de Armonth Armonth nos comenta:

    “top” o “mpstat”… en consola conectado al servidor vía ssh.

    Lunes, 16 de Julio/2007 @ 18:56

Comentarios cerrados