En entradas anteriores os había explicado cómo detectar un posible problema de inodos llenos en el servidor, además de explicaros cómo buscar la fuente del problema:
- Problema de inodos llenos en linux | Jose Alberto Benítez Andrades
- Buscar texto en todos los ficheros de un directorio y subdirectorios en Linux | Jose Alberto Benítez Andrades
- Conocer qué directorios han sido modificados recientemente en LINUX | Jose Alberto Benítez Andrades
Pero hay ocasiones en las que aún así, no se logra encontrar la fuente del problema y se siguen generando largas colas de email sin conocer de dónde proviene.
En primer lugar, ejecutamos el siguiente comando para comprobar cuántos elementos tenemos en la cola de qmail:
# /var/qmail/bin/qmail-qstat messages in queue: 27645 messages in queue but not yet preprocessed: 82
al confirmar que hay muchos mensajes en la cola vamos a intentar averiguar de donde viene el spam. Para ello utilizamos la utilidad qmail-read que muestra los mensajes en cola, quien lo envía y los destinatarios.
# /var/qmail/bin/qmail-qread 2 Oct 2013 15:51:09 GMT #647441 3521 <> remote stuetrory@yahoo.com
Si un mensaje tiene muchos destinatarios que no son conocidos casi con seguridad que será spam. Elegimos unos cuantos mensajes que parezcan spam y vamos a consultarlos con mas detalle.
El mensaje que hemos localizado en el paso anterior tiene el numero 647441
# find /var/qmail/queue/mess/ -name 647441
Abrimos el fichero en sí:
nano /var/qmail/queue/mess/14/647441
Y en él podemos ver
Received: (qmail 27984 invoked by uid 503); 3 Oct 2013 08:05:00 -0000 Date: 3 Oct 2013 08:05:00 -0000 Message-ID: <20131003080500.27983.qmail@dominio.com> From: services@dominio.com
Viendo el email from y el uid podemos detectar qué usuario de apache está ejecutando el script, es decir, desde qué directorio web se están enviando masivamente los emails.
Una vez tenemos esto claro, podemos utilizar una herramienta llamada Linux Malware Detect http://www.rfxn.com/projects/linux-malware-detect/ , desde allí podemos descargar la última versión http://www.rfxn.com/downloads/maldetect-current.tar.gz , su instalación es sencilla:
tar -xzf maldetect-current.tar.gz cd maldetect-1.4.2/ sudo ./install.sh
Una ves instalado, tan solo debemos ejecutarlo de la siguiente forma, si nuestro directorio a analizar es /home/dominio/ la sentencia sería la siguiente:
sudo /usr/local/sbin/maldet -a /home/dominio/
En función del número de ficheros que exista en su interior, tardará más o menos tiempo.
En cuanto haya finalizado la detección, podremos ver qué fichero es el que está causando el problema y eliminarlo.
Problema y solución de hackeo al servidor de DNS: named query (cache) client denied | Jose Alberto Benítez Andrades
Nov 29, 2013 -
[…] y ejecutar cualquier script que quisiéramos. En mi caso concreto, dicho script se encargaba de intentar enviar emails desde el servicio qmail saturando así la cola y generando tantos ficheros que finalmente el disco duro se saturaba completando el 100% de los […]