Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DNS: BIND
BIND un sistema software di tipo client/server La parte client di BIND chiamata resolver e si occupa di generare le query per le informazioni sul domain name da inviare al server. La parte server di BIND un demone chiamato named. Vedremo come:
configurare il resover di BIND configurare il name server di BIND (named) costruire i file di database del name server (zone files)
Primary Master
Slave Servers
Stealth Servers
Ci sono due modi per gestire la configurazione del resolver: usare la configurazione di default
non usa alcun file di configurazione
Alcuni sistemi che usano il Network Information System (NIS) possono utilizzare anche il comando domainname disponibile per impostare il default DNS quando non presente il file resolv.conf
domain name definisce il nome del dominio di default. Il resolver appende questo nome ad ogni host name che non contiene un punto.
Es se l'host name almond e nel file resolv.conf presente il comando domain nuts.com il resolver invier la query a almond.nuts.com.
10
11
12
Configurazione di named
Nelle recenti versioni di BIND (faremo riferimento alla versione 9) la struttura dei file di configurazione stata molto semplificata: named.conf: l'unico file di configurazione del demone named che oltre alle impostazioni generali del server contiene le indicazioni sulla risoluzione delle varie zone del dominio/sottodominio servito Zone files: contengono le informazioni sulla risoluzione degli indirizzi e dei nomi per la corrispettiva zona, vengono creati dall'amministratore che ha quindi la possibilit di mantenere una strutura gerarchica dei file in linea con i ruoli che named deve svolgere nelle varie zone.
13
Commenti
C style C++ style UNIX style (/* commento */) (// commento) (# commento)
14
include: include in quel punto del file un'altro file specificato, utile per semplificare la gestione include filename; options: definisce delle impostazioni globali di Bind e pu essere presente una sola volta. Zone: contiene le opzioni per le zone servite e indica quali sono i file di databease per la risoluzione e quale ruolo (type) riveste named nella zona stessa.
15
16
17
directory : viene definita la directory nella quale cercare ogni file a cui si far riferimento in seguito allow-query: Definisce in base alla acl specificata da quali host accettare query di risoluzione type: master/slave: named agisce da master/slave per quella zona hint: indica a named da quale punto iniziare a cercare all'avvio un root nameserver e reperire una lista aggiornata dei root nameserver file: specifica quale il file contenente i dati sulla risoluzione dei nomi/indirizzi
18
19
ttl
Time-to-live definisce la lunghezza in secondi che le informazioni di questo resource record devono essere mantenute nella cache. In genere lasciato bianco e viene usato in questo modo il default ttl
IN
definisce il record come un Internet DNS resource record
20
data
questa la specifica informazione data dal tipo di record. Per esempio un record di tipo A conterr nel campo data un indirizzo IP.
21
NS A
B.ROOT-SERVERS.NET. 128.9.0.107
NS A
C.ROOT-SERVERS.NET. 192.33.4.12
NS A
D.ROOT-SERVERS.NET. 128.8.10.90
...
22
Una lista aggiornata dei root server disponibile via anonymous ftp dal sito FTP.RS.INTERNIC.NET nel file /domain/named.root o da altre sorgenti analoghe E' consigliabile scaricare questo file almeno una volta al mese ed aggiornare il nostro file locale named.ca con i cambiamenti riscontrati. Il file named.ca pu essere anche utilizzato per memorizzare server o semplicemente hosts utilizzati pi frequentemente
23
Il file named.local
Esempio di un tipico named.local:
$TTL @
86400 IN
SOA
IN IN
NS PTR
il record di tipo NS non obbligatorio e specifica il nome dell'host il record PTR serve per attuare la conversione dell'indirizzo 127.0.0.1 nel nome localhost.
24
Il file localhost.zone
Esempio di un tipico localhost.zone:
$TTL 86400 $ORIGIN mydomain.org @
1D IN SOA
; ; ; ; ;
1D IN NS 1D IN A
La direttiva $ORIGIN serve ad appendere un nome di dominio di default a tutti gli indirizzi non pienamente qualificati.
25
26
27
// Provide a reverse mapping for the loopback address 127.0.0.1 zone "0.0.127.in-addr.arpa" {type master;file "named.local";notify no;}; // We are the master server for domain1.com zone "domain1.com" { type master; file "domain1.com.db"; // IP addresses of slave servers allowed to transfer domain1.com allow-transfer { 202.18.4.14; 202.18.5.53; }; };
28
29
30
I map-files (1)
Per ogni zona viene specificato sia il file per la risoluzione diretta che per quella inversa Nei file di tramite le direttive viste in precedenza possibile configurare in modo molto flessibile il comportamento di named. Un esempio del file domain1.com nel server dns miko.domain1.org pu essere:
@ IN SOA dns1.domain1.org dnsAdmn.domain1.org. ( 2004110210 ; serial 43200 ; refresh 3600 ; retry after 1 hour 3600000 ; expire after 1000 hours 2592000 ; default ttl
) ; Definizione dei nameserver e dei server di mail IN NS .domain1.org. IN NS dns2.domain1.org. IN NS foo.army.com. IN MX 10 mail1.domain1.org. IN MX 20 mail2.domain1.org. ; Definizione del localhost localhost IN A 127.0.0.1 ...
31
I map-files (2)
; host in domain1.org pluto pippo paperino mail1 mail2 mailserver IN IN IN IN IN IN A A A MX MX CNAME 202.18.4.15 202.18.4.16 202.18.4.17 202.18.4.201 202.18.4.202 mail2.domain1.org
32
I map-files (3)
Il file per la risoluzione inversa presenta le stesse caratteristiche del precedente fatto salvo che dopo la direttiva SOA ci saranno le mappe per convertire gli indirizzi IP in hostname:
... 15 16 17 paperino 201 ... IN IN IN IN IN PTR PTR PTR PTR MX pluto.domain1.org pippo.domain1.org paperino.domain1.org 202.18.4.17 mail1.domain1.org
33
34
35
36
37
38
39
40
41
42
43
44
Servizi di rete
Ci sono servizi di rete che non richiedono alcuna configurazione, basta includerli nel file /etc/inetd.conf e sono direttamente abilitati all'uso, tra questi ricordiamo ftp e telnet. Altri servizi richiedono al contrario una appropriata configurazione e sono: i comandi UNIX di tipo r (rlogin, rsh e rcp) il Network File System (NFS) il Network Information Service (NIS) chiamato anche Yellow Pages il sendmail
45
46
peanut> rsh almond ls -l /etc/named.boot -rw-r--r-- 1 root 1496 Sep 12 09:05 /etc/named.boot
richiede la lista della directory del file /etc/named.boot nell'host almond
47
48
.rhosts
che definisce i trusted host e i trusted user per una singola utenza.
49
dove hostname il nome di un trusted host , che pu essere preceduto da un segno + . Se lasciamo solo il segno + senza l'hostname significa ogni host. Se viene specificato anche lo username significa che a quell'utente non verr richiesta password per tutti gli account! Se l'hostname preceduto dal segno - significa che l'host non un equivalent system e quindi su ogni user per quell'host verr richiesta la password.
50
+ user
fornisce accesso allo user su ogni host
host -user
nega l'accesso libero allo user sull'host
-host
nega l'accesso libero a tutti gli user su quell'host
-@group nega l'accesso a tutti gli user su tutti gli host del group +@group1 +@group2
fornisce l'accesso a tutti gli user nel group2 sugli host del group1
51
Il file .rhosts
E' un file che messo sulla user home directory e contiene i record di definizione dei trusted host e dei trusted user per quell'utenza. Il formato il seguente: hostname username dove hostname il nome dell'host fidato da cui possibile connettersi tramite l'utenza username all'utenza locale in maniera diretta senza controllo sulla password. In questo caso il singolo utente che abilita l'accesso locale anche quando il file hosts.equiv non esiste: ci pu essere pericoloso, per questo l'amministratore di sistema dovrebbe controllare e ripulire periodicamente i file .rhosts delle varie utenze.
52
L'accesso di root
Per l'utenza generica ogni richiesta di accesso remoto subisce i controlli seguenti: ricerca sul file hosts.equiv ricerca sul file .rhost dell'utente se esiste se non presente in nessuno dei due file viene richiesta la password. Per l'utenza root la richiesta di accesso remoto libero subisce il solo controllo: ricerca sul file /.rhosts ma comunque sarebbe meglio non definire neppure questo file per l'utenza root per motivi di sicurezza.
53
La directory /usr/hosts
La directory /usr/hosts permette di usare in modo veloce i comandi rlogin e rsh. Occorre andare sulla directory /usr/hosts e creare un link con /usr/ucb/rsh usando come linkname l'hostname, in questo modo baster chiamare l'hostname al posto di rlogin o rsh.
Esempio: da peanut
# cd /usr/hosts # ln /usr/ucb/rsh almond
54
55
56
57
58
59
60
61
Esempio: admin (almond, kathy,) (peanut,craig,) notare che il NIS domainname quando vuoto significa ogni possibile valore.
62
63
64
65
66
67
exportfs
etc/xtab
mountd
Soddisfa le richieste di mount dei client verificando prima se sono accettabili leggendo il file /etc/xtab
68
Esportare filesystem
Il primo passo nella configurazione di un server decidere quali filesystem saranno esportati e quali restrizioni devono essere applicate per la loro esportazione. Alcune ragioni per cui si esporta un filesystem sono: per fornire spazio disco a client senza dischi per evitare duplicazioni superflue di dati su sistemi multipli per fornire programmi e dati gestiti centralmente per condividere dati tra utenti di uno stesso gruppo.
69
70
dove: /usr/public pu essere montata da ogni client sulla rete ed essere usata come se fosse una directory locale del client /usr/man pu essere montata da ogni client della rete, ma pu essere acceduta in scrittura solo da almond e da pecan. Gli altri hanno solo /usr/local pu essere montata da ogni client con solo accesso in lettura /home/research pu essere solo montata dagli host peanut, almond, pecan e walnut e tutti e quattro hanno accesso in lettura-scrittura
71
72
access=hostname[:hostname]... limita ai soli host specificati il permesso di montare la directory. Se questa opzione non usata tutti gli host possono montare la directory. In entrambe le ultime opzioni si possono usare nomi di gruppi (netgroup) al posto di nomi di host.
73
74
75
Es:
76
77
In questo caso si usa una grep perch il file fstab non contiene solo informazioni relative al NFS.
Infine il codice posto in una script di boot per montare le directory specificate da /etc/fstab.
78
79
Sendmail (1)
Esistono molti programmi per il trasporto della posta elettronica, uno di questi sendmail. Sendmail elimina diverse confusioni causate dai vari programmi di gestione della posta. Sendmail riceve da un programma di posta dell'utente un messaggio, interpreta l'indirizzo di posta elettronica, riscrive tale indirizzo in un formato apposito per il programma di spedizione e instrada il messaggio al programma di spedizione appropriato.
80
Sendmail (2)
/bin/mail /usr/ucb/mail /usr/new/mh
sendmail
UUCP
TCP/IP
Local
81
Sendmail (3)
Sendmail completamente trasparente all'utente finale Oltre che ad instradare posta tra programmi di utenti e programmi di spedizione, sendmail: riceve e spedisce posta SMTP (Simple Mail Transfer Protocol) (internet) fornisce alias di posta molto grandi che permettono l'inserimento di mailing list Prima vedremo come sendmail riceve posta SMTP
82
83
84
85
86
87
88
Il file sendmail.cf
Il file vero e proprio di configurazione di sendmail /etc/sendmail.cf sendmail.cf contiene oltre i parametri di configura-zione di sendmail, anche informazioni per effettuare l'instradamento di posta tra programmi di posta a livello utente e programmi di spedizione di posta. Il file sendmail.cf ha tre funzioni principali: definire l'ambiente di sendmail riscrivere gli indirizzi nella sintassi appropriata al sistema ricevente mappare gli indirizzi nelle istruzioni necessarie per spedire la mail
89
90
General Macros
Specifica le informazioni proprie di quella rete locale. In genere contiene il nome ufficiale (con dominio) dell'host e gli host di ritrasmissione della mail. Questa sezione di solito personaliz-zata in fase di configurazione.
91
Version Number
Identifica il numero della versione di sendmail.cf. Occorre incrementare tale numero ogni qualvolta si aggiorna il file.
Special Macros
Definisce alcune macro speciali usate da sendmail. Nel file tcpuucpproto.cf la sez. contiene anche il nome che sendmail utilizza per identificare se stesso quando rimanda messaggi di errore e inoltre la sezione contiene il messaggio inviato durante un login SMTP. Questa sezione non viene modificata.
92
Message Precedence
Definisce i valori di precedenza dei vari messaggi usati da sendmail. Questa sezione non va modificata.
Trusted user
Definisce gli utenti fidati che possono riscrivere l'indirizzo del mittente quando inviano posta. Aggiungere utenti in questa lista pu generare problemi alla sicurezza.
Format of Header
Definisce il formato delle intestazioni aggiunte alla posta.
93
Mailers
Definisce le istruzioni usate da sendmail per invocare i programmi di spedizione della posta. Regole di riscrittura relative al singolo mailer possono comparire anche qui. In genere comunque questa sezione non viene modificata.
94
95
96
97
98
99
f g h i j l
messaggio iniziale SMTP indirizzo "from" del mittente indirizzo del mittente relativo al recipient host del recipient id della coda nome ufficiale del dominio per questo sito formato della UNIX from line
100
r s t u v w x z
formato dell'indirizzo di default del mittente protocollo usato nome dell'host del mittente rappresentazione numerica dell'ora attuale utente del recipient numero di versione del sendmail hostname di questo sito nome completo del mittente home directory del recipient
101
compare il costrutto condizionale $?x . La sintassi del costrutto : $?x text1 $ | text2 $. che pu essere cos interpretato: if ($?) x impostato; usa text1; else ($ | ) usa text2; end if ($.) La definizione della macro q ha quindi questo significato: assegna il valore di g poi se x impostato assegna uno spazio bianco, una parentesi aperta, il valore di x e una parentesi chiusa. Se per es: g contiene sergio@unipg.it e x contiene Sergio Tasso allora q conterr: sergio@unipg.it (Sergio Tasso)
102
103
104
105
106
107
Esempio di option: # Determina il file di alias OA/etc/aliases # Imposta il permesso per i file temporanei OF0600 # Definisce l'intervallo di timeout OT3d
108
109
110
111
112
Mnome, {campo=valore}
dove: nome un nome arbitrario usato internamente da sendmail per identificare quel mailer. La scelta dei nomi arbitraria eccetto che per il mailer che spedisce posta localmente agli utenti dello stesso host, in tal caso deve essere chiamato local, mentre il mailer che spedisce posta ai programmi deve essere chiamato prog. la lista campo=valore definisce le caratteristiche del mailer. Di seguito viene riportata una tabella di possibili campi e valori.
113
Il campo P contiene o il path del programma di spedizione o la stringa di lettere [IPC] che sta per interprocess communication. Le definizioni di mailer che hanno P=[IPC] usano sendmail per spedire posta via SMTP. Il campo Flag (F) contiene i flag di sendmail usati per lo specifico mailer. Sono quei flag che vengono referenziati anche della Definizione del header. Segue tabella di tutti i flag di mailer.
114
115
116
117
118
(i campi sono separati da tabulatori) Il campo comment viene ignorato dal sistema. Le regole di riscrittura paragonano l'indirizzo in input a un modello (pattern), se indirizzo e modello combaciano l'indirizzo viene riscritto in un nuovo formato usando le regole definite in transformation.
119
120
121
122
123
124
125
Il comando Sn indica l'inizio di un ruleset identificato da un numero (n). I ruleset possono essere visti come subroutine o funzioni designate a processare gli indirizzi di e-mail. I ruleset possono essere chiamati da definizione di mailer, da regole di riscrittura o direttamente da sendmail.
126
127
Sequenza di ruleset
delivery address
sender address
all addresses
D
recipient address
4 2
all addresses
D S R
Sender domain information added Mailer-specific sender rewriting Mailer-specific recipient rewriting
128
129
130
131
132
133
arp
fornisce informazioni sulla conversione degli indirizzi Ethernet/IP. Pu essere usato per scoprire sistemi nella rete locale che sono stati configurati con indirizzi IP sbagliati.
netstat
fornisce una variet di informazioni. Viene comunemente usato per riportare statistiche dettagliate su ogni interfaccia di rete, su ogni sockets di rete e sulla routing table della rete.
134
nslookup
fornisce informazioni sul servizio dei nomi DNS.
dig
fornisce informazioni sul servizio dei nomi ( simile a nslookup); dig disponibile via anonymous ftp su venera.isi.edu nel file pub/dig.2.0.tar.Z.
ripquery
fornisce informazioni sul contenuto dei pacchetti di aggiornamento RIP inviati o ricevuti dal nostro sistema. E' parte integrante del pacchetto software gated, ma non richiede necessariamente di far girare gated. Lavora con tutti i sistemi che fanno girare RIP.
135
etherfind
analizza i singoli pacchetti scambiati tra gli host di una rete. etherfind un analizzatore di protocollo TCP/IP che pu esaminare il contenuto di pacchetti incluse le loro intestazioni. E' la versione SunOS di un programma chiamato tcpdump. tcpdump disponibile via anonymous ftp su ftp.ee.lbl.gov.
136
nome dell'host remoto non pu essere convertito dal servizio dei nomi in un indirizzo IP. Il server dei nomi pu essere gi, il nome dell'host pu essere sbagliato, qualcosa potrebbe essere in errore nella rete tra noi e il server remoto.
137
138
Se si ha un routing dinamico bisogna assicurarsi che il demone gated stia girando: ps `cat /etc/gated.pid` se non gira occorre farlo ripartire specificando tracing, in questo modo si pu controllare eventuali problemi che fanno terminare in modo anomalo il demone.
139
che mostrano le route consigliate da almond e da pecan l'opzione -n permette di ottenere il display in forma numerica, altrimenti da i nomi
140
141
142
in questo caso la trace si invece bloccata al gateway GSI.NSN.NASA.GOV, occorre quindi contattare il suo amministratore e l'amministratore della nostra destinazione (nic.ddn.mil).
143