dnssec-creatkey
changeset 6 920c1a51ba0e
parent 5 960f5e7f78eb
child 8 a1eefce2bd5e
--- /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