Bind testen und in Betrieb nehmen

Bevor unser DNS-Server den Betrieb aufnehmen kann, müssen wir sicherstellen, daß nicht versehentlich die falsche Version aufgerufen wird. Dazu ergänzen wir die globale Pfad-Umgebungsvariable in der Datei /etc/profile:

cp /etc/profile /etc/profile.bak
sed 's#^\(export PATH\)$#PATH="/usr/local/bind9/sbin:/usr/local/bind9/bin:$PATH"\n\1#'\
  /etc/profile > /tmp/profile.tmp
mv -f /tmp/profile.tmp /etc/profile

Startskript modifizieren

Die Pfade im Debian-Bind-Init-Script sind hartkodiert und zeigen auf die „offizielle“ Version. Wir klonen das Script deshalb – direkt mit mit ein paar kleinen Änderungen – in eine neue Datei:

cd /etc/init.d
sed 's#/usr/sbin#/usr/local/bind9/sbin#g' bind9\
  | sed 's#^PATH=#PATH=/usr/local/bind9/sbin:/usr/local/bind9/bin:#'\
  | sed -r 's~^(test -f /etc/default/bind9)~#\1~'\
  | sed 's#/etc/init.d/bind9#/etc/init.d/bind9custom#g'\
  | sed 's#/var/run/named/#/usr/local/bind9/var/run/named/#g' \
  - > bind9custom
chmod a+x bind9custom

Konfigurationsdateien übernehmen

Bei unserer manuellen Bind-Installation wurden keine Konfigurationsdateien erstellt. Wir kopieren deshalb einfach die der vorherigen Installation und machen sie für den Benutzer root und die Gruppe bind lesbar. Der symbolische Link auf /usr erleichtert uns dabei die Anpassung der Pfade aus den existierenden Skripten:

cp -u /etc/bind/* /usr/local/bind9/etc
chown -R root:bind /usr/local/bind9/etc
ln -s /usr/local/bind9 /usr/local/bind9/usr

AppArmor anpassen

Unser neuer Bind-Server muss jetzt noch in die Anwendungssicherheitskonfiguration integriert werden. Auch hier können wir auf die schon existierende alte Version zurückgreifen:

cd /etc/apparmor.d
sed 's#/etc/bind/\*\*#/usr/local/bind9/etc/**#g' usr.sbin.named \
  | sed 's#/usr/sbin/named#/usr/local/bind9/usr/sbin/named#g' \
  | sed 's#/{,var/}run/named/#/usr/local/bind9/{,var/}run/named/#g' \
  - > usr.local.bind9.sbin.named

Debian-Bind deaktivieren

Die nicht mehr benötigte Version stoppen und deaktivieren wir jetzt, um Konflikte zu vermeiden. Das alte Init-Script archivieren wir im Home-Verzeichnis als bind9.bak um. Danach aktivieren wir die neue Version und starten den Pi neu:

service bind9 stop
update-rc.d -f bind9 remove
mv /etc/init.d/bind9 ~/bind9.bak
update-rc.d bind9custom defaults
reboot

Neue Konfiguration prüfen

Nach dem Neustart können wir prüfen, ob alles nach Wunsch funktioniert und jetzt der „richtige“ Bind in Betrieb ist:

which named; named -V; service bind9custom status

Das sollte in etwa folgende Ausgabe erzeugen:

Nach erfolgreicher Installation und Neustart läuft auf unserem Pi nun Bind 9.9.4 in einer Langzeitsupport-Variante.

Webmin anpassen

Um Bind auch mit Webmin administrieren zu können, öffnen wir das entsprechende Modul unter Server > BIND DNS Server:

Das Webmin-BIND-Modul ist auf unser Update noch nicht eingestellt, hier zeigt es weiterhin die veraltete Debian-Version an.

In der Modulkonfiguration passen wir die Pfade entsprechend unser neuen Konfiguration an:

In der Webmin-Modulkonfiguration müssen noch alle Pfade angepasst werden.

Abschließend bitte das Speichern nicht vergessen!

Kommentare

Hallo David,

immer wenn dich versuche den Startscript zu Modifizieren (siehe unten)

cd /etc/init.d
sed 's#/usr/sbin#/usr/local/bind9/sbin#g' bind9\
| sed 's#^PATH=#PATH=/usr/local/bind9/sbin:/usr/local/bind9/bin:#'\
| sed -r 's~^(test -f /etc/default/bind9)~#\1~'\
| sed 's#/etc/init.d/bind9#/etc/init.d/bind9custom#g'\
| sed 's#/var/run/named/#/usr/local/bind9/var/run/named/#g' \
- > bind9custom
chmod a+x bind9custom

bekomme ich immer die Folgende Fehlermeldung

-bash bind9custom: Keine Berechtigung

was mache ich bloß nur falsch

Gruß

Orhan

Was sich nur aus dem Screenshot ergibt, den du mir gemailt hast. Du musst entweder root sein oder mit sudo arbeiten. Viel Erfolg!

Super..mit sudo -s hat es geklappt...

danke dir für die tolle Hilfestellung :))

Hallo,

ich hatte über das Webmin das Upgrade gestartet, Webmin benutzte daraufhin den Befehl apt-get -y install bind9 und beendete dies mit einen Fehler. Seit dem habe ich bei jeden Upgrade diesen Fehler. Kann man den wieder beseitigen?
Das bind9custom funktioniert weiterhin.
Fehlermeldung beim Upgrade:
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? Y
Setting up bind9 (1:9.8.4.dfsg.P1-6+nmu2+deb7u6) ...
invoke-rc.d: unknown initscript, /etc/init.d/bind9 not found.
dpkg: error processing bind9 (--configure):
subprocess installed post-installation script returned
error exit status
100
Errors were encountered while processing:
bind9
E: Sub-process /usr/bin/dpkg returned an error code (1)

Und kann man Webmin bei bringen apt-get update und apt-get upgrade zu benutzen?

Schöne Grüße
Thomas