logo
Etusivu
Käsikirja
Opinnäytetyö
Tiedostot
Linkit
Muuta

LeHTori

Käsikirja

2 FreeBSD Käyttöjärjestelmä

2.1 Esitellään FreeBSD

2.2 Asennetaan FreeBSD

2.3 Yleistä UNIX järjestelmistä

2.4 Peruskomennot

2.5 Komentotulkit

2.6 Ohjelmien asentaminen ja päivittäminen

2.7 Käynnistysjonot

2.8 Asetustiedostot

2.9 Levykiintiö eli quota

2.10 FreeBSD:n kerneli

2.11 Yhteyden jakaminen NATD:llä

2.12 Palomuuriohjelmistot

2.13 Cvsup ja verkosta päivittäminen

2.14 Käyttöjärjestelmän päivittäminen

2.15 XFree86 Ikkunointijärjestelmä

2.16 Sysinstall Ohjelmisto

2.17 Yleisiä ongelmia

2.18 Muuta

2.19 Levyjärjestelmän laitteiden-nimet

3 Asennetut palvelinohjelmistot ja niiden käyttäminen

3.1 Samba ja toimialuepalvelin

3.2 Squid, Internetin välityspalvelin (proxy)

3.3 Apache, Web-palvelin

3.4 Postfix, Sähköpostipalvelin

3.5 Popd, Sähköpostin hakupalvelin

3.6 Openwebmail

3.7 Bind9, DNS-palvelin

3.8 OpenSSH

3.9 OpenSSL sertifikaatti


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ä.

TermiSelite
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.orgvyöhyke org. vyöhykkeen alla.
foo.example.org.alitoimialue, vyöhyke example.org. vyöhykkeen alla.
1.2.3.in-addr.arpavaiheenasetusvyö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ä.

TiedostoSelite
namedBIND daemoni
ndcname daemonin hallintaohjelma
/etc/namedbHakemisto 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:

SOAAloittaa alueen määreen
NSMääreen nimipalvelin
AIsännän osoite
CNAMEKanooninen nimi peitenimelle
MXSähköpostin välittäjä
PTRToimialueen 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!

daemon

Tero Asikainen, Mika Mähönen ja Markku Hämäläinen