DNS-Server absichern [3]

named -u USER = Named nicht als root, sondern unter bestimmter UID starten

named -g GROUP = Named unter anderer Gruppe starten


Die Zugriffsrechte für <tt>/etc/named.conf</tt> werden so gesetzt, dass der User named lesenden Zugriff hat, das Verzeichnis <tt>/var/named</tt> wird dem User named übereignet:

  -rw-r-----   1  root     named    ...  /etc/named.conf
drwxr-xr-x 4 named named ... /var/named

Starten von Named in einer Chroot-Umgebung

named -u named -g named -t /var/named = Named in Chrrot-Umgebung starten


Es müssen alle benötigten Dateien und Verzeichnisse, welche von Bind benötigt werden, in der Chroot-Umgebung benötigt:

bin
- ldconfig
- named
- named-xfer
dev
- null
- zero
- log
etc
- group
- localtime
- named.conf
lib
- libc-2.*.so
- libc.so.6
- ld-2.*.so
- ld-linux.so.2
var
named
- 127.0.0.zone
- localhost.zone
- root.hint
- pc-erfahrung.de.zone
- 0.168.192.in-addr.arpa.zone
run

DNSSEC-Statements

- Steht für DNS-Security
- Es soll die Authentität der Kommunikationspartner und der übertragenen Daten gewährleistet werden
- Soll bsp. DNS-Spoofing (Fälschen von Nameserverantworten) verhindern
- DNSSEC arbeitet mit Schlüsselpaaren (private key, public key)

Prinzip:

Der Master-Server unterzeichnet jeden einzelnen Record mit seinem Private-Key. DNS-Clients können diese Unterschrift mit dem public key des Besitzers validieren und damit Authentizität und Integrität überprüfen.

dnskeygen -D 1024 -z -n test.com = Bind 8, Schlüsselpaar erstellen
dnssec-keygen -a das -b 768 ZONE test.com = Bind 9, Schlüsselpaar erstellen

Erzeugt folgende Dateien:

 

Ktest.com.+003+78586.key = Öffentlicher Schlüssel
Ktest.com.+003+78586.private = Privater Schlüssel


dnssigner = Zone signieren (Bind 8)

cat Ktest.comz.+003+78586.key >> /var/named/test.com.zone = Zone signieren
dnssec-sigzone -o test.com test.com.zone Ktest.com.+003+78586 = Zone signieren (Bind 9)

 

 

// Auszug named.conf

test.com      
A       192.168.0.1
RRSIG   A 1 3 1000 2006061802455 (
        20060517062444 9927 test.com.
        mMBIXxXU6buN53GWHTPpwEbse4aR2gNI8rgs
        g9/x1We23K3gkO5DBjFdty27Fj4FMbQzg0uB
        uv9aFcPaMyILJg== )


A       192.168.0.2
RSIG   A 1 3 1000 20060616005145 (
        20060517062444 9927 test.com.
        mMBIXxXU6buN53GWHTPpwEbse4aR2gNI8rgs
        g9/x1We23K3gkO5DBjFdty27Fj4FMbQzg0uB
         uv9aFcPaMyILJg== )

 

 

Erweiterte Resource-Record-Typen in der named.conf

RFC 2535
SIG = Enthält die Signatur zu einem Eintrag
NXT = Gibt an, welcher Record als nächstes folgen muss
KEY = öffentlicher Schlüssel

RFC 4034
RRSIG = Enthält die Signatur zu einem Eintrag
NSEC = Gibt an, welcher Record als nächstes folgen muss
DNSKEY = öffentlicher Schlüssel

named.conf auf dem Master-Server
key update {
algorithm „hmac-md5“;
secret „r/00055sssttteeee“;
};

zone test.com in {
type master;
...
allow-transfer { key update; }; //Zonentransfer erlauben
};

named.conf auf dem Slave-Server
key update {
algorithm „hmac-md5“;
secret „r/00055sssttteeee“;
};

server 192.158.100.56 {
key { key update; };
};

allow-query = einfache Abfragen
allow-recursion = rekursive Abfragen
allow-transfer = Zonentransfer