Verificar validade das assinaturas das zonas hospedadas no DNSSEC

Publicado por eli marques junior (última atualização em 23/09/2013)

[ Hits: 4.554 ]

Download dnssec.sh




Verifica assinatura das zonas hospedadas no servidor $SERVER mostrando a data da criação, quando expira e quantos dias faltam para expirar...

Configuração:

- Alterar os DNS da variável "LISTA" e o IP/hostname da variável "SERVER".
- Na variável "day_expire_thresholds" setar os valores de warn e crit, respectivamente:

day_expire_thresholds=("10" "3")

Saída do script:

0 Zone_dns1.leg.br - Assinatura vencendo em 174 dias! Criação em: 2013/08/21, Expira em: 2014/02/17 as 13h:04min:46seg
0 Zone_dns2.leg.br - Assinatura vencendo em 113 dias! Criação em: 2013/08/21, Expira em: 2014/02/17 as 13h:07min:11seg
0 Zone_dns3.leg.br - Assinatura vencendo em 14 dias! Criação em: 2013/08/21, Expira em: 2013/09/16 as 13h:08min:15seg

  



Esconder código-fonte

#!/bin/bash
#ELI MARQUES JUNIOR
#
#Colocar esse script no diretorio "/usr/lib/check_mk_agent/local" com permissao para execucao
#
#day_expire_thresholds=("int warn" "int crit")




day_expire_thresholds=("10" "3")

SERVER="10.219.13.20"

LISTA=("dns1.leg.br" "dns2.leg.br" "dns3.leg.br" "dns4.leg.br" "dns5.leg.br"
       "dns6.leg.br" "dns7.leg.br" "dns8.leg.br" "dns9.leg.br" "dns10.leg.br")

#LISTA=(grep -iw zone /etc/bind9/lay.txt | awk '{print $2}')

##### ------>>> FAVOR NAO ALTERAR NADA DAQUI PARA BAIXO <<<------ #####
#####

quant_list=${#LISTA[@]}
warn=${day_expire_thresholds[0]}
crit=${day_expire_thresholds[1]}

count=0
while [ $count -lt $quant_list ]; do

    data_final=(`dig +dnssec @$SERVER ${LISTA[$count]} dnskey | grep RSIG | grep -o -m 1 "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"`)
    dia_final=`echo ${data_final[0]} | cut -c7-8`
    mes_final_int=`echo ${data_final[0]} | cut -c5-6`
    ano_final=`echo ${data_final[0]} | cut -c1-4`
    hora_final=`echo ${data_final[0]} | cut -c9-10`
    min_final=`echo ${data_final[0]} | cut -c11-12`
    seg_final=`echo ${data_final[0]} | cut -c13-14`

    data_inicial=`echo ${data_final[1]}`
    dia_inicial=`echo ${data_inicial[0]} | cut -c7-8`
    mes_inicial=`echo ${data_inicial[0]} | cut -c5-6`
    ano_inicial=`echo ${data_inicial[0]} | cut -c1-4`

    data_atual=(`date '+%m %d %Y'`)
    mes_atual=${data_atual[0]}
    dia_atual=${data_atual[1]}
    ano_atual=${data_atual[2]}

    case $mes_atual in
         01) mes_atual=Jan;;
         02) mes_atual=Feb;;
         03) mes_atual=Mar;;
         04) mes_atual=Apr;;
         05) mes_atual=May;;
         06) mes_atual=Jun;;
         07) mes_atual=Jul;;
         08) mes_atual=Aug;;
         09) mes_atual=Sep;;
         10) mes_atual=Oct;;
         11) mes_atual=Nov;;
         12) mes_atual=Dec;;
    esac

    case $mes_final_int in
         01) mes_final=Jan;;
         02) mes_final=Feb;;
         03) mes_final=Mar;;
         04) mes_final=Apr;;
         05) mes_final=May;;
         06) mes_final=Jun;;
         07) mes_final=Jul;;
         08) mes_final=Aug;;
         09) mes_final=Sep;;
         10) mes_final=Oct;;
         11) mes_final=Nov;;
         12) mes_final=Dec;;
    esac

    data_futuro=`date +%s -d "$mes_final $dia_final $ano_final"`
    data_atual=`date +%s -d "$mes_atual $dia_atual $ano_atual"`

    dias_expirar=`expr $data_futuro - $data_atual`
    resultado=`expr $dias_expirar \/ 86400`

    if [ $resultado -le $crit ]; then
        state=2

    else if [ $resultado -le $warn ]; then
        state=1

    else
        state=0

    fi
    fi

    printf "%s Zone_%s - Assinatura vencendo em %s dias! Criação em: %s/%s/%s, Expira em: %s/%s/%s as %sh:%smin:%sseg \n" $state ${LISTA[$count]} $resultado $ano_inicial $mes_inicial $dia_inicial $ano_final $mes_final_int $dia_final $hora_final $min_final $seg_final

    ((count++))

done

Scripts recomendados

Selecionar wallpaper no Fluxbox (baseado no Xdialog)

getdnsrouter

Montando compartilhamento de máquinas Windows no Linux

Script para acionamento de GPIO para Relé Raspberry Pi

Configuração pós instalação do Slackware


  

Comentários
[1] Comentário enviado por magicanakyn em 08/01/2014 - 20:58h

Fiz uma adaptação do seu Script para Freebsd. Se quiser a modificação posso passar. Agora o script reconhece se é um linux ou freebsd ao rodar.

[2] Comentário enviado por eli.marques em 09/01/2014 - 10:11h

opa...quero sim passa ai ....vlw


[1] Comentário enviado por magicanakyn em 08/01/2014 - 20:58h:

Fiz uma adaptação do seu Script para Freebsd. Se quiser a modificação posso passar. Agora o script reconhece se é um linux ou freebsd ao rodar.



[3] Comentário enviado por magicanakyn em 09/01/2014 - 18:41h

Mandei.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts