Secure transactions can be made with the help of transaction signatures (TSIGs) based on shared secret keys (also called TSIG keys). This section describes how to generate and use such keys.
Secure transactions are needed for the communication between different servers and for the dynamic update of zone data. Making the access control dependent on keys is much more secure than merely relying on IP addresses.
Generate a TSIG key with the following command (for details, see
man dnssec-keygen
):
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
This creates two files with names similar to these:
Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
The key itself (a string like ejIkuCyyGJwwuN3xAteKgg==
)
is found in both files. To use it for transactions, the second file
(Khost1-host2.+157+34265.key
) must be transferred to
the remote host, preferably in a secure way (using
scp, for example). On the remote server, the key
must be included in the file /etc/named.conf
to enable
a secure communication between host1
and
host2
:
key host1-host2. { algorithm hmac-md5; secret ";ejIkuCyyGJwwuN3xAteKgg==; };
![]() | File Permissions of /etc/named.conf |
---|---|
Make sure that the permissions of |
To enable the server host1
to use the key for
host2
(which has the address
192.168.2.3
in this example), the server's
/etc/named.conf
must include the following rule:
server 192.168.2.3 { keys { host1-host2. ;}; };
Analogous entries must be included in the configuration files of
host2
.
Add TSIG keys for any ACLs (access control lists, not to be confused with file system ACLs) that are defined for IP addresses and address ranges to enable transaction security. The corresponding entry could look like this:
allow-update { key host1-host2. ;};
This topic is discussed in more detail in the BIND Administrator
Reference Manual under update-policy
.