Exim y Postfix – Comandos en Linux

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

Deja una respuesta

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