template hinzugefügt | killkey, creatkey angepasst
authorasuess@dns.net.schlittermann.de
Wed, 14 Jul 2010 15:37:27 +0200
changeset 12 5786a8b53c78
parent 11 5509b98ea064
child 13 4844031fc55e
template hinzugefügt | killkey, creatkey angepasst
dnssec-creatkey
dnssec-killkey
dnssec-sign
dnstools.conf
templates/named.conf.zone
templates/named.config
templates/named.zone
zone-mk
--- a/dnssec-creatkey	Wed Jul 14 12:05:41 2010 +0200
+++ b/dnssec-creatkey	Wed Jul 14 15:37:27 2010 +0200
@@ -1,12 +1,14 @@
 #!/bin/bash
 set -e
 
+#import aus der dnstools.conf
 source dnstools.conf
-
 master_dir=$MASTER_DIR
 key_counter_end=$KEY_COUNTER_END
 
-function test_zsk_new {			# prueft ob es einen ZSK gibt
+
+# gibt alle zonen ohne zsk in die standard-ausgabe
+function test_zsk_new {
 	for zone in $master_dir/*
 	do
 		test -f $zone/${zone##*/}.signed || continue
@@ -14,7 +16,9 @@
 	done
 }
 
-function test_ksk_new {			# prueft ob es einen KSK gibt
+
+# gibt alle zonen ohne ksk in die standard-ausgabe
+function test_ksk_new {
 	for zone in $master_dir/*
 	do
 		test -f $zone/${zone##*/}.signed || continue
@@ -22,11 +26,12 @@
 	done
 }
 
+
+# gibt alle zonen mitabgelaufenen keycounter in die standardausgabe
 function test_zsk_time {		# prueft den keycounter
 	for zone in $master_dir/*
 	do
 		test -f $zone/${zone##*/}.signed || continue
-		key_counter_end=$1
 		test -f $zone/keycounter || echo 0 > $zone/keycounter
 		key_counter=`< $zone/keycounter`
 	
@@ -37,26 +42,29 @@
 	done
 }
 
-#prüft die eingegebnen domains
+
+#prüft die eingegebnen domains und erstellt eine liste
 for utf8domain in $@
 do
         domain=$(idn --quiet "$utf8domain")
 
         if [ -d $master_dir/$domain ]
         then
-                zsk_aenderung="$zsk_aenderung $domain"
+                zsk_manuell="$zsk_manuell $domain"
         else
                 echo $domain ist keine verwaltete Zone
         fi
 done
 
 
-zsk_time=`test_zsk_time $key_counter_end`
+# übergibt die standard-ausgabe aus den funktionen in listen
+zsk_time=`test_zsk_time`
 zsk_new=`test_zsk_new`
 ksk_new=`test_ksk_new`
 
 
-for NEW_ZSK_ZONE in $zsk_time $zsk_aenderung	# Erstellt ZSK
+# erstellt zsks
+for NEW_ZSK_ZONE in $zsk_time $zsk_manuell
 do
 	cd $master_dir/$NEW_ZSK_ZONE
 	echo "erzeugt zsk fuer" $NEW_ZSK_ZONE
@@ -67,7 +75,9 @@
 	echo 0 > keycounter	
 done
 
-for NEW_KSK_ZONE in $zsk_aenderung		# Erstellt KSK
+
+# erstellt ksks
+for NEW_KSK_ZONE in $zsk_manuell
 do	
 	cd $master_dir/$NEW_KSK_ZONE
 	echo "erzeugt ksk fuer" $NEW_KSK_ZONE
@@ -77,18 +87,18 @@
 done
 
 
-
-for ZONE in $zsk_time $zsk_new $ksk_new $zsk_aenderung
+# fuegt die schluessel in die zone-datei
+for zone in $zsk_time $zsk_manuell
 do
-	cd $master_dir/$ZONE
+	cd $master_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
+	rm $(ls K*[key,private] | grep -v "`cat .index.zsk`" | grep -v "`cat .index.ksk`") 2>/dev/null || true
 
 	#erzeugt ein backup und entfernt alle schluessel aus der zonedatei
-	mv $ZONE $ZONE.old
-	grep -v 'DNSKEY' $ZONE.old >> $ZONE
+	mv $zone .$zone
+	grep -v 'DNSKEY' .$zone >> $zone
 
 	#fuegt die existirenden schluessel in die zonedatei ein
-	cat K$ZONE.*key >> $ZONE
+	cat K$zone.*key >> $zone
 done
--- a/dnssec-killkey	Wed Jul 14 12:05:41 2010 +0200
+++ b/dnssec-killkey	Wed Jul 14 15:37:27 2010 +0200
@@ -1,17 +1,19 @@
 #!/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 
+source dnstools.conf
 
-cd $ZONE_DIR
-for DOMAIN in *
+master_dir=$MASTER_DIR		# ordner fuer die einzelnen zonedateiordner
+ablauf_zeit=$ABL_ZEIT		# zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL 
+
+cd $master_dir
+for domain in *
 do
 
-	if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null )	# prueft die schluesselindexdateien
+	if ( find $master_dir/$domain -name "index*" -mmin +$ablauf_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
+		cd $master_dir/$domain
+		INDEX_FILE=`find . -name ".index*" -mmin +$ablauf_zeit`		# schreibt eine liste INDEX_FILE aller
 										# dateien die vor ABL_ZEIT erstellt worden
 		for INDEX in $INDEX_FILE
 		do
@@ -19,22 +21,24 @@
 			if ( wc -l $INDEX | grep ^2 > /dev/null )	# prueft die indexdatei auf anzahl an eintraegen
 			then						
 				INDEX=${INDEX#./}			
-				echo aktualisiert $INDEX in $DOMAIN
+				echo aktualisiert $INDEX in $domain
 				
-				DNS_KEY=`tail -n1 $INDEX` 		# speichert den letzten eintrag aus dem
+				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
+				echo $DNS_KEY > $master_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
+				mv $domain .$domain
+				grep -v 'DNSKEY' .$domain >> $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
+				cat K$domain.*key >>$domain			# schreibt die aktuellen schluessel in die zonedatei
+
+				key_counter=`< keycounter`
+				dnssec-signzone $domain && echo $[ key_counter + 1 ] > keycounter
 			fi
 			
 
--- a/dnssec-sign	Wed Jul 14 12:05:41 2010 +0200
+++ b/dnssec-sign	Wed Jul 14 15:37:27 2010 +0200
@@ -2,6 +2,7 @@
 source ./dnstools.conf
 master_dir=$MASTER_DIR
 
+
 #prüft die eingegebnen domains
 for utf8domain in $@
 do
@@ -15,7 +16,9 @@
 	fi
 done
 
-function time_out {			#prüft den ablauf der signatur
+
+#gibt zonen mit abgelaufener signatur in die standardausgabe
+function time_out {
 	unowtime=`date +%s`
 	alerttime=`date -d @$[unowtime - $[ 3600 * $SIGN_ALERT_TIME  ] ] +%Y%m%d%H`
 
@@ -37,7 +40,9 @@
 	done
 }
 
-function new_sign {		# prüft nach der ersten signatur
+
+#gibt zonen mit schluessel aber ohne signatur in die standardausgabe
+function new_sign {
 	for zone in $master_dir/*
 	do
 		if [ -f $zone/keycounter ]
@@ -50,14 +55,17 @@
 	done
 }
 
+
+#uebergibt die ausgabe der funktionen in listen
 zone_new_sign=`new_sign`
 zone_time_out=`time_out`
 
+
+# signiert alle zonen aus den listen
 for zone in $zone_aenderung $zone_new_sign $zone_time_out
 do
 	cd $zone
 	domain=${zone##/*/}	
 	key_counter=`< keycounter`
-
 	dnssec-signzone $domain && echo $[ key_counter + 1 ] > keycounter
 done
--- a/dnstools.conf	Wed Jul 14 12:05:41 2010 +0200
+++ b/dnstools.conf	Wed Jul 14 15:37:27 2010 +0200
@@ -1,3 +1,4 @@
+ABL_ZEIT=1440				# Dauer des Key-Rollover
 BIND_DIR=/etc/bind
 SECONDARY=hh.schlittermann.de
 PRIMARY=pu.schlittermann.de
--- a/templates/named.conf.zone	Wed Jul 14 12:05:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-zone "[% domain %]" {
-// Start: [% start %]
-// Invoice: [% customer %]
-// UTF8: [% utf8domain %]
-	type master;
-	file "[% file %]";
-	allow-transfer { localhost; [% primary_ip %]; [% secondary_ip %]; };
-	allow-query { any; };
-	also-notify { [% primary_ip %]; };
-};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/named.config	Wed Jul 14 15:37:27 2010 +0200
@@ -0,0 +1,10 @@
+zone "[% domain %]" {
+// Start: [% start %]
+// Invoice: [% customer %]
+// UTF8: [% utf8domain %]
+	type master;
+	file "[% file %]";
+	allow-transfer { localhost; [% primary_ip %]; [% secondary_ip %]; };
+	allow-query { any; };
+	also-notify { [% primary_ip %]; };
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/named.zone	Wed Jul 14 15:37:27 2010 +0200
@@ -0,0 +1,17 @@
+$ORIGIN [% domain %].
+$TTL 1d
+@               IN SOA [% primary %]. [% hostmaster %]. (
+                [% time %]	; serial
+                1d              ; refresh
+                2h              ; retry
+                7d              ; expire
+                1d              ; default ttl
+)
+
+                IN TXT          "invoice: [% customer %]"
+                IN TXT          "start: [% start %]"
+                IN TXT          "utf8: [% utf8domain %]"
+
+                IN NS           [% primary %].
+                IN NS           [% secondary %].
+
--- a/zone-mk	Wed Jul 14 12:05:41 2010 +0200
+++ b/zone-mk	Wed Jul 14 15:37:27 2010 +0200
@@ -72,25 +72,17 @@
 	test -f $zonefile && { echo "$zonefile exists. Skipping $domain" >&2; continue; }
 	test -f $config && { echo "$config exists. Skipping $domain" >&2; continue; }
 
-	cat <<xxx >$zonefile
-\$ORIGIN $domain.
-\$TTL 1d
-@		IN SOA $primary. $hostmaster. (
-		$(date +%Y%m%d00)	; serial
-		1d		; refresh
-		2h		; retry
-		7d		; expire
-		1d		; default ttl
-)
-
-		IN TXT		"invoice: $customer"
-		IN TXT		"start: $start"
-		IN TXT		"utf8: $utf8domain"
-
-		IN NS		$primary.
-		IN NS		$secondary.
-
-xxx
+        tpage \
+                --define start="$start" \
+                --define domain="$domain" \
+                --define time="$(date +%Y%m%d00)" \
+                --define primary="$primary" \
+		--define secondary="$secondary" \
+                --define hostmaster="$hostmaster" \
+                --define customer="$customer" \
+                --define utf8domain="$utf8domain" \
+                templates/named.zone \
+        >$zonefile
 
 	tpage \
 		--define domain="$domain" \
@@ -100,7 +92,7 @@
 		--define file="$master_dir/$domain/$domain" \
 		--define primary_ip="$primary_ip" \
 		--define secondary_ip="$secondary_ip" \
-		templates/named.conf.zone \
+		templates/named.config \
 	>$config
 
 done