Benutzer-Werkzeuge

Webseiten-Werkzeuge


server:bind

BIND unter Debian 6.0

BIND unter Debian 6.0 als Primary und Secondary Nameserver einrichten:

Installation

  • Paket einspielen:
# apt-get install bind9
  • Nameserver anhalten:
# /etc/init.d/bind9 stop
  • Für chroot konfigurieren und IPv4 erzwingen (gibt sonst Fehlermeldungen, weil der Server keine IPv6-Adresse hat):
# vi /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named -4"
  • Verzeichnisbaum anlegen:
# mkdir -p /var/lib/named/etc
# mkdir /var/lib/named/dev
# mkdir -p /var/lib/named/var/run
# mkdir /var/lib/named/var/cache
  • Konfiguration verschieben:
# mv /etc/bind /var/lib/named/etc
# ln -s /var/lib/named/etc/bind /etc/bind
  • Datenverzeichnisse kopieren:
# cp -a /var/cache/bind /var/lib/named/var/cache
# cp -a /var/run/named /var/lib/named/var/run
  • Notwendige Devices anlegen:
# mknod /var/lib/named/dev/random c 1 8
# chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
  • Nameserver wieder starten:
# /etc/init.d/bind9 start
  • Lauffähigkeit überprüfen:
# ps -Naf | grep named
[...] /usr/sbin/named -u bind -t /var/lib/named
# less /var/log/daemon.log
[...] named[xxxx]: starting BIND 9.7.3 -u bind -t /var/lib/named -4
[...]
[...] named[xxxx]: running
  • Quellen:
  • Hinweise:
    • Bei älteren Versionen mussten auch /dev/null und /dev/log in der Chroot-Umgebung liegen. Der Syslog-Daemon musste umkonfiguriert werden, damit er /dev/log in der Chroot-Umgebung berücksichtigte. Beides ist bei Debian 6.0 nicht mehr notwendig.
    • Bind kann /dev/random auch von außerhalb der Chroot-Umgebung nutzen, es gibt dann eine Warning in der Daemon-Log-Datei.

Konfiguration

  • Globale Optionen:
    • Kein IPv6 (listen-on-v6).
    • Nur auf localhost und einer IP-Adresse horchen (listen-on port, unnötig, wenn nur 1 IP-Adresse vorhanden).
    • Standardmäßig nur lokale Anfragen beantworten (allow-query und allow-recursion).
    • Standardmäßig keine Zonentransfers erlauben (allow-transfer).
# vi /var/lib/named/etc/bind/named.conf.options
options {
[...]
    listen-on port 53 { 127.0.0.1; 85.214.92.99; };
    listen-on-v6 { none; };
  
    allow-query { 127.0.0.1; };
    allow-recursion { 127.0.0.1; };
    allow-transfer { none; };
};
  • Konfiguration überprüfen:
# named-checkconf -t /var/lib/named
# echo $?
0
  • Nameserver neu starten:
# /etc/init.d/bind9 restart
  • Lauffähigkeit und gebundene IP-Adressen überprüfen:
# ps -Naf | grep named
[...] /usr/sbin/named -u bind -t /var/lib/named
# less /var/log/daemon.log
[...] named[xxxx]: starting BIND 9.7.3 -u bind -t /var/lib/named -4
[...]
[...] named[xxxx]: listening on IPv4 interface lo, 127.0.0.1#53
[...] named[xxxx]: listening on IPv4 interface venet0:0, 85.214.235.82#53
[...]
[...] named[xxxx]: running

Zonendateien

Konfiguration

  • Verzeichnisse für Zonendateien erzeugen:
# mkdir /var/lib/named/etc/bind/primary
# mkdir /var/lib/named/etc/bind/secondary
# chown bind:bind /var/lib/named/etc/bind/secondary
  • Zonendatei erzeugen:
# vi /var/lib/named/etc/bind/primary/disorganized.de.zone
  • Zonendatei überprüfen:
# named-checkzone disorganized.de /var/lib/named/etc/bind/primary/disorganized.de.zone
zone disorganized.de/IN: loaded serial 2006051700
OK
  • Zonendatei für Primary Nameserver in Konfiguration eintragen:
    • Anfragen von außen freischalten (allow-query).
    • Zonentransfers für Secondary Nameserver freischalten (allow-transfer).
    • Falls nötig, IP-Adresse für Notifications festlegen (notify-source, z.B. wenn mehrere IP-Adressen konfiguriert sind).
# vi /var/lib/named/etc/bind/named.conf.local
[...]
zone "disorganized.de" in {
    type master;
    file "/etc/bind/primary/disorganized.de.zone";
    allow-query { any; };
    allow-transfer { 62.116.163.100; 62.116.162.121; };
    notify-source 85.214.92.99;
};
  • Zonendatei für Secondary Nameserver in Konfiguration eintragen:
    • Primary Nameserver eintragen (masters).
    • Anfragen von außen freischalten (allow-query).
    • Falls nötig, IP-Adresse und Portnummer für Zonentransfers festlegen (transfer-source, z.B. wegen Firewall).
# vi /var/lib/named/etc/bind/named.conf.local
[...]
zone "disorganized.de" in {
    type slave;
    file "/etc/bind/secondary/disorganized.de.zone";
    masters { a.b.c.d; };
    allow-query { any; };
    transfer-source 85.214.92.99 port 53;
};
  • Konfiguration überprüfen:
# named-checkconf -t /var/lib/named
# echo $?
0
  • Nameserver neu starten:
# /etc/init.d/bind9 restart
  • Log-File überprüfen:
# less /var/log/daemon.log

Beispiel

Hier ist ein Beispiel für eine primäre Zonendatei:

# vi /var/lib/named/etc/bind/primary/disorganized.de.zone
$TTL 1d
@       IN      SOA ns hostmaster (
                    2006061200 ; serial
                    8h         ; refresh
                    2h         ; retry
                    1w         ; expiry
                    1d )       ; minimum
        IN      NS      ns
        IN      NS      ns10.schlundtech.de.
        IN      A       85.214.92.99
        IN      MX      10 mx
ns      IN      A       85.214.92.99
mx      IN      A       85.214.92.99
www     IN      A       85.214.92.99

Debug-Logging

So wird Debug-Logging aktiviert:

  • Verzeichnis für Log-Datei erzeugen:
# mkdir /var/lib/named/tmp
# chown bind:bind /var/lib/named/tmp
  • Debug-Logging aktivieren:
# vi /var/lib/named/etc/bind/named.conf.options
[...]
logging {
    category default {
        default_syslog;
        default_debug;
    };

    channel my_file {
        file "/tmp/log.msgs";
        severity debug 3;
        print-category yes;
        print-severity yes;
    };

    category notify { my_file; };
};
  • Nameserver-Konfiguration neu einlesen:
# /etc/init.d/bind9 reload
  • Debug-Ausgaben werden nach /var/lib/named/tmp/log.msgs geloggt.

Test

Einer der vielen Dienste, um DNS zu testen: http://www.dnssy.com/

server/bind.txt · Zuletzt geändert: 2011/12/08 20:44 von ewald