Servidor de Correo – Casillas y usuarios virtuales

Depuración y seguimiento en Postfix

Una característica muy buena que tiene Postfix es la capacidad de depurar hosts individuales específicos. Sólo hay que añadir esto al main.cf:

# Depurar hosts individuales
debug_peer_level=3
debug_peer_list=regexp:/etc/postfix/debug_peers

El nivel predeterminado es 2. En el caso del ejemplo estamos usando un archivo de mapeo, pero no es estrictamente necesario. Basta con ingresar valores separados por coma:

debug_peer_list=170.0.131.2,ejemplo.edu.ar

Utilizando regex podemos capturar múltiples IPs y dominios similares. Este es un ejemplo:

# Esta es una lista disimulada como un hash clave-valor.
# Los campos de la derecha sólo son útiles para las pruebas.
# Por alguna extraña razón, el regex de Postfix no soporta
# el parámetro "\d": /185\.234\.219\d{1,3}/ A
/170\.0\.131\.[0-9]{1,3}/ A
/[0-9]{4}.com/ B
/139\.176\.255\.106/ C

Es necesario tener en cuenta que esto es sólo un listado y no un mapa real, pero Postfix utiliza el mismo código de análisis para estos por lo que hay que presentar como un archivo de mapeo. Así que los campos de la derecha (A, B y C) – no significan nada. Son sólo marcadores de posición. Pero son útiles para probar los patrones de coincidencia.
Por supuesto, cuando se configura el archivo de mapeo resulta necesario procesarlo con postmap:

postmap debug_peers

Para evitar recibir errores al procesar el archivo de mapeo hay que ingresar valores con una descripción al lado, por ejemplo:

lists.isc.org #Listas de Correo de la ISC

También se puede ejecutar “postmap -q” para probar el mapeo:

postmap -q "170.0.131.2" regexp:debug_peers

Esto es especialmente útil con regex, ya que a veces el regex es un poco desordenado. De esta manera, podemos cerciorarnos que el mapeo está configurado como queremos.
Además de regex – se puede hacer un hash directo que es sólo un mapa de pares clave-valor; se puede hacer pcre que es como la versión Perl de regex; y se puede hacer CIDR. Al ejecutar el comando “postconf -m”, mostrará con qué se compiló Postfix (el tipo de mapas) que podemos utilizar:

# postconf -m
btree
cidr
environ
fail
hash
inline
internal
memcache
nis
pipemap
proxy
randmap
regexp
socketmap
sqlite
static
tcp
texthash
unionmap
unix

Verbosidad

También se puede configurar la verbosidad en todo el servicio SMTP de Postfix simplemente añadiendo un “-v” en el archivo master.cf:

smtp      inet  n       -       y       -       -       smtpd -v

Luego recargamos Postfix

# systemctl reload postfix

Veremos grandes cantidades de datos, pero podría ser bastante útil a veces. Se puede hacer lo mismo para otros procesos esclavos de Postfix.
Para más detalles recomendamos revisar los documentos de depuración de Postfix.