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
Paket system-config-bind installieren
Mit
system-config-bind
Default-Konfigurationsdateien erzeugen
/etc/named.conf :
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
// allow-query { localhost; };
// In der Praxis ist DNSSEC eine gute Sache ... aber zum Lernen erst mal aus:
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
Unter Debian und CentOS empfehlen wir ein entsprechendes Verzeichnis master für die Zonendateien noch anzulegen 2):
Debian :
mkdir /var/cache/bind/master
CentOS 5 :
mkdir /var/named/master
/var/named/master/linuxhotel.de : ( CentOS 5 )
/var/lib/named/master/linuxhotel.de : ( SuSE 10.0)
/var/cache/bind/master/linuxhotel.de : ( Debian 3.1 )
$ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden
$TTL 2h
linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
1 ; Seriennummer
3h ; refresh
1h ; retry
1w ; expire
1h ; negative ttl
)
; 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
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 (
1 ; Seriennummer
3h ; refresh
1h ; retry
1w ; expire
1h ; negative ttl
)
; 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
/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:
service named reload
Debian
service bind9 reload
host peter.linuxhotel.de 127.0.0.1 dig peter.linuxhotel.de @127.0.0.1 any
/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 linuxhotel.de /var/lib/named/master/linuxhotel.de named-checkzone 1.168.192.in-addr.arpa. /var/lib/named/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
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.
cd /var/lib/named/master named-checkzone -i local -D linuxhotel.de linuxhotel.de rndc reload linuxhotel.de tail /var/log/messages 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; };
};
Debian:
mkdir /var/cache/bind/slave chown bind /var/cache/bind/slave
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
/etc/named.conf.local : ( Debian 5.0 )
/etc/named.conf : ( CentOS 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";
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