Facilitando a vida do DNSSec
Postado por gondim | Categoria Shell Script | Dia 13-04-2012
Tags:dnssec, Shell Script
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 |