Monitorizando la seguridad SSL de nuestros servicios públicos con Centreon

Título largo y sugerente… y sí, efectivamente, en este post vamos a centralizar los chequeos de seguridad desde nuestro Centreon. Y así de manera automatizada podremos asegurarnos de los servicios que tiene nuestra empresa públicos a internet, servicios SSL/TLS que no tienen porqué ser seguros.

 

Así que, nos vamos a aprovechar de del gran sitio SSL Labs, que como sabemos nos permite chequear de manera online, pero manual nuestros sitios, así podemos saber la seguridad que ofrecemos en nuestras webs o servicios supuestamente seguros. Y la idea es eso, centralizarlo desde Centreon, tener nuestros sitios controlados de una manera automatizada.

 

Utilizaremos el script check_ssl que descargaremos de la web de Exchange de Nagios, lo dejamos como siempre en el directorio de plugins de Centreon (/usr/lib/centreon/plugins) y como mucho, necesitaremos la siguiente dependencia que instalaremos previamente:

pip install requests

 

Una vez instalado ya podremos ejecutarlo o preguntar al script por su ayuda, donde nos dará la siguiente información que nos permitirá elegir el sitio que queremos chequear, qué notas indicaremos que son Warning o Critical, el timeout para esperar, acordaros que la primera vez que genera el report tarda sus minutitos, los días para la caducidad del certificado…

 

Usage: check_ssl.py [options] ARG1 ARG2 ARG3 FOR EXAMPLE: -H www.ciencias.ulisboa.pt, -c E+,E-,E,F+,F-,F,T,M -w C+,C-,C,D+,D-,D

Options:
  -h, --help            show this help message and exit
  -H DOMAIN, --domain=DOMAIN
                        Domain name for check ssl
  -c CRITICAL, --critical=CRITICAL
                        Specify all value for ssllabs grade yo considered
                        critical, Ex. -c T,M,E+,E-,E,F+,F-,F
  -w WARNING, --warning=WARNING
                        Specify all value for ssllabs grade yo considered
                        warning, Ex. -w C+,C-,C,D+,D-,D
  -s SLEEP, --sleep=SLEEP
                        Specify the number of seconds you want to wait, if not
                        found the result in cache, the defoult value is 45
                        seconds
  -d DAYS, --days=DAYS  specify how many days before it expires will be
                        considered warning, the defoult value is 30 days
  -V, --version         This option show the current version number of the
                        program and exit
  -A, --author          This option show author information and exit

 

Nota, el script es para Python 2.x, lo digo porque igual necesitas indicarlo a la hora de ejecutar y que no lo abra mediante Python 3.x.

 

Total, que una vez hayamos cacharreado ya podremos como siempre, dar de alta el Comando que necesita Centreon ejecutar para que luego todos los servicios que generemos para chequear los distintos sitios web, pues se pueda ejecutar cómo nos guste. Como sabemos, desde “Configuration” > “Commands” > “Checks” podremos crear nuestro comando, y algo como lo siguiente nos valdrá:

/usr/bin/python2.7 $CENTREONPLUGINS$/check_ssl.py -H $ARG1$ -c E+,E-,E,F+,F-,F,T,M -w C+,C-,C,D+,D-,D --sleep=200 --days=7

 

Si nos fijamos, el comando llevará un único argumento que cumplimentaremos cada vez que creemos el servicio con el FQDN de la URL a verificar.

 

Total, que ya podremos crear tantos Servicios como necesitemos para chequear cada sitio público que tengamos, como siempre desde “Configuration” > “Services” > “Services by host”, creando o clonando.

 

Tras el trabajo, como siempre exportaremos los cambios en Centreon y podremos verificar los cambios, chequeamos y probamos. Ojo que si no has chequeado tu sitio inicialmente desde la web, no existirá el sitio cacheado por lo que puede que te tarde unos minutos en refrescar, por ello en el Comando le puse 200 segundos de espera, y 7 días de caché, para que cada 7 días haga de nuevo las comprobaciones. Y recordar que este chequeo con que se haga 1 vez al día vamos contentos.

Como siempre esperando que os interese y gracias por compartir & dar esos corazones en las redes sociales.