dnssec-creatkey
changeset 6 920c1a51ba0e
parent 5 960f5e7f78eb
child 8 a1eefce2bd5e
equal deleted inserted replaced
5:960f5e7f78eb 6:920c1a51ba0e
       
     1 #!/bin/bash
       
     2 
       
     3 ZONE_DIR="/etc/bind/master"
       
     4 ZSKLIVE=60			# ZSK-Schluessellebensdauer in Tagen
       
     5 
       
     6 function TEST_ZSK {			# prueft ob es einen ZSK gibt
       
     7 	for DOMAIN in $ZONE_DIR/*
       
     8 	do
       
     9 		test -f $DOMAIN/index.zsk || echo ${DOMAIN##/*/}
       
    10 	done
       
    11 }
       
    12 
       
    13 function TEST_KSK {			# prueft ob es einen KSK gibt
       
    14 	for DOMAIN in $ZONE_DIR/*
       
    15 	do
       
    16 		test -f $DOMAIN/index.ksk || echo ${DOMAIN##/*/}
       
    17 	done
       
    18 }
       
    19 
       
    20 function TEST_ZSK_TIME {		# prueft ob der ZSK abgelaufen ist
       
    21 	for DOMAIN in $ZONE_DIR/*
       
    22 	do
       
    23 		STARTTIME=`ls $DOMAIN/index.zsk -l --time-style=+%s | cut -d' ' -f6 2>/dev/null`
       
    24 		ENDTIME=$[STARTTIME + $[ZSKLIVE * 86400]]
       
    25 		NOWTIME=`date +%s`
       
    26 
       
    27 		if [ $ENDTIME -le $NOWTIME ]
       
    28 		then
       
    29 			echo ${DOMAIN##/*/} 
       
    30 		fi
       
    31 	done
       
    32 }
       
    33 
       
    34 
       
    35 VAR_ZSK_TIME=`TEST_ZSK_TIME`
       
    36 VAR_ZSK=`TEST_ZSK`
       
    37 VAR_KSK=`TEST_KSK`
       
    38 
       
    39 
       
    40 for NEW_ZSK_ZONE in $VAR_ZSK $VAR_ZSK_TIME	# Erstellt ZSK
       
    41 do
       
    42 	cd $ZONE_DIR/$NEW_ZSK_ZONE
       
    43 	echo "erzeugt zsk fuer" $NEW_ZSK_ZONE
       
    44 	dnssec-keygen -a RSASHA1 -b 512 -n ZONE $NEW_ZSK_ZONE >> index.zsk
       
    45 	INDEX_ZSK=$( tail -n2 index.zsk )
       
    46 	echo $INDEX_ZSK | fmt -w1 > index.zsk
       
    47 done
       
    48 
       
    49 for NEW_KSK_ZONE in $VAR_KSK		# Erstellt KSK
       
    50 do	
       
    51 	cd $ZONE_DIR/$NEW_KSK_ZONE
       
    52 	echo "erzeugt ksk fuer" $NEW_KSK_ZONE
       
    53 	dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $NEW_KSK_ZONE >> index.ksk
       
    54 	INDEX_KSK=$( tail -n2 index.ksk )
       
    55 	echo $INDEX_KSK | fmt -w1 > index.ksk
       
    56 done
       
    57 
       
    58 
       
    59 
       
    60 for ZONE in $VAR_ZSK $VAR_KSK $VAR_ZSKTIME
       
    61 do
       
    62 	cd $ZONE_DIR/$ZONE
       
    63 
       
    64 	#loescht alle Schluessel die nicht in der indexdatei stehen
       
    65 	rm $(ls K*[key,private] | grep -v "`cat index.zsk`" | grep -v "`cat index.ksk`") 2> /dev/null
       
    66 
       
    67 	#erzeugt ein backup und entfernt alle schluessel aus der zonedatei
       
    68 	mv $ZONE $ZONE.old
       
    69 	grep -v 'DNSKEY' $ZONE.old >> $ZONE
       
    70 
       
    71 	#fuegt die existirenden schluessel in die zonedatei ein
       
    72 	cat K$ZONE.*key >> $ZONE
       
    73 done