dnssec-killkey
changeset 6 920c1a51ba0e
parent 0 51d248a512a1
child 10 d7977be97fa1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dnssec-killkey	Mon Jun 28 18:02:04 2010 +0200
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+ZONE_DIR="/etc/bind/master"	# ordner fuer die einzelnen zonedateiordner
+ABL_ZEIT=1440			# zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL 
+
+cd $ZONE_DIR
+for DOMAIN in *
+do
+
+	if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null )	# prueft die schluesselindexdateien
+	then										# auf zeitpunkt der aenderung
+
+		cd $ZONE_DIR/$DOMAIN
+		INDEX_FILE=`find . -name "index*" -mmin +$ABL_ZEIT`		# schreibt eine liste INDEX_FILE aller
+										# dateien die vor ABL_ZEIT erstellt worden
+		for INDEX in $INDEX_FILE
+		do
+		
+			if ( wc -l $INDEX | grep ^2 > /dev/null )	# prueft die indexdatei auf anzahl an eintraegen
+			then						
+				INDEX=${INDEX#./}			
+				echo aktualisiert $INDEX in $DOMAIN
+				
+				DNS_KEY=`tail -n1 $INDEX` 		# speichert den letzten eintrag aus dem
+									# index in die variable DNS_KEY
+			
+				echo $DNS_KEY > $ZONE_DIR/$DOMAIN/$INDEX	# schreibt nur die variable
+										# DNS_KEY in die indexdatei
+	
+				rm $(ls K*[key,private] | grep -v "`cat index.zsk`" | \
+				grep -v "`cat index.ksk`") 2> /dev/null		# loesche alle schluessel die nicht in der indexdatei
+										# stehen
+				mv $DOMAIN $DOMAIN.old
+				grep -v 'DNSKEY' $DOMAIN.old >> $DOMAIN		# erzeugt ein backup und entfernt alle schluessel
+										# aus der zonedatei
+				cat K$DOMAIN.*key >>$DOMAIN			# schreibt die aktuellen schluessel in die zonedatei
+				dnssec-signzone $DOMAIN
+			fi
+			
+
+		done
+	fi
+done