Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi2:bind [2013/08/28 10:33] 127.0.0.1 Externe Bearbeitung |
— (aktuell) | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | Vorraussetzung: [[bind caching only | bind als caching only nameserver]] | ||
| - | |||
| - | ===== Vorbereiten ===== | ||
| - | === CentOS 5 === | ||
| - | Paket ''caching-nameserver'' deinstallieren | ||
| - | |||
| - | Paket ''system-config-bind'' installieren | ||
| - | Mit | ||
| - | system-config-bind | ||
| - | Default-Konfigurationsdateien erzeugen | ||
| - | |||
| - | === CentOS 6 === | ||
| - | ''/etc/named.conf'' : | ||
| - | <file> | ||
| - | options { | ||
| - | |||
| - | // listen-on port 53 { 127.0.0.1; }; | ||
| - | // listen-on-v6 port 53 { ::1; }; | ||
| - | // allow-query { localhost; }; | ||
| - | |||
| - | dnssec-enable no; | ||
| - | dnssec-validation no; | ||
| - | #dnssec-lookaside auto; | ||
| - | |||
| - | </file> | ||
| - | (( mehr zu ''allow-query'' weiter unten im Kapitel "Bind absichern" und natürlich unter | ||
| - | man named.conf | ||
| - | )) | ||
| - | ====== eigene Zonen in bind verwalten ====== | ||
| - | ===== Vorwärts-Zone ===== | ||
| - | ==== Zonendatei ==== | ||
| - | Unter Debian und CentOS muß man ein entsprechendes Verzeichnis ''master'' für die Zonendateien noch anlegen ((oder man legt die Zonendateien direkt in /var/cache/bind bzw. /var/named ab)): | ||
| - | |||
| - | 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 ) | ||
| - | <file> | ||
| - | $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. | ||
| - | </file> | ||
| - | |||
| - | === Zonendatei überprüfen === | ||
| - | == CentOS 5 == | ||
| - | named-checkzone linuxhotel.de. /var/named/master/linuxhotel.de | ||
| - | |||
| - | == SuSE 10.0 == | ||
| - | named-checkzone linuxhotel.de. /var/lib/named/master/linuxhotel.de | ||
| - | |||
| - | == Debian 3.1 == | ||
| - | named-checkzone linuxhotel.de. /var/cache/bind/master/linuxhotel.de | ||
| - | |||
| - | ==== Zonendatei (kurze Schreibweise) ==== | ||
| - | Das Format der Zonendatei (([[http://tools.ietf.org/html/rfc1035|rfc1035]])) läßt es auch zu, diese Datei sehr viel kürzer zu schreiben: | ||
| - | <file> | ||
| - | $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 | ||
| - | </file> | ||
| - | |||
| - | Bei jeder Änderung der Zonendatei sollte die Seriennummer hochgezählt werden. | ||
| - | |||
| - | === Zonendatei überprüfen === | ||
| - | == CentOS 5 == | ||
| - | named-checkzone -D linuxhotel.de. /var/named/master/linuxhotel.de | ||
| - | |||
| - | == SuSE 10.0 == | ||
| - | named-checkzone -D linuxhotel.de. /var/lib/named/master/linuxhotel.de | ||
| - | |||
| - | == Debian 3.1 == | ||
| - | named-checkzone -D linuxhotel.de. /var/cache/bind/master/linuxhotel.de | ||
| - | |||
| - | ==== Konfigurationsdatei ==== | ||
| - | ''/etc/named.conf'' : ( SuSE 10.2 ) | ||
| - | |||
| - | ''/etc/named.conf'' : ( CentOS ) | ||
| - | |||
| - | ''/etc/bind/named.conf.local'' : ( Debian 5.0 ) | ||
| - | <file> | ||
| - | zone "linuxhotel.de" { | ||
| - | type master; | ||
| - | file "master/linuxhotel.de"; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | Konfigdatei und eingetragene Zonen überprüfen: | ||
| - | named-checkconf -z | ||
| - | |||
| - | bind die Änderung mitteilen: | ||
| - | |||
| - | SuSE 11.1 : | ||
| - | /etc/init.d/named reload | ||
| - | |||
| - | ==== testen ==== | ||
| - | host peter.linuxhotel.de 127.0.0.1 | ||
| - | dig peter.linuxhotel.de @127.0.0.1 any | ||
| - | |||
| - | ===== Rückwärts-Zone ===== | ||
| - | ==== Zonendatei ==== | ||
| - | ''/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 ) | ||
| - | |||
| - | <file> | ||
| - | $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. | ||
| - | </file> | ||
| - | |||
| - | === testen === | ||
| - | 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 | ||
| - | |||
| - | ==== Konfigurationsdatei ==== | ||
| - | ''/etc/named.conf'' : ( SuSE 10.2 ) | ||
| - | |||
| - | ''/etc/named.conf'' : ( CentOS ) | ||
| - | |||
| - | ''/etc/bind/named.conf.local'' : ( Debian 3.1 ) | ||
| - | <file> | ||
| - | zone "1.168.192.in-addr.arpa" { | ||
| - | type master; | ||
| - | file "master/1.168.192.in-addr.arpa"; | ||
| - | }; | ||
| - | </file> | ||
| - | === testen === | ||
| - | named-checkconf | ||
| - | |||
| - | ==== testen ==== | ||
| - | SuSE 11.1 : | ||
| - | /etc/init.d/named reload | ||
| - | | ||
| - | host 192.168.1.222 127.0.0.1 | ||
| - | dig -x 192.168.1.222 @127.0.0.1 | ||
| - | |||
| - | |||
| - | ===== Interne Anfragen abfangen ===== | ||
| - | Todo: leere Zonendateien für [[http://linuxhotel.de/teilnehmerinfo/seminar-info.html#Netzwerk|private IP-Adressen]] anlegen | ||
| - | |||
| - | === Debian 5.0 === | ||
| - | Bei debian 5.0 gibt es dazu | ||
| - | ''/etc/bind/zones.rfc1918'', | ||
| - | ''/etc/bind/db.empty'' | ||
| - | und einen Eintrag in ''/etc/bind/named.conf.local'': | ||
| - | <file> | ||
| - | //include "/etc/bind/zones.rfc1918"; | ||
| - | </file> | ||
| - | |||
| - | Muß man je nach eigenen verwendeten privaten Netzen anpassen. | ||
| - | |||
| - | === openSuSE 11.4 === | ||
| - | ( noch nicht fertig ) | ||
| - | |||
| - | ''/etc/named.d/zones.rfc1918.conf'' : | ||
| - | <file> | ||
| - | zone "10.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | |||
| - | zone "16.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "17.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "18.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "19.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "20.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "21.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "22.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "23.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "24.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "25.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "26.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "27.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "28.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "29.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "30.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | zone "31.172.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | |||
| - | zone "168.192.in-addr.arpa" { type master; file "/var/lib/named/db.empty"; }; | ||
| - | </file> | ||
| - | |||
| - | ''/var/lib/named/db.empty'' : | ||
| - | <file> | ||
| - | ; BIND reverse data file for empty rfc1918 zone | ||
| - | ; | ||
| - | ; DO NOT EDIT THIS FILE - it is used for multiple zones. | ||
| - | ; Instead, copy it, edit named.conf, and use that copy. | ||
| - | ; | ||
| - | $TTL 86400 | ||
| - | @ IN SOA localhost. root.localhost. ( | ||
| - | 1 ; Serial | ||
| - | 604800 ; Refresh | ||
| - | 86400 ; Retry | ||
| - | 2419200 ; Expire | ||
| - | 86400 ) ; Negative Cache TTL | ||
| - | ; | ||
| - | @ IN NS localhost. | ||
| - | </file> | ||
| - | |||
| - | ===== Zonendateien mit nsupdate bearbeiten ===== | ||
| - | ==== bind konfigurieren ==== | ||
| - | ''/etc/named.conf'' : ( SuSE, CentOS ) | ||
| - | |||
| - | ''/etc/bind/named.conf.local'' : ( Debian ) | ||
| - | <file> | ||
| - | 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"; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ==== bind Konfigurationsdatei prüfen ==== | ||
| - | named-checkconf | ||
| - | |||
| - | ==== bind Schreibzugriff auf Master-Zonendateien geben ==== | ||
| - | Debian: | ||
| - | chown -R bind /var/cache/bind/master | ||
| - | |||
| - | ==== Testen: Eintrag hinzufügen ==== | ||
| - | nsupdate <<EOF | ||
| - | <file> | ||
| - | 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 | ||
| - | |||
| - | </file> | ||
| - | EOF | ||
| - | |||
| - | |||
| - | |||
| - | ==== Trotz nsupdate Zonen mit Editor bearbeiten ==== | ||
| - | rndc freeze linuxhotel.de | ||
| - | vim linuxhotel.de | ||
| - | rndc reload linuxhotel.de | ||
| - | rndc thaw linuxhotel.de | ||
| - | |||
| - | Hilfreich ist vielleicht: | ||
| - | |||
| - | ''~/.bashrc'' : | ||
| - | <file> | ||
| - | function zvi { | ||
| - | cd /var/cache/bind/master | ||
| - | rndc freeze $1 | ||
| - | vim $1 | ||
| - | rndc reload $1 | ||
| - | rndc thaw $1 | ||
| - | cd - | ||
| - | } | ||
| - | </file> | ||
| - | |||
| - | ====== bind als slave einrichten ====== | ||
| - | Erst müssen die Slave-Nameserver in der Zonendatei des Masters eingetragen werden: | ||
| - | <file> | ||
| - | linuxhotel.de. IN NS notebook04.linuxhotel.de. | ||
| - | </file> | ||
| - | |||
| - | Bei SuSE muß noch der Eintrag | ||
| - | <file> | ||
| - | notify yes; | ||
| - | </file> | ||
| - | in der Datei ''/etc/named.conf'' eingetragen werden, oder die Zeile ganz entfernt oder auskommentiert werden. | ||
| - | === testen: funktioniert der Master === | ||
| - | == openSuSE 12.3 == | ||
| - | 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 | ||
| - | |||
| - | |||
| - | ==== Slave konfigurieren ==== | ||
| - | Vorraussetzung: Master funktioniert | ||
| - | dig @<IP-des-Masters> linuxhotel.de AXFR | ||
| - | |||
| - | Ausgabe muss mindestens 2 NS Records enthalten: | ||
| - | - den eigenen Rechner | ||
| - | - den Master | ||
| - | |||
| - | ''/etc/named.conf'' : ( CentOS 5.3 ) | ||
| - | <file> | ||
| - | 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; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ''/etc/named.conf'' : ( SuSE 10.0 ) | ||
| - | |||
| - | ''/etc/bind/named.conf.local'' : ( Debian ) | ||
| - | <file> | ||
| - | 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; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ==== bind Schreibzugriff auf Slave-Zonendateien geben ==== | ||
| - | Debian: | ||
| - | mkdir /var/cache/bind/slave | ||
| - | chown bind /var/cache/bind/slave | ||
| - | |||
| - | ==== testen: funktioniert der Slave? ==== | ||
| - | === OpenSuSE 12.3 === | ||
| - | 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 | ||
| - | |||
| - | ====== Zonentransfer signieren ====== | ||
| - | Schlüsselpaar erstellen: (( Todo: eigentlich sollte das immer mit -n HOST funktionieren. Aber ich hatte Situationen, wo ich | ||
| - | dnssec-keygen -a hmac-md5 -b 128 -n ZONE zonentransfer | ||
| - | benutzt habe )) | ||
| - | cd | ||
| - | dnssec-keygen -a hmac-md5 -b 512 -n HOST zonentransfer | ||
| - | |||
| - | Dadurch werden zwei Dateien erstellt: | ||
| - | ls Kzonentransfer.+157+* | ||
| - | |||
| - | Die darin angegebenen Schlüssel und Verschlüsselungsverfahren müssen in die Konfigurationsdateien von master und slave eingetragen werden. | ||
| - | |||
| - | ===== master ===== | ||
| - | ''/etc/named.conf'' : ( CentOS 5, Debian 5.0 ) | ||
| - | <file> | ||
| - | key "zonentransfer" { | ||
| - | algorithm hmac-md5; | ||
| - | secret "Ur7+TU8m24L9q24AWgNd4g=="; | ||
| - | }; | ||
| - | |||
| - | zone "linuxhotel.de" { | ||
| - | type master; | ||
| - | file "master/linuxhotel.de"; | ||
| - | allow-transfer { key zonentransfer; }; | ||
| - | }; | ||
| - | |||
| - | zone "1.168.192.in-addr.arpa" { | ||
| - | type master; | ||
| - | file "master/1.168.192.in-addr.arpa"; | ||
| - | allow-transfer { key zonentransfer; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ==== testen ==== | ||
| - | Todo: Achtung: unsicher da so der Schlüssen in ''ps ax'' Ausgabe und in der history landet. Mit ''-k'' wäre sicherer | ||
| - | dig @192.168.53.103 signed03.dnslab.org AXFR -y "zonentransfer:Ur7+TU8m24L9q24AWgNd4g==" | ||
| - | |||
| - | ===== slave ===== | ||
| - | ''/etc/named.conf'' : ( CentOS 5, Debian 5.0 ) | ||
| - | <file> | ||
| - | key "zonentransfer" { | ||
| - | algorithm hmac-md5; | ||
| - | secret "Ur7+TU8m24L9q24AWgNd4g=="; | ||
| - | }; | ||
| - | |||
| - | server 192.168.1.220 { | ||
| - | keys { zonentransfer; }; | ||
| - | }; | ||
| - | |||
| - | 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; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ====== Subdomains delegieren ====== | ||
| - | ===== Übergeordneter DNS ===== | ||
| - | ''/etc/named.conf.local'' : ( Debian 5.0 ) | ||
| - | |||
| - | ''/etc/named.conf'' : ( CentOS 5 ) | ||
| - | <file> | ||
| - | zone "linuxhotel.de" IN { | ||
| - | type master; | ||
| - | file "master/linuxhotel.de"; | ||
| - | forwarders { }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ''/var/named/master'' : ( CentOS 5 ) | ||
| - | <file> | ||
| - | sub05.linuxhotel.de. IN NS ns1.sub05.linuxhotel.de. | ||
| - | ns1.sub05.linuxhotel.de. IN A 192.168.150.110 | ||
| - | </file> | ||
| - | |||
| - | named-checkzone -i local -D linuxhotel.de /var/named/master/linuxhotel.de | ||
| - | ===== Subdomain DNS ===== | ||
| - | Wie oben, unter "eigene Zonen in bind verwalten" | ||
| - | |||
| - | ====== Bind absichern ====== | ||
| - | ===== rekursive Abfragen verbieten ===== | ||
| - | |||
| - | ''/etc/bind/named.conf.options'' ( Debian ) | ||
| - | |||
| - | ''/etc/bind/named.conf'' ( SuSE ) | ||
| - | <file> | ||
| - | acl friendly { | ||
| - | 192.168.1.0/24; // | ||
| - | }; | ||
| - | |||
| - | options { | ||
| - | allow-recursion { friendly; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | (( oder, wenn man einen rein rekursiven, also einen nicht autoritativen, Nameserver ohne eigene Zonendateien betreibt sogar: | ||
| - | |||
| - | <file> | ||
| - | options { | ||
| - | allow-query { friendly; }; | ||
| - | }; | ||
| - | </file> | ||
| - | )) | ||
| - | ===== Zonentransfer verbieten ===== | ||
| - | |||
| - | ''/etc/bind/named.conf.options'' ( Debian ) | ||
| - | |||
| - | ''/etc/bind/named.conf'' ( SuSE ) | ||
| - | <file> | ||
| - | acl internal { | ||
| - | 127.0.0.1/32; // localhost | ||
| - | }; | ||
| - | |||
| - | acl friendly { | ||
| - | internal; | ||
| - | 192.168.1.204; // slave DNS | ||
| - | }; | ||
| - | |||
| - | options { | ||
| - | allow-transfer { friendly; }; | ||
| - | }; | ||
| - | </file> | ||
| - | Oder, alternativ, nur für eine Zone: | ||
| - | |||
| - | ''/etc/bind/named.conf.local'' ( Debian ) | ||
| - | |||
| - | ''/etc/bind/named.conf'' ( SuSE ) | ||
| - | <file> | ||
| - | zone "linuxhotel.de" { | ||
| - | type master; | ||
| - | file "master/linuxhotel.de"; | ||
| - | allow-transfer { friendly; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ===== IPv6 ausschalten ===== | ||
| - | ''/etc/bind/named.options'' : ( Debian 4.0 ) | ||
| - | <file> | ||
| - | options { | ||
| - | </file> | ||
| - | ... | ||
| - | <file> | ||
| - | listen-on-v6 { none; }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | ===== bind in chroot ===== | ||
| - | * Bei SuSE ist das automatisch so, | ||
| - | * bei RedHat 6 gibt es ein Paket ''bind-chroot'', | ||
| - | * bei debian sarge muß man noch etwas Hand anlegen: | ||
| - | |||
| - | |||
| - | ''/etc/default/bind9'': | ||
| - | <code bash> | ||
| - | CHROOT="/var/lib/bind" | ||
| - | OPTIONS="-u bind -t $CHROOT" | ||
| - | |||
| - | test -d $CHROOT/var/run || mkdir -p $CHROOT/var/run | ||
| - | test -d $CHROOT/var/run/bind || mv /var/run/bind $CHROOT/var/run | ||
| - | test -e /var/run/bind || ln -s $CHROOT/var/run/bind /var/run/bind | ||
| - | |||
| - | test -d $CHROOT/var/cache || mkdir -p $CHROOT/var/cache | ||
| - | test -d $CHROOT/var/cache/bind || mv /var/cache/bind $CHROOT/var/cache | ||
| - | test -e /var/cache/bind || ln -s $CHROOT/var/cache/bind /var/cache/bind | ||
| - | |||
| - | test -d $CHROOT/dev || mkdir -p $CHROOT/dev | ||
| - | test -c $CHROOT/dev/null || mknod $CHROOT/dev/null c 1 3 | ||
| - | test -c $CHROOT/dev/random || mknod $CHROOT/dev/random c 1 8 | ||
| - | chmod 666 $CHROOT/dev/random $CHROOT/dev/null | ||
| - | |||
| - | test -d $CHROOT/etc || mkdir -p $CHROOT/etc | ||
| - | test -d $CHROOT/etc/bind && rm -r $CHROOT/etc/bind | ||
| - | cp -a /etc/bind $CHROOT/etc | ||
| - | </code> | ||
| - | |||
| - | Ab Debian lenny reicht: | ||
| - | |||
| - | ''/etc/default/bind9'' : | ||
| - | <code> | ||
| - | OPTIONS="-u bind -t /var/lib/named" | ||
| - | </code> | ||
| - | |||
| - | Beim nächsten restart läuft bind in einer chroot-Umgebung. Überprüfen: (( Anders als in manchen HowTos beschrieben ist es nicht notwendig ''/dev/log'' ins chroot zu legen und den Syslog anzupassen. ''named'' macht erst einen ''connect'' mit ''/dev/log'' und erst danach ''chroot''. )) | ||
| - | /etc/init.d/bind9 restart | ||
| - | ls /proc/`pgrep named`/root | ||
| - | |||
| - | ====== Zonendatei für Subnetz per Skript erzeugen ====== | ||
| - | <code bash> | ||
| - | #!/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 | ||
| - | </code> | ||
| - | |||
| - | ====== Fehlersuche ====== | ||
| - | dnstop | ||
| - | |||
| - | ===== querylogging ===== | ||
| - | todo: nicht getestet | ||
| - | |||
| - | Achtung: macht bind sehr langsam | ||
| - | <file> | ||
| - | logging { | ||
| - | channel query_log { | ||
| - | file "/var/named/query.log" versions 10 size 50M; | ||
| - | severity debug; | ||
| - | print-time yes; | ||
| - | enable querylogging | ||
| - | }; | ||
| - | }; | ||
| - | </file> | ||
| - | |||
| - | rndc querylog | ||
| - | rndc status | grep "query logging" | ||
| - | tail /var/log/daemonlog | ||
| - | ===== Rekursive Anfrage ===== | ||
| - | dig +trace www.wupperrafting.de. | ||
| - | [[http://www.zonecut.net/dns/]] | ||
| - | |||
| - | ====== Dokus & Links ====== | ||
| - | * [[ http://www.zytrax.com/books/dns/ | Bind Buch "DNS for Rocket Scientists"]] | ||
| - | * [[ http://en.opensuse.org/Howto_setup_SUSE_as_SAMBA_PDC_with_OpenLDAP%2C_DYNDNS_and_CLAM#Dynamic_DNS_Setup | Howto zu Bind und DHCP unter SuSE]] | ||
| - | * [[ http://www.microsoft.com/technet/archive/interopmigration/linux/mvc/cfgbind.mspx | bind und Active Directory ]] | ||
| - | * [[http://k.root-servers.org|DNS Root Server System]] | ||
| - | * [[http://technet.microsoft.com/de-de/library/cc755717%28WS.10%29.aspx|Zusammenspiel Windows NS und Bind]] | ||
| - | * [[http://www.serverhowto.de/DNS-Server-BIND-9-als-Ersatz-fuer-den-Windows-DNS-Server.277.0.html|Beispiel einer Windows AD unter Bind]] | ||
| - | |||