OpenBSD 4.4 BIND version 9.4.2-P2
Uppdateringen är inte längre nödvändig för säkerheten, men jag har valt att lämna kvar mina instruktioner för att göra det. Den BIND version som kommer i OpenBSD 4.4 är 9.4.2-P2 och den är patchad enligt instruktionerna från ISC (och som vanligt med all kod i OpenBSD så är den genomgången och säkrad).Uppdatera BIND till den senaste versionen
En nyligen upptäckt/avslöjad bugg gör att det går att förändra innehållet i cachen på DNS servrar baserade på BIND versioner släppta före juli 2008. Det enklaste sättet att uppdatera är att ta ner källkoden från ISC (Internet Systems Consortium) och bygga sin egen nya version. Det mer tidskrävande sättet är att uppdatera en lokal kopia av OpenBSD källkoden med patchen och bygga om BIND den vägen. Fördelen med den jobbiga vägen är att du får en BIND version med genomgången kod, och som körs i automatiskt chrootad miljö. Jag beskriver den enkla vägen:wget http://ftp.isc.org/isc/bind9/9.5.0-P2/bind-9.5.0-P2.tar.gz tar xfz bind-9.5.0-P2.tar.gz cd bind-9.5.0-P2 ./configure --disable-openssl-version-check --prefix=/usr make make install mkdir -p /var/named/var/run chown root:named /var/named/var/run chmod 775 /var/named/var/run
Vill du "fega" lite, kör då configure utan "--prefix=/usr", och ändra sökvägarna för rndc-confgen och named i /etc/rc så att dom pekar på den nya installationen. För att slippa råka köra den gamla versionen kan du göra så att filen inte längre är körbar (chmod 000):
chmod 000 /usr/sbin/named
Den version av bind som kommer med i OpenBSD kör chrootat i /var/named utan att man behöver ange det på nåt sätt. För en egenkompilerad installation krävs det att man talar om för named vars filerna ligger och vilken användare som ska köra named:
/etc/rc.conf.local
named_flags="-t /var/named -u named"
För att kunna styra named med rndc måste det skapas en konfigurationsfil med en nyckel, och några extra rader måste läggas in i named.conf. named körs i OpenBSD i en chrootad miljö, där root är satt till /var/named.
Generera nyckel och konfiguration:
rndc-confgen >/etc/rndc.conf
Filen /etc/rndc.conf innehåller nu det som behöver finnas där + lite till. Redigera och ta bort raderna
efter "# End of rndc.conf" om du vill, det gör inget om dom finns kvar, eftersom dom är bortkommenterade.
Kopiera och lägg in raderna efter "End rndc.conf" i /var/named/etc/named.conf (plocka bort kommentarer och 'avkommentera'
key
och controls
)
Ändra i /etc/resolv.conf så att din lokala DNS används:
search bsd-guide.net nameserver 127.0.0.1 lookup file bind
Sen är det bara att starta named:
named
För automatisk start av named vid omstart så behövs en extra rad i /etc/rc.conf.local
named_flags=
Kontroll av att named och rndc fungerar görs enklast med rndc kommandot:
# rndc Usage: rndc [-c config] [-s server] [-p port] [-k key-file ] [-y key] [-V] command command is one of the following: reload Reload configuration file and zones. reload zone [class [view]] Reload a single zone. refresh zone [class [view]] Schedule immediate maintenance for a zone. retransfer zone [class [view]] Retransfer a single zone without checking serial number. freeze zone [class [view]] Suspend updates to a dynamic zone. thaw zone [class [view]] Enable updates to a frozen dynamic zone and reload it. reconfig Reload configuration file and new zones only. stats Write server statistics to the statistics file. querylog Toggle query logging. dumpdb [-all|-cache|-zones] [view ...] Dump cache(s) to the dump file (/var/named/tmp/named_dump.db). stop Save pending updates to master files and stop the server. stop -p Save pending updates to master files and stop the server reporting process id. halt Stop the server without saving pending updates. halt -p Stop the server without saving pending updates reporting process id. trace Increment debugging level by one. trace level Change the debugging level. notrace Set debugging level to 0. flush Flushes all of the server's caches. flush [view] Flushes the server's cache for a view. flushname name [view] Flush the given name from the server's cache(s) status Display status of the server. recursing Dump the queries that are currently recursing (named.recursing) *restart Restart the server. * == not yet implemented Version: 9.3.4
Mest användbart är 'reload', 'reload zone', 'stop', och 'status'.