Käsikirja
2 FreeBSD Käyttöjärjestelmä
3 Asennetut palvelinohjelmistot ja niiden käyttäminen
3.7 Bind9, DNS-palvelin
3.7 Bind9, DNS-palvelin
Pikaohje ISC BIND FREEBSD:lle
1) Asennetaan uusin bind9 portseista. (Päivitetään tietenkin ensin
'cvsup /usr/share/examples/cvsup/ports-supfile -h cvsup.fi.freebsd.org')
cd /usr/ports/dns/bind9
make install distclean
Tämän jälkeen konffit on /etc/namedb ja bindin pääkonffi on /etc/namedb/named.conf.
Asennuksen jälkeen bindin pitäisi toimia normaalisti nimipalvelimena ihan vain käynnistämällä se.
named -u <nameduser> -c <pääkonffi>
eli vaikka,
named -u bind -c /etc/namedb/named.conf
2) Oman Forwardin ja reversen lisääminen esim. sisäverkolle.
esim. sisäverkkon ip-alue: 192.168.1.0/24 (netmask 255.255.255.0, 0xffffff00)
haluttu domain sisäverkolle: omaverkko.fi
Seuraavat rivit named.conf-tiedostoon. Tällä kerrotaan bindille mistä tiedostosta
haetaan zonen (domainin) tiedot.
zone "omaverkko.fi" {
type master;
file "fi/omaverkko";
};
type voi olla slave tai master. File -määritelmä voi olla mikä tahansa, alkuosa
määräytyy named.conf-tiedoston alussa olevalla directory -määritelmällä.
Tiedoston /etc/namedb/fi/omaverkko -sisältö.
$TTL 3600
;
@ IN SOA ns.omaverkko.fi. hostmaster.omaverkko.fi. (
2004021001 ;serial
10800 ;refresh period
3600 ;retry interval
604800 ;expire time
86400 ;default ttl
)
;
IN NS ns.omaverkko.fi.
IN MX 10 mail.omaverkko.fi.
localhost IN A 127.0.0.1
; DNS-palvelimen ip
ns IN A 192.168.1.1
; Jos haluaa postialähetellä sisäverkossa
mail IN A 192.168.1.2
;
; Malli CNAME:sta
www IN CNAME ns
; Malli 2
ftp.omaverkko.fi. IN CNAME ns.omaverkko.fi.
omaverkko.fi:n zone filu siis näyttää ylläolevalta. Jos halutaan tehdä muutoksia
omaverkko.fi:n nimille, ne siis tehdään tähän tiedostoon. Oikeassa elämässä jokaisen
muutoksen jälkeen SOA-tietueessa näkyvä numerosarjaa, serial, pitäisi muuttaa.
Seriali muodostuu päivämäärästä YYYYMMDD ja kaksiviimeistä numeroa on juoksevanumerointi 01-99.
Sisäverkossa tällä ei ole merkitystä, jos et halua jostain syystä tehdä sisäverkkoon vielä
secondary dns-palvelinta.
SOA:n jälkeen on nimipalvelin määrittelyt (IN NS) missä määritellään mistä kaikista palvelimista
(master/slave) löytyy ko. domaini. Domainin posteja vastaanottavat palvelimet merkitään
IN MX -tyyliin. Priority on numero, mitä pienempi sitä korkeampi priority.
(eli postit menee sinne ensiksi ja jos se ei vastaa, niin kolkutellaan seuraavan postipalvelimen
portteja)
Ylläolevasta pastesta pitäisi käydä ilmi miten lisä entryjä tehdään. IN A :n tilalla voidaan
käyttää IN CNAME ja antaa olemassa olevan A recordin nimi parametriksi. Huomaa myös, että voit
käyttää koko domainia määrityksissä, mutta tällöin on muistettava viimeinen piste '.' .
Jos pistettä ei käytä lisää bindin automaattisesti ko. domainnimen subdomainin perään. esim
ftp.omaverkko.fi IN A 192.168.1.10
; tarkoittaa oikeasti
ftp.omaverkko.fi.omaverkko.fi. IN A 192.168.1.10
3) Reversen lisääminen ip alueelle. esim 192.168.1.0/24.
Lisätään named.conf-tiedostoon seuraavat rivit.
zone "1.168.192.in-addr.arpa." {
type master;
file "rev/192.168.1";
};
"1.168.192.in-addr.arpa." on 192.168.1 käänteisessä järjestyksessä. Samat höpinät pätee
tähän kuin ylläolevassa forward-jutussa.
Tiedoston /etc/namedb/rev/192.168.1 sisältö.
$TTL 3600
; Reverse lookup zone file
;
;$ORIGIN 192.168.1.IN-ADDR.ARPA.
;
@ IN SOA ns.omaverkko.fi. hostmaster.omaverkko.fi. (
2004012801 ; serial
86400 ; refresh
7200 ; retry
3600000 ; expire
172800 ) ; minimum
;
IN NS ns.omaverkko.fi.
;
1 IN PTR ns.omaverkko.fi.
2 IN PTR mail.omaverkko.fi.
3 IN PTR kone1.omaverkko.fi.
4 IN PTR kone2.omaverkko.fi.
5 IN PTR kone3.omaverkko.fi.
10 IN PTR ftp.omaverkko.fi.
Tähän pätee kanssa samat löpinät SOA:sta ja muista kuin forward-zoneihin.
Reverse zoneissa olisi hyvä käyttää koko domainnimeä ja muistaa viimeinen piste '.' .
4) Ennen kuin muutokset tulevat voimaan pitää bindi käynnistää uudelleen.
killall bind
named -u bind -c /etc/namedb/named.conf
Tähän on kätevää tehdä joku shelliscripti ja itseasiassa nykyisten distrojen mukana varmaan sellainen
tulee jo entuudestaan.
Kiitokset Juha 'intef' Suomiselle tästä ohjeesta.
Yleiskatsaus
FreeBSD käyttää oletuksena BIND:ia (Berkeley Internet Name Domain), joka on yleinen toteutus DNS käytäntö. DNS on protokolla joka "mäppää" IP-osoitteet ja "vice versa". Esimerkiksi kysely www.freebsd.org:sta vastaanottaa kyseisen sivun IP-osoitteen palvelimelta ja ftp.freebsd.org taas FTP-palvelimen IP-osoitteen.
DNS on koordinoitu Internetin yli monimutkaiseen arvovaltaiseen juurinimipalvelujärjestelmään ja pienempiin nimipalvelimiin, jotka isännöi ja välittää yksilöllistä toimialuetietoja.
Tämä dokumentti neuvoo BIND 8.x:n käyttöä, joka on vakaa versio FreeBSD:llä. BIND 9.x FreeBSD:lle voi asentaa net/bind9 portista.
RFC1034 ja RFC1035 sanelee DNS:n käytäntöä.
Tällä hetkellä, BIND on "Internet Software Consortium" ylläpitämä.
Termistö
Tässä on DNS:n termejä helpottaaksesi tämän dokumentin ymmärtämistä.
Termi | Selite |
Forward DNS | "Mäppää" "hostname" isäntänimet IP-osoitteisiin |
Origin | Viittaa toimialueen peitettyyn yksilölliseen vyöhyketiedostoon (zone) |
named, BIND, name server | Yleisiä nimityksiä BIND nimipalvelimen paketteihin FreeBSD:ssä |
Resolver | Järjestelmän prosessi jolla katsotaan, mikä kone kyselee nimipalvelinta vyöhyketiedoista (zone information) |
Reverse DNS | Vastakohta suorasta DNS:stä, joka "mäppää" IP-osoitteet "hostname" isäntänimeen. |
Root zone | Internetin alkujärjestyksen ensimmäinen vyöhyke. Kaikki vyöhykkeet kuuluvat juuri vyöhykkeeseen aivan kuin normaalisti järjestelmässä. |
Zone | Yksilöllinen toimialue, alitoimialue tai osa nimipalvelimesta, jossa on DNS palvelimen ylläpitäjän arvovaltaa. |
Esimerkkejä vyöhykkeistä (zone):
. | juurivyöhyke |
org. | vyöhyke juurivyöhykkeen alla. |
example.org | vyöhyke org. vyöhykkeen alla. |
foo.example.org. | alitoimialue, vyöhyke example.org. vyöhykkeen alla. |
1.2.3.in-addr.arpa | vaiheenasetusvyöhyke johon kaikki 3.2.1.* IP-avaruudesta kuuluvat. |
Kuten näkyy, yksilöllisin osa "hostname" isäntänimestä näyttää olevan "appears to its left". Esimerkiksi, example.org. on paljon yksilöllisempi kuin org., kuten org. on paljon tarkempi kuin juurivyöhyke. Asetelma jokaiselle osalle "hostname" isäntänimeä on aikalailla samanlainen tiedostojärjestelmä: /dev hakemisto kuuluu juureen ja niin edelleen.
Syitä käyttää nimipalvelinta
Nimipalvelin muodostuu yleensä kahdesta kaavasta: arvovaltainen nimipalvelin, ja välitys nimipalvelimesta.
Arvovaltaista nimipalvelinta tarvitaan kun:
Kun haluaa tarjota DNS nimipalvelua muille.
Toimialue, kuten example.org, on rekisteröity ja IP-osoitteet ohjataan kyseiseen nimipalvelimeen.
IP-osoitelohko tarvitsee käänteisen palautuksen (IP isäntään).
Varanimipalvelin, kutsutaan myös "slave", pitää ottaa käyttöön kun ensisijainen nimipalvelin on alhaalla.
Välitysnimipalvelinta tarvitaan kun:
Paikallinen DNS palvelin toimii nopeammin kuin ulkoinen nimipalvelin.
Vähentäminen paikallisessa verkossa on haluttu (DNS liikenne on supistettu tietylle tilille 5%:n koko Internet liikenteen suhteen.).
Kuinka se toimii
FreeBSD:ssa, BIND daemonia kutsutaan loogisesti named nimellä.
Tiedosto | Selite |
named | BIND daemoni |
ndc | name daemonin hallintaohjelma |
/etc/namedb | Hakemisto missä BIND "zone" tiedot esitetään |
/etc/namedb/named.conf | daemonin asetustiedostot |
"zone" tiedot yleensä sisältyy /etc/namedb hakemistoon, ja DNS "zone" tiedot palvelee nimipalvelinta.
BIND:n käynnistys
Kun BIND on asennettu oletuksena, sen konfigurointi on oleellisen helppoa.
Varmistaaksesi että, named daemoni käynnistyy automaattisesti, lisää seuraava määre /etc/rc.conf hakemistoon:
named_enable="YES"
Käynnistä daemoni manuaalisesti (kun olet konfiguroinu sen):
# ndc start
Asetustiedostot
Käyttäen make-localhost
Varmista:
# cd /etc/namedb
# sh make-localhost
Että paikallinen palvelin on asetettu DNS "zone" tiedostoon. /etc/namedb/localhost.rev.
19.11.6.2 /etc/namedb/named.conf
// $FreeBSD$
//
// Refer to the named(8) manual page for details. If you are ever going
// to setup a primary server, make sure you've understood the hairy
// details of how DNS is working. Even with simple mistakes, you can
// break connectivity for affected parties, or cause huge amount of
// useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/
Kuten kommentti sanoo, hyödynnä uplink:n välitystä, forwarders voi kytkeä tästä päälle. Normaalissa tilanteessa, nimipalvelin on rekursiivinen, eli Internet etsii tiettyä nimipalvelinta kunnes saa haluamansa tiedot. Kun tämä on päällä, lähettää kyselyitä uplink:n nimipalvelimeen (nimipalvelun tarjoaja) ensisijaisesti, hyödyntääksesi tätä välitystä. Jos uplink:n nimipalvelin on ruuhkainen, tämä nopeuttaa nimipalvelinta. Tämä kun on päällä, niin se voi olla palkitsevaa.
Varoitus: 127.0.0.1 ei toimi tässä. Vaihda tämä IP-osoite omaan uplink:n IP-osoitteeseen.
/*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
type master;
file "localhost.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone where your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however. There are sometimes
// unobvious pitfalls. Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs bind in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to bind. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/s
Lisätietoa BIND:n käytöstä Sandbox
/*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/
named.conf:ssa, nämä ovat esimerkkejä "slave entries for a forward" ja käänteisestä "zonesta".
Jokainen uusi "zone" palvelu täytyy lisätä named.conf
Esimerkiksi yksinkertainen aluepalvelumerkintä example.org voi näyttää tältä:
zone "example.org" {
type master;
file "example.org";
};
Tämä alue on isäntä, joka esitetään "type" lauseessa, jonka tiedot löytyvät /etc/namedb/example.org tiedostosta, joka esitetään "file" lauseessa.
zone "example.org" {
type slave;
file "example.org";
};
Toissijainen aluetieto on määritelty isäntä aluetiedon mukaan, ja tallennetaan samaan paikkaan. Kun isäntä aluetieto hajoaa tai ei voi lukea sitä, toissijainen aluetieto tulee käyttöön ja on heti toimintavalmis palvelemaan.
Aluetiedostot
Esimerkki ensisijaisesta aluetiedoista example.org (löytyy /etc/namedb/example.org) ovat seuraavanlaiset:
$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.
Huomaa että jokainen "hostname" isäntänimi päättyy piste (.) merkkiin.
Muotoiltu aluetiedosto on seuraavanlainen:
recordname IN recordtype value
Yleisemmin käytetyt DNS arkistot:
SOA | Aloittaa alueen määreen |
NS | Määreen nimipalvelin |
A | Isännän osoite |
CNAME | Kanooninen nimi peitenimelle |
MX | Sähköpostin välittäjä |
PTR | Toimialueen nimiosoitin (Käytetty käänteisessä DNS:ssä) |
.
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day
example.org. | Toimialueen nimi on myös alkuperäinen tässä tiedostossa. |
ns1.example.org. | Alueen ensisijainen nimipalvelin |
admin.example.org. | Alueen ylläpitäjä sähköpostiosoitteen @ merkki on korvattu. ([admin@example.org] tulee admin.example.org) |
5 | Tiedoston sarjanumero. Tämän pitää kasvaa ylöspäin kun tiedostoa muutetaan. Nykyään moni järjestelmän ylläpitäjä käyttää yyyymmddrr muotoa sarjanumerossa. 2001041002 tarkoittaa että tätä tiedostoa on muutettu 04/10/2001, lopussa oleva "02" että tätä tiedostoa on muokattu toiseen kertaan kyseisenä päivänä. Sarjanumeron on tärkeä että se varoittaa toissijaista nimipalvelinta muutoksista. |
| |
@ IN NS ns1.example.org.
Tämä on NS merkintä. Jokaisella nimipalvelimella joka vastaa arvovaltaiseen palvelimeen, täytyy olla kyseiset merkinnät. @ tarkoittaa alkuperäistä.
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
Nämä tiedot osoittavat tiettyjä tietokoneita. Kuten ylhäältä huomaa, ns1.example.org osoittaa 3.2.1.2 koneeseen. @, täten käytetään example.org osoittamaan 3.2.1.30 konetta.
www IN CNAME @
Kanoonista nimitietoa käytetään yleensä kun halutaan jollekin peitenimi. Tässä esimerkissä, www on peitetty alkuperäiseltä koneelta (@), tai example.org (3.2.1.30). CNAME komentoa voidaan käyttää peiteosoitteissa, tai arpoo yhden "hostname" isäntänimen monesta koneista.
@ IN MX 10 mail.example.org.
MX tieto osoittaa, mikä sähköpostipalvelin käsittelee tulevan sähköpostin tietylle alueelle. mail.example.org on "hostname" isäntänimi sähköpostipalvelimelle, ja 10 on prioriteetti kyseiselle sähköpostipalvelimelle.
Yhdellä voi olla monta sähköpostipalvelimia, arvoilla 3, 2, 1. Sähköpostipalvelin yrittää toimittaa example.org:n. joka yrittää käyttää korkeinta prioriteettia MX:lle, sitten toiseksi korkeinta, jne, kunnes sähköposti on kunnolla välitetty perille.
For in-addr.arpa zone files (reverse DNS), the same format is used, except with PTR entries instead of A or CNAME.
$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.
Tämä tiedosto antaa asianmukaisen IP-osoitteen keksitylle "hostname" isäntänimelle.
Nimipalvelimen välitys
Välitysnimipalvelin ei ole arvovaltainen millään alueella.. Se vain yksinkertaisesti kyselee kyseluilta ja muistaa ne seuraavalla kerralla. Asettaaksesi tämän, konfiguroi nimipalvelin normaalisti, mutta jätä tekemättä alueen sulkeuman.
named:n käyttö sandbox:lla
Parantaaksesi turvallisuutta, sinä saatat haluta ajaa named(8) etuoikeudettomana käyttäjänä ja konfiguroida se chroot(8):n sandbox hakemistoon. Tämä tekee kaikki sandbox hakemiston ulkopuolella olevat luoksepääsemättömäksi named daemonille. named:n pitäisi joustaa, joka auttaa vähentämään kyseisen ohjelman aiheuttamia vahinkoja. Oletuksena, FreeBSD:llä on käyttäjä ja ryhmä nimeltä "bind", Joka on tarkoitettu tähän käyttöön.
Huom: Joillekin on suositeltavaa käyttää named:ia jail:n sisällä, eikä konfiguroida named chroot:iin. Tämä osa ei yritä suojata tässä tilanteessa.
Kun named:lla ei ole lupaa sandboxin ulkopuolelle (kuten jaettuihin kirjastoihin, sokettien kirjaukseen, ja muuhun), on monta vaihetta, joita tarvitsee seurata, että named toimii oikealla tavalla. Seuraavassa tarkistuslistassa, oletetaan sandbox:n hakemiston olevan /etc/namedb paikassa ja jota et ole aikaisemmin muokannut tämän hakemiston aineistoa. Suorita seuraavat vaiheet root käyttäjänä.
Luo kaikki hakemistot mitä named tarvitsee:
# cd /etc/namedb
# mkdir -p bin dev etc var/tmp var/run master slave
# chown bind:bind slave var/* (*1*)
(*1*) named tarvitsee kirjoittaa vain näihin hakemistoihin, joten me emme muuta sille salli.
Järjestä uudelleen ja luo perusalue ja konfigurointi tiedostot:
# cp /etc/localtime etc (*2*)
# mv named.conf etc && ln -sf etc/named.conf
# mv named.root master
# sh make-localhost && mv localhost.rev localhost-v6.rev master
# cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^D
(*2*) This allows named to log the correct time to syslogd(8)
Jos sinulla on FreeBSD päivitetty 4.9-RELEASE:n, rakenna staattisesti linkitetty kopio named-xfer:stä ja kopio se sandbox:n:
# cd /usr/src/lib/libisc
# make cleandir && make cleandir && make depend && make all
# cd /usr/src/lib/libbind
# make cleandir && make cleandir && make depend && make all
# cd /usr/src/libexec/named-xfer
# make cleandir && make cleandir && make depend && make NOSHARED=yes all
# cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer (*3*)
Kun olet saattisesti linkittänyt named-xfer:n, siivous olisi suotuista, välttääkseen turhia kopioita kirjastoista tai ohjelmia lähdehakemistoon:
# cd /usr/src/lib/libisc
# make cleandir
# cd /usr/src/lib/libbind
# make cleandir
# cd /usr/src/libexec/named-xfer
# make cleandir
(*3*) Tämä joskus valittaa epäonnistuneen. Jos näin käy, käytä seuraavaa komentoa:
# cd /usr/src && make cleandir && make cleandir
Ja tyhjennä /usr/obj hakemistorakenne:
# rm -fr /usr/obj && mkdir /usr/obj
Tämä siistii kaikki ``cruft'' sinun hakemistorakenteesta, pitäisi edellinen komento toimia.
Jos sinulla on FreeBSD:n versio 4.9-RELEASE tai vanhempi, silloin, kopio named-xfer:stä /usr/libexec hakemistoon saattisesti linkitetään oletuksena, joten voit käyttää "cp" komentoa siirtääksesi sandbox hakemistoon.
Muokkaa dev/null että named voi katsoa ja lukea sitä:
# cd /etc/namedb/dev && mknod null c 2 2
# chmod 666 null
Symlink /var/run/ndc to /etc/namedb/var/run/ndc:
# ln -sf /etc/namedb/var/run/ndc /var/run/ndc
Huom: Tämän ansiosta sinun ei tarvitse käyttää -c määrettä ndc:hen joka kerta kun käytät sitä, koska /var/run :n sisältö tyhjennetään uudelleenkäynnistyksen yhteydessä. Jos tämä komento on sinusta hyödyllinen, voit lisätä tämän komennon järjestelmänvalvoja (root) crontab:iin käyttäen @reboot optiota. Katso crontab, tähän koskevaa tietoa.
Konfiguroi syslogd luodaksesi lisä soketti, johon named voi kirjoittaa. Tehdäksesi tämän, sinun tulee tehdä "add -l /etc/namedb/dev/log" syslogd_flags muuttuja "/etc/rc.conf" tiedostoon.
Järjestä named käynnistymään ja chroot itsestään sandbox:iin lisäämällä seuraavat rivit /etc/rc.conf tiedostoon:
named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"
Huom: Huomioi se, että konfigurointitiedosto /etc/named.conf on denoted by a koko tiedostonimellä sukua sandbox:lle, toisin sanoen, rivit yläpuolella, löytyvät itseasiassa /etc/namedb/etc/named.conf asetustiedostosta.
Seuraavaksi editoidaan /etc/namedb/etc/named.conf asetustiedosto, että named tietää mitkä alueet ladataan ja mistä ne löytyvät levyltä. Seuraavaksi kommentoitu esimerkki (Kaikkia ei ole tarkasti kommentoitu tässä, joten tämä saattaa olla vähän erilainen verrattuna DNS palvelimen omaan mikä on sandmox:ssa.):
options {
directory "/"; (*4*)
named-xfer "/bin/named-xfer"; (*5*)
version ""; // Don't reveal BIND version
query-source address * port 53;
};
// ndc control socket
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Zones follow:
zone "localhost" IN {
type master;
file "master/named.localhost"; (*6*)
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {
type master;
file "master/localhost-v6.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db"; (*7*)
};
(*4*) directory lauseke on yksilöity "/" määreeksi, kun kaikki tiedostot mitä named tarvitsee, ovat tämän hakemiston sisällä. (Muista se, että tämä on vastakohta "normaaleille" käyttäjille /etc/namedb).
(*5*) Tarkentaa koko polun named-xfer binääreille (named:n kehyksen vertaus). Tämä on pakollinen kun named käännetään näyttämään named-xfer:ltä /usr/libexec:n oletuksena.
(*6*) Tarkentaa tiedostonimen (sukua directory lauseelle ylempänä) mistä named löytää aluetiedot tälle alueelle.
(*7*) Tarkentaa tiedostonimen (sukua directory lauseelle ylempänä) mistä named:n pitäisi kirjoittaa kopio aluetiedoista tälle alueelle kun siirto isäntäpalvelimelta on onnistunut. Tämän takia me joudumme vaihtamaan slave hakemiston omistajuutta bind käytttäjälle.
Kun olet viimeistellyt äskeiset kohdat, joko käynnistä palvelimesi uudelleen tai käynnistä uudelleen syslogd ja käynnistä named. Varmista, että käytät uusia asetuksiasi syslogd_flags ja named_flags:ssä. Nyt sinulla pitäisi pyöriä sandboxin kopio nimeltä named!
|