Monitorizando los registros DKIM, SPF y DMARC desde Centreon

Bueno, bueno, bueno… ¡volvemos a la carga con Centreon! Hoy un post para tener controladitos los registros públicos relacionados con el servicio del correo electrónico. Así que si no queremos tener problemas de correo, nos aseguraremos de que el registro DKIM, SPF y DMARC existen en nuestro dominio.

Si queremos tener un servicio de correo perfectamente configurado, conocemos que tenemos que tener perfectamente configurados los registros DKIM, SPF y DMARC, para ello tenemos múltiples páginas que nos ayudarán a crearlos, validarlos y asegurar que cumplimos los estándares, conseguimos buena reputación y no nos penalizarán los sistemas antispam del resto de organizaciones. Lo dicho la mítica web de https://www.mail-tester.com nos ayudará en tener la configuración óptima.

Una vez este trabajo está realizado, desde el equipo de monitorización podremos sencillamente confirmar que estos registros existen y no se pierden, ya que son tantas cosas las que tenemos que considerar en una organización, que mejor que alguien mire cada punto crítico de la organización.

 

DKIM

Total, txapas a parte, en este post vamos a conseguir que mediante un par de scripts podremos integrarlos en Centreon para conocer que los registros son válidos, empezamos con ‘check_dkim’, instalamos los requisitos y nos descargamos el script:

yum install python36-devel
pip3.6 install pycrypto
pip3.6 install dnspython

cd /usr/lib/centreon/plugins/
git clone https://github.com/countsudoku/check_dkim.git
cd check_dkim/

 

Y probamos directamente desde shell el funcionamiento, cada uno obviamente con su nombre de dominio público:

/usr/bin/python3.6 /usr/lib/centreon/plugins/check_dkim/check_dkim.py -d bujarra.com -s default
DKIM OK - DKIM key is there

 

SPF

Lo mismo, instalamos requisitos, nos descargamos el script ‘check_spf_record_match.rb’, lo hacemos ejecutable:

yum install ruby -y
wget https://raw.githubusercontent.com/garymoon/nagios-check-spf-record-match/master/check_spf_record_match.rb
chmod +x check_spf_record_match.rb

 

Y lo probamos:

/usr/lib/centreon/plugins/check_spf_record_match.rb --domains bujarra.com --debug
Options: {:debug=>true, :domains=>["bujarra.com"]}
record for bujarra.com: v=spf1 include:_spf.srv.cat +a +mx include:pepipost.net ~all
OK: All records in sync.

 

DMARC

Para usar este script nos basamos en el script anterior de SPF, creamos el de DMARC haciendo una copia del fichero actual y vamos a crear uno para nosotros.

cp ./check_spf_record_match.rb ./check_dmarc_record_match.rb

 

Y le hacemos los siguientes cambios:

  • Sustituimos la palabra spf por dmarc
  • Sustituimos la palabra SPF por DMARC
  • En la línea 50
    • de: records = dns.getresources(domain, Resolv::DNS::Resource::IN::TXT)
    • a: records = dns.getresources(‘_dmarc.’ + domain, Resolv::DNS::Resource::IN::TXT)
  • En la línea 65
    • de: dmarc_record_n = txt_strings.index{|s| s.downcase.include?’DMARC’}
    • a: dmarc_record_n = txt_strings.index{|s| s.include? ‘DMARC’}
  • En la línea 70
    • de: puts txt_strings.index{|s| s.downcase.include?’DMARC’}
    • a: puts txt_strings.index{|s| s.include?’DMARC’}
Y probamos:
 
/usr/lib/centreon/plugins/check_dmarc_record_match.rb --domains bujarra.com --debug
Options: {:debug=>true, :domains=>["bujarra.com"]}
record for bujarra.com:  v=DMARC1; p=none
OK: All records in sync.

 

 
 
Como siempre, una vez que sabemos que los comandos funcionan, será la hora de dar de alta los Comandos en nuestro Centreon, desde «Configuration» > «Commands» > «Checks». Crearemos en este caso 3 comandos, uno para cada chequeo, lo único que haremos será tener en cuenta quitar el ‘–debug’ utilizado en los ejemplos que hemos visto; y si queremos y tenemos varios dominios a chequear, podemos cambiar eso por algún argumento.
 
 
 
 
Y una vez tengamos los Comandos es hora de crear los Servicios desde «Configuration» > «Services» > «Services by Host» , en este caso igualmente, haremos 3 servicios, uno para el chequeo del DKIM, otro para el SPF y otro para el DMARC. A este tipo de servicios les podemos subir el chequeo predeterminado, a quizás 1440 minutos para que se ejecute una vez al día… al gusto.
 
 
 
 
Recordar grabar y exportar la configuración de Centreon y si hemos hecho todo bien, podremos verificar que los chequeos son válidos y nos aseguramos que nunca desaparezcan estos registros TXT tan importantes del servidor DNS público.
 
Esperando que este tipo de temas os generen interés u os de ideas para poder intentar abarcar cualquier necesidad crítica en la empresa y pueda afectar al servicio del negocio.
 
 
Héctor Herrero