Post em Destaque

Iniciando com o FreeBSD

Acreditava que seria fácil fazer uma pequena apresentação sobre FreeBSD, mas acredito que muitos que chegaram até aqui ou os que ainda estão por vir, não serão tão “marinheiros de primeira viagem”. E que nesse início de trabalho possamos contar com a ajuda de todos vocês. Muito...

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

*