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!