dnssec-killkey
changeset 12 5786a8b53c78
parent 10 d7977be97fa1
child 13 4844031fc55e
equal deleted inserted replaced
11:5509b98ea064 12:5786a8b53c78
     1 #!/bin/bash
     1 #!/bin/bash
     2 
     2 
     3 ZONE_DIR="/etc/bind/master"	# ordner fuer die einzelnen zonedateiordner
     3 source dnstools.conf
     4 ABL_ZEIT=1440			# zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL 
       
     5 
     4 
     6 cd $ZONE_DIR
     5 master_dir=$MASTER_DIR		# ordner fuer die einzelnen zonedateiordner
     7 for DOMAIN in *
     6 ablauf_zeit=$ABL_ZEIT		# zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL 
       
     7 
       
     8 cd $master_dir
       
     9 for domain in *
     8 do
    10 do
     9 
    11 
    10 	if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null )	# prueft die schluesselindexdateien
    12 	if ( find $master_dir/$domain -name "index*" -mmin +$ablauf_zeit >/dev/null )	# prueft die schluesselindexdateien
    11 	then										# auf zeitpunkt der aenderung
    13 	then										# auf zeitpunkt der aenderung
    12 
    14 
    13 		cd $ZONE_DIR/$DOMAIN
    15 		cd $master_dir/$domain
    14 		INDEX_FILE=`find . -name "index*" -mmin +$ABL_ZEIT`		# schreibt eine liste INDEX_FILE aller
    16 		INDEX_FILE=`find . -name ".index*" -mmin +$ablauf_zeit`		# schreibt eine liste INDEX_FILE aller
    15 										# dateien die vor ABL_ZEIT erstellt worden
    17 										# dateien die vor ABL_ZEIT erstellt worden
    16 		for INDEX in $INDEX_FILE
    18 		for INDEX in $INDEX_FILE
    17 		do
    19 		do
    18 		
    20 		
    19 			if ( wc -l $INDEX | grep ^2 > /dev/null )	# prueft die indexdatei auf anzahl an eintraegen
    21 			if ( wc -l $INDEX | grep ^2 > /dev/null )	# prueft die indexdatei auf anzahl an eintraegen
    20 			then						
    22 			then						
    21 				INDEX=${INDEX#./}			
    23 				INDEX=${INDEX#./}			
    22 				echo aktualisiert $INDEX in $DOMAIN
    24 				echo aktualisiert $INDEX in $domain
    23 				
    25 				
    24 				DNS_KEY=`tail -n1 $INDEX` 		# speichert den letzten eintrag aus dem
    26 				DNS_KEY=`tail -n1 $INDEX`		# speichert den letzten eintrag aus dem
    25 									# index in die variable DNS_KEY
    27 									# index in die variable DNS_KEY
    26 			
    28 			
    27 				echo $DNS_KEY > $ZONE_DIR/$DOMAIN/$INDEX	# schreibt nur die variable
    29 				echo $DNS_KEY > $master_dir/$domain/$INDEX	# schreibt nur die variable
    28 										# DNS_KEY in die indexdatei
    30 										# DNS_KEY in die indexdatei
    29 	
    31 	
    30 				rm $(ls K*[key,private] | grep -v "`cat .index.zsk`" | \
    32 				rm $(ls K*[key,private] | grep -v "`cat .index.zsk`" | \
    31 				grep -v "`cat .index.ksk`") 2> /dev/null		# loesche alle schluessel die nicht in der indexdatei
    33 				grep -v "`cat .index.ksk`") 2> /dev/null		# loesche alle schluessel die nicht in der indexdatei
    32 										# stehen
    34 										# stehen
    33 				mv $DOMAIN $DOMAIN.old
    35 				mv $domain .$domain
    34 				grep -v 'DNSKEY' $DOMAIN.old >> $DOMAIN		# erzeugt ein backup und entfernt alle schluessel
    36 				grep -v 'DNSKEY' .$domain >> $domain		# erzeugt ein backup und entfernt alle schluessel
    35 										# aus der zonedatei
    37 										# aus der zonedatei
    36 				cat K$DOMAIN.*key >>$DOMAIN			# schreibt die aktuellen schluessel in die zonedatei
    38 				cat K$domain.*key >>$domain			# schreibt die aktuellen schluessel in die zonedatei
    37 				dnssec-signzone $DOMAIN
    39 
       
    40 				key_counter=`< keycounter`
       
    41 				dnssec-signzone $domain && echo $[ key_counter + 1 ] > keycounter
    38 			fi
    42 			fi
    39 			
    43 			
    40 
    44 
    41 		done
    45 		done
    42 	fi
    46 	fi