equal
deleted
inserted
replaced
33 my @manu; |
33 my @manu; |
34 my @index; |
34 my @index; |
35 my $zone; |
35 my $zone; |
36 my $keyname; |
36 my $keyname; |
37 |
37 |
|
38 |
38 # prueft ob eingaben in ARGV domains sind und gibt sie in die liste @manu |
39 # prueft ob eingaben in ARGV domains sind und gibt sie in die liste @manu |
39 for (@ARGV) { |
40 for (@ARGV) { |
40 chomp( my $zone = `idn --quiet "$_"` ); |
41 chomp( my $zone = `idn --quiet "$_"` ); |
41 |
42 |
42 if ( -d "$master_dir/$zone" ) { |
43 if ( -d "$master_dir/$zone" ) { |
44 } |
45 } |
45 else { |
46 else { |
46 print " $zone not exist\n "; |
47 print " $zone not exist\n "; |
47 } |
48 } |
48 } |
49 } |
|
50 |
|
51 # prueft ob zonen mit schluesselmaterial ueber index- und keycounterdatei |
|
52 # verfuegen. |
|
53 # legt .index.ksk an falls nicht und gibt die entsprechende zone in die |
|
54 # liste @change |
|
55 while (<$master_dir/*>) { |
|
56 chomp( $zone = $_ ); |
|
57 |
|
58 if (-f "$zone/.index.zsk" and |
|
59 -f "$zone/.index.ksk" and |
|
60 -f "$zone/.keycounter") { |
|
61 next; |
|
62 } |
|
63 |
|
64 while (<$zone/*>) { |
|
65 if (m#^K#) { |
|
66 my $file_in_zone = $_; |
|
67 |
|
68 open (KEY,$_) or die "$_: $!\n"; |
|
69 for (<KEY>) { |
|
70 if (m#DNSKEY.257#) { |
|
71 $file_in_zone =~ s#(/.*/)(.*).key#$2#; |
|
72 |
|
73 open (INDEX, ">$zone/.index.ksk") or die; |
|
74 print INDEX "$file_in_zone\n"; |
|
75 close (INDEX); |
|
76 |
|
77 $zone =~ s#($master_dir/)(.*)#$2#; |
|
78 push( @change, $zone ); |
|
79 |
|
80 } |
|
81 } |
|
82 close (KEY); |
|
83 } |
|
84 } |
|
85 } |
|
86 |
49 |
87 |
50 # gibt alle zonen mit abgelaufenen keycounter in die liste @change |
88 # gibt alle zonen mit abgelaufenen keycounter in die liste @change |
51 while (<$master_dir/*>) { |
89 while (<$master_dir/*>) { |
52 chomp( $zone = $_ ); |
90 chomp( $zone = $_ ); |
53 my $key; |
91 my $key; |
91 open( INDEX, ">.index.zsk" ) or die "$master_dir/$zone/.index.zsk: $!\n"; |
129 open( INDEX, ">.index.zsk" ) or die "$master_dir/$zone/.index.zsk: $!\n"; |
92 print INDEX @index; |
130 print INDEX @index; |
93 close(INDEX); |
131 close(INDEX); |
94 |
132 |
95 chomp($keyname); |
133 chomp($keyname); |
96 print "$keyname (ZSK) erzeugt fuer $zone \n"; |
134 print "$keyname (ZSK) creat for $zone \n"; |
97 |
135 |
98 open( KC, ">.keycounter" ) or die "$master_dir/$zone/keycounter: $!\n"; |
136 open( KC, ">.keycounter" ) or die "$master_dir/$zone/keycounter: $!\n"; |
99 print KC "0"; |
137 print KC "0"; |
100 close(KC); |
138 close(KC); |
101 } |
139 } |
105 $zone = $_; |
143 $zone = $_; |
106 |
144 |
107 chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n"; |
145 chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n"; |
108 $keyname = `dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $zone`; |
146 $keyname = `dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $zone`; |
109 |
147 |
|
148 print "creat new KSK for $zone? (no): "; |
|
149 unless (<STDIN> =~ m/^yes/) { |
|
150 next; |
|
151 } |
|
152 |
110 unless ( -f ".index.ksk" ) { |
153 unless ( -f ".index.ksk" ) { |
111 @index = (); |
154 @index = (); |
112 } |
155 } |
113 else { |
156 else { |
|
157 |
114 open( INDEX, ".index.ksk" ) |
158 open( INDEX, ".index.ksk" ) |
115 or die "$master_dir/$zone/.index.ksk: $!\n"; |
159 or die "$master_dir/$zone/.index.ksk: $!\n"; |
116 @index = <INDEX>; |
160 @index = <INDEX>; |
117 close(INDEX); |
161 close(INDEX); |
118 } |
162 } |
125 open( INDEX, ">.index.ksk" ) or die "$master_dir/$zone/.index.ksk: $!\n"; |
169 open( INDEX, ">.index.ksk" ) or die "$master_dir/$zone/.index.ksk: $!\n"; |
126 print INDEX @index; |
170 print INDEX @index; |
127 close(INDEX); |
171 close(INDEX); |
128 |
172 |
129 chomp($keyname); |
173 chomp($keyname); |
130 print "$keyname (KSK) erzeugt fuer $zone \n"; |
174 print "$keyname (KSK) creat for $zone \n"; |
131 } |
175 } |
132 |
176 |
133 # loescht alle unbenoetigten schluessel, fuegt die schluessel in |
177 # loescht alle unbenoetigten schluessel, fuegt die schluessel in |
134 # die zone-datei |
178 # die zone-datei |
135 for ( @change, @manu ) { |
179 for ( @change, @manu ) { |
202 open( ZONE, ">$master_dir/$zone/$zone" ) |
246 open( ZONE, ">$master_dir/$zone/$zone" ) |
203 or die "$master_dir/$zone/$zone: $!\n"; |
247 or die "$master_dir/$zone/$zone: $!\n"; |
204 print ZONE @new_zone_content; |
248 print ZONE @new_zone_content; |
205 close(ZONE); |
249 close(ZONE); |
206 |
250 |
207 print "$master_dir/$zone/$zone wurde neu erstellt \n"; |
251 } |
208 } |
|