3 .TH dnssec-signer 8 "Aug 1, 2009" "ZKT 0.99b" ""
4 \" turn off hyphenation
8 dnssec-signer \(em Secure DNS zone signing tool
59 command is a wrapper around
63 to sign a zone and manage the necessary zone keys.
64 It is able to increment the serial number before signing the zone
67 to reload the signed zone file.
68 The command controls several secure zones and, if started in regular
71 can do all that stuff automatically.
73 In the most useful usage scenario the command will be called with option
75 to read the secure zones out of the given
78 If you have a configuration file with views, you have to use option
79 -V viewname or --view viewname to specify the name of the view.
80 Alternatively you could link the executable file to a second name like
81 .I dnssec-signer-viewname
82 and use that command to specify the name of the view.
83 All master zone statements will be scanned for filenames
84 ending with ".signed".
85 These zones will be checked if the necessary zone- and key signing keys
86 are existent and fresh enough to be used in the signing process.
87 If one or more out-dated keys are found, new keying material will be generated via
90 command and the old keys will be marked as depreciated.
91 So the command do anything needed for a zone key rollover as defined by [2].
93 If the resigning interval is reached or any new key must be announced,
94 the serial number of the zone will be incremented and the
96 command will be evoked to sign the zone.
97 After that, if the option
101 command will be called to reload the zone on the
104 In the second form of the command it is possible to specify a directory
108 Every secure zone found in a subdirectory below
111 However, it is also possible to reduce the signing to those
112 zones given as arguments.
113 In directory mode the pre-requisite is, that the directory name is
114 exactly (including the trailing dot) the same as the zone name.
116 In the last form of the command, the functionality is more or less the same
118 .I dnssec-signzone (8)
120 The parameter specifies the zone file name and the option
122 takes the name of the zone.
130 is given, then the default directory specified in the
132 file by the parameter
134 will be used as top level directory.
138 .BI \-L " file|dir" ", \-\-logfile=" file|dir
139 Specify the name of a log file or a directory where
140 logfiles are created with a name like
142 .\"# define LOG_FNAMETMPL "/zkt-%04d-%02d-%02dT%02d%02d%02dZ.log"
143 .RI zkt- YYYY-MM-DD T hhmmss Z.log .
146 If the argument is not an absolute path name and a zone directory
147 is specified in the config file, this will be prepended to the given name.
148 This option is also settable in the dnssec.conf file via the parameter
151 The default is no file logging, but error logging to syslog with facility
155 is enabled by default.
156 These parameters are settable via the config file parameter
157 .BI "SyslogFacility:" ,
163 There is an additional parameter
165 which specifies the verbosity (0|1|2) of messages that will be logged
171 .BI \-V " view" ", \-\-view=" view
172 Try to read the default configuration out of a file named
173 .I dnssec-<view>.conf .
174 Instead of specifying the \-V or --view option every time,
175 it is also possible to create a hard- or softlink to the
176 executable file with an additional name like
177 .I dnssec-zkt-<view> .
179 .BI \-c " file" ", \-\-config=" file
180 Read configuration values out of the specified file.
181 Otherwise the default config file is read or build-in defaults
184 .BI \-O " optstr" ", \-\-config-option=" optstr
185 Set any config file option via the commandline.
186 Several config file options can be specified via the argument string
187 but have to be delimited by semicolon (or newline).
189 .BR \-f ", " \-\-force
190 Force a resigning of the zone, regardless if the resigning interval
191 is reached, or any new keys must be announced.
193 .BR \-n ", " \-\-noexec
195 .I dnssec-signzone(8)
197 Currently this option is of very limited usage.
199 .BR \-r ", " \-\-reload
202 after successful signing.
203 In a production environment it is recommended to use this option
204 to be sure that a freshly signed zone will be immediately propagated.
205 However, that's only feasable if named runs on the signing
206 machine, which is not recommended.
207 Otherwise the signed zonefile must be copied to the production
208 server before reloading the zone.
209 If this is the case, the parameter
213 file must be set to a reasonable value.
215 .BR \-v ", " \-\-verbose
216 Verbose mode (recommended).
219 will be a little more verbose.
221 .BR \-h ", " \-\-help
222 Print out the online help.
227 .B "dnssec-signer \-N /var/named/named.conf \-r \-v \-v
229 Sign all secure zones found in the named.conf file and, if necessary,
230 trigger a reload of the zone.
231 Print some explanatory remarks on stdout.
234 .B "dnssec-signer \-D zonedir/example.net. \-f \-v \-v
236 Force the signing of the zone found in the directory
237 .I zonedir/example.net .
238 Do not reload the zone.
241 .B "dnssec-signer \-D zonedir \-f \-v \-v example.net.
246 .B "dnssec-signer \-f \-v \-v example.net.
250 file contains the path of the parent directory of the
255 .B "dnssec-signer \-f \-v \-v \-o example.net. zone.db
257 Same as above if we are in the directory containing the
262 .B "dnssec-signer \-\-config-option='ResignInterval 1d; Sigvalidity 28h; \e
263 .B ZSK_lifetime 2d;' \-v \-v \-o example.net. zone.db
266 Sign the example.net zone but override some config file values with parameters
267 given on the commandline.
269 .SH Zone setup and initial preparation
271 Create a separate directory for every secure zone.
273 This is useful because there are many additional files needed to
275 Besides the zone file
277 there is a signed zone file
278 .RI ( zone.db.signed),
279 a minimum of four files containing the keying material,
282 with the current used keys,
288 .I dnssec-signzone(8)
290 So in summary there is a minimum of nine files used per secure zone.
291 For every additional key there are two extra files and
292 every delegated subzone creates also two or three files.
294 Name the directory just like the zone.
296 That's only needed if you want to use the dnssec-signer command in
299 Then the name of the zone will be parsed out of the directory name.
301 Change the name of the zone file to \fIzone.db\fP
302 Otherwise you have to set the name via the
306 or you have to use the option
308 to name the zone and specify the zone file as argument.
310 Add the name of the signed zonefile to the \fInamed.conf\fP file
311 The filename is the name of the zone file with the
314 Create an empty file with the name
316 in the zone directory.
318 Include the keyfile in the zone.
319 The name of the keyfile is settable by the
330 IN NS ns1.example.net.
331 IN NS ns2.example.net.
338 Control the format of the SOA-Record
339 For automatic incrementation of the serial number, the SOA-Record
340 must be formated, so that the serial number is on a single line and
341 left justified in a field of at least 10 spaces!
345 @ IN SOA ns1.example.net. hostmaster.example.net. (
354 If you use BIND version 9.4 or later and
355 use the unixtime format for the serial number (See parameter
358 than this is not necessary.
361 If the current working directory is the directory of the zone
367 $ dnssec-signer \-D .. \-v \-v example.net
368 $ dnssec-signer \-o example.net.
372 to create the initial keying material and a signed zone file.
373 Then try to load the file on the name server.
375 .SH ENVIRONMENT VARIABLES
378 Specifies the name of the default global configuration files.
382 .I /var/named/dnssec.conf
383 Built-in default global configuration file.
384 The name of the default global config file is settable via
385 the environment variable ZKT_CONFFILE.
390 to create an initial config file.
392 .I /var/named/dnssec-<view>.conf
393 View specific global configuration file.
396 Local configuration file.
399 The file contains the currently used key and zone signing keys.
400 It will be created by
401 .IR dnsssec-signer(8) .
402 The name of the file is settable via the dnssec configuration
407 This is the zone file.
408 The name of the file is settable via the dnssec configuration
414 The named.conf parser is a bit rudimental and not
418 Holger Zuleger, Mans Nilsson
421 Copyright (c) 2005 \- 2009 by Holger Zuleger.
422 Licensed under the BSD Licence. There is NO warranty; not even for MERCHANTABILITY or
423 FITNESS FOR A PARTICULAR PURPOSE.
424 .\"--------------------------------------------------
426 dnssec-keygen(8), dnssec-signzone(8), rndc(8), named.conf(5), dnssec-zkt(8)
428 RFC4033, RFC4034, RFC4035
430 [1] DNSSEC HOWTO Tutorial by Olaf Kolkman, RIPE NCC
432 (http://www.nlnetlabs.nl/dnssec_howto/)
434 [2] RFC4641 "DNSSEC Operational Practices" by Miek Gieben and Olaf Kolkman
436 (http://www.ietf.org/rfc/rfc4641.txt)