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 (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 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
/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 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
named-checkconf -z rndc reconfig tail /var/log/daemon.log ls /var/lib/named/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 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