sexta-feira, 28 de fevereiro de 2014

Verificando a data de expiração do Certificado do SSL no Linux com Zabbix


Introdução

Independentemente de o certificado ter sido adquirido junto a uma empresa certificadora, ou gerado internamente, ele tem uma validade e quando ela expirar os serviços que fazem uso desse certificado, vão apresentar problemas, para evitar isso iremos colher os dados do certificado via Shell Script e monitorar essa informação com o Zabbix.



Obtendo informações do Certificado

Digite o comando abaixo para visualizar as datas de validade do seu certificado

# echo | openssl s_client -connect localhost:443 2>/dev/null | openssl x509 -noout -dates

A sequencia de comandos abaixo é usada para cortar apenas o pedaço da informação que nos interessa, a data, a opção tr -s " " é utilizada para remover espaços duplicados, pois isso causaria problema em datas com um (Aug 6) ou dois (Aug 26) dígitos, de resto você pode ir executando o comando parte por parte e acompanhar o que acontece ;-)
#  echo | openssl s_client -connect localhost:443 2>/dev/null | openssl x509 -noout -dates | tail -1 | tr -s " " |cut -d "=" -f2 | cut -d " " -f1,2,4

Automatizando a leitura da Informação

certificado.sh

Vamos criar um script em bash para executar os comandos, nomeei-o de certificado.sh

 Alterar as permissões de execução e proprietário
# chown zabbix:zabbix /usr/local/etc/certificado.sh
# chmod 500 /usr/local/etc/certificado.sh


Configurando a informação no Zabbix

Configuração do agente

Vamos utilizar o recurso de UserParameter para que o Zabbix execute o script certificado.sh, após alterar o arquivo de configuração é necessário reiniciar o serviço.

Testando a leitura da informação

Vamos utilizar o comando zabbix_get para testar a leitura da informação. A sintaxe é zabbix_get -s IP_do_Servidor_Monitorado -k chave.

Criando o item no Zabbix

Acesse a interface do Zabbix // Configuração -> Hosts // Na linha do servidor clique em Itens // Clique no botão Criar item. Configure o item conforme imagem abaixo.

Observe que vamos monitorar o item a cada 24 horas (86400 segundos).

Download dos scripts

O script pode ser baixado aqui.

Referências

Blog do Vicente

terça-feira, 25 de fevereiro de 2014

Verificando a data de expiração do Certificado do Exchange com PowerShell e Zabbix



Introdução



Independentemente de o certificado ter sido adquirido junto a uma empresa certificadora, ou gerado internamente, ele tem uma validade e quando ela expirar os serviços do Exchange vão apresentar problemas, para evitar isso iremos colher os dados do certificado via PowerShell e monitorar essa informação com o Zabbix.


Obtendo informações do Certificado


Abra o Exchange Management Shell
 

Entre no diretório do certificado

cd Cert:\LocalMachine\My

Digite o comando abaixo para visualizar todos os seus certificados
Get-ChildItem

Verificando as informações de um certificado em particular
Get-ChildItem -Path E9***************************************3D2 | Format-List

Mas o que nos interessa é um objeto em particular, a data de expiração
Get-ChildItem -Path E9***************************************3D2 | Format-List -Property NotAfter


A sequencia de comandos abaixo é usada para transformar esse objeto em texto (String) e cortar apenas o pedaço da informação que nos interessa: a data. Você pode ir executando o comando parte por parte e acompanhar o que acontece ;-)
Get-ChildItem -Path E9***************************************3D2 | Format-List -Property NotAfter | Out-String | %{$_.split(':')[1]} | %{$_.split(' ')[1]} | %{$_.split(' ')[0]}
 


Automatizando a leitura da Informação

certificado.ps1

A primeira parte é criar um script em PowerShell para executar os comando acima, nomeei-o de certificado.ps1

Como pode ser observado acima a saída do comando, que é a data de expiração do certificado será armazenada no arquivo C:\Zabbix\certificado_tmp.txt

certificado.bat

Criei um pequeno arquivo .bat que chama o script em PowerShell, esse arquivo será utilizado no Agendador de Tarefas e diariamente irá gerar o arquivo com a data de expiração do certificado, teoricamente isso não é necessário, já que a data de expiração do certificado não muda, mas o seguro morreu de velho and shit happens ;-)


Confirme no executável do Exchange Management Shell o caminho do atalho.

Agendador de Tarefas

Abra o Agendador de Tarefas



Clique em Criar tarefa básica



Coloque um nome e Descrição e clique em Avançar


Marque a opção Diariamente e clique em Avançar


Marque para começar na data atual, no horário que lhe for mais conveniente e clique em Avançar


Escolha a opção Iniciar um programa e clique em Avançar


Coloque o caminho do script e clique em Avançar


Clique em Finalizar

Configurando a informação no Zabbix

Configuração do agente

Vamos utilizar o recurso de UserParameter para que o Zabbix leia a informação do arquivo certificado.txt, após alterar o arquivo de configuração é necessário reiniciar o serviço.

Testando a leitura da informação

Vamos utilizar o comando zabbix_get para testar a leitura da informação. A sintaxe é zabbix_get -s IP_do_Servidor_Monitorado -k chave.

Criando o item no Zabbix

Acesse a interface do Zabbix // Configuração -> Hosts // Na linha do servidor clique em Itens // Clique no botão Criar item. Configure o item conforme imagem abaixo.

Observe que vamos monitorar o item a cada 24 horas (86400 segundos).

Download dos scripts

Os scripts podem ser baixados aqui. Não se esqueça de colocar a informação referente ao seu certificado no script certificado.ps1

Referências