creatzsk
changeset 0 51d248a512a1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/creatzsk	Fri Jun 18 15:36:13 2010 +0200
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+test $# -lt 1 && echo "SYNOPSIS: mkseckey domainname" && exit 1
+
+# durchgang fuer jede eingabe
+for DOMAIN in $@
+do
+	#konfiguration
+	ZONE_DIR=/etc/bind/master
+	ZONE_NAME=`idn --quiet $DOMAIN`
+	
+	# pruefe die existens des ordners der zone
+	# und beende den durchlauf bei negativer pruefung
+	if [ -d $ZONE_DIR/$ZONE_NAME ]
+	then
+		cd $ZONE_DIR/$ZONE_NAME/
+		
+		test -f index.ksk || touch index.ksk
+		test -f index.zsk || touch index.zsk
+		
+		#erzeugt die schluessel
+		echo "erzeugt zsk fuer" $DOMAIN
+		dnssec-keygen -a RSASHA1 -b 512 -n ZONE $ZONE_NAME >> index.zsk
+		# echo "erzeugt ksk fuer" $DOMAIN
+		# dnssec-keygen -a RSASHA1 -b 1024 -n ZONE -f KSK $ZONE_NAME >> index.ksk
+		
+		#aktuallisiert die schluesselindexdateien
+		INDEX_ZSK=$( tail -n2 index.zsk ) ; echo $INDEX_ZSK | fmt -w1 > index.zsk
+		# INDEX_KSK=$( tail -n2 index.ksk ) ; echo $INDEX_KSK | fmt -w1 > index.ksk
+		
+		#loesche 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_NAME $ZONE_NAME.old
+		grep -v 'DNSKEY' $ZONE_NAME.old >> $ZONE_NAME
+		
+		#fuegt die schluessel in die zonedatei ein
+		cat K$ZONE_NAME.*key >>$ZONE_NAME
+		
+		#signiert die zonedatei - erzeugt zone.signed
+		dnssec-signzone $ZONE_NAME
+	else 
+		echo "zone $ZONE_NAME nicht gefunden"
+	fi
+	
+done
+
+
+exit 0