Como luchar contra el SPAM en Plesk con Qmail

Primero compruebe que todos los dominios tienen la opción ‘Correo para usuario inexistente’ definida a ‘Rechazar’ pero no a reenviar. Puede cambiar este ajuste para todos los dominios usando “Operaciones en Grupo” en la página “Dominios” del CP de Parallels Plesk Panel. La prestación ‘Rechazar correo para usuario inexistente’ está disponible a partir de Parallels Plesk Panel 7.5.3.

Asimismo, compruebe que todas las redes e IPs incluidas en la lista blanca son de su confianza.

Compruebe cuántos mensajes hay en la cola de Qmail con:

# /var/qmail/bin/qmail-qstat
messages in queue: 27645
messages in queue but not yet preprocessed: 82

Si la cola tiene demasiados mensajes, intente descubrir la procedencia del SPAM.

Si el correo está siendo enviado por un usuario autorizado pero no desde el script PHP, puede ejecutar el comando que aparece a continuación para descubrir el usuario que envió la mayoría de mensajes (desde Plesk 8). Tenga en cuenta que es necesario tener activada la opción ‘Autorización SMTP’ en el servidor para poder ver estos registros:

# cat /usr/local/psa/var/log/maillog |grep -I smtp_auth |grep -I user |awk ‘{print $11}’ |sort |uniq -c |sort -n

La ruta a ‘maillog’ puede cambiar en función del SO que esté usando.

El próximo paso es la utilidad `qmail-qread`, que puede usarse para leer las cabeceras de los mensajes:

# /var/qmail/bin/qmail-qread
18 Jul 2005 15:03:07 GMT #2996948 9073 bouncing
done remote user1@domain1.com
done remote user2@domain2.com
done remote user3@domain3.com
….

Esta muestra los remitentes y destinatarios de los mensajes. Si el mensaje incluye demasiados destinatarios, probablemente se tratará de SPAM. Ahora intente encontrar este mensaje en la cola por su ID #2996948:

# find /var/qmail/queue/mess/ -name 2996948

examine el mensaje y encuentre la primera línea “Recibido” para saber desde dónde se envió la primera vez, por ejemplo, si encuentra:

Received: (qmail 19514 invoked by uid 10003); 13 Sep 2005 17:48:22 +0700

Significa que este mensaje fue enviado a través de algún CGI por el usuario con UID 10003. Usando este UID puede encontrar el dominio correspondiente:

# grep 10003 /etc/passwd 

Si la línea ‘Recibido’ contiene un UID de un usuario ‘apache’ (por ejemplo “invoked by uid 48″) – significa que el SPAM fue enviado a través de algún script PHP. En este caso, puede intentar conocer el spammer usando la información de los correos spam (direcciones de/para, asunto o cualquier otro dato). Generalmente es muy difícil descubrir la fuente de SPAM. Si está completamente seguro de que en este momento hay algún script enviando SPAM (la cola crece rápidamente sin motivo aparente), puede usar el siguiente script para saber qué scripts PHP se están ejecutando en este momento:

# lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ { if(!str) { str=$1 } else { str=str”,”$1}}END{print str}’` | grep vhosts | grep php

También puede aplicar el artículo 1711, que describe el procedimiento para conocer desde qué dominios se está enviando el correo a través de scripts PHP.

Líneas recibidas como:

Received: (qmail 19622 invoked from network); 13 Sep 2005 17:52:36 +0700
Received: from external_domain.com (192.168.0.1)

significan que el mensaje ha sido aceptado y entregado a través de SMTP y que el remitente es un usuario de correo autorizado.

11 opiniones en “Como luchar contra el SPAM en Plesk con Qmail”

  1. Pingback: Bitacoras.com
  2. ¡Hola!

    Sólo quería comentarte dos cosas. La primera que me encanta tu página y además me resulta terriblemente útil, ya que trabajamos con Plesk, Qmail, CentOS… Así que vamos, ni hecha a medida.

    Y la segunda, agradecerte mucho este post. No sabes lo útil que nos está resultando!

    Saludos!

  3. Hola, muy bueno el post!!, suponiendo que sea un script el que envíia o un usuario externo como lo bloqueas luego de descubrirlo, a mi me ha pasado algo asi hoy y como tenia el smtp (qmail) bloqueado borre toda la cola para seguir funcionando, como puedo hacer estas comprobaciones con el maillog? para poder descubrir la procedencia de estos correos tenia 2000 correos en cola mas los que fueron devueltos dando error gracias a la grey list no fueron enviados.
    saludos.

  4. He linkeado tu artículo desde mi página web, ya que me ha parecido muy útil.
    Espero que no haya ningún problema.
    Felicitarte también por el blog.
    Un saludo

    1. no hay ningún problema, lo que importa es que lo comprendas a la vez que lo aprendas…. como si te lo quieres copiar y ponerlo como si fuera tuyo, porque repito lo importante esque lo hayas aprendido y comprendido, una vez eso realizado….. tus conocimientos son tuyos, de nadie más
      Me da igual que se me copie o no se me copie, internet debe de ser libre en todo contenido que es público…. si no lo quisiera compartir lo tendria en un archivo txt en mi ordenador 😀

      be water my friend

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *