Dentro de /var/qmail/bin tenemos varios binarios que pueden ayudarnos a encontrar la raiz del problema:
1) En primer lugar ejecutamos ./qmail-qstat, con este comando conseguimos el numero de mensajes que hay en cola:
messages in queue: 52 <==
messages in queue but not yet preprocessed: 0
En este caso 52 mensajes son muy poco, por lo tanto, en el servidor donde estoy haciendo la prueba no hay spam. Imaginemos que hay 23876, en este caso vamos a analizar que es lo que pasa.
2) El siguiente comando que vamos a utilizar es ./qmail-qread, la salida de este comando muestra los destinatarios y los senders:
9 Mar 2006 22:59:28 GMT ##162504751 166781 <
[email protected]> bouncing
done remote
[email protected]
done remote
[email protected]
done remote
[email protected]
done remote
[email protected]
done remote
[email protected]
3) Parece que hemos encontrado un posible correo de spam, pues nada vamos a buscarlo:
find /var/qmail/queue/mess/ -name 162504751
Nos encontrara el mensaje en cuestion /var/qmail/queue/mess/22/162504751, le hacemos un more o un cat:
Y nos fijamos en la etiquete Received:
Received: (qmail 28319 invoked by uid 10003); 9 Mar 2006 22:58:58 +0100
El correo con id 28319 ha sido llamado por el usuario 10003, todo parece indicar que puede ser un cgi de alguna web, pues nada, lo miramos:
grep 10003 /etc/passwd => encontrariamos al usuario, en su caso proceder.
Received: (qmail 28319 invoked by apache); 9 Mar 2006 22:58:58 +0100
El correo ha sido enviado por apache, puede ser algun script en php, con el siguiente script podemos ver los scripts en php que se estan ejecutando en este mismo instante:
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
httpd 21751 apache 302r REG 130,13 95 60964898 /var/www/vhosts/prueba.com/httpdocs/index.php
Received: (qmail 28319 invoked from network); 9 Mar 2006 22:58:58 +0100
El usuario que lo envia es un usuario autentificado.