Introducción
Antes de realizar la introducción este artículo se basa principalmente en comandos para trabajar con Exim y Postfix.
Últimamente esta habiendo muchos ataques a vulnerabilidades de las programaciones o de los CMS/Plugins que no están actualizados de nuestra web. Esto como comprenderán es algo muy grave que la gente no suele realizar debido a que se les olvida, no tienen tiempo o directamente no quieren. Cuando ocurre esto es cuando vienen los problemas y sobre todo a las empresas hosting le piden explicaciones.
Pues bien recordad que debemos tener actualizados nuestros CMS/Plugins a la medida de lo posible.
El problema que encontramos a la hora que intrusionan es que suelen ser para ejecutar una SHELL (para robar información o usar el servidor como phising o hosting) o para enviar correos spam a un sin número de cuentas. Nosotros nos centraremos en esta última parte para detectar a posibles spammers y como ver las colas de correo, etc.
Correos en Exim
Algunos de los comandos que nos resultarán de bastante utilidad son los siguientes:
Mostrar el número de correos encolados
exim -bpc
Mostrar un resumen de los correos encolados
exim -bp | exiqsumm
Mostrar los corres encolados
exim -bp
Eliminar un correo en concreto
exim -Mrm #IDCORREO
Congelar un correo
exim -Mf #IDCORREO
Procesar un correo
exim -M #IDCORREO
Realiza una traza a un correo (Ip de su servidor)
exim -bt 'email' Ejemplo: $ exim -bt 'xxx@terra.es' xxx@terra.es router = lookuphost, transport = remote_smtp host terra.es [208.84.244.10]
Ver las cabeceras/cuerpo/log del correo
Para este comando lo que cambia es el última letra de los parámetros del comando.
Cabeceras: exim -Mvh #IDCORREO Cuerpo: exim -Mvb #IDCORREO Logs: exim -Mvl #IDCORREO
Forzar el envío de los correos que están encolados
exim -qff
Buscar correos de un determinado emisor o receptor:
Emisor: exiqgrep -f [usuario]@dominio Receptor: exiqgrep -r [usuario]@dominio
Elimina todos los correos que hayamos congelado
exiqgrep -z -i | xargs exim -Mrm
Elimina todos los correos de un destinatario
exiqgrep -i -r email@dom.tld | xargs exim -Mrm
Elimina todos los correos de un emisor
exiqgrep -i -f email@dom.tld | xargs exim -Mrm
Vaciar la cola de correo
Existen dos maneras de realizarlo 1 a través de comando y otra borrando los ficheros dentro de un directorio:
Comando: exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sh Directorio: rm /var/spool/exim/input/*
Borrar correos con un determinado patrón de búsqueda
exim -bp | grep "patron" | awk '{print $3}' | xargs exim -Mrm
Correos en Postfix
Para empezar quizás no existan comandos que te muestren la información tan directa como EXIM, pero existen muchos sistemas que están en POSTFIX y tenemos que manejarnos.
Mostrar la cantidad de correos encolados
postqueue -p | tail -n 1 | cut -d' ' -f5
Mostrar los mensajes encolados
Existen 2 comandos que nos dan el mismo resultado
postfix -p o mailq
Ver los detalles de un correo
Con el comando anterior obtenemos los ID de los correos encolados.
postcat -q IDCORREO
Forzar la salida de un correo
postqueue -i IDCORREO
Forzar la salida de los correos
# flush queue postfix -f
Enviar los correos encolados de un dominio
postqueue -s dominio
Eliminar un correo
postsuper -d IDCORREO
Eliminar todos los correos encolados
postsuper -d ALL
Eliminar los correos que han sido rechazados por el destinatario
postsuper -d ALL deferred
Eliminar los correos de un dominio
mailq | grep '^[A-Z0-9]' | grep @dominio.tld | cut -f1 -d' ' | tr -d \* | postsuper -d Si no funciona probad este otro for A in $(mailq | grep @dominio.tld | awk '{print $1}' | tr -d "\*" | tr -d "\!"); do postsuper -d $A; done