Der Bind (named) DNS-Server:



rndc Port:


Wenn ich einen nmap localhost mache, erhalte ich folgende Anzeige:

PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop-3
143/tcp open imap
443/tcp open https
953/tcp open rndc
10000/tcp open snet-sensor-mgmt


Ist dieser rndc-Port normal?

Ja. Es handelt sich um einen Port, der nur lokal geöffnet ist und ausschliesslich über /usr/sbin/rndc erreicht werden kann. Es handelt sich um ein mit bind geliefertes Programm, das es erlaubt bind zu verwalten (zum Beispiel kann man damit die DNS-Zonen nach einer Änderung neu laden):

/usr/sbin/rndc reload

Wenn Sie bei diesem Befehl eine Fehlermeldung erhalten, dann ist der wahrscheinlichste Grund, daß die Kommunikation zwischen rndc und dem bind Server nicht funktioniert (Problem mit dem Key).

In diesem Fall können Sie den Befehl /usr/sbin/rndc-confgen verwenden, um die zeilen zu erhalten, die in den Konfigurationsdateien eingefügt werden müssen:

/etc/rndc.conf
/etc/named.conf


Um einen Schlüssel (Key) zu erzeugen können Sie folgenden Befehl verwenden:

/usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n ZONE key

Sie können dann eine DNS-Zone direkt von Webmin aus mit dem Knopf "Apply changes" neu starten:




Die Fehler:


Wenn Sie Fehlermeldungen bekommen, dann müssen Sie die Ursache des Problems herausfinden. Dazu gibt es nichts besseres als in den Log-Dateien? nachzusehen; diese befinden sich in /var/log/messages.

Vorgehensweise:

Um richtig debuggen zu können öffnen Sie 2 SSH Konsolen auf ihrer Maschine. Auf der ersten Konsole führen Sie tail -f aus; dies erlaubt es Ihnen, die fehler in Echtzeit zu betrachten.

[root@nsXXXX root]# tail -f /var/log/messages | grep named
Oct 3 21:12:26 nsXXXX named[23985]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 3 21:12:26 nsXXXX named[23985]: listening on IPv4 interface eth0, 213.186.XX.XX#53
Oct 3 21:12:26 nsXXXX named[23985]: could not configure root hints from 'named.ca': file not found
Oct 3 21:12:26 nsXXXX named[23985]: loading configuration: file not found
Oct 3 21:12:26 nsXXXX named[23985]: exiting (due to fatal error)
oct 3 21:12:26 nsXXXX named: named startup failed


Auf der zweiten Konsole führen Sie folgende befehle aus:

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ECHOUE]


In Webmin können Sie folgendes sehen:

Echec du démarrage de BIND : Starting named: [FAILED]

Es wird extra restart verwendet, denn wenn der Prozess noch läuft wird er dann gekillt. Anscheinend funtionieren stop und start nicht, was bedeutet daß der Prozess vorher noch nicht lief und deshalb nicht neu straten will.

Warum? Die Lösung befindet sich in den Logs:

could not configure root hints from 'named.ca': file not found

Oct 3 21:12:26 nsXXXX named[23985]: could not configure root hints from 'named.ca': file not found

Anscheinend ist die Datei named.ca nicht vorhanden (file not found).

Schauen wir uns zuerst in die Konfigurationsdatei von bind, /etc/named.conf.

[root@nsXXXX root]# less /etc/named.conf
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";


Alles ist vorhanden, ausser das Wichtigste: die Deklaration options. Wir werden also diese hinzufügen. Dazu muss die /etc/named.conf mit vi oder pico editiert werden

[root@nsXXXX root]# pico /etc/named.conf

und es werden am Anfang der Datei die Deklaration der Optionen mit dem Verzeichnis in dem sich alle DNS-Zonen befinden hinzugefügt:

options {
directory "/var/named";
};

Danach versuchen wir neu zu starten:

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ OK ]

Das ist in Ordnung, er hat neu gestartet. Wir schauen in den Logs nach ob alles in Ordnung ist:

[root@nsXXXX root]# tail -f /var/log/messages | grep named
oct 4 15:01:09 nsXXXX named: Arrêt de named failed
Oct 4 15:01:09 nsXXXX named[29086]: starting BIND 9.2.1 -u named
Oct 4 15:01:09 nsXXXX named[29086]: using 1 CPU
Oct 4 15:01:09 nsXXXX named[29089]: loading configuration from '/etc/named.conf'
Oct 4 15:01:09 nsXXXX named[29089]: no IPv6 interfaces found
Oct 4 15:01:09 nsXXXX named[29089]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 4 15:01:09 nsXXXX named[29089]: listening on IPv4 interface eth0, 213.186.XX.XX#53
oct 4 15:01:10 nsXXXX named: Démarrage de named succeeded
Oct 4 15:01:10 nsXXXX named[29089]: command channel listening on 127.0.0.1#953
Oct 4 15:01:10 nsXXXX named[29089]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
[...]
Oct 4 15:01:10 nsXXXX named[29089]: running


Anscheinend ist alles in Ordnung. Man sieht auch daß der DNS-Server den Transfer der Zonen zu dem sekundären DNS-Server sdns#.ovh.net begonnen hat.

Oct 4 15:01:11 nsXXXX named[29089]: client 212.27.32.132#42227: transfer of 'domain.com/IN': AXFR started
Oct 4 15:01:11 nsXXXX named[29089]: client 212.27.32.132#42228: transfer of 'example.net/IN': AXFR started


Nun prüfen wir mit dem Befehl dig, ob der DNS-Server auf DNS Anfragen antwortet:

[root@nsXXXX root]# dig ovh.de

; <<>> DiG 9.2.1 <<>> ovh.de
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15984
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;ovh.de. IN A
;; ANSWER SECTION:
ovh.de. 86400 IN A 213.186.33.34
;; AUTHORITY SECTION:
ovh.de. 86400 IN NS dns.ovh.net.
ovh.de. 86400 IN NS sdns#.ovh.net.
;; Query time: 367 msec
;; SERVER: 213.186.XX.XX#53(213.186.XX.XX)
;; WHEN: Sat Oct 4 15:03:58 2003
;; MSG SIZE rcvd: 83


Wir bekommen eine Antwort , und diese kommt von: SERVER: 213.186.XX.XX#53(213.186.XX.XX), also unserer Maschine. Es ist also alles korrekt.


could not configure root hints from 'named.ca': permission denied

Offensichtlich sind die Berechtigungen nicht richtig vergeben. Wir werfen einen Blick auf /etc/named.conf um zu sehen, in welchem Ordner sich die Dateien befinden.

[...]
zone "domaine.com" {
type master;
file "/etc/domaine.com.hosts";
};


Gleiches Problem, es fehlen options und die Datei wurde in /etc/ erstellt. Wir werden also options in /etc/named.conf hinzufügen und die Datei nach /var/named verschieben:

[root@nsXXXX root]# pico /etc/named.conf

Wir fügen options hinzu:

options {
directory "/var/named";
};

Wir ändern das Verzeichnis der Zone domain.com nach /var/named.

zone "domaine.com" {
type master;
file "domaine.com.hosts";
};

Man muss nicht den kompletten Pfad angeben, diese Angaben befindensich bereits in den options. Wir kopieren die Datei nach /var/named

[root@nsXXXX root]# cp /etc/valheur.com.hosts /var/named

und versuchen bind neu zu starten:

[root@nsXXXX root]# /etc/rc.d/init.d/named restart
Arrêt de named : [ECHOUE]
Démarrage de named : [ OK ]

Anscheinend ist alles OK. Wir prüfen nun noch die Logs:

oct 4 15:26:25 nsXXXX named: Arrêt de named failed
Oct 4 15:26:25 nsXXXX named[3763]: starting BIND 9.2.1 -u named
Oct 4 15:26:25 nsXXXX named[3763]: using 1 CPU
Oct 4 15:26:25 nsXXXX named[3766]: loading configuration from '/etc/named.conf'
Oct 4 15:26:25 nsXXXX named[3766]: no IPv6 interfaces found
Oct 4 15:26:25 nsXXXX named[3766]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 4 15:26:25 nsXXXX named[3766]: listening on IPv4 interface eth0, 213.186.XX.XX#53
oct 4 15:26:25 nsXXXX named: Démarrage de named succeeded
Oct 4 15:26:25 nsXXXX named[3766]: command channel listening on 127.0.0.1#953
Oct 4 15:26:25 nsXXXX named[3766]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
Oct 4 15:26:25 nsXXXX named[3766]: zone domaine.com/IN: loaded serial 1065250970
Oct 4 15:26:25 nsXXXX named[3766]: zone localhost/IN: loaded serial 42
Oct 4 15:26:25 nsXXXX named[3766]: running
Oct 4 15:26:25 nsXXXX named[3766]: zone domaine.com/IN: sending notifies (serial 1065250970)
Oct 4 15:26:26 nsXXXX named[3766]: client 212.27.32.132#42247: transfer of 'domaine.com/IN': AXFR-style IXFR started


Noch einen dig um zu sehen ob alles funktioniert:

[root@nsXXXX root]# dig ovh.de

; <<>> DiG 9.2.1 <<>> ovh.de
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63306
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;ovh.de. IN A
;; ANSWER SECTION:
ovh.de. 86400 IN A 213.186.33.34
;; AUTHORITY SECTION:
ovh.de. 86400 IN NS dns.ovh.net.
ovh.de. 86400 IN NS sdns#.ovh.net.
;; Query time: 286 msec
;; SERVER: 213.186.XX.XX#53(213.186.XX.XX)
;; WHEN: Sat Oct 4 15:27:18 2003
;; MSG SIZE rcvd: 83


Fertig.