Verificar validade das assinaturas das zonas hospedadas no DNSSEC

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

[ Hits: 4.414 ]

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

Script iniciante para adm. de usuarios e quotas

Quantos delimitadores?

Script para Gerenciamento de Pacotes no Slackware

Capitu (scripts melhorados)

vDNS


  

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