Nimeserveri seadistamine BIND9 näitel

From ICO wiki
Revision as of 15:25, 30 November 2009 by Ntammann (talk | contribs) (→‎Viited)
Jump to navigationJump to search

Autorid

  • Tuuli Zahvatkin
  • Nils Tammann

Versioon

0.95(mitte valmis)

Viimase muutmise aeg

30. November 2009

Sissejuhatus

Olukorra kirjeldus

On olemas üks võrk 192.168.145.0/24 , kus asub kaks domeeni(too.ee ja koht.ee) ning üks alamdomeen(arendus.koht.ee). Selles võrgus on olema veebiserver, mailiserver, failiserver, testserver ja dhcpserver. Veebiserverile peaks saama ligi nii www-aadressiga kui ka ilma. Mailiserverile peaks saama ligi erinevatest domeenidest nende domeeni nimega ja igalt domeenilt peaks ka kirju olema võimalik saata. Samuti peaks olema võimalik tõendad, et kiri tuli ikka õigest domeenist ja domeeni masinast.

Võrgu ülesehituse joonis on järgmine:


Masinate ip-aadresside ja nimede vastavuse tabel:

Eeldused

  • Peab oskama Linuxit käsurealt hallata
  • Peab olema installeeritud Ubuntu server 9.10
  • Masinasse peab olema paigaldatud programmid dig ja nslookup
  • Masinal kuhu konfigureeritakse DNS peab olema staatiline IP-aadress. Meie näite puhul on selleks:
IP aadress: 192.168.145.128
Võrgumask: 255.255.255.0
Vaikelüüs: 192.168.145.2
ISP DNS: 192.168.145.2
  • Tulemüüris peab olema avatud tcp/udp port 53

Nõuded

  • Konfigureerida kaks domeeni ja üks alamdomeen.
  • Reverse peaks toimima.
  • Domeeni teenindava meiliserveri mx kirjed ja spf kirjed peavad olema nimeserveri domeenides.
  • Ilma www-ta aadressis peab saama veebisaidile ligi.
  • Nimeserveri varundamine/taastamine.
  • BIND serveri turvavead.

Installeerimine

BIND9 installeerimiseks sisestada järgmine käsk:

sudo -i
apt-get install bind9

Seadistamine

Minna juurkasutajaks:

sudo -i

Algul määratleme oma DNS serveri nime ja millises domeenis asub. Selleks muudame /etc/hosts faili.

nano /etc/hosts

Failis peaks muutma 127.0.1.1 aadressiga algavat rida ning muudetud rida peaks välja nägema järgmine:


127.0.1.1       ns.too.ee       ns

Algul tuleb muuta faili /etc/bind/named.conf.options

nano /etc/bind/named.conf.options

Kommentaar tuleb eemaldada forwarders eest ja sinna sulgude vahele kirjutada ISP DNS server. Muudetud fail peaks välja nägema järgmine:

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         forwarders { 
                192.168.145.2;
         };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

Peale seda tuleb muuta /etc/bind/named.conf.local

nano /etc/bind/named.conf.local

Sellesse faili tuleb lisada järgmised tsoonid:

zone "145.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/db.145.168.192.in-addr.arpa";
};
zone "too.ee" IN {
        type master;
        file "/etc/bind/db.too.ee";
};
zone "koht.ee" IN {
        type master;
        file "/etc/bind/db.koht.ee";
};
zone "arendus.koht.ee" IN {
        type master;
        file "/etc/bind/db.arendus.koht.ee";
};

Eelnevalt loodud tsoonid viitavad failidele, mis neid tsoone kirjeldavad. Selleks et neid faile luua, võtame aluseks olemasoleva localhost tsooni faili ja kopeerime seda.

cp /etc/bind/db.127 /etc/bind/db.145.168.192.in-addr.arpa
cp /etc/bind/db.local /etc/bind/db.too.ee
cp /etc/bind/db.local /etc/bind/db.koht.ee
cp /etc/bind/db.local /etc/bind/db.arendus.koht.ee

Nüüd muudame db.too.ee faili

nano /etc/bind/db.too.ee

Muudetud fail näeb välja järgmine:

;
; BIND data file for too.ee
;
$ORIGIN too.ee.
$TTL    604800
@       IN      SOA     ns.too.ee. root.too.ee. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
too.ee. IN      NS      ns.too.ee.
too.ee. IN      MX      10 mail.too.ee.
too.ee. IN      SPF     "v=spf1 a mx -all"
ns.too.ee.      IN      A       192.168.145.128
mail.too.ee.    IN      A       192.168.145.129
www.too.ee.     IN      CNAME       too.ee.
too.ee. IN      A   192.168.145.130

Nüüd muudame db.koht.ee faili:

nano /etc/bind/db.koht.ee

Muudetud fail peaks välja nägema järgmine:

;
; BIND data file for zone koht.ee
;
$ORIGIN koht.ee.
$TTL    604800
@       IN      SOA     ns.too.ee. root.koht.ee. (
                              4         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
koht.ee.        IN      NS      ns.too.ee.
koht.ee.        IN      MX      10      mail.koht.ee.
koht.ee.        IN      SPF     "v=spf1 a MX -all"
mail.koht.ee.    IN      A       192.168.145.129
fail.koht.ee.    IN      A       192.168.145.131
masin.koht.ee.   IN      A       192.168.145.132

Nüüd muudame db.arendus.koht.ee faili:

nano /etc/bind/db.arendus.koht.ee

Muudetud fail peaks välja nägema järgmine:

;
; BIND data file for local loopback interface
;
$TTL    604800
$ORIGIN arendus.koht.ee.
@       IN      SOA     ns.too.ee. root.arendus.koht.ee. (
                              4         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
arendus.koht.ee.        IN      NS      ns.too.ee.
arendus.koht.ee.        IN      MX      10 mail.arendus.koht.ee.
arendus.koht.ee.        IN      SPF     "v=spf1 a MX -all"
test.arendus.koht.ee.   IN      A       192.168.145.133
mail.arendus.koht.ee.    IN      A       192.168.145.129

Nüüd muudame db.145.168.192.in-addr.arpa faili:

nano /etc/bind/db.145.168.192.in-addr.arpa

Muudetud fail peaks välja nägema järgmine:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
$ORIGIN 145.168.192.in-addr.arpa.   
@       IN      SOA     ns.too.ee. root.too.ee. (          
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
145.168.192.in-addr.arpa.       IN      NS      ns.too.ee.
128.145.168.192.in-addr.arpa.   IN      PTR     ns.too.ee.        
129.145.168.192.in-addr.arpa.   IN      PTR     mail.too.ee.
130.145.168.192.in-addr.arpa.   IN      PTR     too.ee.
131.145.168.192.in-addr.arpa.   IN      PTR     fail.koht.ee.
132.145.168.192.in-addr.arpa.   IN      PTR     masin.koht.ee.
133.145.168.192.in-addr.arpa.   IN      PTR     test.arendus.koht.ee.

Kui tsoonifailid on loodud, siis tuleb muuta resolv.conf faili:

nano /etc/resolv.conf

Nimeserveri aadress tuleb seal muuta enda serveri aadressiks. Fail näeb peale muutmist välja järgmine:

#domain localdomain
#search localdomain
nameserver 192.168.145.128

Testimine

Esiteks tuleks kontrollida kas tsoonifailid vastavad nõuetele ja tsoonile:

named-checkzone too.ee /etc/bind/db.too.ee 
named-checkzone koht.ee /etc/bind/db.koht.ee 
named-checkzone arendus.koht.ee /etc/bind/db.arendus.koht.ee 
named-checkzone 145.168.192.in-addr.arpa  /etc/bind/db.145.168.192.in-addr.arpa 

Sinu tsoonifailid on õiged kui said vastuseks järgneva:

zone <sinu tsooni nimi>/IN: loaded serial <tsooni faili serial>
OK

Vastasel juhul kontrollida tsoonifailide konfiguratsiooni.


Teiseks kasutada programme dig ja nslookup, et kontrollida kas nimeserver vastab päringutele õigesti.

Näiteks:

dig ns.too.ee

; <<>> DiG 9.6.1-P1 <<>> ns.too.ee
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4663
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns.too.ee.                     IN      A

;; ANSWER SECTION:
ns.too.ee.              604800  IN      A       192.168.145.128

;; AUTHORITY SECTION:
too.ee.                 604800  IN      NS      ns.too.ee.

;; Query time: 2 msec
;; SERVER: 192.168.145.128#53(192.168.145.128)
;; WHEN: Mon Nov 23 15:15:30 2009
;; MSG SIZE  rcvd: 57

Kindluse mõttes korrata tegevust ka teiste domeeninimede puhul.

Kui dig programmi vastusest puudub answer sektsioon tuleks kontrollida tsoonifailide konfiguratsiooni. Kui tsoonifailid on õiged, aga vastus ikka puudub tuleks kontrollida ka named.conf.local faili ning sealt kontrollida kas tsooninimed on õiged ja kas tsoonifailide asukohad on korrekselt määratud.


Nüüd kontrollida kas toimub pöördteisendus. Selleks käivitada nslookup ja sisestada ip aadressid ning vaadata kas ip aadress vastab õigele masina nimele.

Näiteks:

nslookup 
> 192.168.145.129
Server:         192.168.145.128
Address:        192.168.145.128#53

129.145.168.192.in-addr.arpa    name = mail.too.ee.

Kindluse mõttes korrata tegevust ülejäänud ip-aadresside puhul.


Teenuse varundamine

Teenuse varundamiseks tuleb teha koopia /etc/bind kataloogist ja seal asuvatest failidest. Käsk selleks on :

cp -a /etc/bind /backup/

Teenuse taastamine

Teenuse taastamine, kui on olemas varukoopia

Teenuse taastamiseks tuleb kopeerida varundatud kataloog /etc/bind kataloogi asemele

cp -a /backup/bind/ /etc/

Teenuse taastamine, kui on alles kataloogid ja failid aga bind9 on kadunud

Selle puhul tuleb bind9 uuesti installeerida. Järgi selleks antud wiki installeerimise osa.

Teenuse taastamine, kui on kadunud bind9 ja konfiguratsiooni failid ning pole varukoopiat

Et saaks bind9-t installeerida nullist, tuleb kindel olla, et bind9 on täielikult eemaldatud süsteemist.

Selleks teha algul poolik bind9 install

apt-get install bind9

Installeerimisel peaksid tulema vead ja neid võib hetkel ignoreerida.

Nüüd eemaldada bind9 täielikult käsuga:

apt-get remove bind9 --purge

Nüüd peaks bind9 olema koos kasutajate ja failidega süsteemist eemaldatud. Edasi tuleks tegutseda vastavalt antud wiki installeerimise ja seadistamise osale.

Turvavead ja nende lahendused

Viited