Server DNS Petrov

Da Wiki-itsos.

Situazione di partenza

Macchina virtuale con installato Ubuntu Server 14.04 Liv. 1A

Obiettivi

1- Installare il DNS Server Bind
2- Configurare il server in modo che risolva gli indirizzi internet
3- Configurare Bind in modo che risolva una zona che chiamerete <vostrocognome>.it

Indicazioni di lavoro

Importante: in laboratorio, date al vostro server IP 10.200.7.<2+vostra posizione nel registro> e al client <10.200.7.26+vostra posizione nel registro>

# Petrov Server 29-10-15
# The  loopback network interface
auto lo
iface lo inet loopback
# The primary network interface auto eth0 iface eth0 inet static address 10.200.7.23 netmask 255.255.255.0 network 10.200.7.0 broadcast 10.200.7.255 gateway 10.200.7.1 dns-nameserver 10.200.7.1
# Petrov Client 29-10-15
# The  loopback network interface
auto lo
iface lo inet loopback
# The primary network interface auto eth0 iface eth0 inet static address 10.200.7.47 netmask 255.255.255.0 network 10.200.7.0 broadcast 10.200.7.255 gateway 10.200.7.1 dns-nameserver 10.200.7.1

Installazione DNS Server Bind

Al momento, la versione proposta per default è la 9. Potete dare l'evidenza di avere installato Bind semplicemente facendo partire il servizio, o mostrando il suo stato.

- per installare

apt-get install bind9 bind9-host dnsutils

root@ns:/home/tech# apt-get install bind9 bind9-host dnsutils

- una volta installato, Bind si trova in /etc/bind


root@Petrov:/home/tech# cd /etc/bind
root@Petrov:/etc/bind# ll
totale 60
drwxr-sr-x  2 root bind 4096 ott 29 11:34 ./
drwxr-xr-x 92 root root 4096 ott 29 11:34 ../
-rw-r--r--  1 root root 2389 set  1 20:58 bind.keys
-rw-r--r--  1 root root  237 set  1 20:58 db.0
-rw-r--r--  1 root root  271 set  1 20:58 db.127
-rw-r--r--  1 root root  237 set  1 20:58 db.255
-rw-r--r--  1 root root  353 set  1 20:58 db.empty
-rw-r--r--  1 root root  270 set  1 20:58 db.local
-rw-r--r--  1 root root 3048 set  1 20:58 db.root
-rw-r--r--  1 root bind  463 set  1 20:58 named.conf
-rw-r--r--  1 root bind  490 set  1 20:58 named.conf.default-zones
-rw-r--r--  1 root bind  165 set  1 20:58 named.conf.local
-rw-r--r--  1 root bind  890 ott 29 11:34 named.conf.options
-rw-r-----  1 bind bind   77 ott 29 11:34 rndc.key
-rw-r--r--  1 root root 1317 set  1 20:58 zones.rfc1918
root@Petrov:/etc/bind# 


Per verificare che bind sia installato digito netstat -tap

root@Petrov:/etc/bind# netstat -tap
Connessioni Internet attive (server e stabiliti)
Proto CodaRic CodaInv Indirizzo locale        Indirizzo remoto       Stato       PID/Program name
tcp        0      0 localhost:953           *:*                     LISTEN      1807/named      
tcp        0      0 *:microsoft-ds          *:*                     LISTEN      479/smbd        
tcp        0      0 *:netbios-ssn           *:*                     LISTEN      479/smbd        
tcp        0      0 10.200.7.23:domain      *:*                     LISTEN      1807/named      
tcp        0      0 localhost:domain        *:*                     LISTEN      1807/named      
tcp        0      0 *:ssh                   *:*                     LISTEN      782/sshd        
tcp        0      0 10.200.7.23:ssh         Lab121Pc17.tes.mi:53055 ESTABLISHED 1018/sshd: tech [pr
tcp6       0      0 localhost:953           [::]:*                  LISTEN      1807/named      
tcp6       0      0 [::]:microsoft-ds       [::]:*                  LISTEN      479/smbd        
tcp6       0      0 [::]:netbios-ssn        [::]:*                  LISTEN      479/smbd        
tcp6       0      0 [::]:domain             [::]:*                  LISTEN      1807/named      
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      782/sshd        
root@Petrov:/



Obiettivo 2- Parte prima

per agganciare il nostro server bind al nameserver, bisogna:

2a- editare il file pico /etc/bind/named.conf.options
2b- togliere il commento // alla sezione forwarders
2c- al posto di 0.0.0.0 inserire l'IP del dns Itsos 192.168.1.9


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.1.9;
           };

        //=====================================================================$
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //=====================================================================$
        dnssec-validation auto;

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



Obiettivo 2- Parte seconda

Una volta che il dns è capace di risolvere per sè stesso, allora userete un client per fare le prove.
Per rendere la macchina client del nostro server, dobbiamo impostare in network interfaces l'indicazione dns-nameserver 10.200.7.23

iface eth0 inet static
       address 10.200.7.47
       netmask 255.255.255.0
       network 10.200.7.0
       broadcast 10.200.7.255
       gateway 10.200.7.1
       dns-nameserver 10.200.7.1


- modificare il file /etc/resolv.conf inserendo il mio ip sia nella macchina client che nella macchina server

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.200.7.23

- esito macchina server

root@Petrov-Server:/etc/network# nslookup www.google.it
Server:		10.200.7.23
Address:	10.200.7.23#53

Non-authoritative answer:
Name:	www.google.it
Address: 173.194.116.95

- esito macchina client

root@Petrov-Client:/home/tech# nslookup www.google.it
Server:		10.200.7.23 
Address:	10.200.7.23#53

Non-authoritative answer:
Name:	www.google.it
Address: 173.194.116.87

Obiettivo 3 Dovremo lavorare prevalentemente sul server, e più precisamente nella cartella /etc/bind

Obiettivo 3- Parte Prima il file che contiene le zone dichiarate si chiama named.conf e sarà il primo da modificare. Dovremo inserire in named.conf l'indicaizone della zona da creare e del file corrispondete e l'indicazione della zona inversa (anche questa con il file corrispondente)

- modifico il file named.conf e aggiungo la mia zona

zone "petrov.tes.mi.it" IN {
 type master;
 file "/etc/bind/petrovzone";
 allow-query { any; };

};

//Quella che segue è la dichiarazione della zona inversa.
//l'IP della rete è 192.168.1 e indica la zona all'inverso, con il finale  in-a$

zone 1.168.192.in-addr.arpa {
 type master;
 file "/etc/bind/PetrovZoneInversa";
};

Per verificare se il file named.conf è corretto, dare il comando named-checkconf, non segnala errori

root@Petrov-Server:/home/tech# named-checkconf
root@Petrov-Server:/home/tech# 

Obiettivo 3- Parte parte seconda

Creare i 2 file di zona e zona inversa
- la vostra zona deve avere: - un nameserver - un record mx - almeno un nome di host (record A)

Ecco un esempio di zona diretta, riferita al dominio tes.mi.it e al nameserver ns:
Modificate il file inserendo il nome della zona e i dati che fanno al caso vostro


$ttl 24h
petrov.tes.mi.it.  IN SOA   ns.petrov.tes.mi.it.  admin.petrov.tes.mi.it. (

2012122910
10800
3600
604800
86400 )

petrov.tes.mi.it.   IN   NS  ns.petrov.tes.mi.it.
                     IN   A   10.200.7.23

mx.petrov.tes.mi.it.  IN  MX 10 mx.petrov.tes.mi.it.
petrov.tes.mi.it.     IN  MX 10 mx.petrov.tes.mi.it.

mx         IN     A      10.200.7.23
ns         IN     A      10.200.7.23
www        IN     A      10.200.7.47


creo una zona inversa che dovrà riferirsi al mio dominio

$ttl 24h
@ IN SOA ns.petrov.tes.mi.it. admin.petrov.tes.mi.it. (
                        2015121010;
                        28800;
                        604800;
                        604800;
                        86400
)

@                       IN      NS      ns.
23                      IN      PTR     petrov.tes.mi.it.
47                      IN      PTR     host.petrov.tes.mi.it.



Per verificare la singola zona diamo

named-checkzone <Nome della zona> <percorso del file che contiene la zona>

  • zona diretta
root@Petrov-Server:/etc/bind# named-checkzone petrov.tes.mi.it /etc/bind/petrovzone 
zone petrov.tes.mi.it/IN: loaded serial 2012122910
OK
root@Petrov-Server:/etc/bind# 
  • zona inversa
root@Petrov-Server:/etc/bind# named-checkzone petrovinversa.tes.mi.it /etc/bind/petrovinversa 
zone petrovinversa.tes.mi.it/IN: loaded serial 2013102210
OK
root@Petrov-Server:/etc/bind# 

Per riavviare il servizio e rendere attive le modifiche alle configurazioni dare il comando /etc/init.d/bind9 restart

root@Petrov-Server:/etc/bind# /etc/init.d/bind9 restart
 * Stopping domain name service... bind9                                        waiting for pid 880 to die
                                                                         [ OK ]
 * Starting domain name service... bind9                                 [ OK ] 
root@Petrov-Server:/etc/bind# 


Per testare:
server: nslookup <nome.host.da.risolvere> <IP del ns>

root@Petrov-Server:/etc/bind# nslookup ns.petrov.tes.mi.it 
Server:		10.200.7.23
Address:	10.200.7.23#53

Name:	ns.petrov.tes.mi.it
Address: 10.200.7.23

root@Petrov-Server:/etc/bind#

client:

root@Petrov-Client:/home/tech# nslookup petrov.tes.mi.it
Server:		10.200.7.23
Address:	10.200.7.23#53

Name:	petrov.tes.mi.it
Address: 10.200.7.23

root@Petrov-Client:/home/tech#