allow-query weiter unten im Kapitel „Bind absichern“ und natürlich unter man named.conf
Dies ist eine alte Version des Dokuments!
Vorraussetzung: bind als caching only nameserver
Paket caching-nameserver deinstallieren
/etc/named.conf : CentOS (ab 6)
/etc/bind/named.conf.options : Debian (ab 7)
options {
…
// In der Praxis ist DNSSEC eine gute Sache ... aber zum Lernen erst mal aus:
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
…
}
rndc reconfig
Eine mit DNSSEC signierte Zone abfragen:
Ein validierender Nameserver sollte bei einer signierten Zone liefern:
dig www.posteo.de @1.1.1.1
flags: … ad
Unser Nameserver sollte das ad-Flag nicht setzen.
Unter Debian und CentOS empfehlen wir ein entsprechendes Verzeichnis master für die Zonendateien noch anzulegen 2):
Debian :
mkdir /var/cache/bind/master
CentOS (ab 5) :
mkdir /var/named/master
/var/named/master/linuxhotel.de : ( CentOS ab 5 )
/var/lib/named/master/linuxhotel.de : ( SuSE ab 10.0)
/var/cache/bind/master/linuxhotel.de : ( Debian ab 3.1 )
$ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden
$TTL 2m ; time to live: 2 Minuten, default wäre 2 Tage
linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
1 ; Seriennummer
1h20m ; refresh / 1 Stunde 20 Minuten
1d12h ; retry / 1,5 Tage
1w ; expire / 1 Woche
60s ; negative ttl / 60 Sekunden
)
; Nameserver:
linuxhotel.de. IN NS notebook20.linuxhotel.de.
; kanonische IP-Adressen:
notebook22.linuxhotel.de. IN A 192.168.1.222
notebook05.linuxhotel.de. IN A 192.168.1.205
notebook20.linuxhotel.de. IN A 192.168.1.220
notebook06.linuxhotel.de. IN A 192.168.1.206
notebook09.linuxhotel.de. IN A 192.168.1.209
; Aliase:
peter.linuxhotel.de. IN CNAME notebook09.linuxhotel.de.
lothar.linuxhotel.de. IN CNAME notebook05.linuxhotel.de.
heribert.linuxhotel.de. IN CNAME notebook06.linuxhotel.de.
bjoern.linuxhotel.de. IN CNAME notebook20.linuxhotel.de.
admin.linuxhotel.de. IN CNAME notebook22.linuxhotel.de.
named-checkzone -D linuxhotel.de. /var/named/master/linuxhotel.de
named-checkzone -D linuxhotel.de. /var/lib/named/master/linuxhotel.de
named-checkzone -D linuxhotel.de. /var/cache/bind/master/linuxhotel.de
/etc/named.conf : ( SuSE 10.2 )
/etc/named.conf : ( CentOS ab 5 )
/etc/bind/named.conf.local : ( Debian ab 5.0 )
zone "linuxhotel.de" {
type master;
file "master/linuxhotel.de";
};
Konfigdatei und eingetragene Zonen überprüfen:
named-checkconf -z
rndc reconfig
oder
openSuSE, centos (ab 7)
service named reload
Debian (ab 6)
service bind9 reload
host peter.linuxhotel.de 127.0.0.1 dig peter.linuxhotel.de @127.0.0.1 any
Das Format der Zonendatei 3) läßt es auch zu, diese Datei sehr viel kürzer zu schreiben:
$TTL 2h
@ IN SOA notebook20 root.notebook20 2 3h 1h 1w 1h
; Nameserver:
IN NS notebook20
; kanonische IP-Adressen:
notebook22 IN A 192.168.1.222
notebook05 IN A 192.168.1.205
notebook20 IN A 192.168.1.220
notebook06 IN A 192.168.1.206
notebook09 IN A 192.168.1.209
; Aliase:
peter IN CNAME notebook09
lothar IN CNAME notebook05
heribert IN CNAME notebook06
bjoern IN CNAME notebook20
admin IN CNAME notebook22
Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden.
named-checkzone -D linuxhotel.de. /var/named/master/linuxhotel.de
named-checkzone -D linuxhotel.de. /var/lib/named/master/linuxhotel.de
named-checkzone -D linuxhotel.de. /var/cache/bind/master/linuxhotel.de
rndc reload linuxhotel.de
/var/named/master/1.168.192.in-addr.arpa: ( CentOS )
/var/lib/named/master/1.168.192.in-addr.arpa: ( SuSE 10.0 )
/var/cache/bind/master/1.168.192.in-addr.arpa: ( Debian 3.1 )
$TTL 2h
1.168.192.in-addr.arpa. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
2005082401 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ; negative ttl
)
; Nameserver
1.168.192.in-addr.arpa. IN NS notebook20.linuxhotel.de.
; kanonische IP-Adressen
205.1.168.192.in-addr.arpa. IN PTR notebook05.linuxhotel.de.
220.1.168.192.in-addr.arpa. IN PTR notebook20.linuxhotel.de.
206.1.168.192.in-addr.arpa. IN PTR notebook06.linuxhotel.de.
209.1.168.192.in-addr.arpa. IN PTR notebook09.linuxhotel.de.
222.1.168.192.in-addr.arpa. IN PTR notebook22.linuxhotel.de.
named-checkzone -D linuxhotel.de. /var/named/master/linuxhotel.de named-checkzone -D 1.168.192.in-addr.arpa. /var/named/master/1.168.192.in-addr.arpa
named-checkzone -D linuxhotel.de. /var/lib/named/master/linuxhotel.de named-checkzone -D 1.168.192.in-addr.arpa. /var/lib/named/master/1.168.192.in-addr.arpa
named-checkzone -D linuxhotel.de. /var/cache/bind/master/linuxhotel.de named-checkzone -D 1.168.192.in-addr.arpa. /var/cache/bind/master/1.168.192.in-addr.arpa
/etc/named.conf : ( SuSE 10.2 )
/etc/named.conf : ( CentOS )
/etc/bind/named.conf.local : ( Debian 3.1 )
zone "1.168.192.in-addr.arpa" {
type master;
file "master/1.168.192.in-addr.arpa";
};
named-checkconf -z
rndc reconfig
host 192.168.1.222 127.0.0.1 dig -x 192.168.1.222 @127.0.0.1
/etc/named.conf : ( SuSE, CentOS )
/etc/bind/named.conf.local : ( Debian )
acl "nsupdate" {
127.0.0.1;
};
zone "linuxhotel.de" {
type master;
allow-update { "nsupdate"; };
file "master/linuxhotel.de";
};
zone "1.168.192.in-addr.arpa" {
type master;
allow-update { "nsupdate"; };
file "master/1.168.192.in-addr.arpa";
};
named-checkconf
Debian:
chown -R bind /var/cache/bind/master
nsupdate <<EOF
server localhost update add notebook23.linuxhotel.de 43200 IN A 192.168.1.223 update add 223.1.168.192.in-addr.arpa 43200 IN PTR notebook23.linuxhotel.de
EOF
rndc freeze linuxhotel.de vim linuxhotel.de rndc reload linuxhotel.de rndc thaw linuxhotel.de
Hilfreich ist vielleicht:
~/.bashrc :
function zvi {
cd /var/cache/bind/master
rndc freeze $1
vim $1
rndc reload $1
rndc thaw $1
cd -
}
Erst müssen die Slave-Nameserver in der Zonendatei des Masters eingetragen werden:
linuxhotel.de. IN NS notebook04.linuxhotel.de.
Bei SuSE muß noch der Eintrag
notify yes;
in der Datei /etc/named.conf eingetragen werden, oder die Zeile ganz entfernt oder auskommentiert werden.
named-checkzone -i local -D linuxhotel.de /var/lib/named/master/linuxhotel.de rndc reload linuxhotel.de tail /var/log/messages dig @127.0.0.1 linuxhotel.de NS
named-checkzone -i local -D linuxhotel.de /var/cache/bind/master/linuxhotel.de rndc reload linuxhotel.de journalctl -eu bind9 dig @127.0.0.1 linuxhotel.de NS
Vorraussetzung: Master funktioniert
dig @<IP-des-Masters> linuxhotel.de AXFR
Ausgabe muss mindestens 2 NS Records enthalten:
/etc/named.conf : ( CentOS 5.3 )
zone "linuxhotel.de" {
type slave;
file "slaves/linuxhotel.de";
masters { 192.168.1.220; };
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "slaves/1.168.192.in-addr.arpa";
masters { 192.168.1.220; };
};
/etc/named.conf : ( SuSE 10.0 )
/etc/bind/named.conf.local : ( Debian )
zone "linuxhotel.de" {
type slave;
file "slave/linuxhotel.de";
masters { 192.168.1.220; };
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters { 192.168.1.220; };
};
Zonendateien im Binärformat kann man mit:
named-checkzone -D -f raw linuxhotel.de slave/linuxhotel.de
anzeigen. Wenn man die Zonenfiles lieber im Textformat statt im Binärformat haben will, kann man in die Zone eintragen:
zone "…" {
…
masterfile-format text;
…
Debian:
mkdir /var/cache/bind/slave chown bind /var/cache/bind/slave
named-checkconf -z
rndc reconfig
journalctl -eu bind9
ls /var/cache/bind/slave/{linuxhotel.de,1.168.192.in-addr.arpa}
dig @127.0.0.1 linuxhotel.de AXFR
named-checkconf -z
rcnamed restart
tail /var/log/messages
ls /var/lib/named/slave/{linuxhotel.de,1.168.192.in-addr.arpa}
dig @127.0.0.1 linuxhotel.de AXFR
dig @141.1.1.1 linuxhotel.de +nssearch
/etc/named.conf.local : ( Debian ab 5.0 )
/etc/named.conf : ( CentOS ab 5 )
zone "linuxhotel.de" IN {
type master;
file "master/linuxhotel.de";
forwarders { };
};
Fallstrick: Unbedingt an forwarders denken! Und alle dnssec Optionen ausschalten
/var/named/master : ( CentOS 5 )
sub05.linuxhotel.de. IN NS ns1.sub05.linuxhotel.de. ns1.sub05.linuxhotel.de. IN A 192.168.150.110
Fallstrick: Seit bind 9.9 werden die empty zones automatisch „aufgefüllt“. Dadurch werden aber PTR-RR für nicht eigene Netze nicht mehr geforwarded
/etc/named.conf.options : ( Debian 8 )
disable-empty-zone "168.192.in-addr.arpa";
Das muss auch auf jedem Delegaten konfiguriert werden
named-checkzone -i local -D linuxhotel.de /var/named/master/linuxhotel.de
Wie oben, unter „eigene Zonen in bind verwalten“
#!/bin/bash NAMESERVER=$(hostname -f) SUBNET=192.168.1 cat <<HEAD \$TTL 2h @ IN SOA $NAMESERVER. root.$NAMESERVER. ( $(date '+%Y%m%d')01 ; Seriennummer 3h ; refresh 1h ; retry 1w ; expire 1h ; negative ttl ) IN NS $NAMESERVER. HEAD for ip in $(seq 1 254) do getent hosts $SUBNET.$ip | ( read ip name && echo -e "$name.\tIN\tA\t$ip" | expand -t '34 37 43 ' ) done