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
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 1 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.
/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