Verificar validade das assinaturas das zonas hospedadas no DNSSEC
Publicado por eli marques junior (última atualização em 23/09/2013)
[ Hits: 4.911 ]
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
#!/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
Script para mostrar IP, usando zenity
Criando contas de usuario em varios servidores ao mesmo tempo
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (1)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)









