Standaard draait bind als root en kan hij het hele bestandssysteem benaderen. Dat is niet zo veilig en ook onnodig. Er zijn twee maatregelen om bind veiliger te laten draaien:
Een chroot is een omgeving waarin een proces kan draaien in een eigen rootdirectory. In principe is het niet mogelijk (of heel moeilijk) om eruit te breken en in de echte root terecht te komen.
Als root voor bind gebruik ik /var/named/. Binnen deze
directory moeten de volgende directory's aangemaakt worden:
etc/ voor named.conf en eventuele keyfilesvar/run/ voor named.pidzones/ voor master-zoneszones/slave/ voor slave-zonesoptions blok in named.conf is één aanpassing nodig:
"directory "/var/named/zones";" moet worden: "directory
"/zones";".
Zorg dat alle directory's en bestanden lees- en schrijfbaar zijn voor
het account waaronder bind draait, met name
/var/named/var/run/ en /var/named/zones/.
Bind is nu te starten met:
named -t /var/named -c /etc/named.conf
named.conf wordt pas na de chroot ingelezen, vandaar dat de naam
wordt opgegeven relatief ten opzichte van de nieuwe root. Het opgeven
van plaats van named.conf is alleen nodig als bind deze probeert te
lezen vanaf een non-standaard locatie, zoals in Debian.
Veel distributies hebben standaard al een user named of bind
aangemaakt. Die kunnen we gebruiken. Zo niet, maak dan zelf een user
aan. Deze moet in een aparte groep komen waarin verder geen andere
gebruikers rechten hebben.
Zorg ervoor dat bind kan schrijven in de directory waar named.pid
terecht komt en in /var/named/zones. Bind is nu te starten
met:
named -u named
named -t /var/named -c /etc/named.conf -u named