Postfix mta: cómo manejar la cola
Escenario
Estamos recibiendo ataques de spam en nuestro servidor desde el dominio static.vnpt.vn (Vietnam).
Si utilizáis el MTA postfix, disponemos de un comando mailq
para ver la cola de correo.
Puedes conseguir lo mismo con este otro comando postqueue -p
.
Veo que hay muchos mensajes que no salen.
Concluyo que que el MTA está parando el ataque:
1
2
3
4
5
6
7
8
9
10
11
|
# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender /Recipient------- 7615C16206BF 5278 Thu Apr 13 09:48:29 MAILER-DAEMON (connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) Puckett7424@static.vnpt.vn 71D9A16206C2 5284 Thu Apr 13 09:48:29 MAILER-DAEMON (connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) Puckett7424@static.vnpt.vn ... |
Pero me molesta tenerlos encolados así que decido eliminarlos. Para ello utilizo el comando postsuper -d 81E7E1622C1C
donde 81E7E1622C1C
es el Queue ID
del mensaje a borrar:
1
2
3
4
5
6
7
8
|
AE1F81622AB6 5102 Fri Apr 14 10:20:11 MAILER-DAEMON (delivery temporarily suspended: connect to static.vnpt.vn[203.162.0.78]:25: Connection refused) Moody745@static.vnpt.vn -- 31 Kbytes in 6 Requests. root@server:~ # postsuper -d AE1F81622AB6 postsuper: AE1F81622AB6: removed postsuper: Deleted: 1 message |
Comandos postfix
Algunos de los comandos que os serán útiles para gestionar la cola de Postfix, y los que más utilizo son los siguientes:
1
2
3
4
5
6
7
8
9
|
postqueue -p # mostrar la cola de correo mailq # hace lo mismo postqueue -f # flush de la cola de correo (intentar volver a enviar todos los emails) postcat -q ID # mostrar contenido del correo con ese ID --- postsuper -d ID # eliminar el mensaje con ese ID postsuper -d ALL # eliminar todos los correos postsuper -r Number # encolar de nuevo el mensaje con ese ID postsuper -r ALL # encolar de nuevo todos los mensajes |
Iremos añadiendo otros que mediante tuberías (Pipes | ) permiten extraer información útil, de momento uno para contar:
1
|
postqueue -p | tail -n 1 |
Con esto conseguimos extraer la línea resumen del final (KBytes y Requests). Si afinamos:
1
|
postqueue -p | tail -n 1 | cut -d " " -f5 |
Con este filtro podemos contar el número de emails que actualmente hay en cola, como se aprecia aquí:
1
2
|
root@server:~ # postqueue -p | tail -n 1 | cut -d" " -f5 5 |
O bien si trabajamos de esta forma:
1
|
postqueue -p | tail -n 1 | cut -d " " -f2,3 |
Podemos saber el tamaño que ocupan.
1
2
|
root@server:~ # postqueue -p | tail -n 1 | cut -d" " -f2,3 25 Kbytes |
Por hoy suficiente, hasta la próxima!