equal
deleted
inserted
replaced
|
1 #!/bin/bash |
|
2 |
|
3 ZONE_DIR="/etc/bind/master" # ordner fuer die einzelnen zonedateiordner |
|
4 ABL_ZEIT=30 # zeit in minuten waehrend der 2 keys verwendet werden / ungefaehr doppelte TTL |
|
5 |
|
6 cd $ZONE_DIR |
|
7 for DOMAIN in * |
|
8 do |
|
9 |
|
10 if ( find $ZONE_DIR/$DOMAIN -name "index*" -mmin +$ABL_ZEIT >/dev/null ) # prueft die schluesselindexdateien |
|
11 then # auf zeitpunkt der aenderung |
|
12 |
|
13 cd $ZONE_DIR/$DOMAIN |
|
14 INDEX_FILE=`find . -name "index*" -mmin +$ABL_ZEIT` # schreibt eine liste INDEX_FILE aller |
|
15 # dateien die vor ABL_ZEIT erstellt worden |
|
16 for INDEX in $INDEX_FILE |
|
17 do |
|
18 |
|
19 if ( wc -l $INDEX | grep ^2 > /dev/null ) # prueft die indexdatei auf anzahl an eintraegen |
|
20 then |
|
21 INDEX=${INDEX#./} |
|
22 echo aktualisiert $INDEX in $DOMAIN |
|
23 |
|
24 DNS_KEY=`tail -n1 $INDEX` # speichert den letzten eintrag aus dem |
|
25 # index in die variable DNS_KEY |
|
26 |
|
27 echo $DNS_KEY > $ZONE_DIR/$DOMAIN/$INDEX # schreibt nur die variable |
|
28 # DNS_KEY in die indexdatei |
|
29 |
|
30 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 |
|
32 # stehen |
|
33 mv $DOMAIN $DOMAIN.old |
|
34 grep -v 'DNSKEY' $DOMAIN.old >> $DOMAIN # erzeugt ein backup und entfernt alle schluessel |
|
35 # aus der zonedatei |
|
36 cat K$DOMAIN.*key >>$DOMAIN # schreibt die aktuellen schluessel in die zonedatei |
|
37 dnssec-signzone $DOMAIN |
|
38 fi |
|
39 |
|
40 |
|
41 done |
|
42 fi |
|
43 done |