GNU/Linux

Mi servidor está enviando Spam

Si tu servidor ha comenzado a enviar Spam es probable que tu proveedor de hosting te haya enviado un mensaje y que además te hayan bloqueado un puerto, que posiblemente será el 25. Sabemos que es desesperante, en espacial si otras personas dependen de ti a la hora de usar su correo electrónico. Esta solución es válida tanto si utilizas tu servidor sin ningún panel de gestión de Hosting como si tu panel de Hosting es CPanel, VestaCP, Plesk y muchos otros.  Lo primero que debes hacer es calmarte. ¿Hecho? Pues bien, ahora vamos a ver cómo solucionarlo

#1. Comprobar la cola de salida del servidor de correo

En el caso de que tu servidor utilice exim como servidor de correo, tendrás que ejecutar el siguiente comando:

# exim -bp

El resultado será algo así como lo siguente:

[root@server]# exim -bp
40h 20K 1bef1u-0006bT-BX <direccion@spam.com>
 usuario1@dominio.com
 usuario2@dominio.com
 usuario3@dominio.es
 ..............
 usuarioN@dominio.net
40h 59K 1bef4c-0006kk-0l <direccicon@conocida.com>
 usuario1@dominio.com
 usuario2@dominio.com
37h 447K 1behiS-0003xU-5k <direccion@aconocida.com>
 usuario@dominio.com

Mediante este comando verás los emails que están en la cola de salida pero que aún no se han enviado. Es aquí en donde podrás comprobar que existen cientos de emails de Spam esperando a ser enviados. Lo que tenemos que averiguar es qué o quién los está enviando.

En cada elemento de la cola podrás ver el identificador del email, la dirección desde la que se envía el correo y, justo debajo, las direcciones que recibirán el email. Seguramente podrás ver que existe una o muchas direcciones que están enviando emails a una larga lista de direcciones.  Esta dirección no tiene por qué ser conocida, sino que puede ser una de tu servidor o una cuyo domino no conoces o que ni siquiera existe. Esto ocurre porque un servidor prácticamente puede enviar mensajes desde cualquier dirección que quiera, aunque obviamente, seguramente lleguen como Spam. Ésto ocurre gracias a los registros SPF cuando la IP del servidor de envío no es la definida en los registros SPF del dominio.

Puede que los emails se estén enviando desde una cuenta de email que haya sido hackeada o puede que se estén enviando desde un Script que haya sido hackeado en el servidor. En todo caso debemos fijarnos en el identificador del email que en el primer caso del ejemplo sería 1bef1u-0006bT.

#2. Comprobar datos adicionales de los mensajes sospechosos

Para ver datos adicionales del email debemos utilizar los comandos exim -Mvb y exim -Mvh seguidos del identificador del email. Por ejemplo:

# exim -Mvb 1bef1u-0006bT
# exim -Mvh 1bef1u-0006bT

Podremos ver el contenido del mensaje para comprobar que, en efecto, se trata de un mensaje de Spam. También podremos ver la dirección real que ha enviado el mensaje de Spam desde nuestro servidor o en su defecto, el script de nuestro servidor que lo ha enviado.

Un posible resultado será el siguiente:

180P Received: from admin by dominio.com with local (Exim 4.71)
         (envelope-from <spameador@dominio.com>)
         id 1bef1u-0006bT
         for usuario@victima.com; Mon, 23 Jan 2016 14:35:22 +0300
022T To: usuario@victima.com
035  Subject: 1 TeVoyASpamear Message
065  X-PHP-Originating-Script: 502:aqui_esta.php(1487) : eval()'d code
037  Date: Mon, 23 Jan 2016 14:35:22 +0000
046F From: Usuario Spameador <spameador@dominio.com>
059I Message-ID: <aas6d5astdasguydsa6dtsa8@dominio.com>
014  X-Priority: 2
068  X-Mailer: PHPMailer 5.3.2
018  MIME-Version: 1.0
085  Content-Type: multipart/alternative;
         boundary="b2_aas6d5astdasguydsa6dtsa8"
032  Content-Transfer-Encoding: 8bit

En este ejemplo podemos ver la siguiente línea:

065  X-PHP-Originating-Script: 502:aqui_esta.php(1487) : eval()'d code

¿Intereante, verdad? Nos están diciendo que el origen del mensaje es un Script de PHP y que su nombre es aqui_esta.php. Además, el email se envía desde la línea 1487 del archivo. Si el email hubiese sido enviado desde una dirección de email hackeada, veríamos al dirección de envío en lugar del nombre del script que envía el correo.

#3.Eliminar el origen del problema

Vamos a proporcionar una solución para los casos en los que el Spam se esté enviando desde una cuenta de correo de nuestro servidor y para los casos en los que se envíe desde un Script.

#3.1. Si el Spam se está enviando desde una cuenta de email

La solución es muy sencilla. En este caso tendríamos que suspender la cuenta o sencillamente cambiar la contraseña de la cuenta de email para evitar que se siga enviando Spam. Arreglado.

#3.2. Si el spam se está enviando desde un Script

Siguiendo con el ejemplo anterior, tenemos que buscar el script aqui_esta.php en nuestro servidor. Podemos utilizar el comando grep:

find /home -type f -name "aqui_esta.php"

Una vez encontrado, podemos borrar el script o en caso de que haya sido modificado, sustituirlo por una versión anterior. De todos modos, encontrarnos ésto no será nada bueno, así que es recomendable  asegurarnos de que nuestro servidor no ha sido hackeado al completo.

EduZRO

Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

No Comments

comment No comments yet

You can be first to leave a comment

Deja un comentario

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