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";
};
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"; };
};
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";
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;
};
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;
};
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;
};
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;
};
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";
};
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;
};
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;
};
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
@ 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.
@ 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";
};
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;
}
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 ]
© 2004-2021 by Georg Kainzbauer