Post em Destaque

Quando serviços ficam caindo… o que fazer até a solução chegar?

Serviços rodando não deveriam cair simplesmente do nada. Muitos deles informam a causa em seus logs ou tentam pelo menos dar uma dica do problema. Pode estar relacionado muitas das vezes com problemas de memória como os segfaults (signal 11) mas as vezes os segfaults podem indicar um bug na aplicação...

Leia mais...

Facilitando a vida do DNSSec

Postado por gondim | Categoria Shell Script | Dia 13-04-2012

Tags:,

0

Alguns admins já usam o DNSSec e provavelmente já fizeram alguma ferramenta para administrar sua lista de domínios. Agora se você tem diversos domínios para converter em DNSSec, precisa fazer a atualização dos mesmos periodicamente e não possui nenhuma ferramenta para isso, seus problemas acabaram. rsrsr Vou mostrar aqui 2 scripts que fiz a long long time que podem lhe ajudar nessa tarefa. Ah! Se você não sabe ainda o que é o DNSSec, porque ele é necessário e como ele funciona aqui vai uma leitura bem bacana nesse link: Porque DNSSec

Então vamos para o nosso primeiro script, o dnssecconv.sh, onde este irá pegar todos os arquivos de domínios com extensão .db, criar as chaves deles, fazer as devidas modificações no named.conf e gerar um arquivo com os dados que precisa para cadastro no Registro.br:

O script dnssecconv.sh deve estar no mesmo diretórios dos arquivos de domínio e antes de rodá-lo faça um backup, porque não me responsabilizo por qualquer dano que esse script possa causar. Estou aqui para ajudar e não para ser responsabilizado por algo.  🙂

Em tempo o arquivo gerado com as informações que você vai precisar é este: dnsseclist.txt

#!/bin/sh
echo “DNSSecConv – 1.1 – Copyright 2011” > dnsseclist.txt
echo “Marcelo Gondim ” >> dnsseclist.txt
echo “http://www.bsdinfo.com.br” >> dnsseclist.txt
echo “`date`” >> dnsseclist.txt
echo “” >> dnsseclist.txt
echo “DNSSEC List” >> dnsseclist.txt
echo “===========” >> dnsseclist.txt
for lista in `ls *.db`; do
if [ “$lista” != “empty.db” -a “$lista” != “localhost-forward.db” -a “$lista” != “localhost-reverse.db” ]; then
   dominio=”`echo $lista|sed -e ‘s%.db%%g’`”
   if [ “`ls K$dominio.*.key 2> /dev/null`” == “” ] ; then
      dnssec-keygen -r /dev/urandom -f KSK -a RSASHA1 -b 1024 -n ZONE $dominio
      dnssec-signzone -S -z -o $dominio $dominio.db
      sed -i ” -e ‘s%$dominio.db%$dominio.db.signed%g’ /etc/namedb/named.conf
   fi
   ds_field=”`head -1 dsset-$dominio.|awk ‘{print $4}’`”
   hash_field=”`head -1 dsset-$dominio.|awk ‘{print $7}’`”
   echo “$dominio || $ds_field || $hash_field” >> dnsseclist.txt
fi
done

O segundo script é mais simples e só serve para atualizar as chaves, porque de tempo em tempo o Registro.br solicita essa atualização senão o domínio pára de funcionar. Esse script se chama dnssecsync.sh e também deve ser rodado no diretório onde se encontram os arquivos de domínios. Mais uma vez não esqueça do backup. 😉

#!/bin/sh
# DNSSecSync – 1.1 – Copyright 2011
# Marcelo Gondim
# http://www.bsdinfo.com.br
for lista in `ls *.db`; do
   if [ “$lista” != “empty.db” -a “$lista” != “localhost-forward.db” -a “$lista” != “localhost-reverse.db” ]; then
      dominio=”`echo $lista|perl -i -pe ‘s%.db%%g’`”
      dnssec-signzone -S -z -o $dominio $dominio.db
   fi
done

 

Share Button

Write a comment

*