Good to Know Database

CentOS 5: Dynamischen DNS-Server (DDNS) einrichten


1. Einleitung

Jeder Rechner in einem Netzwerk und im Internet wird durch seine IP-Adresse adressiert. Da diese Form der Adressierung sehr umständlich ist und sich die IP-Adressen ändern können, wird zu diesem Zweck ein eindeutiger Namen verwendet. Die so genannte Namensauflösung wird von einem Domain Name Server (DNS) vorgenommen. Ich möchte hier beschreiben wie Sie einen eigenen dynamischen DNS-Server (DDNS-Server) für Ihr Netzwerk einrichten.

2. Installation und Konfiguration

Zuerst müssen Sie die Pakete bind, bind-chroot, bind-libs und bind-utils installieren.

[root@centos5 ~]# yum install bind bind-chroot bind-libs bind-utils

Damit nur autorisierte Systeme den DNS-Server kontrollieren können, müssen Sie einen Schlüssel erstellen welcher für die Kommunikation zwischen DHCP- und DNS-Server verwendet wird.

Sollte die Datei /etc/rndc.key noch nicht existieren, erstellen Sie diese mit dem folgenden Befehl.

[root@centos5 ~]# rndc-confgen -a

Anschließend erstellen Sie die Datei /etc/rndc.conf.

[root@centos5 ~]# vi /etc/rndc.conf

Fügen Sie den folgenden Abschnitt in die /etc/rndc.conf ein.

include "/etc/rndc.key";

options {
     default-server localhost;
     default-key "rndckey";
     };

server localhost {
     key "rndckey";
     };

Nachdem Sie die rndc.conf erstellt haben, erstellen Sie die Konfigurationsdatei named.conf in welcher die Einstellungen für den BIND (Berkeley Internet Name Domain) eingetragen werden.

[root@centos5 ~]# vi /etc/named.conf

Die folgenden Abschnitte können Sie mit ein paar Änderungen übernehmen.

Mit der erste Konfigurationszeile binden Sie die rndc.key ein.

include "/etc/rndc.key";

Der nächste Abschnitt legt fest welche Adresse der Nameserver verwendet und welche Subnetze von Ihm bedient werden. Des Weiteren wird dadurch die Verbindung vom rndc zum named ermöglicht.

controls {
     inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };
     inet 192.168.10.1 allow { 192.168.10.0/24; } keys { "rndckey"; };
     };

Die ersten beiden Einstellungen im Options-Abschnitt legen fest in welchem Verzeichnis die Zonendateien abgelegt sind und in welcher Datei die PID des Nameservers gespeichert wird.

options {
     directory "/var/named";
     pid-file "/var/run/named/named.pid";

Wenn der DNS-Server eine Anfrage bekommt welche er nicht beantworten kann, wird diese bei aktivierter Rekursion an einen anderen Nameserver weitergeleitet und versucht den Namen aufzulösen. Sollten Sie die Rekursion nicht aktivieren, antwortet der DNS-Server mit einer Liste von Nameservern welche möglicherweise die Anfrage beantworten können.
Um die Rekursion zu aktivieren fügen Sie die folgende Zeile in Ihre named.conf ein.

     recursion yes;

Mit dem nächsten Abschnitt können Sie noch einstellen in welchen Subnetzen die Rekursion verfügbar werden soll.

     allow-recursion {
          127.0.0.1;
          192.168.10.0/24;
          };

Damit die Anfragen auch weitergeleitet werden können, müssen Sie noch die Adressen der DNS-Server angeben an welche die Anfrage weitergeleitet wird beziehungsweise welche Nameserver dem Client zurückgegeben werden.

     forwarders {
          192.168.10.2;
          192.168.10.100;
          };

Wenn Sie mehrere Netzwerkkarten in Ihrem Server verwenden, können Sie mit der folgenden Option einstellen auf welchen Schnittstellen der DNS-Server Anfragen annehmen soll.

     listen-on {
          127.0.0.1;
          192.168.10.1;
          };

Mit der nächsten Option wird festgelegt das ausgehende DNS-Anfragen nur über den Port 53 laufen.

     query-source address * port 53;

Soll der DNS-Server nur Anfragen aus bestimmten Netzwerken beantworten, tragen Sie diese Netzwerkbereiche hier ein.

     allow-query {
          127.0.0.1;
          192.168.10.0/24;
          };

Damit ein Angreifer nicht die BIND-Version auslesen kann, fügen Sie noch die folgende Zeile im Options-Abschnitt ein.

     version "REFUSED";
     };

Am Ende der named.conf werden noch die Zonen angegeben welche der DNS-Server verwalten soll. Die erste Zone ist die Root-Zone in welcher die Adressen der Root-Nameserver definiert werden.

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

Der darauf folgende Abschnitt ist für die Domain home.lan in welcher sich die Clients befinden. Als type geben wir master an da wir diesen DNS-Server als Master für die Domain home.lan verwenden wollen. Für die Zuordnung der Domainnamen wird die Datei  home.lan.zone verwendet auf welche wir später noch zurückkommen werden. Des Weiteren wird das Updaten der Zonendatei erlaubt und der dazugehörige rndc-Schlüssel angegeben.

zone "home.lan" IN {
     type master;
     file "home.lan.zone";
     allow-update { key "rndckey"; };
     notify yes;
     };

Mit der Zone home.lan können Sie einen Rechnernamen in dessen IP-Adresse auflösen. Um einen Rechnernamen zu ermitteln von welchem nur die IP-Adresse bekannt ist, wird das so genannte Reverse-Lookup verwendet.

Damit Sie auch Reverse-Lookup verwenden können, müssen Sie noch die Zone anlegen. Da wir hier die IP-Adressen 192.168.10.x verwenden, wird die Zone 10.168.192.in-addr.arpa heißen.

zone "10.168.192.in-addr.arpa" in {
     type master;
     file "192.168.10.zone";
     allow-update { key "rndckey"; };
     notify yes;
     };

Hiermit ist die named.conf vollständig und kann gespeichert werden.

Wie bereits erwähnt, existiert für jede Zone eine eigene Datei in welcher die Zuordnungen hinterlegt sind. Für die Root-Zone müssen Sie nur die Vorlage nach /var/named/ kopieren.

[root@centos5 ~]# cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/

Die Zonendatei für die Zone home.lan wurde bereits im dazugehörigen Zoneneintrag angegeben und muss jetzt noch erstellt werden. In diesem Beispiel wäre dies die Datei /var/named/home.lan.zone.

[root@centos5 ~]# vi /var/named/home.lan.zone

Diese Datei enthält zuerst einige Zoneninformationen wie zum Beispiel die Adresse des Name-, Mail-, FTP- und News-Servers. Des Weiteren werden alle DNS-Namen und IP-Adressen eingetragen welche über den DNS-Server aufgelöst werden sollen. Für die hier beschriebene Beispielkonfiguration könnte die home.lan.zone wie folgt aufgebaut sein.

$TTL 2D
@         IN SOA       server.home.lan. root.server.home.lan. (
          2008010500   ; serial (05.01.2008)
          3H           ; refresh
          15M          ; retry
          1W           ; expiry
          1D )         ; minimum

          IN NS        server
          IN MX 0      server

mail      IN CNAME     server
ns        IN CNAME     server
ftp       IN CNAME     server
news      IN CNAME     server
;
server    IN A         192.168.10.1
router    IN A         192.168.10.2
client1   IN A         192.168.10.3
client2   IN A         192.168.10.4

Jetzt muss noch die Datei für das Reverse-Lookup erstellt werden. Wie in der named.conf festgelegt, wird dazu die Datei /var/named/192.168.10.zone verwendet.

[root@centos5 ~]# vi /var/named/192.168.10.zone

Der Aufbau dieser Datei ist ähnlich zu der soeben erstellten home.lan.zone. Hier wird allerdings zuerst die IP-Adresse angegeben und danach der Domainname.

$TTL 2D
@         IN SOA       server.home.lan. root.server.home.lan. (
          2008010500   ; serial (05.01.2008)
          3H           ; refresh
          15M          ; retry
          1W           ; expiry
          1D )         ; minimum

          IN NS        server.
1         IN PTR       server.home.lan.
2         IN PTR       router.home.lan.
3         IN PTR       client1.home.lan.
4         IN PTR       client2.home.lan.

Nachdem Sie die Zonendateien erstellt haben, ändern Sie noch die Zugriffsberechtigungen.

[root@centos5 ~]# chown named:named /var/named/home.lan.zone /var/named/192.168.10.zone

Damit das Updaten der Zonendateien aktiviert wird, müssen Sie dies noch in der /etc/sysconfig/named erlauben.

[root@centos5 ~]# vi /etc/sysconfig/named

Fügen Sie die folgende Zeile in die Datei ein.

ENABLE_ZONE_WRITE=yes

Wenn Sie den DNS-Server in einer Chroot-Umgebung starten wollen, führen Sie den folgenden Befehl aus.

[root@centos5 ~]# bind-chroot-admin -e

Dadurch werden die Konfigurationsdateien in die Verzeichnisstruktur unter /var/named/chroot/ kopiert.

3. DNS-Server starten

Wenn Sie die Einstellungen vorgenommen haben, müssen Sie noch den DNS-Dienst in der Firewall freigeben. Dazu öffnen Sie wie folgt die Firewall-Konfiguration.

[root@centos5 ~]# system-config-securitylevel-tui

Unter Anpassen tragen Sie als weiteren geöffneten Port domain:udp oder die Portnummer 53 ein. Nachdem Sie die Einstellungen gespeichert haben, können Sie den DNS-Server starten.

[root@centos5 ~]# service named start

Damit auch Ihr Server in der Lage ist eine Namensauflösung über den DNS-Server durchzuführen, müssen Sie diesen in der resolv.conf bekannt geben.

[root@centos5 ~]# vi /etc/resolv.conf

Fügen Sie hier die folgende Zeile ein.

nameserver 192.168.10.1

Um den DNS-Server zu testen, können Sie die folgenden Befehle verwenden. Mit dem ersten Befehl wird die Namensauflösung überprüft.

[root@centos5 ~]# host server.home.lan

Als Ergebnis erhalten Sie folgende Ausgabe in welcher Sie die IP-Adresse überprüfen sollten.

server.home.lan has address 192.168.10.1

Der zweite Befehl überprüft den Reverse-Lookup-Eintrag für die IP-Adresse des Servers.

[root@centos5 ~]# host -i 192.168.10.1

Die Ausgabe sollte wie folgt aussehen.

1.10.168.192.in-addr.arpa domain name pointer server.home.lan.

Sollten diese Befehle eine fehlerhafte Ausgabe ausgeben, überprüfen Sie die Zonendateien, die named.conf sowie das Logfile.

[root@centos5 ~]# tail -f /var/log/messages | grep named

Sobald der DNS-Server funktioniert, können Sie den named im Runlevel 3 und 5 aktivieren damit er automatisch gestartet wird.

[root@centos5 ~]# chkconfig --level 35 named on

4. DHCP-Server konfigurieren

Damit der DHCP-Server den Nameserver über die vergebenen IP-Adressen informiert und die Rechnernamen übergibt, müssen Sie an der dhcpd.conf einige Änderungen vornehmen.

[root@centos5 ~]# vi /etc/dhcpd.conf

Zuerst fügen Sie den folgenden Abschnitt für den rndc-Schlüssel ein. Bei der Option secret geben Sie den Schlüssel aus der /etc/rndc.key an.

key rndckey {
     algorithm hmac-md5;
     secret "Lw9YyhIBWTX3zU6ryRkf...sMdp01wEeiA864jTjgA3ZqUSWvV";
     };

Anschließend ändern Sie die Option ddns-update-style wie folgt ab.

ddns-update-style interim;

Zum Schluss fügen Sie noch die Lookup- und Reverse-Lookup-Zonen ein welche aktualisiert werden sollen.

zone home.lan. {
     primary 127.0.0.1;
     key rndckey;
     }

zone 10.168.192.in-addr.arpa. {
     primary 127.0.0.1;
     key rndckey;
     }

Nachdem Sie die dhcpd.conf abgespeichert haben, müssen Sie den DHCP-Server neu starten.

[root@centos5 ~]# service dhcpd restart


Dieser Eintrag wurde am 03.11.2007 erstellt und zuletzt am 11.10.2012 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_572.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer