Detectar si se está realizando envíos de Spam desde Qmail
Lo primero que tendremos que hacer es conectarnos por consola a nuestro servidor por medio de algún programa SSH como puede ser Putty. Una vez dentro el siguiente paso será consultar las estadísticas de Qmail para ver el número de mensajes que hay en cola. Esto se realiza con el siguiente comando:
/var/qmail/bin/qmail-qstat
El resultado que obtendríamos sería algo parecido a lo siguiente:
# /var/qmail/bin/qmail-qstat
messages in queue: 975
messages in queue but not yet preprocessed: 0
Esto nos indica que tenemos 975 mensajes en cola que aún no han sido procesados. El siguiente paso será ver el listado de todos los que están en la cola pendiente de ser enviados. Esto lo podemos hacer de la siguiente forma:
/var/qmail/bin/qmail-qread
Esto nos mostrará un listado con registros parecidos al ejemplo que os ponemos a continuación:
30 Jan 2013 12:23:36 GMT #69238542 840 <nombre@nombre-dominio.com>
remote nombre@otro-dominio.com
En la cadena anterior, lo más importante es el identificador del mail. Este identificador corresponde al que aparece al lado del símbolo “#”, en nuestro caso 69238542.
Una vez que hemos visto sospechoso este correo, el siguiente paso es localizar la ubicación del mismo. Para ello utilizamos el comando “find”.
find /var/qmail/queue/mess/ -name 162504751
La ejecución de la instrucción anterior nos devolverá la ruta dónde está ese mensaje, en nuestro ejemplo sería:
/var/qmail/queue/mess/22/162504751
En este archivo podremos ver la información correspondiente al mensaje y podremos obtener el ppid del usuario que lo ha enviado. Para ver la información del fichero podemos hacer uso del comando “cat” o “more”.
more /var/qmail/queue/mess/22/162504751
De la información que nos muestra nos quedamos con la parte de la etiqueta “Received”
Received: (qmail 28319 invoked by uid 10007); 30 Jan 2013 12:20:58 +0100
Esa información nos indica que el correo con id 28319 ha sido enviado por el usuario (uid) 10003. Sabiendo el id del usuario es hora de localizar quien está haciendo ese envío, para ello ejecutamos la siguiente instrucción:
cat /etc/passwd | grep 10007
De esta forma sabremos quien ha realizado el envío y podremos tomar las medidas necesarias para solucionar este problema.