Gentoo Logo

Gentoo BIND Leitfaden

Inhalt:

1.  Einführung

Dieses Tutorial zeigt Ihnen, wie man BIND, den meistgenutzten DNS Server im Internet, installiert und konfiguriert. Wir konfigurieren bind für Ihre Domain mit verschiedenen Konfigurationen, eine für Ihr lokales Netzwerk und eine für den Rest der Welt. Wir benutzen dafür verschiedene "Views". Eine Ansicht für die interne Zone (Ihr lokales Netzwerk) und eine andere Ansicht für die externe Zone (Rest der Welt).

2.  Daten, die im Beispiel benutzt werden

Kurzform Erklärung Beispiel
IHRE_DOMAIN Ihr Domain Name gentoo.org
IHRE_ÖFFENTLICHE_IP Ihre öffentliche IP Adresse, vergeben durch den ISP 204.74.99.100
IHRE_LOKALE_IP Die lokale IP Adresse 192.168.1.5
IHR_LOKALES_NETZWERK Das lokale Netzwerk 192.168.1.0/24
SEKUNDÄRER_DNS_SERVER Die IP Adresse des sekundären DNS Server 209.177.148.228
ADMINISTRATOR Name des DNS-Server-Administrators root
ÄNDERUNGEN Das Änderungsdatum der Zonendatei, mit angefügter Nummer 2009062901

Abbildung 2.1: Beispiel-Netzwerk

Fig. 1: netzwerk

3.  BIND konfigurieren

Installation

Installieren Sie zunächst net-dns/bind.

Befehlsauflistung 3.1: Installation bind

# emerge net-dns/bind

Konfiguration /etc/bind/named.conf

Die erste Datei, die wir konfigurieren, lautet /etc/bind/named.conf. Als ersten Schritt geben wir dort das Hauptverzeichnis, die abzuhörenden Ports mit den dazugehörigen IPs, den Pfad der pid-Datei und eine Zeile für das ipv6-Protokoll an.

Befehlsauflistung 3.2: Abschnitt Optionen

options {
        directory "/var/bind";

        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; IHRE_LOKALE_IP; };

        pid-file "/var/run/named/named.pid";
};

Im zweiten Abschnitt der named.conf geht es um die interne Ansicht für unser lokales Netzwerk.

Befehlsauflistung 3.3: Interne Ansicht

view "internal" {
        match-clients { IHR_LOKALES_NETZWERK; localhost; };
        recursion yes;

        zone "IHRE_DOMAIN" {
                type master;
                file "pri/IHRE_DOMAIN.internal";
                allow-transfer { any; };
        };
};

Im dritten Abschnitt der named.conf geht es um die externe Ansicht, die benutzt wird, um unseren Domain-Namen für den Rest der Welt aufzulösen und um alle anderen Domain-Namen für uns aufzulösen (und für jeden, der unseren DNS-Server benutzt).

Befehlsauflistung 3.4: Externe Ansicht

view "external" {
        match-clients { any; };
        recursion no;

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "IHRE_DOMAIN" {
                type master;
                file "pri/IHRE_DOMAIN.external";
                allow-query { any; };
                allow-transfer { SEKUNDÄRER_DNS_SERVER; };
        };
};

Im letzten Abschnitt der named.conf geht es um die Log-Richtlinien.

Befehlsauflistung 3.5: Externe Ansicht

logging {
        channel default_syslog {
                file "/var/log/named/named.log" versions 3 size 5m;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
       category default { default_syslog; };
};

Das /var/log/named/ Verzeichnis muss existieren und named gehören:

Befehlsauflistung 3.6: Log-Dateien erzeugen

# mkdir -p /var/log/named/
# chmod 770 /var/log/named/
# touch /var/log/named/named.log
# chmod 660 /var/log/named/named.log
# chown -R named /var/log/named/
# chgrp -R named /var/log/named/

Erzeugen der internen Zonendatei

Wir nutzen die Hostnamen und IP-Adressen des Beispielbildes. Bedenken Sie, dass die meisten (nicht alle) Domain-Namen mit einem "." (Punkt) enden.

Befehlsauflistung 3.7: /var/bind/pri/IHRE_DOMAIN.internal

$TTL 2d
@	IN SOA	ns.IHRE_DOMAIN.	ADMINISTRATOR.IHRE_DOMAIN. (
	ÄNDERUNGEN	; serial
	3h	; refresh
	1h	; retry
	1w	; expiry
	1d )	; minimum

IHRE_DOMAIN.		IN MX	0 mail.IHRE_DOMAIN.
IHRE_DOMAIN.		IN TXT	"v=spf1 ip4:IHRE_ÖFFENTLICHE_IP/32 mx ptr mx:mail.IHRE_DOMAIN ~all"
IHRE_DOMAIN.		IN NS	ns.IHRE_DOMAIN.
IHRE_DOMAIN.		IN NS	SEKUNDÄRER_DNS_SERVER
www.IHRE_DOMAIN.	IN A	192.168.1.3
ns.IHRE_DOMAIN.		IN A	192.168.1.5
mail.IHRE_DOMAIN.	IN A	192.168.1.3
router.IHRE_DOMAIN.	IN A	192.168.1.1
hell.IHRE_DOMAIN.	IN A	192.168.1.3
heaven.IHRE_DOMAIN.	IN A	192.168.1.5
desktop.IHRE_DOMAIN.	IN A	192.168.1.4

Erzeugen der externen Zonendatei

In diesem Abschnitt haben wir nur die Subdomains, die wir für die externen Clients benötigen (www, mail und ns).

Befehlsauflistung 3.8: /var/bind/pri/IHRE_DOMAIN.external

$TTL 2d
@	IN SOA	ns.IHRE_DOMAIN.	ADMINISTRATOR.IHRE_DOMAIN. (
	ÄNDERUNGEN	;serial
	3h	;refresh
	1h	;retry
	1w	;expiry
	1d )	;minimum

IHRE_DOMAIN.		IN MX	0 mail.IHRE_DOMAIN.
IHRE_DOMAIN.		IN TXT	"v=spf1 ip4:IHRE_ÖFFENTLICHE_IP/32 mx ptr mx:mail.IHRE_DOMAIN ~all"
IHRE_DOMAIN.		IN NS	ns.IHRE_DOMAIN.
IHRE_DOMAIN.		IN NS	SEKUNDÄRER_DNS_SERVER
www.IHRE_DOMAIN.	IN A	IHRE_ÖFFENTLICHE_IP
ns.IHRE_DOMAIN.		IN A	IHRE_ÖFFENTLICHE_IP
mail.IHRE_DOMAIN.	IN A	IHRE_ÖFFENTLICHE_IP

Konfiguration abschließen

named zum default-Runlevel hinzufügen:

Befehlsauflistung 3.9: Hinzufügen zum default-Runlevel

# rc-update add named default

4.  Konfiguration der Clients

Sie können Ihren eigenen DNS-Server nun für alle Rechner im lokalen Netzwerk nutzen, um Domain-Namen aufzulösen. Bearbeiten Sie dazu die Datei /etc/resolv.conf all Ihrer Rechner im lokalen Netzwerk.

Befehlsauflistung 4.1: Konfiguration /etc/resolv.conf

search IHRE_DOMAIN
nameserver YOUR_DNS_SERVER_IP

Achten Sie darauf, dass YOUR_DNS_SERVER_IP dasselbe ist wie IHRE_LOKALE_IP, die wir in diesem Dokument verwendet haben. Im Beispielbild ist das die IP-Adresse 192.168.1.5.

5.  Testen

Der DNS-Server kann nun getestet werden. Zuerst müssen wir dafür alle Dienste starten.

Befehlsauflistung 5.1: Manuelles Starten der Dienste

# /etc/init.d/named start

Wir werden nun ein paar Domains mit dem Kommando host testen. Jeder Computer im lokalen Netzwerk kann für diesen Test genutzt werden. Wenn Sie net-dns/host nicht installiert haben, können Sie dafür auch ping nutzen. Ansonsten müssen Sie erst emerge host ausführen.

Befehlsauflistung 5.2: Durchführung des Tests

$ host www.gentoo.org
www.gentoo.org has address 209.177.148.228
www.gentoo.org has address 209.177.148.229

$ host hell
hell.IHRE_DOMAIN has address 192.168.1.3

$ host router
router.IHRE_DOMAIN has address 192.168.1.1

6.  Schützen des Servers mit iptables

Wenn Sie iptables verwenden, um Ihren Server zu schützen, fügen Sie folgende Regeln für den DNS-Dienst hinzu.

Befehlsauflistung 6.1: Iptables-Regeln

iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT


Drucken

Seite aktualisiert 21. August 2009

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Diese Anleitung hilft Ihnen, BIND für Ihre Domain und Ihr lokales Netzwerk zu konfigurieren und zu installieren.

Vicente Olivert Riera
Autor

Joshua Saddler
Bearbeiter

Christian Gebler
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.