diff -r 960f5e7f78eb -r 920c1a51ba0e dnssec-creatkey --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dnssec-creatkey Mon Jun 28 18:02:04 2010 +0200 @@ -0,0 +1,73 @@ +#!/bin/bash + +ZONE_DIR="/etc/bind/master" +ZSKLIVE=60 # ZSK-Schluessellebensdauer in Tagen + +function TEST_ZSK { # prueft ob es einen ZSK gibt + for DOMAIN in $ZONE_DIR/* + do + test -f $DOMAIN/index.zsk || echo ${DOMAIN##/*/} + done +} + +function TEST_KSK { # prueft ob es einen KSK gibt + for DOMAIN in $ZONE_DIR/* + do + test -f $DOMAIN/index.ksk || echo ${DOMAIN##/*/} + done +} + +function TEST_ZSK_TIME { # prueft ob der ZSK abgelaufen ist + for DOMAIN in $ZONE_DIR/* + do + STARTTIME=`ls $DOMAIN/index.zsk -l --time-style=+%s | cut -d' ' -f6 2>/dev/null` + ENDTIME=$[STARTTIME + $[ZSKLIVE * 86400]] + NOWTIME=`date +%s` + + if [ $ENDTIME -le $NOWTIME ] + then + echo ${DOMAIN##/*/} + fi + done +} + + +VAR_ZSK_TIME=`TEST_ZSK_TIME` +VAR_ZSK=`TEST_ZSK` +VAR_KSK=`TEST_KSK` + + +for NEW_ZSK_ZONE in $VAR_ZSK $VAR_ZSK_TIME # Erstellt ZSK +do + cd $ZONE_DIR/$NEW_ZSK_ZONE + echo "erzeugt zsk fuer" $NEW_ZSK_ZONE + dnssec-keygen -a RSASHA1 -b 512 -n ZONE $NEW_ZSK_ZONE >> index.zsk + INDEX_ZSK=$( tail -n2 index.zsk ) + echo $INDEX_ZSK | fmt -w1 > index.zsk +done + +for NEW_KSK_ZONE in $VAR_KSK # Erstellt KSK +do + cd $ZONE_DIR/$NEW_KSK_ZONE + echo "erzeugt ksk fuer" $NEW_KSK_ZONE + dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $NEW_KSK_ZONE >> index.ksk + INDEX_KSK=$( tail -n2 index.ksk ) + echo $INDEX_KSK | fmt -w1 > index.ksk +done + + + +for ZONE in $VAR_ZSK $VAR_KSK $VAR_ZSKTIME +do + cd $ZONE_DIR/$ZONE + + #loescht alle Schluessel die nicht in der indexdatei stehen + rm $(ls K*[key,private] | grep -v "`cat index.zsk`" | grep -v "`cat index.ksk`") 2> /dev/null + + #erzeugt ein backup und entfernt alle schluessel aus der zonedatei + mv $ZONE $ZONE.old + grep -v 'DNSKEY' $ZONE.old >> $ZONE + + #fuegt die existirenden schluessel in die zonedatei ein + cat K$ZONE.*key >> $ZONE +done