tesi di Laurea - INFN-LNF - Istituto Nazionale di Fisica Nucleare

Università degli Studi Roma Tre
Dipartimento di Informatica e Automazione
Facoltà di Ingegneria
Corso di Laurea in Informatica
Tesi di Laurea
Impostazione di un insieme di misure di sicurezza per la LAN di
un ente di ricerca
Laureando
Mario Masciarelli
Relatore
Prof. Giuseppe Di Battista
Università Roma Tre
Correlatore
Dott.ssa Maria Lorenza
Ferrer
I.N.F.N. – Laboratori
Nazionali di Frascati
Anno Accademico 2001/2002
1 – Presentazione dell’ambiente di lavoro
1.1 Presentazione dei Laboratori Nazionali di Frascati dell’I.N.F.N.
1.2 Problematiche relative alla sicurezza
1.2.1 Perché è necessario proteggere una rete
1.2.2 Quanto ‘proteggere’ una rete
1.2.3 Quali strumenti utilizzare per proteggere una rete
1.3 Caratteristiche e topologia della LAN
1.3.1 VMPS
1.4 Servizi di rete (DNS, SMTP, AFS, WWW, DHCP, FTP, IMAP, POP3,
NIS, NFS, etc…)
1.4.1 DNS e DHCP
1.4.2 SMTP
1.4.3 WWW
1.4.4 WebMail
1.4.5 LPD server
1.4.6 IMAP server
1.5 Server di memoria di massa
1.5.1 AFS server
1.5.2 NAS server
1.5.3 SAN server
1.5.4 ADSM/TSM
1.6 Server per il calcolo
1.6.1 Macchina dxcalc
1.6.2 Macchina axcalc
1.6.3 Farm Linux
1.7 Client
2 - Tipologie di attacco più frequenti
2.1 Attacchi in rete
2.1.1 Attacco Man In The Middle (MITM)
2.2 Attacchi di tipo DOS o DDOS
2.2.1 Saturazione di banda
2.2.2 Resource starvation
2.2.3 Bug software
2.2.4 Attacchi basati sul routing
2.2.5 Attacchi basati sul DNS
2.2.6 Smurfing
2.2.7 Fraggle
2.2.8 SYN Flood
2.3 Virus
2.3.1 Cosa è un virus
2.3.2 Storia
2.3.3 Categorie di virus particolari
2.4 Mail spam
2.4.1 Cosa è lo spam
2.4.2 Come difendersi dallo spam
2.4.3 Quanto può “costare” lo spam
2.4.4 Conclusioni
3 - ACL
3.1 Come funzionano le ACL
3.1.1 Sintassi.
3.1.2 Wildcard
3.2 Implementazione della ACL sul router dei LNF
3.2.1 Analisi dei requisiti.
3.2.2 Packet filtering in uscita.
3.2.3 Packet filtering in entrata.
3.2.4 ACL contro SYN-Flood.
3.2.5 ACL contro ping-Flood.
4 - Test delle vulnerabilità (Nessus)
4.1 Introduzione
4.2 Caratteristiche tecniche
4.3 Installazione
4.3.1 Struttura dei directory.
4.4 Utilizzo
4.5 Risultati ottenuti ai LNF
4.5.1 Dall’interno della LAN
4.5.2 Dall’esterno della LAN
5 - Firewall
5.1 Test effettuati
5.1.1 Cisco PIX515
5.1.2 Box OpenBSD
5.1.3 InfoGuard IGWall
5.1.4 Symantec 5600
5.1.5 Nokia IP 330
5.1.6 Clavister
5.1.7 Conclusioni
6 - Evoluzione verso le VPN
6.1 Introduzione
6.1.1 Cifratura e autenticazione
6.1.2 Tunnelling e protocolli
6.1.3 Specifiche per singoli utenti remoti
6.2 Test ai LNF
6.2.1 Configurazione del servizio
Desidero ringraziare il responsabile del
Servizio di Calcolo dei LNF dell’INFN
Massimo Pistoni per avermi dato la
possibilità di realizzare questo lavoro.
1
Capitolo 1
Presentazione dell’ambiente di lavoro
In questo capitolo viene dapprima presentato l’ambiente dove è stato svolto
il lavoro di tirocinio descritto in questa tesi. Successivamente viene brevemente
descritto il problema della sicurezza, dopo di che vengono descritti l’infrastruttura
di rete e i servizi offerti relativi al sito oggetto di questo studio.
1.1 Presentazione dei Laboratori Nazionali di Frascati dell’I.N.F.N.
Il lavoro di tirocinio descritto in questa tesi é stato svolto presso i Laboratori
Nazionali di Frascati dell’Istituto Nazionale di Fisica Nucleare.
L’Istituto (d’ora in avanti INFN) é l’ente dedicato allo studio dei costituenti
fondamentali della materia e svolge attività di ricerca, teorica e sperimentale, nei
campi della fisica subnucleare, nucleare e astroparticellare. L’INFN nacque il
giorno 8 Agosto 1951 da fisici delle università di Roma, Padova, Firenze e Milano
al fine di proseguire e sviluppare la tradizione scientifica iniziata negli anni trenta
con le ricerche teoriche e sperimentali di fisica nucleare di Enrico Fermi e della
sua scuola.
L’attività dell’INFN si basa su due tipi di strutture di ricerca complementari:
le Sezioni e i Laboratori Nazionali. Le 19 Sezioni hanno sede in dipartimenti
universitari e realizzano il collegamento tra Istituto e Università. I 4 Laboratori,
con sede a Catania, Frascati, Legnaro e Gran Sasso, ospitano grandi
apparecchiature e infrastrutture messe a disposizione della comunità scientifica
nazionale e internazionale. Il primo Laboratorio nacque nella seconda metà degli
anni cinquanta a Frascati per consentire la costruzione del primo acceleratore
italiano: l’elettrosincrotrone. Nella figura 1.1 sono rappresentate Sezioni,
Laboratori e Gruppi Collegati (piccoli nuclei con un numero limitato di
dipendenti che afferiscono amministrativamente a Sezioni più grandi). La pianta
organica dell’INFN è attualmente di 2014 dipendenti.
2
fig. 1.1 - Strutture dell’INFN
La struttura dei Laboratori Nazionali di Frascati (d’ora in avanti LNF) é
suddivisa in Divisioni e Unità funzionali; la differenza tra i due tipi di struttura é
nelle dimensioni: le Divisioni sono piú grandi e complesse, le Unita funzionali piú
piccole e dedicate. A loro volta infatti le Divisioni sono divise in Servizi. Le
strutture. Le strutture più grandi dei LNF sono le due Divisioni: Acceleratori e
Ricerca. Nella figura 1.2 si può vedere l’organigramma dei LNF
3
LNF
D iv i s i o n e
A c c e le r a t o r i
D i v is i o n e
R ic e r c a
U .F .
F i s ic a S a n i t a r ia
U .F .
M e d ic in a d e l
L a v o ro
S e r v iz io
C a lc o lo
S e r v iz io
In fo s c ie n tif.
S e r v iz io
M a g a z z in i
S e r v iz i o
Supp. DAFN E
S e r v iz io
S e g r e t e r ia
S e r v iz io
P ro g e tta z .
A p p . S p e r im .
U .F .
P r e v e n z io n e e
p r o te z io n e
U .F .
F u n z io n a m e n t o
S e r v iz io
S e r v iz i o
S v il u p p o e
E le ttr . e a u to m .
C o s t r . R iv e la t .
fig. 1.2 - Strutture dei LNF
In particolare il lavoro oggetto di questa tesi è stato svolto presso il Servizio
di Calcolo della Divisione Ricerca.
Il Servizio di Calcolo e Reti si occupa della configurazione e
dell'amministrazione delle risorse di calcolo e della rete di trasmissione dati dei
LNF. In particolare gestisce:
• L’infrastruttura di rete locale:
o Cablaggio strutturato in rame e in fibra
o Apparati di rete locale (switch livello 2 e livello 3)
•
La connessione alla rete geografica
o Il router di accesso
•
I seguenti servizi di rete:
o DNS, DHCP
o SMTP (Mail routing)
o WWW
o WebMail
o Lpd server
o IMAP server
•
Le seguenti risorse di memorizzazione di massa (mass storage)
o AFS server
o NAS server
o SAN server
o ADSM/TSM
•
Le seguenti risorse di calcolo vero e proprio
o Computer axcalc
4
o Computer dxcalc
o Farm linux
5
1.2 Problematiche relative alla sicurezza
Dopo aver visto il contesto nel quale si è svolto il lavoro di tirocinio, in
questo paragrafo vedremo quali sono le problematiche che hanno reso utile lo
svolgimento di questo tirocinio. In pratica vedremo perché è necessario adottare
delle misure di sicurezza per proteggere una rete, in che misura è necessario
proteggerla, ricordando che generalmente più una rete è protetta, meno è
accessibile e versatile, e infine quali mezzi la tecnologia odierna ci mette a
disposizione per rendere più sicura una rete.
1.2.1 Perché è necessario proteggere una rete
Durante i primi decenni della loro esistenza le reti servivano solo a collegare
calcolatori tra loro per scambiarsi messaggi e per condividere periferiche come
stampanti. Oggi invece la reti collegano molti più computer (si può pensare ogni
macchina collegata ad Internet come un nodo terminale di questa rete) e le
informazioni che sono veicolate tramite rete sono le più disparate. Alcune di
queste in particolare devono rimanere protette dall’accesso di estranei: si può
pensare ad esempio alla posta elettronica, o al commercio elettronico, o
semplicemente all’autenticazione per il login su una macchina remota.
1.2.2 Quanto ‘proteggere’ una rete
Questo è un argomento cruciale. Esiste una massima che dice:”L’unico
computer sicuro è un computer disconnesso”. Questa battuta mette bene in
evidenza il fatto che ‘sicurezza’ e ‘versatilità’ di una sistema informatico in genere
sono due esigenze che vanno in direzioni opposte: quanto più un sistema deve
essere sicuro, tanto più sarà chiuso e poco versatile; viceversa, quanto più un
sistema deve essere ‘disponibile’, aperto, tanto più sarà insicuro. È ovvio che
questo vale a parità di impegno profuso per l’amministrazione del sistema; è cioè
vero che è possibile avere sistemi ‘aperti’ e nello stesso tempo sicuri, ma a costo di
un maggiore carico di lavoro di gestione e di controllo del sistema stesso.
Ad esempio, il sistema informatico di una banca, sul quale transitano e sono
memorizzate transazioni finanziarie, ha requisiti di sicurezza decisamente maggiori
rispetto alla rete di un laboratorio universitario. È però vero che se si volesse
rendere sicuro un laboratorio semplicemente adottando misure simili al sistema
bancario, si dovrebbe sostenere una spesa ingiustificata e si otterrebbe un
laboratorio del tutto inutilizzabile.
Nel progettare e realizzare l’insieme di misure di sicurezza per la LAN dei
LNF abbiamo sempre tenuto in mente questa problematica e cercato il miglior
compromesso tra sicurezza e accessibilità al sistema. In particolare, l’esigenza di
sicurezza dei LNF è quella di rendere la rete sufficientemente protetta, in modo di
tutelare il più possibile tutti i nodi interni (non solo quelli del servizio di calcolo,
ma anche quelli degli utenti) da attacchi provenienti dall’esterno. Nello stesso
tempo, però c’è l’esigenza di implementare servizi sulla WAN (server WWW,
email, DNS, etc.), c’è l’esigenza di permettere agli utenti di scaricare file, di attivare
6
server per i propri servizi, di far collegare alla rete i portatili degli ‘ospiti’ (in
particolare anche tramite rete wireless), etc.
1.2.3 Quali strumenti utilizzare per proteggere una rete
Per rendere sicura una rete bisogna considerare che tutti i livelli del modello
ISO/OSI sono coinvolti (Tanenbaum: Reti di computer), dal livello fisico al
livello applicazione. Per ognuno dei livelli esistono diversi strumenti di protezione:
ad esempio a livello fisico si possono proteggere i cavi della rete con tecniche
particolari. Una di queste è quella di inserire i cavi in tubi con gas in pressione. In
caso di tentativo di accesso al cavo la perforazione del tubo porta ad un
abbassamento della pressione del gas, che può essere monitorata, e generare un
allarme. Questa è una tecnica usata in ambito militare. Oppure, a livello data link, i
pacchetti su una linea punto-punto possono venire codificati appena lasciano una
macchina e decodificati appena arrivano all’altra. Tutti i dettagli possono essere
gestiti dal livello data link, lasciando i livelli superiori ignari di cio’ che sta
succedendo.
Vediamo quali sono le soluzioni previste per i LNF utilizzando, come
modello per la pila di protocolli, il modello TCP/IP e non il modello OSI, dato
che la rete usa la tecnologia internet (IP):
Livello Fisico: nessun accorgimento particolare se non quello di proteggere con
una infrastruttura adeguata i cavi e le apparecchiature della rete. Per i cavi si usa
sempre un cablaggio strutturato in classe E secondo lo standard ISO/IEC 11801
che prevede la chiusura dei cavi in apposite canalizzazioni; mentre le
apparecchiature di rete sono sempre poste in armadi chiusi a chiave.
Livello Collegamento (data link): tutte le macchine della LAN dei LNF hanno un
MAC address conosciuto e inserito in un database. Questo permette di usare un
meccanismo che inserisce le macchine in una Virtual LAN (VLAN) a seconda del
loro MAC address. Se un utente (ad esempio un ospite) collega un nuovo PC ad
una presa di rete, il PC viene inserito in una VLAN particolare con un accesso
limitato. Questo meccanismo è illustrato più in dettaglio nel paragrafo 1.3.1
Livello IP: a questo livello si effettua il packet filtering. Questa tecnica, analizzata
in dettaglio nel capitolo 3 è stata implementata come ACL sul router di accesso
alla WAN, e studiata nel capitolo 5 dato che è uno dei servizi cardine di un
firewall.
Livello Trasporto: anche a questo livello si effettua il packet filtering. La
differenza rispetto a quello di livello 3 (IP) è che a livello trasporto non si
controlla solo l’indirizzo del mittente e del destinatario del pacchetto, ma anche il
tipo di protocollo (TCP, UDP), e la porta di accesso.
Livello Applicazione: Al livello più alto si trovano soluzioni quali:antivirus, per
evitare tra l’altro l’installazione di back-door, antispamming. Inoltre si possono
usare programmi per testare la sicurezza della rete quali:port scanner, Intrusion
Detection System (IDS), vulnerabilty scanner, etc.
7
1.3 Caratteristiche e topologia della LAN
La rete dei LNF copre praticamente il 100% del territorio. Nella fig. 1.3 si
può vedere una mappa della dislocazione degli edifici dei LNF.
fig. 1.3 – Mappa dei LNF
La rete prevede uno switch centrale di livello 3 Cisco Catalyst 6509 come
centro stella fisicamente collocato all’interno dell’edificio del centro di calcolo
(edif. 14), più altri 4 switch di livello 3 in altrettanti edifici dove è necessario fare
routing tra sottoreti, e una serie di switch di livello 2 (Cisco Catalyst 3500, 4000,
6000) negli altri edifici. I 4 router sono utilizzati: per le macchine del sistema di
controllo dell’acceleratore di particelle (DAFNE, edif. 9, dove è presente un Cisco
Catalyst 6000), per l’esperimento più grande ad esso collegato (KLOE, che usa al
suo interno un Cisco Catalyst 6500), per l’ufficio di direzione (edif. 1 con un Cisco
Catalyst 6000) e l’edificio 4 (Ares) con un Cisco Catalyst 4000. Inoltre i router di
DAFNE e di KLOE sono collegati anche tra loro direttamente. Questo fa si che
la macchina e l’esperimento possano scambiarsi dati senza dipendere dal
funzionamento del resto della rete. Tutti i collegamenti tra router sono fatti in
Gigabit Ethernet su fibra ottica. Il resto degli edifici è servito tramite switch di
livello 2 collegati anch’essi allo switch di livello 3 centrale tramite Gigabit
Ethernet. Il collegamento alla WAN è realizzato tramite un ulteriore router (Cisco
7507) collegato al router centrale tramite Gigabit Ethernet, e all’esterno tramite un
canale ATM 155Mb/s su cui è definito un circuito virtuale da 34Mb/s. Come
vedremo nel capitolo 3 i filtri di accesso (ACL) sono impostati proprio su tale
router. Con questa configurazione, si mantiene separata la gestione dei filtri, che
richiede molta CPU, dalla gestione dei pacchetti di secondo livello della rete
8
(effettuata invece in ASIC) che così avviene in maniera più veloce ed efficiente.
Nella figura 1.4 si può vedere uno schema della rete dei LNF
9
fig. 1.4 – Schema della rete dei LNF
10
Una tecnologia molto utile, anche dal punto di vista della sicurezza, messa a
disposizione dai router Cisco è quella che consente di suddividere le LAN virtuali
non solo geograficamente (cioè a seconda della porta dello switch) ma anche a
seconda dell’indirizzo di livello 2 del nodo collegato. Questa tecnologia prende il
nome di VMPS.
1.3.1 VMPS
La sigla VMPS sta per VLAN Membership Policy Server, ovvero server di
gestione di appartenenza a VLAN. Tramite questo protocollo proprietario di
Cisco si può realizzare una rete facendo si che un nodo appartenga ad una
specifica VLAN a seconda del suo MAC address e non in funzione della porta o
dello switch al quale esso è collegato. Ovviamente per far si che ciò sia possibile è
necessario un database che metta in relazione i MAC address con le relative
VLAN. Questo database risiede su due switch centrali e viene caricato al boot da
un TFTP server. Questo meccanismo è molto utile per realizzare una LAN sicura
e al tempo stesso non troppo “blindata”: se una stazione di lavoro appartiene a un
dipendente o a una persona che lavora stabilmente all’interno dei LNF il suo
MAC address viene inserito all’interno del database VMPS, e di conseguenza, il
nodo stesso sarà inserito in una VLAN opportuna. Se invece qualcuno collega alla
rete un PC ‘sconosciuto’ (cioè non presente nel database VMPS) esso viene
comunque inserito in una VLAN, in modo che l’utente possa lavorare, però la
VLAN nella quale viene inserito è filtrata, verso il resto della LAN dei LNF, dalle
stesse ACL che si trovano sul router di accesso e attraverso le quali passano le
connessioni provenienti dall’esterno. In questo modo tutti gli ospiti possono
collegare i loro portatili a qualunque presa Ethernet e usare la rete, ma nello stesso
tempo è molto difficile che un eventuale hacker possa fare danni. Ciò è molto
utile, ad esempio, durante conferenze o meeting.
Inoltre, a cause della insicurezza intrinseca delle reti wireless, è stata dedicata
una VLAN specifica proprio a questo tipo di accesso. In questo modo chiunque si
colleghi alla rete senza fili dei LNF è si connesso, ma deve passare attraverso le
ACL. Lo schema adottato si può vedere nella figura 1.5:
11
WAN
Utente
‘registrato’
193.206.80.0/21
ACL
192.84.131.0/24
ACL
Utente
occasionale
Rete
wireless
fig. 1.5 – Schema di funzionamento del VMPS
È importante notare che lo switch mantiene separate le due sottoreti ‘rossa’
e ‘verde’. Quindi i pacchetti della rete ‘rossa’ (cioè quella degli utenti occasionali)
diretti alla rete ‘verde’ (cioè quella interna dei LNF) sono smistati dal router
(quindi a livello 3), e devono attraversare le ACL di ingresso come tutti i pacchetti
provenienti dall’esterno (WAN).
12
1.4 Servizi di rete
In questo paragrafo vedremo quali sono i servizi di rete forniti dal Servizio
di Calcolo dei LNF. Li abbiamo già elencati all’inizio del capitolo, vediamoli ora
più in dettaglio:
1.4.1 DNS e DHCP
Ricordiamo brevemente a cosa serve il DNS: ogni nodo di una rete IP è
contraddistinto da un indirizzo (detto appunto indirizzo IP) composto da 4 byte.
Sarebbe però piuttosto scomodo ricordare questo indirizzo a memoria, molto più
facile è ricordare un nome mnemonico di un nodo (può essere, ad esempio nel
caso del PC di un utente il nome dell’utente stesso). Per poter fare cio’ serve però
un meccanismo che associ gli indirizzi IP in forma numerica agli indirizzi IP in
forma mnemonica. Agli albori di internet (Arpanet) il meccanismo era costituito
semplicemente da una tabella contenuta nel file hosts dove era riportata una lista
con il nome dei nodi seguito dal loro numero IP. Ogni notte tutti gli host della
rete lo copiavano scaricandolo dal sito nel quale era mantenuto. Questo
meccanismo funzionava ragionevolmente bene finché il numero di nodi era di un
centinaio. Al crescere del numero di nodi collegati, e con la loro estensione
geografica tale soluzione divenne impraticabile, perché il file sarebbe diventato di
dimensioni troppo grandi, e soprattutto perché per evitare conflitti con i nomi
degli host sarebbe servita una gestione centralizzata che non è compatibile con la
realtà di una rete internazionale. Per ovviare a questi problemi fu messo a punto il
DNS definito nei documenti RFC 1034 e 1035. Vediamo in breve come funziona
il DNS: quando un programma deve trasformare un nome in un indirizzo IP
chiama una procedura di libreria (resolver) passandole il nome come parametro di
ingresso. Il resolver manda un pacchetto UDP al server DNS più vicino, che cerca
il nome e restituisce l’indirizzo IP al resolver, che a sua volta lo trasmette al
programma chiamante. Se il server DNS locale non conosce il nome interroga un
server DNS gerarchicamente superiore. Questo perché lo spazio dei nomi
Internet è suddiviso in domini di primo livello, a loro volta divisi in sottodomini e
così via fino a formare un albero di nomi di domini. Per ogni livello di dominio
esiste un server di dominio che conosce solo gli host presente nei suoi rami. Se gli
viene chiesto un nome di host non appartenente al suo dominio, dovrà
interrogare il nodo padre che girerà la richiesta al figlio opportuno, oppure di
nuovo al padre. Ad esempio il dominio assegnato ai LNF è:
lnf.infn.it
In questo caso il dominio di primo livello è .it che identifica la nazione Italia,
poi viene .infn che identifica l’Ente, poi .lnf che identifica i Laboratori di Frascati.
Quindi un host di nome pippo nella rete dei LNF
avrà un nome su Internet che sarà: pippo.lnf.infn.it
Ogni volta che una macchina collegata in rete deve accedere a un host di
Internet, ad esempio per aprire una pagina web, viene interrogato il DNS server
13
della rete locale. È quindi evidente quanto sia importante il buon funzionamento
del server DNS. Infatti nel caso che il server DNS non funzioni, anche con la rete
perfettamente funzionante, non sarebbe praticamente utilizzabile nessun servizio
(funzionerebbero infatti solo quei servizi che accedono ad un host tramite
numero IP). Per questo motivo il server DNS dei LNF è realizzato in maniera
ridondante. Inoltre dato che il servizio di DNS non impegna eccessivamente la
macchina, né come CPU né come rete è stato scelto di mettere sulla stessa
macchina anche il server SMTP e il server DHCP. La ridondanza è ottenuta
utilizzando 2 macchine identiche, la prima che funge da server DNS primario e da
server SMTP secondario, la seconda viceversa è il server DNS secondario e il
server SMTP primario. In questo modo, in condizioni normali ogni macchina
svolge il proprio ruolo; se una delle due macchina si guasta l’altra svolge tutti e
due i compiti, a prescindere da quale sia quella guasta. Per questo compito sono
usate 2 macchine con architettura Intel Pentium II a 400MHz con 128 MB di
RAM e scheda Ethernet 100Mbit. Per quanto riguarda il sistema operativo è stato
scelto Linux nella distribuzione Red Hat 8.0
Il DHCP (Dynamic Host Configuration Protocol) è un protocollo di rete
che permette ai dispositivi che ne facciano richiesta di essere automaticamente
configurati per entrare a far parte della rete IP. Tramite questo protocollo, non è
necessario specificare manualmente nessun parametro di rete, in quanto il server
DHCP fornisce tutte le informazioni necessarie al client nel momento stesso in
cui questo effettua il boot. Ovviamente si tratta di una soluzione molto comoda
per tutti coloro che usano computer portatili in quanto tutte le volte che si
muovono da una LAN all'altra, non devono manualmente specificare nulla: basta
che inseriscano la presa di rete in una porta attiva, e il server DHCP farà il resto.
Vediamo in breve come funziona questo protocollo: gli indirizzi IP da
assegnare ai client vengono configurati nel database Scope del server DHCP. Il
server garantisce inoltre l'indirizzo IP per un certo periodo di tempo, chiamato
Lease time, scaduto il quale il client non è più autorizzato ad usare la
configurazione IP ricevuta. Il processo di configurazione di un client avviene in 3
fasi:
1. Richiesta IP – Il client manda in rete un pacchetto broadcast di richiesta.
La richiesta (DHCPDISCOVER) contiene inoltre l'indirizzo MAC della
scheda di rete, questo per essere identificato univocamente dal server.
2. Offerta IP – Il server DHCP manda un messaggio (DHCPOFFER)
broadcast contenente l'indirizzo IP. Il client utilizzerà il primo IP che
riceverà, nel caso che ci siano più server DHCP sulla rete, gli altri verranno
ignorati.
3. Selezione di IP - Dopo aver accettato un IP, il client manda un messaggio
broadcast (DHCPREQUEST) informando tutti i server DHCP che ha
accettato un IP. Il messaggio include l'indirizzo del server DHCP che ha
mandato l'IP che è stato accettato; tutti gli altri server ritirano le loro
offerte. Il server DHCP manda quindi un messaggio di conferma
(DHCPACK) al client, contenente il valore di Lease per l'IP. Quando il
client riceve il messaggio di ACK completa la configurazione del TCP/IP.
14
Come scritto precedentemente (paragrafo 1.4.1) i server DHCP sono due
in modo da avere una ridondanza per questo servizio essenziale
1.4.2 SMTP
Il server SMTP è essenziale per il funzionamento della posta elettronica. Ha
il compito di ‘spedire’ le email dell’interno della LAN sia verso l’interno sia verso
l’esterno della LAN; inoltre ha il compito di ‘accettare’ le email del dominio
lnf.infn.it e di rigirarle alla macchina sulla quale sono configurati i mailbox degli
utenti. Come abbiamo visto parlando del server DNS (paragrafo 1.4.1) le
macchine che gestiscono il servizio sono 2 in modo da garantire una ridondanza
in caso di guasto a uno dei due server.
1.4.3 WWW
Il protocollo World-Wide Web, nato nel 1989 al CERN per condividere
documenti collegati tra loro e distribuiti su migliaia di macchine su Internet, è oggi
così diffuso che milioni di persone pensano che esso sia “Internet”. È utilizzato
praticamente in qualsiasi settore, sia in ambito locale (intranet) che geografico
(internet). Questo servizio è svolto da 3 macchine in parallelo che si spartiscono il
carico di lavoro. Sono macchine più potenti di quelle di cui abbiamo parlato in
precedenza, perché il carico di lavoro richiesto è superiore. Sono sempre
macchine con architettura Intel, ma Pentium III a 1 GHz con 512 MB di RAM
sempre con Linux Red Hat. Gli indirizzi serviti dai server web dei LNF sono:
http://www.infn.it
http://www.lnf.infn.it
http://www.ac.infn.it
http://scienzapertutti.lnf.infn.it
1.4.4 WebMail
Questo è un servizio utile per consultare la propria casella di posta
elettronica da una rete esterna rispetto ai LNF. Questo perché, come vedremo nel
capitolo 3, non è possibile usare il protocollo IMAP dall’esterno a causa dei filtri
applicati sul router per aumentare la sicurezza. Infatti il protocollo IMAP non
prevede che i dati per l’autenticazione siano cifrati, quindi sarebbe pericoloso
usarli al di fuori della LAN. Utilizzando invece il servizio di WebMail, si può
leggere la posta attraverso un client WWW utilizzando il protocollo sicuro https. A
causa del carico di lavoro richiesto questo servizio gira su una macchina dedicata
dello stesso tipo di quelle usate per i server WWW: Pentium III a 1 GHz con 512
MB di RAM e Linux Red Hat. L’indirizzo tramite il quale si accede al servizio è:
https://webmail.lnf.infn.it
15
1.4.5 LPD server
Il servizio LPD (Line Printer Daemon) serve per usare le stampanti di rete
attraverso un server che gestisce le code di stampa. Ci sono due macchine
dedicate, una su piattaforma Windows per gli utenti con questo sistema operativo,
una con piattaforma Linux per gli utenti che usano i vari dialetti di Unix, tra cui
anche MacOS X.
1.4.6 IMAP server
Questo servizio serve per far si che gli utenti possano leggere la posta
direttamente dal proprio PC. È un protocollo di tipo client-server: il server legge
le mailbox degli utenti; il client, che gira sui PC, interroga il server e rende
disponibili le mailbox. Questo meccanismo si basa su una autenticazione che
richiede una password, che però viene trasmessa dal client al server senza essere
cifrata, quindi questo meccanismo è utilizzato all’interno della LAN, ma filtrato in
modo da essere inaccessibile dall’esterno.
16
1.5 Server di memoria di massa
In questo capitolo vedremo come è organizzato il sistema di
memorizzazione (storage) dei LNF e quali tecnologie utilizza. In particolare
faremo accenni a cosa è AFS, cosa è una dispositivo NAS, cosa è una rete SAN e
infine il sistema di backup ADSM.
1.5.1 AFS server
Il sistema AFS (Andrew File System) viene utilizzato per la distribuzione a
livello mondiale degli home-directory e del software di esperimento. AFS è un file
system distribuito che permette l'accesso a file o directory residenti su macchine
connesse in rete locale e geografica.
La struttura e i meccanismi di indirizzamento di AFS consentono la
creazione di file system distribuiti su un gran numero di nodi che possono
risiedere in siti geografici diversi. I comandi di AFS consentono un accesso
semplice, soprattutto per coloro che conoscono l'ambiente Unix, rapido ed
efficiente. AFS si basa sul modello client/server; i dati sono memorizzati su una o
più macchine server e vengono trasferiti alle macchine client soltanto quando
vengono richiesti. Da questo momento in poi, tutte le modifiche sono eseguite
sulla copia locale e sono riportate sul server solo alla chiusura del file.
In AFS viene definita ‘cell’ un'unità amministrativa autonoma il cui nome
generalmente coincide con il nome del dominio TCP/IP. Dal punto di vista
hardware, una cella si può considerare come un gruppo di macchine server e
client, per esempio un Dipartimento universitario, un Istituto del CNR etc. Un
raggruppamento di celle correlate tra loro viene chiamato ‘site’.
Ai LNF vengono usati 2 IBM H50 con doppio processore e un IBM B80
come server per la cella lnf.infn.it. Tutte e tre le macchine gemelle sono collegate
allo stesso sottosistema di dischi tramite doppio canale veloce SSA che permette,
in caso di guasto hardware di uno dei tre sistemi, la continuità del servizio anche
per i volumi non replicati. Al momento si sta testando anche una macchina Linux
equipaggiata con 1,2 TB di dischi SCSI come quarto server AFS.
È molto importante notare che il protocollo AFS prevede che la
autenticazione sia fatta utilizzando il sistema Kerberos 4 che quindi evita l’invio di
password in chiaro sulla rete. È anche possibile utilizzare Kerberos 5. In entrambi
i casi però i dati in rete sono trasportati senza cifratura. Esiste anche il sistema
DCE/DFS, che è un file-system distribuito con cifratura dei dati, ma attualmente
è ancora poco usato nell’ambito della ricerca italiana.
1.5.2 NAS server
La sigla NAS significa Network Attached Storage. Il termine è utilizzato per
fare riferimento a dispositivi di memorizzazione da connettere a una rete al fine di
fornire ai sistemi di computer servizi di accesso ai file. Un dispositivo NAS è
composto da un motore che implementa i servizi di file e da una o più periferiche
su cui vengono memorizzati i dati. I dispositivi NAS possono esportare filesystem usando diversi protocolli.
17
Nell'utilizzo più comune, un sistema NAS è uno speciale server destinato a
esportare file ai client tramite una rete. Il client accede ai file utilizzando NFS
(Network File System) o altri protocolli di condivisione di file in rete. Le
periferiche NAS dispongono solitamente di processori integrati che ospitano un
sistema operativo specializzato, detto anche microkernel, e un file system
ottimizzato, entrambi realizzati appositamente per consentire al dispositivo NAS
di servire file ai client con prestazioni particolarmente elevate. Vista la capacità di
tali periferiche di fornire file a client estremamente eterogenei, i dispositivi NAS
offrono una forma di condivisione di dati eterogenei.
All’interno dei LNF il sistema NAS è usato per la distribuzione a livello
locale del software e dei dati di esperimento. Il server scelto è un Procom
NetForce 2500 avente le seguenti caratteristiche:
• Cpu primaria e ridondante
• Unità di controllo RAID 0,1,5 primaria e ridondante
• Capacità di disco complessiva di circa 1,5 TeraByte
• Interfacce di rete: Gigabit Ethernet
• Throughput complessivo reale maggiore di 30 Mbyte/s
• Protocolli di servizio delle aree disco e volumi:
o NFS
o NetBios
1.5.3 SAN server
Una rete SAN (Storage Area Network) è molto semplicemente una
rete dedicata alla memorizzazione dei dati (storage). Una rete SAN consiste
in un'infrastruttura di comunicazione (che fornisce connessioni fisiche), in
un livello di gestione (che organizza connessioni), in elementi di
memorizzazione e sistemi di computer in modo da garantire un
trasferimento di dati sicuro e robusto.
1.5.4 ADSM/TSM
La sigla ADSM sta per ADSTAR Distributed Storage Manager; un sistema con
tecnologia client/server per il salvataggio dei dati e la loro gestione. ADSM è stato
integrato nel protocollo TSM (Tivoli Storage Manager).
Ai LNF è utilizzato per la salvaguardia dei dati serviti dal server AFS con il
seguente criterio:
• Il sistema AFS effettua gli snapshot giornalieri (su disco locale)
• Il sistema ADSM garantisce la salvaguardia dei dati con la seguente
politica:
o Giornaliero dei file critici di autenticazione AFS
o Giornaliero delle inbox, e delle home directories AFS
o Settimanale incrementale di tutti i volumi AFS
o Mensile totale di tutti i volumi AFS
18
1.6 Server per il calcolo
Come anticipato ci sono 3 risorse centralizzate dedicate al calcolo. Lo scopo
principale a cui sono destinate queste macchine è quello di fornire potenza di
calcolo per i ricercatori che hanno bisogno di eseguire programmi ad uso intenso
di CPU.
A questo compito sono dedicate 3 risorse:
1.6.1 Macchina dxcalc
È una macchina Compaq 4100 con 4 processori Alpha 400MHz e 2 GB di
RAM su cui gira il sistema operativo Compaq True 64 Vers. 4.0f patch level 1
1.6.2 Macchina axcalc
È una macchina IBM S80 con la seguente configurazione hardware:
• Backplane switched
• Single Image System
• 12 processori Risc/6000 450MHz , SMP
• Espandibile a 24 processori
• 16 GB di memoria RAM (espandibile a 32 GB)
• 10 dischi da 18 GB in modalità RAID su SSA (80 MB/s)
•
•
•
•
•
•
•
•
•
•
Con la seguente configurazione software:
OS: IBM AIX 4.3.3
Compilatori: Fortran77, Fortran90, C, C++
Librerie: Cern, Mathematica
S/W: ASIS, GNU e applicativi gratuiti vari (Pine, Netscape etc.)
Gestione dei mailbox di tutti gli utenti
Servizi di esportazione dei mailbox su TCP/IP utilizzando i protocolli
POP3 e IMAP4
Creazione di code batch
Utility di resource sharing per utilizzo interattivo e batch
Servizi client fondamentali: client AFS e client ADSM
Home directory degli utenti su cella locale AFS
1.6.3 Farm Linux
È costituita da un rack di 10 macchine DELL PowerEdge 1550 con sistema
operativo Linux RedHat 7.3 configurate come segue:
• Dual Pentium III a 1GHz (256KB cache) bus 133MHz
• 512MB RAM 133MHz
• Scheda grafica integrata ATI Rage PRO 3D (4MB SGRAM)
• U160 WideSCSI integrata
• 2 dischi da 18 GB 10K rpm
• CD-ROM, Floppy 1,44MB
• Doppia scheda LAN 10/100 (protocollo PXE integrato)
19
Su queste macchine, grazie ad un software commerciale che permette di
“clonare” il sistema operativo (Rembo), gira lo stesso sistema e sono configurate
in maniera identica. In questo modo è molto semplice anche aggiungere altre
macchine: basta semplicemente fare il boot via rete da un server Rembo su cui
sono configurati i MAC address delle macchine da installare, automaticamente le
macchine, al boot ottengono la configurazione di rete dal server DHCP,
scaricano, dal server Rembo, l’immagine della partizione di sistema sul proprio
disco rigido e sono pronte per il successivo boot da disco.
20
1.7 Client
All’interno della rete LNF esistono moltissime tipologie di client che
possono essere suddivise in 3 grandi categorie:
• Macchine Windows
• Macchine Macintosh
• Macchine Unix
Nella prima categoria rientrano le varie versioni del sistema operativo
Microsoft in particolare le versioni XP e 2000. I PC Macintosh invece vanno
suddivisi in 2 categorie, quelli con MacOS fino alla versione 9 e quelli dalla 10 in
poi (MacOS X); questo quest’ultimo sistema è uno Unix, quindi rientra a tutti gli
effetti nella ultima categoria, cioè quella delle macchine Unix. Quest’ultime sono
divise tra PC con sistemi Linux e macchine Sun Microsystem, IBM, Compaq.
Ai fini della sicurezza della rete è molto importante considerare non solo i
server ma anche i client. Questo perché, generalmente, le macchine collegate alla
LAN godono di privilegi maggiori rispetto a quelle esterne (le quali devono
sottostare a sistemi quali ACL o firewall), inoltre accedono alle risorse locali (ad
esempio server) con la velocità tipica di una LAN e non di una WAN. Tutto ciò fa
si che qualora un malintenzionato riuscisse a ‘entrare’ su una macchina client
avrebbe molte più possibilità di mettere in crisi tutta la rete. Ad esempio per la
piattaforma Windows esistono molti software chiamati generalmente virus, che
una volta installati (magari li installa l’utente stesso senza accorgersene) fanno si
che la macchina apra una connessione verso l’esterno (eludendo così il firewall
dato che la connessione è dall’interno verso l’esterno e non viceversa) alla ricerca
della macchina dell’hacker che poi ne prende effettivamente il controllo. Per
questa loro caratteristica tali software sono detti trojan-horse.
Anche la piattaforma Linux non è immune da buchi di sicurezza. Ad
esempio esiste una versione del daemon ssh con un baco che permette, tramite un
exploit, di prendere il controllo della macchina come root dall’esterno.
Probabilmente, data la loro minore diffusione, le macchine meno soggette a
debolezze di questo tipo sono le macchine Apple.
21
Capitolo 2
Tipologie di attacco più frequenti
2.1 Attacchi in rete
2.1.1 Attacco Man In The Middle (MITM)
La tipologia di attacco conosciuta con il nome “Man In The Middle”, cioè
“Uomo in mezzo”, consiste nel dirottare il traffico generato durante la
comunicazione tra due nodi verso un terzo nodo (attaccante). Durante l’attacco è
necessario far credere ad entrambi i nodi terminali della comunicazione che l’host
attaccante sia in realtà il loro interlocutore legittimo (vedi fig.2.1)
Nodo 1
Nodo 2
Connessione logica
Connessione reale
Nodo
Attaccante
fig. 2.1 – Schema dell’attacco MITM
In questo modo il nodo attaccante riceve tutto il traffico generato dai nodi 1
e 2 e si preoccupa di inoltrare correttamente il traffico verso l’effettiva
destinazione dei pacchetti ricevuti. A seconda dello scenario in cui si opera
l’attacco MITM può assumere forme diverse:
22
•
•
•
Rete locale
o ARP Poisoning
o STP Mangling
o Traffic desync
o DNS Spoofing
Da rete locale a remoto (attraverso un router)
o ARP Poisoning
o Traffic desync
o DNS Spoofing
o DHCP Spoofing
o ICMP Redirection
o IRDP Spoofing
o Route Mangling
Remoto
o DNS Poisoning
o Traffic tunnelling
o Route Mangling
Vediamo come lavorano:
Rete Locale - ARP Poisoning
Il protocollo ARP (Address Resolution Protocol) serve per convertire gli
indirizzi di livello 3 (IP Address) in indirizzi di livello 2 (MAC Address) in modo
tale che il pacchetto in uscita da un nodo possa essere indirizzato verso il nodo
destinatario conosciuto in rete tramite il suo indirizzo MAC. Nello standard
Ethernet il protocollo ARP prevede due tipi di messaggi:
ARP request: richiede l’indirizzo MAC di un particolare indirizzo IP.
Generalmente viene spedito in modalità broadcast
ARP reply: viene spedito in risposta a un “request” dichiarando l’indirizzo
MAC del nodo che corrisponde all’indirizzo IP richiesto
Una volta ottenuta la corrispondenza tra indirizzo IP e indirizzo MAC,
questa informazione viene mantenuta in una tabella chiamata ARP CACHE.
Questa tabella serve per ottimizzare le prestazioni di rete. Infatti una volta
richiesto un indirizzo MAC relativo ad un certo IP questo rimane memorizzato
nella ARP CACHE, per un certo periodo di tempo, e può essere riutilizzato dal
nodo per inviare altri pacchetti IP senza dover fare nuovamente una richiesta
ARP. Per aumentare ulteriormente le prestazioni sono stati introdotti altri
stratagemmi di memorizzazione (caching): se un nodo riceve una ARP-Reply,
anche non richiesta, esso la memorizzerà in cache. Alcuni kernel (come quello di
Linux) adottano anche un meccanismo di caching all’arrivo di una ARP-Request.
Vediamo più in dettaglio cosa succede nei seguenti 3 casi:
• Spedizione di un pacchetto IP – Il kernel controlla se ha in cache
l’indirizzo MAC corrispondente all’indirizzo IP di destinazione. Se si,
costruisce il frame ethernet e lo spedisce; se no manda una ARP-Request e
una volta ottenuta la risposta prepara il frame e lo spedisce.
•
23
•
•
Arrivo di una ARP-Request – Il Kernel risponde con una ARP-Reply.
Alcuni kernel inseriscono l’indirizzo MAC del sorgente in cache nell’ipotesi
che anche lui dovrà a breve comunicare con l’altro.
Arrivo di una ARP-Reply – Se l’ARP-Reply era stata sollecitata dal kernel
viene immediatamente scritta in cache. Alcuni kernel (Windows e Linux)
inseriscono in cache anche ARP-Reply non sollecitate. Altri (Solaris) non
sovrascrivono la cache solo se l’indirizzo relativo a quell’IP era gia’
presente in cache.
Vediamo come si può sfruttare questo meccanismo per fare un attacco:
Supponiamo di volerci inserire tra due nodi (supponiamo quindi che il
nostro nodo esegua l’attacco): si mandano delle false risposte ARP ai due host che
si vogliono attaccare. Nelle risposte si comunicherà al primo host che l’indirizzo
MAC del secondo host è il nostro, e lo stesso si farà col secondo host. Da quel
momento in poi tutti i pacchetti che dovrebbero viaggiare tra le vittime verranno
in realtà spediti all’host attaccante.
Vediamo un esempio:
HOST1:
MAC:01:01:01:01:01:01
IP:192.168.0.1
HOST2:
MAC:02:02:02:02:02:02
IP:192.168.0.2
HOSTATTACK: MAC:03:03:03:03:03:03
IP:192.168.0.3
Per portare a termine l’attacco è necessario che i pacchetti siano inoltrati
correttamente verso l’effettiva destinazione. Quindi l’attaccante non deve fare
altro che inoltrare a HOST1 (MAC:01:01:01:01:01:01) i pacchetti indirizzati a
192.168.0.1 e a HOST2 (MAC:02:02:02:02:02:02) i pacchetti indirizzati a
192.168.0.2. La cache è periodicamente cancellata dal kernel, quindi per poter
portare a termine un attacco ARP-Poisoning a lungo termine, l’attaccante dovrà
continuamente rinfrescare il valore di timeout delle entries mandando i relativi
ARP-Reply ad intervalli regolari minori del timeout.
Rete Locale - STP Mangling
Questo non è un vero e proprio attacco MITM, ma piuttosto consente di
ricevere delle copie dei pacchetti che circolano in una LAN con una serie di
switch, e che normalmente non sarebbe possibile ricevere. Si basa sul meccanismo
dello “spanning tree”. Lo spanning tree (prot. 802.1d) è un protocollo di livello 2
che serve per evitare cicli (“loop”) di pacchetti qualora siano presenti percorsi
ridondanti per rendere a prova di guasti (“fault tolerant”) una rete di switch.
Vediamo come funziona prendendo come riferimento il modello Cisco
Catalyst. Ogni pacchetto che ha come destinazione un indirizzo MAC non
presente nelle tabelle degli switch, così come ogni pacchetto broadcast o
multicast, viene inoltrato su tutte le porte dell’apparato, sia quelle collegate a
computer, sia quelle collegate ad altri switch. Questo potrebbe portare e dei
“loop”. La soluzione consiste nel mettere in stato di “blocking” (e quindi non far
partecipare all’inotro dei pacchetti) tutte le porte che fanno parte di percorsi
•
24
ridondanti. Per risalire alla topologia della rete, e costruire un albero privo di loop,
gli switch che supportano 802.1d scambiano dei pacchetti di “bridge protocol data
unit” (BPDU) con i loro vicini. Lo scambio si conclude con l’elezione di un “root
switch” che sarà la radice dell’albero di inoltro e con la designazione, da parte di
ogni switch, della porta corrispondente al percorso più breve per raggiungere le
radice e della porta (o delle porte) per inoltrare i pacchetti ai rami inferiori
dell’albero.
In fig. 2.2 e 2.3 possiamo vedere un esempio di come si modifica una rete
magliata dopo l’applicazione dell’algoritmo di spanning tree:
fig. 2.2 Rete con percorsi ridondanti
fig. 2.3 Rete con percorsi ridondanti dopo l’esecuzione dello spannig tree
Ogni pacchetto contiene l’identificativo di priorità dello switch che lo sta
trasmettendo, l’identificativo della porta di trasmissione, e altre informazioni
25
meno importanti per l’argomento in oggetto. L’identificativo di priorità è
composto da 2 byte (il valore di default è 32768) più l’indirizzo MAC dello switch.
Minore è questo numero, maggiore è la priorità. In una configurazione di default,
quindi, lo switch con priorità maggiore (root switch) sarà quello con l’indirizzo
MAC più basso. Inizialmente tutte le porte dello switch passano attraverso uno
stato di “listening” e poi di “learning”, in questo stato lo swtich comincia a
trasmettere le BPDU. All’inizio ogni switch crede di essere root. Quando uno
switch riceve un pacchetto che indica una radice con priorità maggiore della sua,
prende quella come root e identifica la porta da cui l’ha ricevuto come “root
port”. Quindi lo switch inizia a trasmettere pacchetti contenenti il “root ID”
aggiornato. Alla fine della fase di “learning”, ogni switch sa quali porte sono
coinvolte nello spanning tree (le porte da cui ha ricevuto BPDU), e ha identificato
la sua root port (cioè la porta relativa al percorso più breve per raggiungere la
radice). A questo punto, per ogni segmento di rete, lo switch più vicino alla radice
(e con ID più basso) viene eletto “designated switch”. Questo switch identifica la
porta che lo collega al segmento, di cui è stato eletto “designato”, come
designated port (tutte le porte del root switch coinvolte nello spanning tree
diventano “designated”). A questo punto, ogni switch mette nello stato di
blocking tutte le porte coinvolte nello spanning tree che non siano “root” o
“designated”. Le altre vengono messe in stato “forwarding”, raggiungendo una
configurazione stabile e priva di loop. Le porte in stato forwarding continuano a
ricevere e mandare BPDU (le porte blocking ricevono soltanto) per poter reagire
all’inserimento di un nuovo root nella rete o alla caduta di un link. Questo avviene
quando uno switch non riceve più BPDU sulle porte root o designated
(probabilmente uno switch è “andato giù”) per un certo periodo di tempo, e lo
switch forza un cambiamento di topologia, rimettendo in gioco le porte che erano
state tenute in “blocking”.
Per eseguire l’attacco è sufficiente costruire e inviare pacchetti che
identifichino il nostro host come root, mettendo a zero i campi di priorità, ed
eventualmente “abbassando” manualmente il nostro indirizzo MAC (solo nel caso
sia presente uno switch a priorità zero). In breve tempo tutti gli switch
“ricostruiranno” la rete utilizzando il nodo attaccante come radice. Questo gli
permette di ricevere traffico unicast non diretto ad esso. Quando l’attacco
termina, semplicemente gli switch reagiranno e ridisegneranno un nuovo albero
senza il nodo attaccante. Durante l’attacco, i pacchetti raggiungono comunque
anche il legittimo destinatario. Per ottenere il vero MITM (se si riuscisse a
monitorare entrambi i versi di una connessione) si potrebbe tentare di
“desincronizzare” le sessioni TCP.
26
Rete Locale - Traffic desync
Se si è in grado di poter leggere tutto il traffico di un segmento di rete (ad
esempio perché si è collegati ad un hub, oppure a una porta “monitor” di uno
switch, o ancora perché si sta usando la tecnica del STP mangling) si possono
inserire, all’interno di una connessione TCP, dei pacchetti (costruiti ad hoc) in
maniera tale da far incrementare il numero di sequenza atteso. In questo modo il
destinatario della connessione verso cui si sono spediti questi pacchetti smetterà di
accettare il traffico proveniente dalla sorgente legittima poiché lo riterrà obsoleto,
e accetterà invece il traffico che proviene dal nodo attaccante, che lo avrà
eventualmente modificato e rispedito (dopo aver aggiornato i numeri di
sequenza).
•
Rete Locale - DNS spoofing
Come anticipato nel primo capitolo, il servizio DNS serve per convertire i
nomi IP nei corrispondenti numeri IP. Il protocollo è piuttosto complesso, qui ci
limiteremo a vedere un modo semplice per ingannare una macchina che fa una
richiesta. Quello che si vuole fare con lo “spoofing” è fornire in risposta ad una
macchina un indirizzo IP voluto invece che quello reale, in modo tale che tutto il
traffico seguente sia indirizzato al nodo attaccante invece che al legittimo
destinatario. Il protocollo DNS prevede che il pacchetto contenga un campo
chiamato ID (lungo 2 byte) per identificare le risposte. Questo minimale
meccanismo di sicurezza fa si che non si possano generare risposte alla cieca. Ma
se l’attaccante può leggere il traffico in rete, potrà leggere anche l’ID della
domanda e formulare la risposta con l’ID corretto prima che il vero server DNS
risponda. Una volta ingannato il client l’attaccante può fare da proxy tra esso e il
server, oppure può non contattare mai il server reale e mostrare servizi fasulli al
client.
•
Da Locale a Remoto – ARP poisoning
Quando un host deve mandare pacchetti verso una destinazione che non è
all’interno della sua LAN, guarda nelle sue tabelle di routing alla ricerca del
gateway per tale destinazione. Una volta conosciuto l’indirizzo IP del gateway,
l’host farà una ARP-Request per conoscere il suo indirizzo MAC. A questo punto
i pacchetti potranno essere mandati in rete con l’effettivo inidirizzo IP del
destinatario e l’indirizzo MAC del gateway come destinazione. Sarà poi il gateway
a prendersi carico di inoltrare i pacchetti verso la destinazione scelta.
Esattamente come nel caso della rete locale, facendo un “poisoning”
dell’indirizzo del gateway di default su un host, saremo in grado di ricevere tutto il
traffico che tale host farà verso “internet”. Valgono quindi tutte le considerazioni
fatte precedentemente a riguardo.
•
Da Locale a Remoto – Traffic desync
Valgono le stesse considerazioni fatte per il caso della rete locale, dato che
questa tecnica opera a livello TCP.
•
27
Da Locale a Remoto – DNS spoofing
Anche qui valgono le stesse considerazioni fatte per il caso della rete locale,
perché comunque si opera a livello 3.
•
Da Locale a Remoto – DHCP spoofing
Il servizio DHCP è utilizzato per l’assegnazione in maniera dinamica di una
serie di parametri per la connettività di rete ad un host che ne fa richiesta. Il
protocollo usa UDP come layer di trasporto e non supporta alcun tipo di
autenticazione. Il protocollo DHCP è in realtà abbastanza complesso ma ci
limiteremo a una trattazione minimale inerente alle informazioni necessarie a
portare a termine l’attacco.
L’attacco avviene in questo modo: intercettando una richiesta DHCP è
possibile rispondere prima del vero server assegnando, ad esempio, alla macchina
che ne fa richiesta, un gateway di default falso o un DNS server falso. Ad esempio
assegnando come gateway l’indirizzo IP di una macchina gestita dall’attaccante, si
ottiene che tutto il traffico passa attraverso di essa. Assegnando invece un DNS
falso si possono intercettare tutte le richieste di risoluzione dei nomi e si può
facilmente portare un attacco di tipo DNS spoofing
•
Da Locale a Remoto – ICMP redirection
Il protocollo ICMP è usato per una varietà di scopi, tra cui il più famoso è
probabilmente l’applicativo “ping”. Un altro strumento è il “redirect”. Si usa
quando in una rete sono presenti più di un gateway. Supponiamo che in una rete
ci siano due gateway chiamati GW1 e GW2. Supponiamo che GW1 sia, per l’host
H, il gateway per una serie di indirizzi. Se però GW1, per instradare un pacchetto
ricevuto da H, è costretto a passare per GW2, informerà l’host con un pacchetto
ICMP REDIRECT, dicendogli di instradare i pacchetti successivi, per la
medesima destinazione, direttamente verso GW2, eliminando così un salto (hop)
dal tragitto. È importante notare che nel pacchetto REDIRECT sia presente una
parte del pacchetto originale che GW1 è stato costretto a inoltrare su GW2.
Questo è necessario perché l’host sia in grado di capire a quale “flusso” fa
riferimento il REDIRECT. L’attacco consiste nel costruire un pacchetto ICMP
REDIRECT per deviare il traffico che H inoltrerebbe attraverso GW1 per una
data destinazione e far agire l’host dell’attaccante come se fosse un gateway più
comodo per tale destinazione. In questo caso si manda ad H un pacchetto
mascherando l’IP dell’attaccante come se il pacchetto provenisse da GW1. H
comincerà a usare il nodo di attacco come gateway il quale poi inoltrerà i
pacchetti a GW1, avendo cura di non spedire pacchetti REDIRECT “leciti” ad H
che indichino GW1 come gateway preferenziale.
•
Da Locale a Remoto – Route mangling
Questo tipo di attacco consiste nel far credere ad un host H collegato ad
Internet tramite un gateway GW che la strada migliore per raggiungere un
qualsiasi nodo esterno passi per un altro gateway che è la macchina di attacco.
Questo tipo di attacco si rivolge però non all’host H ma al gateway GW
•
28
mandandogli dei pacchetti che annunciano la macchina attaccante come un router
con una ottima metrica per una determinata rete. Una volta fatto ciò rimane il
problema di far arrivare effettivamente i pacchetti al legittimo destinatario, in
quanto l’unico che potrebbe farlo è proprio GW che non si può usare perché
rimanderebbe i pacchetti alla macchina attaccante. Per ovviare a questo serve
un’altra macchina, ovunque nel mondo, con un IP pubblico con la quale
instaurare un tunnel unidirezionale GRE (General Routing Encapsulation)
attraverso il quale saranno spediti i pacchetti ricevuti e che si occuperà di smistarli.
Remoto – DNS poisoning
Questo attacco consiste nel modificare la tabella di un server DNS in modo
che, a seguito di una richiesta, venga indicato ad un host il numero IP della
macchina attaccante invece di quello realmente richiesto. Per fare cio’ l’attaccante
fa credere al server DNS “ingannato” di essere a sua volta un server DNS
autoritativo per l’indirizzo richiesto dall’host, in modo che possa rispondere alla
richieste del server DNS e quindi fornirgli un numero IP falso.
•
Remoto – Traffic tunnelling
L’obiettivo di questo attacco è quello di dirottare, verso l’attaccante, il
traffico in entrata di un router remoto, sfruttando la “protocol encapsulation” e il
“traffic tunnelling”. Questo tipo di attacco necessita della possibilità di avere
accesso a livello di amministrazione su un router a monte del server.
•
Remoto – Route Mangling
L’obiettivo è quello di intercettare il traffico tra due punti A e B. L’attacco
consiste nel far si che il traffico passi attraverso la macchina attaccante. Gli
approcci sono 2: dirottare effettivamente il traffico verso il nodo della macchina
attaccante o dirottarlo verso un router che ha instaurato un tunnel verso la
macchina attaccante. Anche in questo caso c’è da superare la difficoltà di inoltrare
il traffico “rubato” verso la legittima destinazione.
•
2.2 Attacchi di tipo DoS o DDoS a servizi di rete
Lo scopo di un attacco DoS o anche DDoS è quello di negare agli utenti
legittimi l’uso totale o parziale di una o più componenti di un sistema informativo
ad esempio banda di rete o sistemi hardware e software. Infatti il significato della
sigla DoS è proprio “Denial of Service”, cioè “Indisponibilità del servizio” e la
lettera “D” aggiuntiva sta per “Distribuited”, cioè distribuito perché viene da più
sorgenti.
I motivi per cui si esegue un attacco di questo tipo possono essere:
• Frustrazione: l’attaccante non riesce ad introdursi in un sistema e decide di
farlo cadere
• Azione dimostrativa: singoli o gruppi hanno motivi personali o politici di
rivalsa nei confronti di singoli o organizzazioni
29
•
1.
2.
3.
4.
5.
Necessità pratiche: necessità di operare un reboot per rendere effettive
alcune modifiche al sistema al fine di renderlo più vulnerabile
Le tipologie di attacco possono essere diverse:
Saturazione di banda
Resource starvation (saturazione delle risorse)
Bug Software
Attacchi basati sul routing
Attacchi basati sul DNS
Vediamoli più in dettaglio:
2.2.1 Saturazione di banda
Questo attacco consiste nel generare una quantità di traffico tale da
consumare tutta la banda a disposizione di un sito. È possibile farlo in due modi:
1. Il sito da attaccare ha a disposizione poca banda e il sito dell’attaccante ha
a disposizione molta banda. In questo modo è facile generare una quantità
di traffico tale da mettere in crisi la rete sotto attacco.
2. Il sito da attaccare ha a disposizione più banda del sito attaccante. In
questo caso è più difficile portare a termine l’attacco: servono delle
tecniche di “amplificazione” del traffico.
2.2.2 Resource starvation
Questo tipo di DoS tende a saturare altre risorse del sistema piuttosto che i
link di rete come ad esempio tempo di CPU, memoria, spazio su disco, numero
massimo di file aperti.
In genere il sistema diventa inusabile oppure collassa.
2.2.3 Bug software
Si sollecita il sistema in modo da attivare delle situazioni che non sono
correttamente gestite dal software di sistema. Ad esempio bug nello stack di rete
oppure situazioni di buffer overflow o ancora errori presenti in HW dedicato. Un
caso tipico di bug è il cosiddetto “IP fragmentation overlap”: Si basa sulla
vulnerabilità presente nelle implementazioni software dello stack IP, per quanto
riguarda il riassemblaggio della sequenza dei pacchetti. La tecnica consiste nel
generare una sequenza di pacchetti costruita “ad arte” in modo da provocare il
crash o il reboot del sistema
2.2.4 Attacchi basati sul routing
Questo tipo di attacco si basa sulla manipolazione delle tabelle di routing in
modo da deviare tutto o parte del traffico della rete verso una destinazione diversa
o verso un “buco nero”.
2.2.5 Attacchi basati sul DNS
L’attaccante manipola la cache del sistema DNS in modo da deviare tutto o
parte del traffico della rete verso una destinazione diversa o verso un “buco nero”
30
Vediamo ora alcune tecniche utilizzate per portare a termine questi attacchi:
2.2.6 Smurfing
Questa tecnica basa la sua efficacia sul fatto di mandare una pacchetto ICMP
di tipo “ping” verso un indirizzo broadcast di una rete. In questo modo ogni host
della rete risponde al ping con un altro pacchetto ICMP diretto verso l’host che
ha fatto la richiesta. In questo modo con un solo pacchetto si ha la possibilita di
generarne decine o centinaia (a seconda del numero di nodi della rete). Se
l’attaccante usa la tecnica dello “spoofing” vista in precedenza per inviare il
proprio ping, facendo finta di essere la macchina vittima, quest’ultima riceverà una
serie di risposte a ping non richiesti.
2.2.7 Fraggle
È simile allo “Smurfing”, ma usa il protocollo UDP invece di ICMP, bisogna
notare che se gli host sulla rete “amplificatrice” non sono configurati per
rispondere ai pacchetti UDP, trasmettono comunque indietro un pacchetto ICMP
“unreachable” generando comunque traffico.
2.2.8 SYN Flood
Usa una debolezza nella implementazione del protocollo di connessione
“three way handshake”. Normalmente per stabilire una connessione TCP il primo
host manda un pacchetto SYN al secondo che risponde con un SYN-ACK, dopo
di che il primo spedisce un ACK al secondo e viene instaurata la connessione.
L’attacco consiste nel mandare pacchetti SYN con l’indirizzo mittente modificato
(Spoofing) alla vittima in modo che quest’ultima mandi i pacchetti SYN-ACK
verso un host inesistente (“buco nero”) e rimanga in attesa del relativo pacchetto
ACK. L’obiettivo è di far riempire la coda delle connessioni “potenziali” fino ad
esaurire tutte le risorse allocate allo scopo.
31
2.3 Virus
In questo paragrafo vedremo cosa sono i virus e perché sono importanti ai
fini della sicurezza di un sistema informatico. I motivi principali sono due:
• Innanzitutto un virus impedisce il corretto funzionamento di una
macchina, sia di una postazione di lavoro, sia di un server. Mentre è
relativamente facile tenere un virus lontano dai server è molto più difficile
fare lo stesso su tutti i nodi client della rete soprattutto perché se l’utente
ha il pieno controllo della propria macchina (password di amministratore)
non gli si può impedire di installare programmi potenzialmente pericolosi.
• Un altro motivo per cui i virus possono essere un pericolo è il fatto che se
una rete contiene un nodo “infettato” esso può aprire connessioni verso
l’esterno rendendo tutta la rete vulnerabile scavalcando i filtri sul router (o
su eventuali firewall).
2.3.1 Cosa è un virus
Un virus informatico è un programma, cioè una serie di istruzioni scritte da
un programmatore ed eseguibili da un computer, che ha le seguenti caratteristiche:
•
•
•
•
•
•
è stato scritto per “inglobarsi” e cioè confondersi alle istruzioni di altri
programmi modificandoli
chi l'ha scritto ha previsto la possibilità che il virus sia in grado di replicarsi,
ovvero di copiare le istruzioni che lo compongono in altri programmi
dopo un tempo prestabilito, necessario per effettuare la “replicazione”, il
virus comincia a compiere l'azione per cui è stato scritto, che può
consistere, per esempio, nel distruggere dati e/o programmi presenti su di
un supporto magnetico o, semplicemente, nel far comparire a video un
messaggio.
Da ciò si deduce che:
i virus non sono capaci di un comportamento autonomo: tutto ciò che
sono in grado di fare è stato puntualmente previsto, come per qualsiasi
programma di computer, dai programmatori che li hanno ideati e scritti
i virus sono facilmente identificabili ed eliminabili da programmi, detti
perciò “antivirus”, scritti appositamente; questi ricercano negli altri
programmi presenti sul computer la sequenza di istruzioni che caratterizza
il virus; ciò è però possibile solo se i virus sono noti, e cioè se è nota,
almeno in parte, la sequenza di istruzioni con cui sono stati scritti: tale
sequenza è diversa per ogni virus
i virus, come tutti i programmi, non possono funzionare, e quindi portare a
termine il compito loro assegnato, se non nel sistema per cui sono stati
scritti; quindi un virus scritto per computer che usano il sistema operativo
MS/DOS, non potrà “funzionare” su computer Macintosh che usano un
diverso sistema operativo, e vice versa
32
•
•
i virus informatici (“virus” in latino significa veleno) hanno mutuato il loro
nome dal campo medico, biologico, per una vaga somiglianza con alcune
caratteristiche dei virus nella microbiologia: come questi ultimi, per
riprodursi, devono penetrare in una cellula ospite ed assumere il controllo
dei suoi processi metabolici, così i virus informatici devono penetrare nel
programma ospite modificandolo, sia per riprodursi sia, in seguito, per
danneggiare dati e/o programmi presenti su supporti registrabili
come nella biologia i virus sono organismi relativamente semplici e molto
piccoli, rispetto all'organismo che invadono, così anche i virus informatici
sono dei programmi costituiti da poche centinaia di istruzioni, al massimo
un migliaio; ciò consente loro di portare a termine il compito per cui sono
stati scritti senza, in genere, far notare la loro presenza all'utente del
computer.
2.3.2 Storia
Il primo virus fu sviluppato nel novembre del 1983, con fini dimostrativi,
nell'ambito di una ricerca finanziata da una delle principali società costruttrici di
computer ed inserita in un più generale progetto di studio della sicurezza dei
sistemi informativi. L'obiettivo della ricerca era di dimostrare come le possibilità
di un attacco al patrimonio informativo di un'azienda non fossero limitate a quelle
tradizionalmente prese in esame negli studi sulla sicurezza fino ad allora svolti; tali
studi avevano incentrato la loro attenzione sull'attacco fisico (p.es. atti terroristici),
sulla conoscenza illegittima di password e su modifiche ai programmi effettuate da
personale interno alle aziende.
L'esperimento, che riuscì perfettamente, dimostrò che predisponendo
opportunamente il programma aggressore era possibile attaccare qualsiasi sistema:
il virus sperimentale, sviluppato in sole otto ore da un esperto, impiegava meno di
mezzo secondo per replicarsi “copiandosi” in un altro programma, che diventava,
a sua volta, “portatore” del virus.
Il primo virus sviluppato in Italia, che ebbe una notevole diffusione in tutto
il mondo, fu il cosiddetto virus della pallina, denominato “ping-pong”, che si
limitava a far comparire sul video del computer una “faccina sorridente” che si
spostava su tutto lo schermo; è quasi certo che tale virus sia stato realizzato per
fini di ricerca, nel 1987, da alcuni studenti del politecnico di Torino.
2.3.3 Categorie di virus particolari
Esistono inoltre 2 categorie particolari di virus: i “cavalli di Troia” (“Trojan
Horse” o più semplicemente “Trojan” e i macro-virus.
I primi devono il loro strano nome al meccanismo che usano per
diffondersi: come il cavallo costruito dall’astuto Ulisse fu consciamente portato
dentro le mura di Troia dagli stessi abitanti della città che lo credevano un
omaggio fatto dai Greci ad una divinità per carpirsene il favore, così i programmi
in questione sembrano essere dei normali programmi scritti, ad esempio, per
gestire archiviazioni di dati, ma in realtà, una volta “fatti entrare” nel computer
33
dallo stesso utente, tratto in inganno dal loro nome, provvedono a modificare
programmi e dati dell'hard disk del computer determinandone, in tutto o in parte,
una sua inservibilità.
Un caso famoso è accaduto alla fine del 1989 quando una sedicente società
panamense inviò a utenti di personal computer di mezzo mondo copie di un
dischetto contenente un programma informativo sull'A.I.D.S.; il programma dava
delle informazioni sul virus; inserendo, poi, alcuni dati riguardanti la proprie
recenti abitudini sessuali si poteva avere persino la probabilità di essere venuti a
contatto con il virus dell’A.I.D.S.. Il programma dopo essere stato eseguito una
novantina di volte visualizzava un minaccioso messaggio ed invitata gli utilizzatori
a versare una somma in dollari ad una non meglio identificata società «PC Cyborg
Corporation», con sede in Panama, se si voleva ottenere un ulteriore dischetto
contenente la chiave per recuperare il contenuto dell'hard disk del computer che
da quel momento era divenuto inutilizzabile, in quanto il programma medesimo
aveva provveduto a cambiarlo in base ad un algoritmo conosciuto solo dai suoi
autori. Il 1° febbraio del 1990 fu arrestato, negli Stati Uniti, Joseph L. Popp, uno
zoologo residente nell'Ohio. Poiché il caso dei dischetti A.I.D.S. fu portato
all'attenzione della polizia britannica, e le indagini furono avviate da quest'ultima,
a seguito del suo arresto ne fu richiesta l'estradizione da parte delle autorità
britanniche sotto l'accusa di ricatto e di estorsione. Nel febbraio del 1991, a
seguito del parere favorevole del Dipartimento di stato americano, L. Popp venne
trasferito in Gran Bretagna per essere processato; Joseph L. Popp rischia la
condanna a quattordici anni di detenzione. Siccome migliaia di copie di questo
dischetto furono spedite anche nel nostro Paese, contro la stessa persona la
magistratura italiana ha disposto il rinvio a giudizio per tentata estorsione.
I macro-virus invece sfruttano una caratteristica presente nei pacchetti di
Microsoft che è quella di poter usare uno pseudo-linguaggio (il linguaggio macro,
appunto) per poter programmare alcune funzioni dei suddetti programmi.
Attraverso l'uso delle macro, e quindi di un linguaggio di programmazione, è
possibile registrare insieme ad un documento (testo o tabella che sia) dei comandi
che vengano lanciati automaticamente all'apertura del documento medesimo
senza che l'ignaro utente si accorga di nulla. Se è alquanto difficile, ma non
impossibile, fare in modo che un virus di macro riesca a modificare dei
programmi eseguibili (EXE, COM) per fare in modo che i medesimi si facciano
portatori del virus medesimo, realizzare un programma che cancelli i dati con le
macro è una cosa veramente alla portata di qualsiasi utente evoluto.
34
2.4 Mail spam
Vediamo innanzitutto di definire cosa è lo spam:
2.4.1 Cosa è lo spam
Lo Spam consiste nell'invio di una stessa email, contenente di solito
pubblicità, a centinaia, se non a migliaia di persone, basandosi sul fatto che la
posta elettronica è gratuita. Il termine deriva dallo sketch di un gruppo comico
inglese, i Monty Python, su una nota marca di carne in scatola “Spam”. A volte si
può trovare indicato anche con la sigla U.C.E. che sta per “Unsolicited
Commercial Email”, ovvero email commerciale non richiesta. C’è stato un
antenato dello spam negli Stati Uniti: l'invio di FAX o messaggi vocali via
telefono, sfruttando il fatto che le telefonate urbane erano completamente
gratuite. Questo fenomeno e' stato prontamente bloccato attraverso una legge.
Purtroppo la strada per bloccare lo spam è più difficile data la natura
sovranazionale della rete.
Lo spam è un fenomeno negativo perché è chi riceve che paga. Il provider
paga le infrastrutture che vengono abusate, il cliente paga il tempo per scaricare,
paga il tempo per leggere esaminare e cancellare quello che quasi sempre sono
messaggi che non ha richiesto. Non essendoci virtualmente costi a carico del
mittente non esiste quindi un freno al numero dei messaggi inviati che
frequentemente raggiungono l'ordine di grandezza delle decine di milioni.
Ancora peggio, per ridurre ulteriormente i costi, gli spammer hanno iniziato
ad utilizzare i servers altrui per la distribuzione del proprio spam, avvalendosi del
fatto che ancora la maggior parte dei mail server su Internet permettono questo.
Questi comportamenti sono illegali, in quanto causano danno al malcapitato
gestore del mail server che si trova un netto incremento di traffico sulle proprie
linee oltre a dover perdere parecchio tempo per bloccare l'abuso, rispondere ai
destinatari ed eliminare tutti i messaggi che non possono andare a destinazione.
Nonostante ciò, queste pratiche sono utilizzate continuamente dagli spammer,
perché putroppo sono difficilmente rintracciabili o denunciabili.
Attualmente il traffico di SPAM ricevuto dagli utenti italiani di Internet si
quantifica in “qualche messaggio al giorno”, ma visti i ritmi di crescita di questo
fenomeno è probabile che in meno di un anno si riceveranno anche molte decine
di messaggi al giorno.
2.4.2 Come difendersi dallo spam
Non e' facile. Esistono alcuni metodi, alcuni sono totalmente inutili (ad
esempio inviare false risposte di casella inesistente), altri lo sono fin troppo
(rischiando di rifiutare messaggi legittimi). Non solo, se la cancellazione avviene
dopo la ricezione da parte dell'utente, il danno sarà già stato causato e lo spammer
non si accorgerà di nulla. Un metodo spesso adottato per evitare che il proprio
indirizzo venga inserito nelle mailing lists degli spammers sta nel non pubblicarlo
in alcun modo, non utilizzarlo quando si inviano messaggi su usenet (news), non
inserirlo in pagine web, etc. È per questo motivo che quando diviene necessario
pubblicarlo o comunicarlo in pubblico, si vedono messaggi con indirizzo
35
modificato in modo che non sia estraibile automaticamente (ad esempio
[email protected]). Purtroppo è sufficiente che venga spedito un solo
messaggio con l’indirizzo corretto che questo verrà inesorabilmente e
definitamente inserito nelle mailing list, senza possibilità di rimozione. Quindi,
non è più possibile usare questo sistema qualora si sia già utilizzato anche una sola
volta l’indirizzo in pubblico.
Esistono delle indicazioni che possono aiutare a capire quando un messaggio
è spam, si possono considerare spam i messaggi:
• Nei quali l'indirizzo di provenienza non sia valido secondo gli standard di
scambio di posta elettronica su Internet.
• Nei quali l’indirizzo di provenienza appartenga ad un dominio inesistente.
• Da domini e indirizzi di coloro che sono manifestamente spammer.
• Dai server che sono manifestamente appartenenti a spammer.
• Dai server che operano il relaying (volontario o involontario) dello spam.
Si noti che “non accettare” non significa cancellare i messaggi; significa
invece comunicare al server mittente il rifiuto del messaggio. Tale server provvede
poi a comunicare al mittente che la trasmissione del messaggio non è andata a
buon fine. Non è comunque possibile smettere di ricevere spam utilizzando gli
indirizzi tipo remove@xxxxx pubblicizzati dagli spammers stessi, perché nella quasi
totalità dei casi vengono semplicemente ignorati o peggio ancora, servono a
confermare allo spammer che gli indirizzi sono veritieri e funzionanti.
2.4.3 Quanto può “costare” lo spam
Non sono mancati apologeti dello spam che, trascurandone l'effetto sulla
produttività di chiunque utilizzi la posta elettronica, hanno provato a sostenere
che, per la ricezione di una email, il costo puramente di rete sia minimo.
Purtroppo non è così. Certi utenti ricevono molti messaggi indesiderati, qualcuno
se la cava con 15-20 al mese, altri arrivano anche a 70-100 al mese, perfino di più
quando si tratta di mailbox con indirizzo vecchio, che viene usato da svariati anni.
Nel tempo si sono visti molti tentativi di stimare l’entità del danno in termini
monetari. Qui citiamo le risultanze di uno studio effettuato per conto della
Commissione Europea: <<Unsolicited Commercial Communications and Data
Protection>> (gennaio 2001). È un documento molto interessante che giunge a
valutare il costo per un singolo utente in circa 30 euro all’anno. La conclusione
(tradotta) è così espressa:
“...Su scala mondiale, assumendo una comunità online di 400 milioni [di utenti internet],
il costo globale dello scaricamento di messaggi pubblicitari usando la attuale tecnologia può essere
cautelativamente stimato in dieci miliardi di euro [all'anno] - e questa è solamente la frazione di
costo che viene sostenuta dagli utenti direttamente.”
36
2.4.4 Conclusioni
Nonostante possa sembrare legato in maniera marginale all’aspetto della
sicurezza, il fenomeno dello spam non è da trascurare proprio in virtù del fatto
che utilizza risorse (rete, server, etc.) altrui per scopi diversi da quelli per i quali
sono stati acquistati e sono gestiti. Quindi bisogna considerare di impostare in
maniera ottimale il servizio di posta elettronica, in particolare per non essere
“usati” dagli spammer come nodi dai quali fare relay per i propri interessi
37
2.5 Considerazioni finali
Ai LNF gli acceessi sono controllati e registrati attraverso un apposito
servizio di guardiania, di conseguenza gli attacchi di tipo locale sono stati
considerati meno probabili. A conforto di tale ipotesi questo tipo di attacco, fino
ad oggi, non è mai avvenuto. Al contrario gli attacchi da remoto sono molto
frequenti. Lo scopo di questo lavoro è quindi soprattutto quello di salvaguardare
la LAN da questo tipo di attacchi.
In particolare si sono adottate una serie di misure atte a proteggere i servizi
di rete dagli attacchi elencati nel paragrafo 2.2
38
Capitolo 3
ACL
Un primo passo verso la protezione dei nodi interni di una LAN, da attacchi
provenienti dall’esterno, può essere quello di utilizzare la tecnica del packet
filtering sul router di accesso.
In particolare per implementare questa tecnica sui router Cisco si usano le
ACL (Access Control List). Con questa tecnica molti tipi di attacco sono bloccati
dal router ancora prima di poter arrivare al nodo sotto attacco.
INTERNET
Computer
d’attacco
Router
Con ACL
LAN
Protetta
fig. 3.1 - Protezione di una LAN tramite packet filtering sul router d’accesso
In particolare i router Cisco mettono a disposizione più tipi di ACL. Ad
esempio relativamente al protocollo IP si hanno le IP standard access list e le IP
extended access list. La differenza é che utilizzando le standard si può controllare
solamente l’indirizzo IP sorgente; mentre con le extended si possono controllare
molti più campi del pacchetto IP, più precisamente:
• Indirizzo IP sorgente
• Indirizzo IP destinatario
• Campo protocollo nell’header del livello rete (Network layer)
• Numero di porta nell’header del livello trasporto (Transport layer)
39
Frame Header
(for example,
HDLC)
Segment (for
Packet
(IP header) example.
TCP Header)
Protocol
Data
Port number e TCP flags
Source Address
Destination Address
fig. 3.2 - Struttura di un pacchetto IP
40
3.1 Come funzionano le ACL
Ci sono delle linee guida che dovrebbero essere seguite quando si creano e
implementano le access list su un router:
• Si può assegnare solo una access list per ogni interfaccia, protocollo o
direzione del traffico. Questo significa che se si crea una access list di tipo
standard per il protocollo IP, se ne può avere solo una in ingresso e una in
uscita per ogni interfaccia.
• Si dovrebbe organizzare in modo tale che i test più specifici siano all’inizio
della lista.
• A meno che la lista non finisca con il comando permit any tutti i
pacchetti saranno scartati se non sono compatibili con almeno una regola.
Ogni lista dovrebbe avere almeno un comando permit altrimenti é come
spegnere l’interfaccia.
• Non si può togliere una singola linea da una lista. Se si compie questa
operazione si rimuove tutta la lista. Per modificare una ACL bisogna
copiarla in un editor di testo, apportare le modifiche e poi riapplicarla sul
router.
• Dopo aver creato una access list si deve applicare ad una interfaccia. Se si
crea una lista, ma non si applica a nessuna interfaccia, non ci sarà nessun
filtro.
• Le access list sono progettate per filtrare il traffico attraverso il router.
Esse non filtrano il traffico generato dal router.
• Si dovrebbero mettere le access list IP standard il più vicine possibile alla
destinazione.
• Si dovrebbero mettere le access list IP extended il più vicine possibile alla
sorgente.
Vediamo in particolare il motivo di queste ultime due regole cominciando
dalla penultima e prendendo come esempio la rete mostrata nella figura 3.3.
Abbiamo visto che le ACL standard prevedono la possibilità di filtrare il traffico
solo in base all’indirizzo sorgente. Supponiamo che si voglia impedire l’accesso ad
Internet agli host della LAN 1, senza limitare l’accesso alle altre reti connesse ai
router R2 e R3. Se imposto la ACL su R1 blocco tutto il traffico proveniente dalla
rete LAN 1, anche quello diretto a R3 e a R2; quindi devo per forza impostare la
ACL sull’ultimo router prima della destinazione. In particolare, se una ulteriore
LAN fosse connessa a R3, devo mettere la ACL solo sulla porta di uscita verso
Internet del router R3, e non sulla porta che collega R3 a R1, altrimenti, di nuovo,
bloccherei il traffico verso R3 (e quindi anche verso R2).
Se invece uso le ACL estese, posso controllare anche l’indirizzo di
destinazione, quindi potrei mettere le ACL su R1 o su R3 (o su entrambi), cioè su
qualsiasi router presente nel tragitto tra sorgente e destinazione. In questo caso
41
conviene però impostare le ACL sul router più vicino alla sorgente, perché
elimino il traffico indesiderato prima che raggiunga, inutilmente, altri router.
INTERNET
R3
R1
R2
LAN 1
LAN 2
fig. 3.3 - Dove “mettere” le ACL
Inoltre bisogna ricordare l’ordine con il quale lavora una ACL: quando un
pacchetto arriva al router tramite una interfaccia sulla quale è stata definita una
ACL, esso viene confrontato con la prima regola della lista; se questa è soddisfatta
il pacchetto non viene confrontato con le regole successive, altrimenti viene
confrontato finché non soddisfa una regola oppure arriva alla fine della ACL e
viene rifiutato.
Per questo motivo abbiamo detto precedentemente che deve essere presente
almeno un comando permit, altrimenti è come spegnere l’interfaccia sulla quale è
applicata la ACL.
Oltre alle IP standard access list e alle IP extended access list è possibile
filtrare i pacchetti anche in base ad altri protocolli. Nella tabella successiva si può
vedere la lista completa dei tipi di ACL disponibili:
42
<1-99>
<100-199>
<200-299>
<300-399>
<400-499>
<500-599>
<600-699>
<700-799>
<800-899>
<900-999>
<1000-1099>
<1100-1199>
<1200-1299>
IP standard access list
IP extended access list
Protocol type-code access list
DECnet access list
XNS standard access list
XNS extended access list
AppleTalk access list
48-bit MAC address access list
IPX standard access list
IPX extended access list
IPX SAP access list
Extended 48-bit MAC address access list
IPX summary address access list
tab.3.1 Tipi di ACL Cisco
3.1.1 Sintassi.
Vediamo ora, entrando più nel dettaglio, come si scrive una ACL e il
significato della sua sintassi.
Router (config)#
Access-list <access-list-number> {permit | deny}
protocol
Source source-wildcard-mask
[operator source-port | source-port]
Destination destination-wildcard-mask
[operator destination-port | destination-port]
[established]
Sintassi di una ACL IP extended
Analizziamo le singole righe che la compongono:
Router (config)#
Router
è il nome del Router
Ad esempio:
Acme(config)#
Access-list access-list-number {permit | deny} protocol
access-list-number
è il numero della ACL. Come abbiamo
{permit | deny}
visto in precedenza, il numero specifica
anche il tipo della ACL (Tab. 3.1).
indica se si tratta di una ACL che accetta o
rifiuta i pacchetti. (permit=accetta,
deny=rifiuta)
43
protocol
indica il tipo di protocollo da controllare
può essere: IP, TCP, UDP, ICMP, GRE, IGRP
Ad esempio:
access-list 103 permit tcp
Source source-wildcard-mask
Source
Indirizzo
source-wildcard-mask
IP sorgente. Può essere any per
indicare un host qualsiasi, oppure
host<address> per indicare un host
specifico.
Serve per controllare più indirizzi di una
rete senza specificarli singolarmente. Il
funzionamento è spiegato più avanti.
Ad esempio:
172.30.16.0 0.0.15.255
[operator source-port | source-port]
operator
Può essere lt(less
source-port
than),gt(greater
than),eq(equal),neq(not equal),range.
Porta IP da controllare. Grazie agli
operatori, opzionali, si possono controllare
più porte con una sola riga di ACL.
Ad esempio:
gt 80
Indica di controllare tutte le porte
superiori alla 80.
Destination destination-wildcard-mask
Destination
Indirizzo IP
destinazione. Può essere any
per indicare un host qualsiasi, oppure
host<address> per indicare un host
specifico.
destination-wildcard-mask
Serve per controllare più indirizzi di una
rete senza specificarli singolarmente. Il
funzionamento è spiegato più avanti.
Ad esempio:
172.30.16.0 0.0.15.255
[operator destination-port | destination-port]
operator
Può essere lt(less than),gt(greater
destination-port
than),eq(equal),neq(not equal),range.
Porta IP da controllare. Grazie agli
operatori, opzionali, si possono più porte
con una sola riga di ACL.
Ad esempio:
gt 80
Indica di controllare tutte le porte
superiori alla 80.
44
•
[established]
Indica le sessioni gia instaurate.
3.1.2 Wildcard
Le wildcard sono utilizzate nelle ACL per specificare più host, reti o sottoreti.
Le wildcard si usano negli indirizzi di host o di reti per indicare una gamma
di indirizzi. Quindi per specificare un solo host l’indirizzo sarà del tipo:
172.16.30.5 0.0.0.0
che può essere anche scritto nella forma:
host 172.16.30.5
I quattro zeri della wildcard mask indicano che tutti e quattro i byte
dell’indirizzo devono corrispondere in maniera esatta. Per specificare, invece, che
un byte dell’indirizzo può assumere un valore qualsiasi, tutti i suoi bit devono
essere ‘uno’, ossia, il valore decimale è 255. Nell’esempio seguente è mostrato
come si indica una intera rete di classe C:
172.16.30.0 0.0.0.255
In questo caso i 3 byte più significativi devono coincidere, mentre l’ultimo
può assumere un qualsiasi valore.
Questi, naturalmente, sono solo 2 tra gli esempi più facili. Ma se si ha
bisogno di specificare una piccola sottorete le cose si complicano leggermente.
Innanzitutto si può specificare solo una sottorete la cui grandezza è una potenza
di due. Ad esempio posso specificare una sottorete di 64 o di 8 indirizzi, ma non
di 20 indirizzi. Supponiamo di dover filtrare una sottorete nella gamma di indirizzi
da 172.16.8.0 fino a 172.16.15.0. La logica con cui calcolare la wildcard mask è
abbastanza semplice: per ogni bit che non cambia all’interno della gamma di
indirizzi si mette uno ‘zero’, se invece il bit cambia si mette ‘uno’. Nel nostro
esempio i due bytes più significativi (172.16) sono uguali, quindi i primi due bytes
della wildcard mask saranno 0.0, il terzo byte può variare tra 8 (00001000) e 15
(00001111) pertanto la maschera dovrà essere 7 (00000111).
Come si può facilmente vedere i bit diversi sono i 3 meno significati
(00000111) quindi il numero decimale corrispondente sarà 7. Riguardo l’ultimo
byte (il meno significativo) sarà, ovviamente, 255 dato che l’ultimo indirizzo della
sottorete 172.16.15.0 è proprio 172.16.15.255, quindi tra 0 e 255 cambiano tutti i
bit.
Concludendo la wildcard mask sarà 0.0.7.255.
Vediamo ancora un esempio:
RouterA(config)# access-list 10 deny 172.16.16.0 0.0.3.255
45
In questo caso stiamo indicando al router di filtrare dalla rete 172.16.16.0
fino alla rete 172.16.19.0 (cioè fino all’indirizzo 172.16.19.255). Infatti
l’operazione di OR binario tra 16 e 3 fa proprio 19.
Vediamo un ultimo esempio:
RouterA(config)# access-list 10 deny 172.16.64.0 0.0.63.255
Qui l’ultimo indirizzo filtrato sarà 172.16.127.255, infatti il risultato
dell’operazione di OR tra 64 e 63 è proprio 127.
46
3.2 Implementazione della ACL sul router dei LNF
Come abbiamo detto all’inizio del capitolo, una delle prime misure per
difendere la rete da attacchi esterni è quella di impostare delle Access Control List
sul router che collega la LAN alla WAN.
In questo paragrafo vediamo come ciò è stato realizzato nella nostra rete.
3.2.1 Analisi dei requisiti.
Il primo passo è stato quello di individuare cosa avremmo voluto che le
ACL avessero filtrato. Per fare questo è stato necessario consultarsi con i
responsabili dei vari Servizi dei LNF al fine di sapere se ci fossero eventuali nodi,
che per fornire servizi all’esterno, non sarebbero potuti essere filtrati. Dopo questi
incontri è stata stilata una lista di nodi, e di servizi attivi per ogni nodo. È
importante sapere anche il servizio, perché in questo modo si può lasciare aperta
solo la porta (o le porte) relative al quel servizio, e non tutte le porte di quell’host.
Ad esempio se c’è la necessità di un server web su un certo host basta lasciare
‘aperta’ la porta 80 di quell’host, e non tutte le altre.
Si è deciso inoltre che, ovviamente, dalla LAN dei LNF dovessero uscire
solo pacchetti con indirizzo sorgente appartenente a quelli assegnati ai Laboratori
stessi. Questo per evitare che si usi la LAN dei LNF per fare spoofing.
Un’altra esigenza che si è manifestata è stata quella di poter inserire una black
list, ovvero una lista dove aggiungere eventuali nodi vittima di attacchi. Questo per
far si che PC infettati da virus non siano tramite per la ulteriore diffusione del
virus stesso.
Inoltre, ovviamente, le ACL non avrebbero dovuto limitare in nessun modo
le funzionalità dei servizi centralizzati indispensabili quali email, WWW, DNS etc.
È stato deciso che un accesso di tipo testuale dall’esterno fosse
indispensabile. Però lasciare la possibilità a chiunque di fare telnet su tutti i nodi
sarebbe stato un ‘buco’ di sicurezza impossibile da tenere sotto controllo. Inoltre,
ricordando che il protocollo telnet non è cifrato, ne per la sessione, ne tantomeno
per la password, è stato deciso di non usarlo. Si è quindi scelto di usare il
protocollo ssh per il login testuale e di limitare la possibilità di collegarsi dalle reti
esterne solo su una macchina dove tutti i dipendenti hanno un account. Quindi se
si ha l’esigenza di collegarsi ad una macchina qualsiasi all’interno della LAN (ad
esempio il proprio PC) si deve prima aprire una sessione ssh verso l’unica
macchina autorizzata, e una volta autenticati su questa (e quindi all’interno della
LAN) si può aprire una sessione su qualunque altro nodo della intranet, a questo
punto anche in telnet.
È stata mantenuta la possibilità di utilizzare il protocollo Appletalk, quindi si
è aperto un tunnel Appletalk su IP.
È stato lasciato aperto tutto il traffico dei pacchetti ICMP, impostando però
una limitazione di banda per questo tipo di traffico. Questo permette di utilizzare
47
il protocollo, ad esempio per poter usare la funzione ping, ma nello stesso tempo
evita la possibilità di attacchi di tipo ping-flood.
3.2.2 Packet filtering in uscita.
Per prima cosa è stata impostata una ACL standard sulla porta del router
connessa alla LAN dei Laboratori nella direzione di uscita verso la WAN (fig.3.4).
Dati
SA DA
LNF LAN
LNFGW
Ip access-group <numero access-list> out
fig. 3.4 - ACL in uscita sul router d’accesso
Questa ACL serve per far si che dalla LAN escano solo ed esclusivamente
pacchetti con i numeri IP delle reti appartenenti alla LAN. Questa che potrebbe
sembrare una misura di sicurezza superflua è necessaria per evitare il fenomeno
dell’”IP Spoofing”. Questo fenomeno si ha quando un hacker prende il controllo di
una macchina, e fa uscire da questa dei pacchetti contenenti una intestazione con
l’indirizzo IP sorgente modificato. Impostando questa ACL eventuali pacchetti
“contraffati” vengono bloccati dal router impedendone così l’uscita dalla rete e
quindi lo spoofing.
Nella tabella seguente (tab.3.2) si può vedere come può essere inserita in un
router questa ACL:
no access-list 1
!
access-list 1 permit 193.206.80.0
access-list 1 permit 192.135.25.0
access-list 1 permit 192.135.26.0
access-list 1 permit 192.84.128.0
access-list 1 deny any log
exit
0.0.7.255
0.0.0.255
0.0.0.255
0.0.3.255
!
tab3.2 - ACL in uscita sul router d’accesso.
Vediamo il significato delle singole linee che la compongono:
48
no access-list 1
Questa riga serve per cancellare la ACL numero 1 precedentemente attiva.
Come abbiamo visto nel paragrafo precedente, non si può modificare una ACL
togliendo una singola riga o aggiungendone una in un punto qualsiasi. Il trucco
per fare ciò consiste nel cancellare tutta la lista e riscriverla. Per evitare di
cancellare ogni volta una lista, ed evitare quindi che ci si possa dimenticare di
farlo, è utile inserire in testa ad ogni ACL il comando che cancella la ACL con lo
stesso numero di quella che si sta impostando.
!
Il punto esclamativo serve per scrivere un commento. Tutto ciò che segue,
sulla stessa riga, viene ignorato.
access-list 1 permit 193.206.80.0 0.0.7.255
Qui cominciano le regole vere e proprie. In particolare questa riga abilita in
uscita il traffico proveniente dalla rete 193.206.80.0 con netmask 255.255.248.0
ovvero dall’host 193.206.80.1 (l’indirizzo 193.206.80.0 è l’indirizzo della rete
stessa) fino all’host 193.206.87.254. (l’indirizzo 193.206.87.255 è l’indirizzo del
broadcast). Questo perché la wildcard mask è semplicemente la negazione logica
(not) della netmask.
access-list 1 permit 192.135.25.0 0.0.0.255
Questa riga è analoga alla precedente. L’unica differenza è che qui la rete è la
192.135.25.0 soltanto.
access-list 1 permit 192.135.26.0 0.0.0.255
Anche qui siamo in una situazione analoga alla precedente. L’unica
differenza è che qui la rete è la 192.135.26.0.
access-list 1 permit 192.84.128.0 0.0.3.255
Questa riga è analoga alla precedente. L’unica differenza è che qui la rete è la
192.84.128.0, e la netmask è 255.255.252.0.
access-list 1 deny any log
49
Questa riga serve per bloccare il traffico che non rispetta le regole
precedenti. Infatti il comando deny any blocca i pacchetti, provenienti da
qualsiasi host. Non dobbiamo dimenticare che le regole vengono eseguite in
ordine, quindi, se un pacchetto non trova riscontro con nessuna delle regole
precedenti questa riga, deve essere scartato. In precedenza avevamo anche visto,
però, che quando un pacchetto arriva alla fine di una ACL senza essere accettato
da nessuna regola viene automaticamente rifiutato. Quindi sembrerebbe del tutto
inutile inserire questa riga. L’utilità è nell’ultimo campo della riga: log. Questo
comando indica che tutti i pacchetti che trovano riscontro con questa regola
(quindi tutti i pacchetti scartati) vengono registrati. In questo modo si tiene traccia
del traffico “illecito”.
exit
Il comando exit serve per uscire dalla modalità di inserimento ACL e tornare
al sistema operativo del router. È sempre presente alla fine di ogni lista.
50
3.2.3 Packet filtering in entrata .
Ora prendiamo invece in esame la ACL impostata sulla porta esterna del
router nel senso di ingresso verso le LAN come illustrato nella figura seguente:
(fig.3.5)
Dati
SA DA
LNF LAN
LNFGW
Ip access-group <numero access-list> in
fig. 3.5 - ACL in ingresso sul router d’accesso
Vediamo adesso quali regole contiene la lista analizzandole a gruppi:
(in appendice B si può trovare la ACL completa. Per ragioni di riservatezza,
tutti gli indirizzi di host e di reti sono sostituiti da ‘x’)
no access-list 103
Come abbiamo visto in precedenza, questo comando serve per cancellare la
ACL precedentemente attiva con lo stesso numero.
! Black list
access-list 103 deny ip any host xxx.xxx.xxx.xxx log
access-list 103 deny ip any host xxx.xxx.xxx.xxx log
All’inizio della lista sono stati messi i comandi per bloccare gli accessi ad alcune
macchine rivelatesi “sotto attacco”. Con la sintassi specificata si impedisce tutto il
traffico IP (quindi TCP, UDP, etc.) su qualsiasi porta (any) degli host specificati;
in più tutti i tentativi di accesso sono registrati (log).
!
!Nodi particolari che devono essere completamente accessibili
!
access-list 103 permit ip any host xxx.xxx.xxx.xxx log
access-list 103 permit ip any host xxx.xxx.xxx.xxx log
51
Subito dopo viene una lista limitata di nodi che per motivi particolari devono
essere completamente (cioè a tutti i protocolli e su tutte le porte) accessibili.
!
! Permesso a tutte le connessioni TCP già stabilite
!
access-list 103 permit tcp any 193.206.80.0 0.0.7.255
access-list 103 permit tcp any 192.135.25.0 0.0.0.255
access-list 103 permit tcp any 192.135.26.0 0.0.0.255
access-list 103 permit tcp any 192.84.128.0 0.0.3.255
established
established
established
established
Questa parte è una delle più importanti. Il significato di queste 4 righe è
quello di accettare tutte le connessioni TCP purché siano gia stabilite. In ognuna
della 4 righe è specificata una LAN con relativa netmask. In questo modo si
permette il transito dei pacchetti in ingresso nei casi in cui la connessione sia stata
instaurata da una macchina della LAN verso un nodo esterno, oppure sia
instaurata da un nodo esterno verso l’interno purchè permessa dalle regole
successive. Questo meccanismo evita la maggior parte degli attacchi esterni.
Inoltre, siccome la maggior parte del traffico è costituito proprio da pacchetti di
questo tipo (cioè relativi a connessioni già stabilite), se si inseriscono le regole che
effettuano questo controllo all’inizio della lista, si ottiene anche il vantaggio che i
pacchetti vengono confrontati con un numero limitato di regole alleggerendo
notevolmente il carico di lavoro della CPU del router.
!
! Permesso di tutti i nodi
!
access-list 103 permit tcp
access-list 103 permit udp
access-list 103 permit tcp
access-list 103 permit tcp
access-list 103 permit udp
access-list 103 permit tcp
ai dns e smtp in IP
any
any
any
any
any
any
host
host
host
host
host
host
<dns1/smtp2>
<dns1/smtp2>
<dns1/smtp2>
<dns2/smtp1>
<dns2/smtp1>
<dns2/smtp1>
eq
eq
eq
eq
eq
eq
53
53
25
53
53
25
log
log
log
log
log
log
Queste 6 regole servono per permettere l’accesso ai server DNS del dominio
lnf.infn.it e ai server SMTP per permettere l’ingresso della posta elettronica.
In particolare si può vedere che sono 2 gruppi di 3 regole. Il primo gruppo è
relativo all’host che funziona da server DNS primario e server SMTP secondario;
il secondo gruppo è relativo all’host che fa da DNS secondario e al server SMTP
primario; questa architettura permette una ridondanza nel caso una delle due
macchina abbia un guasto. Per limitare la possibilità di accessi indesiderati sono
state lasciate aperte solo le porte necessarie a questi due protocolli cioè la porta
53 per il DNS (sia in UDP che in TCP per il zone-transfer) e la 25 per il server
SMTP.
52
!
! Permesso di tutti i nodi
!
access-list 103 permit tcp
access-list 103 permit tcp
access-list 103 permit tcp
ai server SSH del Calcolo (tcp 22)
any host xxx.xxx.xxx.xxx eq 22 log
any host xxx.xxx.xxx.xxx eq 22 log
any host xxx.xxx.xxx.xxx eq 22 log
Questa parte serve per consentire l’accesso da qualsiasi nodo esterno ai 3
specifici host del Servizio di Calcolo che consentono accesso tramite ssh. Anche
in questo caso è lasciata aperta esclusivamente la porta del protocollo ssh, cioè la
22. È stato scelto di usare il protocollo ssh invece del telnet in quanto il primo e
crittografato, quindi più sicuro.
!
! Permesso di tutti i nodi ai web server primari
! sulle porte http (tcp 80) e https (tcp 443)
!
access-list 103 permit tcp any host 193.206.84.219
access-list 103 permit tcp any host 193.206.84.220
access-list 103 permit tcp any host 193.206.84.198
access-list 103 permit tcp any host 193.206.84.219
access-list 103 permit tcp any host 193.206.84.220
access-list 103 permit tcp any host 193.206.84.198
eq
eq
eq
eq
eq
eq
80 log
80 log
80 log
443 log
443 log
443 log
In questa sezione di ACL sono inserite le regole che permettono l’accesso da
qualsiasi nodo della rete (any) ai tre server Web. Come indicato nel commento che
precede le regole vere e proprie sono aperte le porte: 80 per il protocollo http, e
443 per il protocollo https.
!
access-list 103 permit tcp host yyy.yyy.yyy.yyy host xxx.xxx.xxx.xxx
eq 443 log
!
Questa regola serve per una esigenza particolare: c’è un nodo di Trieste (qui
indicato con yyy.yyy.yyy.yyy che deve accedere ad un particolare server web con
una sessione https (quindi porta 443) sito a Frascati (nodo xxx.xxx.xxx.xxx).
!
! Permesso di tutti i nodi a web server secondari sulla porta http
! (tcp http-80,https-443,rtsp-554)
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 8080 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 554 log
access-list 103 permit udp any host 193.206.xxx.xxx eq 554 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
53
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 80 log
Questa serie di regole serve per consentire l’accesso da qualsiasi nodo
esterno alla LAN ad alcuni server di servizi particolari. Anche in questo caso i vari
nodi sono indicati tutti con la stessa sigla 193.206.xxx.xxx.
!
! Permesso di tutti i nodi verso i server AFS
!
access-list 103 permit tcp any host 193.206.xxx.xxx range 7000 7009
log
access-list 103 permit tcp any host 192.84.xxx.xxx range 7000 7009
log
access-list 103 permit tcp any host 193.206.xxx.xxx range 7000 7009
log
access-list 103 permit tcp any host 192.84.xxx.xxx range 7000 7009
log
access-list 103 permit tcp any host 192.135.xxx.xxx range 7000 7009
log
access-list 103 permit tcp any host 192.135.xxx.xxx range 7000 7009
log
!
! Permesso di tutti i nodi per le call-back di afs (porta tcp 7001)
!
access-list 103 permit tcp any any eq 7001 log
!
! Permesso di accesso ai server di autenticazione AFS
!
access-list 103 permit udp any host 193.206.xxx.xxx eq 750 log
access-list 103 permit udp any host 193.206.xxx.xxx eq 750 log
Questa porzione di ACL serve per il corretto funzionamento del file-system
AFS (Andrew file-system). Quest’ultimo è un file-system distribuito quindi è
necessario che i nodi che lo compongono possano scambiarsi informazioni
secondo un protocollo prestabilito che prevede l’uso dei protocolli TCP e UDP
sulle porte da 7000 a 7009 e sulla porta 750 per l’autenticazione.
!
! Permesso di accesso a agli NTPserver sulla porta
!
access-list 103 permit udp any host 193.206.84.121
access-list 103 permit udp any host 192.84.130.151
access-list 103 permit udp any host 193.206.84.123
access-list 103 permit udp any host 192.84.130.153
ntp(123)
eq
eq
eq
eq
123
123
123
123
log
log
log
log
Queste quattro regole servono per permettere la sincronizzazione dei
quattro server NTP (Network Time Protocol) con altri server esterni. Il protocollo
NTP usa il protocollo UDP sulla porta 123.
54
!
! Permesso al tunnel Appletalk (gre/ip)
!
access-list 103 permit gre any host 193.206.xxx.xxx log
Questa regola serve per consentire il traffico AppleTalk, cioè un protocollo
di rete proprietario della Apple Computer. La regola consente il traffico dei
pacchetti da qualsiasi nodo esterno (any) al router che gestisce il tunnel Appletalk
qui indicato con l’indirizzo: 193.206.xxx.xxx.
!
! Permesso del router GARR-B a fare telnet al router lnfgw
!
access-list 103 permit tcp host 193.206.xxx.xxx host
193.206.yyy.yyy eq 23 log
Questa regola permette al router del GARR (GARR sta per “Gruppo per
l'Armonizzazione delle Reti della Ricerca", cioè è l’organismo che gestisce la rete
dell’Università e della Ricerca in Italia) di aprire una connessione di tipo telnet
verso il router dei LNF.
!
! Permesso di tutti i nodi ad aprire una connessione sulle porte ftp
(protocollo TCP, porte 20, 21) di un nodo particolare
!
access-list 103 permit tcp any host 193.206.aaa.aaa eq 20 log
access-list 103 permit tcp any host 193.206.aaa.aaa eq 21 log
!
! Permesso di tutti i nodi aprire una connessione sulle porte ftp e
telnet (protocollo TCP, porte 20, 21, 23) di un nodo particolare
!
access-list 103 permit tcp any host 193.206.bbb.bbb eq 20 log
access-list 103 permit tcp any host 193.206.bbb.bbb eq 21 log
access-list 103 permit tcp any host 193.206.bbb.bbb eq 23 log
Questa serie di regole serve per consentire l’accesso da nodi esterni qualsiasi
e dei nodi interni che svolgono servizi specifici. Ad esempio i server
193.206.aaa.aaa e 193.206.bbb.bbb sono usati dall’ufficio ‘direzione del personale
per lo scambio di dati attraverso il protocollo FTP che prevede l’uso della porta
20 per il flusso dei dati, e della 21 per il controllo.
Le altre 3 regole sono analoghe ma per un servizio diverso e in più per il
protocollo telnet sulla porta 23. Di regole di questo tipo ne seguono molte, mi
limito a commentare queste perché le altre si differenziano solo per l’indirizzo del
nodo destinazione (LNF) o per la sorgente (che in genere è any oppure un nodo
specifico). Comunque la ACL completa si trova in appendice B.
!
! Divieto a tutto il traffico TCP
55
!
access-list 103 deny tcp any any log
!
! Divieto a tutti i nodi verso le porte alte UDP "pericolose":
!
NFS
(udp e tcp porta 2049),
!
MySQL
(tcp e udp porta 3306),
!
fontsrv (udp e tcp porte 7000 e 7100
!
webmin (udp porta 10000
!
access-list 103 deny udp any any eq 2049
log
access-list 103 deny udp any any eq 3306
log
access-list 103 deny udp any host 193.206.84.107 eq 7000 log
access-list 103 deny udp any any eq 7100
log
access-list 103 deny udp any any eq 10000
log
!
! Permesso di tutti i nodi verso le porte alte udp (>1024)
!
access-list 103 permit udp any any gt 1024
access-list 103 deny
udp any any
Questi 3 blocchi di ACL sono molto importanti e servono per implementare
la seguente “politica” di accesso: si vogliono bloccare tutti i pacchetti TCP
provenienti dall’esterno tranne quelli appartenenti a connessioni precedentemente
stabilite (vedi connessioni established all’inizio della ACL). In questo modo si
bloccano tutti i tentativi di attacco via TCP che sfruttano, ad esempio, bachi di
servizi quali FTP, HTTP, telnet e simili senza limitare l’operatività della rete.
L’unico limite derivante da ciò sarebbe l’impossibilità di usare questi servizi su una
macchina qualunque della LAN. Come vedremo nel capitolo dedicato, questo è
stato risolto grazie all’uso del tunneling SSL e, in via sperimentale, mediante le
Virtual Private Network (VPN). Per quanto riguarda invece il protocollo UDP,
non essendo orientato alla connessione, non si può attuare una politica simile. Si è
deciso allora di scartare tutti i pacchetti UDP destinati alle porte inferiori alla
1024, che in genere fanno riferimento a servizi standard (infatti le porte dalla 1 alla
1024 sono anche conosciute con il nome di Well Known Ports), tranne alcuni servizi
particolari; e di accettare tutti i pacchetti UDP destinati alle porte sopra la 1024
tranne quelli relativi a porte note quindi più facilmente vulnerabili.
!
! permesso di tutti i nodi al ping
!
access-list 103 permit icmp any any log
Il significato di questa regola è abbastanza intuitivo, serve per consentire il
traffico ai pacchetti di controllo del protocollo icmp (Internet Control Message
Protocol)
!
! Divieto a tutto il resto
56
!
access-list 103 deny ip any any log
L’ultima riga della ACL serve, come nel caso della ACL precedente, per
registrare (log) tutti i tentativi di accesso falliti che non sono stati riscontrati da
nessuna delle regole precedenti.
In aggiunta a questa ACL (103) ce ne sono altre due che servono per evitare
altri due tipi di attacco: il SYN-Flood (ACL 104) e il ping-Flood (ACL 105).
Vediamole in dettaglio.
57
3.2.4 ACL contro SYN-Flood.
Questa ACL sfrutta la funzionalità TCP intercept implementata sui software
dei router Cisco a partire dalla versione IOS 11.2 F per ovviare a Denial-ofService dovuti al SYN-Flood. Questo tipo di attacco è spiegato in dettaglio nel
capitolo 2, rivediamo brevemente qual’è il suo meccanismo:
il nodo di attacco invia dei pacchetti SYN al server di un servizio.
i pacchetti hanno il campo dell’indirizzo sorgente falsificato.
il server risponde all’indirizzo falsificato e la connessione non viene mai stabilita.
se il nodo di attacco manda i pacchetti abbastanza velocemente riesce a far si che
il server occupi tutte le sue risorse per rispondere e non riesca più ad erogare il
servizio che dovrebbe. In tal caso si ha quindi una mancanza del servizio (Denialof-Service).
La funzionalità TCP intercept permette di ovviare a ciò facendo si che la
connessione sia stabilita dal router stesso invece che dal server. In dettaglio
funziona così:
1. il nodo di attacco invia dei pacchetti SYN al server di un servizio.
il router intercetta i pacchetti TCP-SYN destinati a nodi interni alla LAN
specificati in una apposita access-list estesa.
il router cerca di stabilire una conessione con il client.
se la connessione avviene, il router stabilisce una connessione tra il server del
servizio e il client che l’aveva chiesta. In questo modo i tentativi di connessione da
nodi inesistenti non raggiungono mai il server.
inoltre se in un determinato intervallo di tempo le richieste di connessione
superano una certa soglia se ne possono scartare alcune. In questo modo si limita
anche il traffico.
La sintassi di questo tipo di ACL è simile alla precedente:
access-list <access-list-number>
{deny | permit} tcp any destination destination-wildcard
ip tcp intercept list <access-list-number>
Sintassi ACL TCP-Intercept
La ACL completa è in appendice B.
58
3.2.5 ACL contro ping-Flood.
Questa ACL sfrutta la funzionalità di Rate Limiting del software Cisco.
L’attacco di tipo ping-Flood mira, come il precedente, ad una interruzione
del servizio (Denial-of-Service). Questo viene portato semplicemente sfruttando i
pacchetti ICMP. Anche questo tipo di attacco è illustrato nel capitolo dedicato,
qui ricordiamo brevemente che funziona “inondando” il server di un servizio con
pacchetti ICMP. Il server, per rispondere a tutti i ping, è costretto a sprecare
risorse in termini di CPU e banda di rete. Se il rateo di arrivo dei ping è
sufficientemente elevato il server può collassare e provocare una interruzione del
servizio.
Per ovviare a questo il software dei router Cisco dispone della funzionalità di
limitazione del traffico. In questo modo al server arriva solo una quantità di
pacchetti tale da non metterlo in crisi; eventuali pacchetti eccedenti sono scartati
dal router.
La ACL è la seguente:
access-list 105 permit icmp any any echo
rate-limit input access-group 105 256000 8000 8000 conform-action
trasmit exceed-action drop
La prima riga serve per consentire il traffico di risposta ai comandi ICMP.
La seconda indica che il traffico relativo alla ACL 105 deve essere limitato a
256000 bps con un burst di 8000 bps e un burst massimo ancora di 8000 bps. I
pacchetti che non eccedono questo traffico vengono accettati (trasmit) quelli che
invece eccedono il traffico vengono scartati (drop).
59
Capitolo 4
Test delle vulnerabilità
4.1 – Introduzione.
Nelle reti di grandi dimensioni, e con tipologia piuttosto complessa, come
quella oggetto di questo studio è, per vari motivi, praticamente impossibile
rilevare i servizi presenti su tutti i nodi e gli eventuali buchi di sicurezza.
Innanzitutto bisogna considerare che la maggior parte della macchine non
sono gestite direttamente dal centro di calcolo, ma da altri gruppi o da singoli
utenti. Questo fa si che l’amministratore della rete, o il responsabile della
sicurezza, non siano a conoscenza di quali servizi siano attivi sulle macchine e
quali versioni dei vari software siano presenti. In questo modo anche se ci sono
dei bug di sicurezza noti alla comunità rimane responsabilità del singolo gruppo o
utente tenere aggiornato il proprio software, e ciò spesso esula dalle loro
competenze.
Ad esempio un gruppo può aver bisogno di aprire un server FTP per
condividere dei dati all’interno della LAN dei Laboratori. Per soddisfare questa
esigenza esistono moltissimi software praticamente per ogni piattaforma; risulta
quindi impossibile sapere se tutti i servizi FTP della rete sono al sicuro da buchi
noti.
Bisogna poi considerare che anche sulle macchine di competenza diretta del
centro di calcolo sono installati vari sistemi operativi, e su ognuno di essi più tipi
di servizi (vedi 1.4 Servizi di rete). Anche in questo caso essere sempre sicuri di
avere versioni prive di buchi conosciuti diventa un compito piuttosto impegnativo
se il numero di macchine, e soprattutto di servizi, non è piccolo.
È anche vero che i filtri sul router di frontiera impediscono comunque
l’accesso a un nodo qualunque della rete, ma se un hacker riuscisse ad entrare
nella LAN (mediante un buco di sicurezza di una macchina alla quale si può
accedere dall’esterno, o più banalmente entrando fisicamente nella LAN) avrebbe
la possibilità di tentare di entrare in altri nodi.
Un primo aiuto a chi si occupa di sicurezza viene da alcuni software
conosciuti come port scanner. Il compito di questi software è quello di fare una
scansione di tutte le porte IP di un nodo di una rete alla ricerca di quelle aperte.
60
Grazie a questi programmi si può sapere, abbastanza velocemente e
agevolmente, quali servizi sono attivi su ogni nodo, infatti, per ogni porta aperta
viene generalmente fornito anche il nome del servizio che è attivo su quella porta.
Uno dei più diffusi port scanner è nmap che gira sotto linux. Nella tabella
seguente si può vedere un tipico esempio di output di nmap:
[root@nessus root]# nmap pcmasciarelli
Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on pcmasciarelli.lnf.infn.it (193.206.85.3):
(The 1548 ports scanned but not shown below are in state: closed)
Port
State
Service
135/tcp
open
loc-srv
139/tcp
open
netbios-ssn
1025/tcp
open
listen
5800/tcp
open
vnc
5900/tcp
open
vnc-http
6000/tcp
open
X11
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
[root@nessus root]#
Tipico output di nmap
In questo esempio, si può vedere che lanciando il programma su un host (nel
caso specifico sulla macchina ‘pcmasciarelli’, con numero IP 193.206.85.3)
ottengo la lista delle porte utilizzate con l’indicazione del protocollo (TCP o
UDP), lo stato (in questo caso ‘open’) e il nome del servizio che utilizza la porta.
È anche da notare che il tempo necessario per la scansione è stato trascurabile (0
secondi); questo perché il programma è stato lanciato su un solo host bersaglio. Se
si lancia il programma su più bersagli contemporaneamente o anche su una
macchina protetta da un firewall i tempi possono allungarsi anche notevolmente .
Questo programma è gia un aiuto per conoscere meglio la propria rete e
capire quali possono essere le macchine più ‘aperte’ (quindi, in genere, più
attaccabili) e con i servizi che hanno più probabilità di essere affetti da bug.
L’informazione che si ottiene, però, è piuttosto limitata: ad esempio se
scopro che su una macchina è attivo un server http, non posso comunque sapere
quale programma ne tantomeno quale versione è installata.
Per conoscere queste informazioni serve un’altra categoria di programmi
conosciuta come ‘vulnerability scanner’; uno dei più diffusi è Nessus.
61
4.2 – Caratteristiche tecniche:
Come scritto nel paragrafo precedente, Nessus è un vulnerability scanner,
vediamo in breve quali sono le sue caratteristiche tecniche più interessanti.
Innanzitutto vediamo cosa fa Nessus:
• Cerca i servizi attivi su una macchina, anche su porte non standard. Ad
esempio non cerca i server http solo sulla porta 80, ma su tutte le porte.
• Identifica le versioni dei programmi che rispondono alle chiamate sulle
porte aperte.
• Identifica il sistema operativo remoto.
• A richiesta, prova realmente gli exploit noti.
• Riconosce molti client usati per lanciare dei DDoS (Trin00, Stacheldraht,
Trinity);
• A richiesta, può lanciare dei DoS.
•
•
•
•
•
•
•
•
•
Caratteristiche tecniche:
Architettura a plug-in: ognuno può scrivere un proprio exploit senza avere
una conoscenza approfondita del ‘motore’ del programma.
Linguaggio proprietario: grazie a NASL (Network Attack Scripting
Language) è più facile scrivere gli exploit da provare. È comunque
possibile anche scrivere exploit nel più comune linguaggio C.
Database aggiornato: esiste una comunità di sviluppatori che mantiene
costantemente aggiornato il database di vulnerabilità.
Supporto
CVE:
(Common
Vulnerabilities
and
Exposures
http://www.cve.mitre.org), un dizionario di nomi standard per
identificare univocamente vulnerabilità e problemi di esposizione delle
informazioni;
Architettura client-server: è possibile analizzare diverse reti dal proprio PC
anche installando il programma che effettua la scansione (daemon) su
un'altra macchina (ad esempio una macchina dedicata). La comunicazione
tra client e server avviene in maniera cifrata.
Parallelismo: si possono lanciare contemporaneamente più client da
postazioni diverse (o anche dalla stessa) che fanno riferimento ad un unico
server su cui gira il daemon di Nessus.
Velocità di esecuzione: (scan in multithread e timeout plug-in modificabile).
Inoltre Nessus può controllare più macchine in parallelo; il limite è solo la
potenza della CPU sulla quale gira e dalle risorse di rete disponibili.
Riconoscimento intelligente: Nessus riconosce i servizi dal banner fornito e
non dal numero di porta sulla quale rispondono.
Cooperazione: vengono evitati i test di exploit inutili a seconda delle
opzioni che il servizio analizzato mette a disposizione (Se un server FTP
non permette accesso anonimo, verranno saltati tutti gli exploit che
necessitano di questa caratteristica).
62
•
•
•
•
•
•
•
Completezza: dopo aver individuato l'exploit, viene fornita anche la
soluzione al problema (cosa modificare, che patch scaricare, ecc...).
Esportabilità: terminata l'analisi della rete, è possibile avere il report degli
exploit in vari formati (html, ASCII, LaTeX)
Supporto multilingue: per ora Inglese a Francese ma presto arriveranno
anche altri supporti.
Portabilità: Nessus può funzionare su molti sistemi Unix. Sul sito è
disponibile il pacchetto per Linux, ma i sorgenti, sempre disponibili sul
sito, sono stati compilati con successo anche su altri sistemi Unix come
Solaris e FreeBSD.
Sicurezza: Nessus supporta pienamente il protocollo SSL, può quindi
verificare servizi quali: https, smtps, imaps e altri. Inoltre, può usare
certificati per integrarsi in ambienti PKI.
Economicità: Nessus è rilasciato con licenza Open Source, quindi è
gratuito.
Supporto commerciale: se necessario, è possibile ottenere un supporto
commerciale opzionale, per la propria azienda.
63
4.3 – Installazione
Come scritto nel paragrafo precedente Nessus è basato su una architettura
client/server. Il server è generalmente utilizzato su piattaforma Linux, mentre il
client esiste anche per Windows. I requisiti hardware minimi del server non sono
eccessivamente elevati; bisogna considerare comunque che più memoria RAM si
ha a disposizione, tanto più le scansioni si possono lanciare in parallelo, e tanto
più velocemente si otterranno i risultati. I requisiti delle macchine dove dovrà
girare il client possono essere anche piuttosto modesti.
L’installazione di Nessus può avvenire in 3 modi diversi:
• Attraverso lynx (lynx è un browser http testuale).
• Manualmente, scaricando lo script di configurazione.
• Manualmente, scaricando i vari pacchetti e installandoli singolarmente.
Queste tre opzioni sono elencate in ordine di difficoltà crescente. La prima
opzione è la più semplice, è automatica, ma più pericolosa. L’ultima è la più lunga
e noiosa, ma è la più sicura e permette il controllo totale dei vari passi
dell’installazione.
L’installazione via lynx si può effettuare solo se la macchina è connessa
direttamente ad Internet perché il programma deve scaricare dal sito lo script di
installazione e tutti i successivi pacchetti di cui ha bisogno. La sua potenziale
pericolosità sta proprio in questo: lynx scarica e manda in esecuzione dei
programmi scaricati direttamente da Internet. Se un hacker avesse effettuato un
poisoning (vedi capitolo 2) del server DNS potrebbe eseguire sulla macchina
qualsiasi comando come se fosse digitato dall’utente che ha lanciato lynx. La
semplicità di questo metodo è nel fatto che tutto cio che si deve fare per installare
Nessus è digitare:
lynx –source http://install.nessus.org | sh
Il secondo metodo è un ottimo compromesso tra semplicità e sicurezza. Ciò
che si deve fare è scaricare da uno dei server consigliati nel sito ufficiale di Nessus
(http://www.nesssu.org) uno script e mandarlo in esecuzione. Lo script è
autosufficiente e non ha bisogno di scaricare null’altro dalla rete. Grazie a ciò si
può installare Nessus anche su una macchina non direttamente connessa ad
Internet e inoltre non c’è nessun problema di sicurezza. Dopo aver scaricato lo
script di circa 3 megabyte sulla macchina dove girerà il server di Nessus tutto ciò
che dobbiamo fare per installare il pacchetto è digitare:
sh nessus-installer.sh
•
•
Infine il terzo metodo richiede l’installazione manuale dei seguenti moduli:
nessus-libraries
libnasl
64
•
•
nessus-core
nessus-plugins
che vanno scaricati e compilati esattamente nell’ordine descritto. Questo è
anche l’unico modo per usare Nessus su sistemi Unix diversi da Linux (Solaris,
Compaq, etc).
La soluzione da noi adottata è stata la seconda. Vediamo nel dettaglio come
si è svolta l’installazione. Per l’installazione è stato scelto un server Dell. Le
caratteristiche di questa macchina, specifiche per essere utilizzata come server,
sono le seguenti:
• Dual Pentium III a 1GHz (256KB cache) bus 133MHz
• 512MB RAM 133MHz
• Scheda grafica integrata ATI Rage PRO 3D (4MB SGRAM)
• U160 WideSCSI integrata
• 2 dischi da 18 GB 10000 rpm
• CD-ROM, Floppy 1,44MB
• Doppia scheda LAN 10/100 (protocollo PXE integrato)
Su questa macchina è stato installata la distribuzione RedHat 7.3 di Linux.
Completata l’installazione del sistema operativo siamo passati
all’installazione di Nessus. Terminata la fase di installazione ci si trova sul disco
della macchina i seguenti directory:
/usr/local/etc/nessus
/usr/local/include/nessus
/usr/local/lib/nessus
/usr/local/var/nessus
/usr/local/var/nessus/users/nessus
/usr/local/com/nessus/CA
4.3.1 Struttura dei directory
Vediamo cosa contengono i directory appena elencati:
•
/usr/local/etc/nessus
In questo directory sono contenuti i file di configurazione. In particolare:
o
accounts.txt
o
nessusd.conf
Questo file è un file di configurazione utilizzato dal plug-in ‘accounts’
Questo è il file di configurazione del daemon di Nessus. Ad esempio
in questo file è scritto il numero massimo di hosts che è possibile testare
contemporaneamente (variabile max_hosts). Il valore predefinito è 30.
Questo valore va configurato in base alle dimensioni della rete, alla potenza
di calcolo della macchina sulla quale gira Nessus e alla banda che si vuole
dare a disposizione a Nessus. Prima di modificare questo valore si deve
tenere conto anche della variabile max_checks. Questo perché Nessus
65
lancia un numero di processi pari al prodotto delle due variabili. Ad
esempio lasciando i valori predefiniti vengono lanciati 30x10=300 processi.
Viste le dimensioni della rete dei LNF e la potenza della macchina da
noi usata abbiamo fatto delle prove e abbiamo aumentato questi valori per
far si che la scansione si concludesse in tempi ragionevoli.
o
nessusd.rules
o
queso.conf
Questo file contiene una serie di regole che permette di impedire o
consentire la scansione di particolari host o reti. Può essere utile se si vuole
essere certi di non eseguire mai scansione su macchine particolari quali
server di servizi importanti. Nel nostro impiego abbiamo lasciato il valore
predefinito default accept che permette di eseguire la scansione di
qualsiasi host.
Questo è il file di configurazione del plug-in QueSO. Questo plug-in
serve per interrogare un host e capire che tipo di sistema operativo ci gira.
In questo modo un eventuale hacker potrebbe utilizzare gli strumenti più
opportuni per quel particolare sistema.
•
/usr/local/include/nessus
Questo directory contiene i file include.
•
/usr/local/lib/nessus
Questo directory contiene le librerie necessarie per scriversi i propri
plug-in.
•
/usr/local/var/nessus
Questo directory è molto importante perché contiene molti altri
directory che è utile conoscere:
o
/CA
o
/logs
Contiene le chiavi private dei certificati RSA.
Contiene i file di log, e cioè i file: nessusd.dump e nesussd.messages.
Nel primo sono elencati eventuali messaggi di errore generati dai plug-in,
ad esempio per bachi di programmazione, che possono essere utili per il
debugging; nel secondo sono elencati una serie di messaggi utili per
controllare lo stato di esecuzione di Nessus. Ad esempio, ogni volta che
viene mandato in esecuzione il daemon di Nessus nel file
nessusd.messages viene scritto il messaggio:
nessusd 1.2.4 is starting up
Oppure ogni volta che si lancia un client viene scritto il messaggio:
connection from 127.0.0.1
66
dove 127.0.0.1 indica il fatto che il client è stato lanciato dalla stessa
macchina dove gira il daemon (localhost), altrimenti ci sarebbe stato il
numero IP della macchina che ha lanciato il client.
o
/report
Questo directory contiene i report generati da Nessus al termine della
scansione. I report possono essere salvati nel formato proprietario di
Nessus (.NBE) oppure in HTML.
•
/usr/local/var/nessus/users
In questo directory sono salvate tutte le impostazioni relative ai vari utenti di
Nessus. I più utili sono:
o
detached
o
kbs
o
Plugins
o
sessions
In questo directory sono contenuti dei file che indicano lo stato delle
scansioni detached. Questo tipo di scansione, molto utile per grandi reti, non
costringe l’utente di Nessus a tenere il client aperto per tutto il tempo della
scansione. Usando la scansione detached infatti si può aprire il client, impostare la
scansione, lanciarla e chiudere il client. Quando Nessus finisce la scansione
avverte l’utente tramite un breve report via email. A questo punto può lanciare
nuovamente il client e ottenere un report più dettagliato. Per tenere traccia delle
scansione in corso si usa il directory detached che contiene un file per ogni
sessione di scan eseguita. Il nome del file è il numero del processo lanciato dal
daemon nessusd, e il contenuto del file è la lista degli host sui quali è stata lanciata
la scansione.
In questo directory (il cui nome sta per Knowledge Data Base) sono
contenuti i file necessari per sfruttare la caratteristica di riuso delle informazioni
acquisite da scansioni precedenti di Nessus.
Come è facile intuire dal nome in questo directory finiscono i plugin scaricati
dall’utente. In realtà noi non abbiamo mai usato questo metodo, ma abbiamo
sempre
aggiornato
i
plugin
di
sistema
contenuti
in
/usr/local/lib/nessus/plugins, mediante il comando nessus-updateplugins. In questo modo i plugin aggiornati sono disponibili a tutti gli utenti.
Nel directory sessions ci sono dei file che contengono i dati sulle scansioni
eseguite e su quelle in corso. Grazie a questi file è possibile continuare delle
sessioni di scansione anche in caso di crash di Nessus durante una scansione. In
questo caso infatti è sufficiente rilanciare il client (che è si è chiuso in seguito al
67
crash) e usare l’opzione ‘restore session’. Le informazioni relative ad ogni
sessione sono memorizzate in due file, uno con i dati veri e propri, e uno di
indice. Il nome del file contiene la data e l’ora di inizio della scansione. Mediante il
programma Nessus è possibile scegliere su quale sessione lavorare oltre che
tramite la data anche in base al nodo bersaglio della scansione (fig. 4.1)
fig. 4.1 - Schermata con le sessioni eseguite
•
/usr/local/com/nessus/CA
In questo directory è contenuta la chiave pubblica del certificato CA.
68
4.4 – Utilizzo
In questo capitolo vedremo come utilizzare al meglio Nessus dopo averlo
installato. Infatti Nessus è altamente configurabile e ottimizzabile in base a vari
parametri che possono essere: la dimensione della rete, lo scopo per il quale i nodi
della rete sono utilizzati, la velocità della rete, la potenza della macchina sulla quale
gira Nessus, quante persone sono deputate all’utilizzo di Nessus. Considerando
tutte queste variabili, ottimizzeremo il programma per avere risultati validi in
tempi accettabili, senza ‘disturbare’ il comportamento della rete e senza far correre
pericoli di DoS ai server presenti in rete.
Dopo aver installato il programma, per prima cosa si deve creare una utenza,
per farlo si usa il comando:
nessus-adduser
che chiede il nome da usare come login (da non confondere con il login per
accedere alla macchina sulla quale gira nessusd, infatti Nessus usa un database di
utenze proprio), la password e eventuali ‘regole’ (rules). Le regole servono per
restringere la possibilità di scansioni ad alcuni utenti. In questo modo si possono
designare alcune persone ad effettuare scansioni di un sottoinsieme delle
macchine della rete, ad esempio solo di quelle di loro competenza. Ciò può essere
molto utile per organizzazioni con reti molto estese e gestite da più gruppi; in
questo modo il singolo gruppo non deve installarsi il proprio Nessus, tutti usano
lo stesso programma semplificando notevolmente il lavoro di gestione e
mantenimento del programma.
A questo punto si può configurare il programma secondo le proprie esigenze
andando a modificare il file:
/usr/local/etc/nessus/nessusd.conf
Dettagli sulla configurazione di questo file li vedremo nel paragrafo
successivo. Si può comunque cominciare a fare scansioni anche senza ottimizzare
la configurazione.
Il passo successivo è lanciare il programma. Abbiamo detto che Nessus è
composto da un server che gira come un daemon e da un client sul quale l’utente
agisce per impostare la scansione. Quindi per prima cosa bisogna lanciare il
daemon da una finestra terminale, come utente “root”, nel seguente modo:
nessusd –D
69
dove l’opzione “–D” serve proprio per far si che il server Nessus giri in
background, cioè in modalità daemon. Per conoscere le altre opzioni del comando
nessusd si può consultare la pagina di help con il solito:
man nessusd
A questo punto si può lanciare il client che usa una interfaccia grafica. La
prima schermata che compare è quella di login (fig. 4.2)
fig. 4.2 - Schermata di login
Nel nostro caso, dato che il client e il server (daemon) girano sulla stessa
machina nel campo “Nessusd Host” lasceremo il valore di default, cioè
“localhost”. Il campo successivo indica su quale porta TCP e UDP avviene la
comunicazione tra il client e il server; quella di default è la 1241, conviene lasciarla
inalterata, anche perché è regolarmente registrata presso lo IANA. Più in basso ci
sono i campi per l’autenticazione: i classici “Login” e “Password”, più in basso
ancora il tasto che ci permette di accedere agli altri campi, una volta autenticati:
70
“Log In”. Come si può vedere dalla figura 4.2 l’interfaccia del programma è
organizzata in otto pagine sovrapposte delle quali quella di login è la prima.
Una volta “entrati” nel programma si apre la seconda:”Plugins” (vedi fig.
4.3). In questa schermata si possono vedere quali sono i moduli (plugin) presenti
suddivisi in categorie e si possono attivare o disattivare sia per categorie, sia
singolarmente.
fig. 4.3 - Schermata dei plugin
71
Nella semifinestra superiore sono elencate le categorie in cui sono suddivisi i
plugin; selezionandone una nella finestra inferiore compaiono i singoli plugin
appartenenti a quella categoria. In questo modo posso selezionare facilmente i
plugin desiderati. Per semplificare le operazioni sono inoltre presenti i tasti
“Enable all” per selezionare tutti i plugin, “Disable all” per disabilitare tutti i
plugin. Un altro tasto molto utile è “Enable all but dangerous plugins” che
permette di abilitare solo i plugin non pericolosi, cioè quelli che non creano DoS e
che non mandano in crash le macchine. Questo si è rivelato molto utile per fare
scansioni di macchine di utenti esterni al Servizio. Un altro tasto utile è “Filter…”:
mediante questo tasto si possono fare ricerche all’interno della lista dei plugin
utilizzando i seguenti campi identificativi dei plugin:
• Name
• Description
• Summary
• Author
• ID number
• Category
La terza pagina (fig. 4.4) serve per impostare le preferenze. È una pagina
molto lunga in quanto sono elencate tutte le preferenze dei singoli plugin. Nel
prossimo paragrafo (4.5) vedremo quali sono stati i più utili per la nostra
esperienza.
72
fig. 4.4 - Schermata di impostazione delle preferenze
La quarta pagina consente di impostare le opzioni di scansione (“Scan
options”). È importante notare che comunque vengono considerate anche le
impostazioni scritte nel file /usr/local/etc/nessus/nessusd.conf. In particolare se
nel file sono impostati dei limiti (ad esempio il numero di host su cui effettuare la
scansione in contemporanea) questi non possono essere superati anche se nella
finestra si inseriscono valori maggiori. Nella fig. 4.5 è possibile vedere questa
pagina.
73
fig. 4.5 - Schermata di impostazione delle opzioni
•
•
•
•
•
Vediamo il significato di questi campi:
Port range: definisce quale intervallo di porte deve essere preso come
bersaglio della scansione. Maggiore è il numero delle porte più tempo
prenderà la scansione.
Number of hosts to test at same time: definisce su quanti nodi della rete
eseguire la scansione in contemporanea. Più è alto maggiori saranno la
larghezza di banda utilizzata della rete e la potenza di calcolo richiesta alla
macchina dove gira Nessus.
Number of checks to perform at the same time: definisce il numero
massimo di test da effettuare contemporaneamente su un nodo.
Path to the CGIs: in questo campo si può inserire una lista di directory
nelle quali Nessus dovrà cercare i CGI dei server web dei quali effettua la
scansione.
Do a reverse lookup before testing: attivando questa opzione, e indicando i
bersagli della scansione tramite numero IP, Nessus esegue una ricerca dei
nomi dei nodi prima di eseguire la scansione. Attivando questa opzione si
rallenta leggermente la scansione.
74
•
•
•
•
•
•
Optimize the test: questa opzione fa si che Nessus eviti di eseguire test
apparentemente inapplicabili. Questo può far si, almeno in teoria, che ci
siano falsi negativi, cioè problemi di sicurezza non rilevati. Il vantaggio è
che in questo modo si velocizza di molto la scansione.
Safe check: alcuni test eseguiti da Nessus possono bloccare i server remoti
disabilitando i servizi temporaneamente o anche fino al successivo riavvio
della macchina. Abilitando questa opzione Nessus non esegue l’attacco
vero e proprio ma si limita a fidarsi del “banner” ricevuto. In questo modo
si ottengono risultati meno affidabili ma senza correre pericoli di crash.
Questa opzione andrebbe attivata dal punto di vista della ricerca della
massima sicurezza, mentre andrebbe disattivata dal punto di vista
dell’amministrazione dei servizi di rete.
Designate hosts by their MAC address: questa opzione permette di
identificare i nodi della rete tramite il loro MAC address. È particolarmente
utile per fare il controllo di reti che usano il protocollo DHCP.
Detached scan: questa opzione è molto importante. Serve per lanciare delle
scansioni in background. Selezionandola si può impostare la scansione,
lanciarla e uscire dal client. Quando il daemon di Nessus finisce
l’operazione manda un email. Riaprendo il client si può vedere il report ed
eventualmente salvarlo.
Continuos scan: selezionando l’opzione precedente si attiva la possibilità di
scegliere anche questa opzione. Lo scan continuo consiste nel lanciare una
scansione in background e, una volta terminata, attendere un tempo
impostabile e ricominciarne un’altra. Questo può essere utile per tenere
una rete continuamente sotto controllo. È molto importante impostare
correttamente le opzioni della Knowledge Base come vedremo
successivamente.
Port scanner: in questa finestra si può scegliere quale programma di “port
scanner” utilizzare, tra i quali nmap di cui abbiamo già parlato.
La schermata successiva è quella relativa alla selezione dei nodi da testare:
“Target selection”, si può vedere nell’immagine seguente (fig. 4.6)
75
fig. 4.6 - Schermata di selezione dei nodi da testare
Nella casella di testo chiamata “Target(s)” si inserisce l’identificativo del
nodo da testare. È possibile specificare una gamma di nodi semplicemente
indicando il primo e l’ultimo separati da un trattino; è anche possibile specificare
una lista di nodi ‘sparsi’ scrivendoli separati da una virgola. Tramite il tasto “Read
file…” si può anche far leggere a Nessus un file contenente i nodi da controllare.
È anche possibile, utilizzando una richiesta AXFR, far si che Nessus interroghi il
DNS e esegua il test su tutte le macchine conosciute dal DNS server.
La pagina successiva è “User”. In questa pagina (fig 4.7) è possibile inserire
delle regole (rules) per limitare l’attività di alcuni utenti di Nessus.
76
fig. 4.7 – Schermata per impostare le limitazioni sugli utenti
La settima pagina è molto importante ed è quella relativa alle impostazioni
della “knowledge base” (KB). Come anticipato la knowledge base è una
funzionalità di Nessus che permette di risparmiare tempo quando si fanno
scansioni ripetute. Il concetto su cui si basa è quello che è inutile fare la stessa
scansione sulla macchina se non è cambiata la configurazione della macchina.
Vediamo a cosa servono le varie opzioni presenti nella schermata (fig.4.8)
77
fig. 4.8 – Schermata di configurazione della funzionalità KB
Innanzitutto la prima opzione permette di abilitare o meno questa funzione.
Può essere utile, in quanto se non si è interessati ad utilizzarla è inutile sprecare
spazio su disco per memorizzare i dati della KB. Più in basso sono presenti tre
radio button che permettono di scegliere come utilizzare la KB. Si può scegliere se:
• ad ogni scansione controllare tutti i nodi
• ad ogni scansione controllare solo i nodi che non sono stati già controllati
• ad ogni scansione, viceversa, controllare solo i nodi che sono già stati
controllati
Si può scegliere poi se utilizzare la KB o meno tramite l’apposito checkbox.
Seguono poi altre opzioni su come deve essere usata la KB:
• la prima permette di scegliere se eseguire o meno i plugin già eseguiti
• la seconda è simile alla prima ma si riferisce esclusivamente ai plugin che
permettono solo di ricevere informazioni
• la terza è simile alla prima ma si riferisce ai plugin che effettuano attacchi
veri e propri
• la quarta è di nuovo simile ma fa riferimento ai plugin che testano i DoS
• la quinta opzione permette di scegliere se mostrare un report completo o
solamente le differenze
78
È inoltre presente una casella dove impostare la durata della KB in secondi
trascorsi i quali è da considerarsi scaduta.
È infine presente la schermata con i credits dove si trovano informazioni sugli
autori e il sito ufficiale: http://www.nessus.org
79
4.5 – Risultati ottenuti ai LNF
In questo paragrafo sarà illustrato come è stato ottimizzato Nessus per la
rete dei LNF e saranno presentati i risultati ottenuti. È suddiviso in due
sottoparagrafi, uno con i risultati ottenuti facendo la scansione dall’interno della
rete, e uno facendo la scansione mettendo l’host dove gira Nessus all’esterno del
router con le ACL. In questo modo è possibile simulare un attacco sia dall’esterno
sia dall’interno mettendosi nei panni di un eventuale hacker che sia riuscito a
impossessarsi di un nodo interno. In questo modo si ottiene anche una stima di
‘quanto protegge’ il router.
4.5.1 Dall’interno della LAN
Innanzitutto vediamo come è stato configurato Nessus:
è stato scelto di dedicare una macchina esclusivamente a questa funzione,
quindi il daemon ha a disposizione una potenza di calcolo abbastanza buona. La
rete è una Ethernet 100Mbit, quindi abbastanza veloce. Queste due considerazioni
ci hanno portato a impostare il numero di nodi da testare contemporaneamente a
30, e il numero di test da eseguire contemporaneamente a 10. In questo modo si
riesce a sfruttare tutta la CPU. Inoltre non si corre il rischio di “piantare” la
macchina dato che è stata lasciata attiva l’impostazione di far girare Nessus in
“nice mode”. In questo modo quando il sistema ha bisogno di CPU questa risulta
disponibile, quando invece il sistema non ne ha bisogno Nessus può sfruttarla al
massimo. Nel box sottostante si può vedere l’uso tipico di CPU durante la
scansione di una rete:
CPU0 states: 96.2% user,
CPU1 states: 95.0% user,
3.3% system, 96.0% nice,
4.4% system, 89.4% nice,
0.0% idle
0.0% idle
Vediamo anche le altre impostazioni che abbiamo personalizzato:
innanzitutto è stato aumentata la gamma delle porte da testare inserendole tutte da
0 a 65536. Non è invece stata molto utilizzata la tecnica del “detached scan”.
Questo perché si è visto che, date le dimensioni piuttosto grandi della rete, è
molto utile poter controllare “in diretta” lo stato di avanzamento del test. Ciò si è
rivelato utile anche perché abbiamo visto che alcuni plugin, nonostante abbiano
dei timeout, in casi particolari rimangono bloccati facendo si che l’esecuzione di
Nessus non arrivi mai alla conclusione. Per questo motivo è stato scelto anche di
non fare mai scansioni di reti troppo grandi, tipicamente ci siamo fermati a reti di
256 nodi. Tutte le scansioni di macchine non amministrate direttamente dal
Servizio di Calcolo sono sempre state effettuate in modalità “safe check” e
utilizzando solo i plugin non pericolosi. Una caratteristica che abbiamo utilizzato
è invece la funzionalità “KB saving” che ci permette di risparmiare tempo
evitando di fare scansioni sulle stesse macchine. Il tempo risparmiato può essere
usato per fare scansioni più frequenti e quindi controllare in maniera più
80
tempestiva le nuove macchine o le macchine riconfigurate. Nella figura seguente
(fig. 4.9) si può vedere Nessus in azione. A sinistra compare il numero IP del
nodo o, il nome se si è impostata l’opzione “Do a reverse lookup before testing
it”, o il Mac address se si è impostata l’opzione “Designate hosts by their Mac
address”; al centro ci sono degli indicatori che indicano il progredire della
scansione e il nome del plugin attualmente in scansione. A destra c’è il tasto
“Stop” per interrompere la scansione di un singolo nodo. Questo tasto è utile nel
caso in cui Nessus si pianti su un host. Nel caso, invece, che si voglia
interrompere completamente il test si può usare il tasto “Stop the whole test” in
basso.
fig. 4.9 – Nessus durante una scansione di una rete
Dopo aver visto come abbiamo impostato il programma, vediamo quali
risultiamo si ottengono al termine della scansione.
Innanzitutto c’è da dire che la scansione di una rete di circa 250 nodi
avviene, la prima volta, in circa un’ora, un’ora e mezza.
Al termine Nessus presenta una finestra suddivisa in cinque riquadri che
riportano le informazioni sulla scansione avvenuta dal generale al particolare. Il
primo riquadro in alto a sinistra riporta l’elenco delle reti controllate; il secondo,
più in basso, contiene la lista dei nodi appartenenti alla rete selezionata
precedentemente. Nella fig. 4.10 si può vedere come appare la finestra del report
di Nessus:
81
fig. 4.10 – Report di Nessus
È da notare che abbiamo rilevato un baco sulla visualizzazione delle reti e
degli host. Il problema è nel fatto che Nessus identifica le sottoreti semplicemente
togliendo l’ultimo byte dagli indirizzi degli host. Per fare ciò semplicemente toglie
i caratteri a destra dell’ultimo carattere “.” (punto) come si può vedere in figura
4.10. Se però si abilita l’opzione di convertire i numeri IP nei rispettivi nomi,
quello che succede è che viene tolto semplicemente “.it” dal nome degli host,
quindi nella finestra delle sottoreti in realtà compaiono tutti i nodi testati con il
nome troncato. Questo comportamento anomalo può essere visto nella figura
seguente (fig. 4.11)
82
fig. 4.11 – Report di Nessus
Come si può vedere dalla figura 4.10 una volta selezionato l’host compare la
lista delle porte aperte su tale host, ed eventualmente a fianco, una piccola icona
che serve ad indicare il grado di pericolosità che tale apertura comporta. Le icone
possono essere di tre tipi diversi: una lampadina, un segnale stradale di “pericolo
generico” e un segnale stradale di “divieto di accesso”.
Se non viene ricavata nessuna informazione sulla pericolosità dovuta a tale
apertura Nessus si limita ad indicare il numero della porta, il protocollo (UDP o
TCP) e se lo riconosce anche il servizio (http, x11, etc.), senza aggiungere nessuna
icona. Se invece l’apertura di una porta permette di ricavare informazioni sulla
macchina Nessus disegna vicino al nome del servizio l’icona di una lampadina
come ad esempio nella figura 4.12
83
fig. 4.12 – Nessus ha trovato una porta che fornisce informazioni sul nodo testato
Se invece l’apertura di una porta comporta un “leggero” pericolo l’icona che
compare è il cartello di “pericolo generico” come visibile in figura 4.13
84
fig. 4.13 – Nessus ha trovato una porta potenzialmente pericolosa
Se infine l’apertura della porta comporta un grave problema di sicurezza
compare l’icona di un “divieto di accesso”. (Vedi figura 4.14). La più “pericolosa”
di queste 3 icone è riportata anche vicino al nome del nodo; il nodo più
vulnerabile fa si che anche la rete alla quale appartiene sia marchiata dallo stesso
simbolo. In questo modo, quando si controllano più reti, si ha subito il colpo
d’occhio su quanto e quali siano le reti più in pericolo.
85
fig. 4.14 – Nessus ha trovato un buco di sicurezza
In questo caso, come nel precedente, Nessus indica anche un grado di
pericolosità e il riferimento CVE relativo. Dopo di che visitando il sito
http://cve.mitre.org si possono consultare tutte le informazioni note relative al
“buco”. Nell’esempio in figura 4.14 Nessus ha trovato un buco sul daemon del
servizio FTP catalogato con la sigla 2002-0073.
86
fig. 4.15 – Sito CVE con le informazioni relative al buco trovato da Nessus
Facendo una ricerca sul sito si possono trovare informazioni di
approfondimento, tra le quali il collegamento al sito Microsoft da dove è possibile
scaricare un programma di aggiornamento (patch) per risolvere il problema (fig.
4.16)
87
fig. 4.16 – Sito Microsoft dal quale è possibile scaricare la “patch” necessaria per
eliminare la vulnerabilità
Vediamo più in dettaglio il caso specifico, in modo da capire meglio come
Nessus può rendersi utile per proteggere i server di una LAN.
Durante una scansione è stato rilevato che il servizio FTP di una macchina
aveva un buco di sicurezza. Nessus indica il codice CVE del buco. Utilizzando
questo codice, tramite il sito di CVE, si possono ottenere ulteriori dettagli a
riguardo. Una delle informazioni è proprio il collegamento al sito del produttore
del software (in questo caso Microsoft) dove è possibile scaricare la patch per
correggere il problema. Dopo averla scaricata e installata si esegue una nuova
scansione di Nessus per vedere se il problema persiste e si nota che ora il servizio
FTP è esente da problemi. Si può anche notare che la patch scaricata ha corretto
molti altri problemi di sicurezza.
Infatti, come si può vedere, nel report in HTML generato da Nessus durante
la prima scansione e mostrato in figura 4.17 ci sono molti più pericoli che in
quello generato durante la seconda scansione, cioè dopo che la patch è stata
applicata (fig. 4.18).
88
fig. 4.17 – Risultato della prima scansione
fig. 4.18 – Risultato della seconda scansione
89
Situazione delle porte prima
della applicazione della patch
Situazione delle porte dopo la
applicazione della patch
echo (7/tcp)
echo (7/udp) (Security warnings found)
discard (9/tcp)
daytime (13/tcp)
daytime (13/udp) (Security warnings found)
qotd (17/tcp)
qotd (17/udp) (Security warnings found)
chargen (19/tcp)
chargen (19/udp) (Security warnings found)
ftp (21/tcp) (Security hole found)
smtp (25/tcp)
http (80/tcp) (Security notes found)
unknown (135/tcp)
netbios-ns (137/udp) (Security warnings
found)
netbios-ssn (139/tcp)
snmp (161/udp) (Security hole found)
https (443/tcp)
unknown (1025/tcp)
unknown (1050/tcp)
unknown (1028/tcp)
x11 (6000/tcp)
echo (7/tcp)
echo (7/udp) (Security warnings found)
daytime (13/tcp)
daytime (13/udp) (Security warnings found)
qotd (17/tcp)
qotd (17/udp) (Security warnings found)
chargen (19/tcp)
chargen (19/udp) (Security warnings found)
ftp (21/tcp)
smtp (25/tcp)
http (80/tcp) (Security notes found)
unknown (135/tcp)
unknown (135/udp)
netbios-ns (137/udp) (Security warnings
found)
netbios-dgm (138/udp)
netbios-ssn (139/tcp)
snmp (161/udp) (Security hole found)
xdmcp (177/udp)
https (443/tcp)
isakmp (500/udp)
router (520/udp)
unknown (1025/tcp)
unknown (1028/tcp)
unknown (1050/tcp)
x11 (6000/tcp)
afs3-callback (7001/udp) (Security notes
found)
afs3-callback (7001/udp) (Security notes
found)
tab. 4.1 – Risultati della scansione prima e dopo l’applicazione della patch
Dopo aver visto come usare Nessus per rendere più sicura una singola
macchina vediamo come Nessus fornisce un report su intere sottoreti. Abbiamo
gia visto in figura 4.10 la schermata di nessus al termine della scansione di 2 reti di
classe C. Se si vuole avere un resoconto riassuntivo, con i grafici delle statistiche
dei problemi trovati, è molto utile generare un “report HTML”. Di seguito
vediamo il report della scansione delle seguenti sottoreti di classe C: 193.206.82.0
e 193.206.83.0
Il report inizia con il seguente riassunto:
The Nessus Security Scanner was used to assess the security of 509 hosts
•
•
•
27 security holes have been found
202 security warnings have been found
657 security notes have been found
Subito dopo troviamo un grafico a torta che fornisce le stesse informazioni
ma in forma percentuale:
90
fig. 4.19 – Statistica sulla pericolosità della rete testata
Il grafico seguente mostra invece una classifica di vulnerabilità per servizi.
Da questo grafico possiamo vedere quali sono i servizi più attaccabili:
fig. 4.20 – Statistica sulla pericolosità dei servizi
91
proseguendo troviamo il grafico che ci da’ una indicazione sulla tipologia dei
servizi presenti sulla rete:
fig. 4.21 – Statistica sulla presenza dei servizi
Infine l’ultimo grafico che incontriamo ci fornisce l’informazione di quanto
influisce il nodo più insicuro sulla sicurezza media della rete:
92
fig. 4.21 – Influenza del nodo più insicuro rispetto alla media della rete
Con questo grafico finisce la prima sezione del report. La seconda sezione
riporta la lista dei nodi testati in forma di ipertesto. Selezionando uno dei nodi si
accede alle informazioni specifiche per quel nodo. Vediamo ad esempio la sezione
riguardante il nodo che Nessus ha trovato più “aperto”: 193.206.82.204
La prima informazione che troviamo è un grafico a torta con la distribuzione
del grado di pericolo:
93
fig. 4.22 – Grado di vulnerabilità di un nodo
dopo il grafico troviamo la lista delle porte aperte, e in corrispondenza di quelle
sulle quali Nessus trova una vulnerabilità, un ipertesto che mostra quale pericolo
si corre e il riferimento al sito CVE per porvi rimedio, ad esempio:
94
List of open ports :
ssh (22/tcp)
ftp (21/tcp)
chargen (19/tcp)
daytime (13/tcp)
discard (9/tcp)
echo (7/tcp)
telnet (23/tcp)
smtp (25/tcp) (Security notes found)
time (37/tcp)
finger (79/tcp)
sunrpc (111/tcp)
login (513/tcp) (Security warnings found)
exec (512/tcp) (Security warnings found)
printer (515/tcp)
shell (514/tcp) (Security warnings found)
uucp (540/tcp)
unknown (1103/tcp)
unknown (1522/tcp)
unknown (1521/tcp) (Security warnings found)
unknown (1627/tcp)
unknown (1626/tcp)
unknown (4045/tcp)
unknown (6112/tcp)
afs3-callback (7001/tcp)
afs3-fileserver (7000/tcp)
xfs (7100/tcp) (Security hole found)
Tab. 4.2 – Porte aperte e indicazione del grado di vulnerabilità
Collegandosi all’ipertesto relativo all’ultima riga della tabella, cioè: xfs
(7100/tcp) si ottengono le seguenti informazioni:
Vulnerability found on port xfs (7100/tcp)
The remote X Font Service (xfs) might be vulnerable to a buffer
overflow.
n attacker may use this flaw to gain root on this host remotely.
*** Note that Nessus did not actually check for the flaw
*** as details about this vulnerability are still unknown
Solution : See CERT Advisory CA-2002-34
Risk factor : High
CVE : CAN-2002-1317
Facendo click sull’ultima riga si accede alla sezione del sito CVE relativa al
problema illustrato.
Come visibile dalle prime informazioni fornite da Nessus la rete è risultata
alquanto insicura. Questo non deve stupire in quanto come detto all’inizio è anche
95
molto “aperta”. Non dobbiamo però dimenticare che questi sono i risultati
effettuando la scansione da un nodo interno alla rete, ovvero senza passare per le
ACL del router principale. Quindi un malintenzionato che volesse penetrare in
questa rete troverebbe una situazione ben diversa. Per simulare anche questa
situazione abbiamo fatto delle prove mettendo il PC sul quale gira Nessus su una
rete esterna e abbiamo ripetuto le prove. I risultati sono visibili nel prossimo
paragrafo.
4.5.2 Dall’esterno della LAN
Per fare questa prova abbiamo configurato la macchina dove gira Nessus su
una VLAN sottoposta alle stesse ACL alle quali sono sottoposti i pacchetti che
provengono dal router di accesso. In particolare abbiamo usato la VLAN
192.84.131.0/24 così come indicato nel capitolo 1 e visibile in fig. 1.5.
Dopo aver fatto questa configurazione abbiamo lanciato il programma sulle
stesse reti ma il risultato è stato completamente diverso:
dopo circa sei giorni Nessus non era ancora riuscito a portare a termine la
scansione di una rete di classe C. Facendo una prova con il programma nmap si
scopre che, mentre dall’interno si riusciva a fare uno scan in un secondo,
dall’esterno servono circa 1000 secondi. Il motivo di questa differenza è che il
router non risponde ai pacchetti, quindi sia nmap, sia Nessus aspettano un tempo
prefissato (timeout) prima di passare alla porta successiva. Il timeout in genere è
dell’ordine della decina di secondi, le porte sono 65536, anche facendone un certo
numero in parallelo si vede che servono alcune ore. Bisogna poi considerare che
Nessus tenta la scansione con diversi plugin, ognuno dei quali esegue una
scansione su tutte le porte, e deve attendere il timeout; si capisce quindi il perché
di simili tempi di attesa.
Questo risultato ci da una ulteriore conferma della corretta funzionalità dei
filtri applicati sul router, in quanto un eventuale attaccante impiegherebbe diverse
settimane per ottenere un risultato dalla scansione dei nodi dei LNF. Oltretutto il
risultato di tale scansione sarebbe quello di scoprire poche porte aperte e quindi,
una drastica riduzione delle probabilità di vulnerabilità, dovuta anche al fatto che
tutti i servizi accessibili sono sotto la gestione e il controllo diretto del Servizio di
Calcolo.
96
Capitolo 5
Firewall centralizzati
In questo capitolo viene presentato uno studio teso a testare e valutare quale
soluzione di firewall può essere la migliore per l’ambiente dell’INFN. Lo studio ha
coinvolto anche altri gruppi esterni ai LNF in modo da ridurre i tempi e mettere
alla prova i dispositivi anche in configurazioni diverse. Per avere dei risultati
paragonabili sono state decise di comune accordo alcune procedure di test. Ciò
che si è voluto valutare sono stati la funzionalità, la facilità di gestione e le
prestazioni.
5.1 – Test effettuati
Vediamo innanzitutto lo scenario nel quale i firewall sono stati messi alla
prova ricordando che la configurazione della rete dei LNF è quella descritta nel
primo capitolo, in particolare in figura 1.4. Nella figura seguente (fig. 5.1)
possiamo vedere come è stato inserito il firewall di test, quali nodi e su quali reti
sono stati fatti girare i programmi di prova.
97
WAN
ATM
7507
192.84.128.20
6500
192.84.128.2
Outside
192.84.129.1
Inside
PC2
192.84.129.10
PC1
fig. 5.1 – Scenario di test
Dopo aver visto come vediamo nella lista seguente quali sono state le
soluzioni da noi testate:
1. Cisco PIX 515
2. Box OpenBsd
3. Infoguard IGWall
4. Symantec 5300
5. Nokia IP330
6. Clavister
•
•
Su questi apparecchi sono state fatte le seguenti prove:
Configurazione dei parametri di base e delle regole.
Misura del throughput passante.
o Misura del throughput in TCP e UDP fra due PC collegati Back to
Back utilizzando Netperf
o Ripetizione delle misure frapponendo il firewall fra i pc
98
Misura con il firewall in modalità “Passante” (O senza regole
configurate)
Misure ripetute all’aumentare della complessità delle regole.
Vediamo ora più in dettaglio i test effettuati sui singoli firewall
5.1.1 Cisco PIX 515
Vediamo innanzitutto la configurazione:
Articolo
PIX-515
Descrizione
PIX 515 Chassis only
PIX-4FE
CAB-ACI
SF-PIX-6.1
PIX-515UR-SW
PIX Four-port 10/100 Ethernet
interface, RJ45
VPN Accelerator Card (VAC) for PIX
Firewall
PIX-VPN-ACCEL
•
•
•
•
•
Le caratteristiche dei PC usati invece sono le seguenti:
PC1: Duron 800 Mhz - 256MB di RAM – Fast Ethernet 3COM 3c905c
PC2: Pentium III 1.6Ghz - 256MB di RAM – Fast Ethernet on board Intel
Mentre come software per fare le misure abbiamo utilizzato:
Redhat 7.2 Kernel 2.4.9-21
Come sistema operativo dei PC di prova
Netperf versione 2.1pl3
Per generare il traffico e misurare le performance. Netperf è composto
da un client e da un server. Il primo genera del traffico, il secondo, in
ascolto, misura la quantità di traffico ricevuto.
ICMP Bomber
Per generare il traffico “ping flood”. Questo programma è un exploit
per causare DoS dovuti al traffico di tipo “ping”.
Vediamo ora uno stralcio della configurazione del firewall:
nameif ethernet0 outside security0 //Interfaccia Insicura verso il router
nameif ethernet1 inside security100 //Interfaccia Sicura verso la LAN
hostname pixlnf
// Access-List applicata sull’interfaccia Inside in Ingresso che permette
// qualsiasi tipo di traffico dalla LAN verso Internet
access-list acl_inside_in permit ip any any
// Access-List applicata sull’interfaccia Outside in Ingresso di 84 entry
// con match sull’ultima entry
99
…
access-list acl_out_test2 permit tcp any host 192.84.129.28 eq 22
access-list acl_out_test2 permit tcp any host 192.84.129.29 eq 22
access-list acl_out_test2 permit tcp any host 192.84.129.20 eq www
access-list acl_out_test2 permit tcp any host 192.84.129.21 eq www
access-list acl_out_test2 permit tcp any host 192.84.129.22 eq www
access-list acl_out_test2 permit tcp any host 192.84.129.23 eq www
access-list acl_out_test2 permit tcp any host 192.84.129.20 range 7000
7009
access-list acl_out_test2 permit tcp any host 192.84.129.21 range 7000
7009
…
icmp permit any outside
//Traffico ICMP permesso
icmp permit any inside
//Traffico ICMP permesso
ip address outside 192.84.128.2 255.255.255.0
ip address inside 192.84.129.1 255.255.255.0
…
//NAT Disabilitato
nat (inside) 0 0.0.0.0 0.0.0.0 0 0
static (inside,outside) 192.84.129.0 192.84.129.0 netmask 255.255.255.0 0
0
access-group acl_out_test2in interface outside
access-group acl_inside_in in interface inside
La prima prova che abbiamo fatto è stata la misura delle performance sia
come dispositivo passante (cioè senza filtri), sia con dei filtri applicati sempre più
complessi. La prova si è svolta nel seguente modo:
Innanzitutto si è misurato il throughput senza il firewall tra il PC1 e il PC2
utilizzando Netperf. Sul PC1 abbiamo lanciato il server, in ascolto, di netperf,
mentre sul PC2 abbiamo lanciato il client. Nelle tabelle successive si possono
vedere i risultati:
Collegamento Back to Back
Throughput misurato in TCP
93.70 Mbps
Throughput misurato in UDP
95.80 Mbps
Test con Pix Firewall con access-list ip any any (Passante)
Throughput misurato in TCP
93.03 Mbps
Throughput misurato in UDP:
95.60 Mbps
PING (Media)
356 microsecondi
Test con firewall e acl di 84 linee
Throughput misurato in TCP
93.20 Mbps
Throughput misurato in UDP
95.54 Mbps
PING (Media)
371 microsecondi
Test con firewall e acl di 270 linee
Throughput misurato in TCP
93.10 Mbps
100
Throughput misurato in UDP
PING (Media)
95.39 Mbps
427 microsecondi
Nel test successivo abbiamo voluto vedere come si comporta il Pix 515 nel
caso di attacco di tipo “ping-flood”
Lo scenario è simile al precedente ma con l’aggiunta di una macchina che
effettua il traffico ICMP-ping ad alta velocità. Lo schema si può vedere nella
figura seguente (fig. 5.2)
ATM
WAN
7507
ICMP
Bomber
PC3
192.84.128.20
6500
192.84.128.2
Outside
192.84.129.1
Inside
PC2
192.84.129.10
PC1
fig. 5.2 – Scenario di test per il Ping-Flood
Vediamo i risultati del test:
Impostazioni del software ICMP Bomber: size 1 intervallo 1
88.74 Mbps
Throughput in TCP
101
Impostazioni del software ICMP Bomber: size 10 intervallo 1
Throughput in TCP
87.67 Mbps
Aggiungendo, alla configurazione del firewall, la seguente regola all’inizio:
access-list acl_out_test3 deny icmp any host 192.84.129.10
Le prestazioni diventano:
Impostazioni del software ICMP Bomber: size 1 intervallo 1
86.36 Mbps
Throughput in TCP
Impostazioni del software ICMP Bomber: size 10 intervallo 1
86.80 Mbps
Throughput in TCP
Impostazioni del software ICMP Bomber: size 1000 intervallo 1
Throughput in TCP
80.43 Mbps
5.1.2 Box OpenBsd
Vediamo innanzitutto la configurazione della macchina che funge da
firewall:
•
•
•
•
Box OpenBSD: Pentium III 866 Mhz - 512MB di RAM – 2xFast Ethernet
3COM 3c905c
PC1 e PC2 : IBM Xseries 330 Biprocessori PIII 800 512MB 2 Fast
Ethernet on Board.
Il software utilizzato e’ stato:
Netperf versione 2.1pl3
Redhat 7.2 Kernel 2.4.9-21
Vediamo come e’ stata impostata la funzionalità di packet filtering di
OpenBSD. Innanzitutto bisogna abilitare questa funzionalità modificando il file:
/etc/rc.conf
e scriverci dentro:
pf=YES
pf_rules=/etc/pf.conf
102
La prima opzione abilita il packet filtering, la seconda indica quale è il file
che contiene le regole.
Per far partire il servizio bisogna digitare il comando:
pfctl -e
Per rendere operative le regole bisogna digitare:
pfctl –R /etc/pf.conf
Per verificarle:
pfctl –s rules
Per verificare lo stato delle connessioni:
pfctl –s states
Vediamo anche per questo firewall un esempio di file di configurazione:
#
$OpenBSD: pf.conf,v 1.3 2001/11/16 22:53:24 dhartmei Exp $
#
# See pf.conf(5) for syntax and examples
# pass all packets in and out (these are the implicit first two
rules)
# pass in all
# pass out all
block in on fxp0 all
#Fa passare le connessioni ssh (Setup o syn) e permette il ritorno
dei pacchetti associati
pass in on fxp0 inet proto tcp from any to any port 22 flags S keep
state
#
pass in on fxp0 inet proto { tcp, udp } from any to any port 500
keep state
pass in on fxp0 inet proto { tcp, udp } from any to any port 501
keep state
..
pass in on fxp0 inet proto { tcp, udp } from any to any port > 10000
keep state
pass in on fxp0 inet proto icmp from any to any keep state
Le prestazioni rilevate sono:
Test con Pix Firewall con access-list ip any any (Passante)
94.13 Mbps
96.17 Mbps
200 microsecondi
Throughput in TCP
Throughput in UDP
PING (Media)
103
Test con Pix Firewall con access-list di 80 linee
94.13 Mbps
96.19 Mbps
200 microsecondi
Throughput in TCP
Throughput in UDP
PING (Media)
Test con Pix Firewall con access-list di 270 linee
Throughput in TCP
94.13 Mbps
96.20 Mbps
Throughput in UDP
200 microsecondi
PING (Media)
Test con Pix Firewall con access-list di 5000 linee
Le prestazioni rimangono praticamente invariate.
5.1.3 Infoguard IGWall
Vediamo per prima cosa le caratteristiche di questo dispositivo:
• Interfaccia Web HTTPS
• S.O. Linux (IP Tables)
• NAT
• DHCP Server
• Portscan Detection
• Accounting
• VPN IPSec (Client SSH Sentinel sui client).
• Log Server
• Antispam
• Packet Filtering
Come di consueto abbiamo usato il solito Netperf 2.1pl3, Redhat 7.2 Kernel
2.4.9-21 per i PC di test e ICMP Bomber per generare il traffico per il ping-flood.
I PC utilizzati sono gli stessi con i quali abbiamo testato il Pix. Questa volta
non è possibile indicare un file di configurazione dato che si configura tramite una
interfaccia web, vediamo allora a titolo di esempio una immagine di come si
presenta l’interfaccia di configurazione di IGWall:
104
fig. 5.3 – Interfaccia web per la configurazione del IGWall di Infoguard
Vediamo infine le prestazioni:
Throughput in TCP
Throughput in UDP
Collegamento Back to Back
93.70 Mbps
95.56 Mbps
Test con access-list ip any any (Passante)
Throughput misurato in TCP
94.00 Mbps
Throughput misurato in UDP:
96.11 Mbps
Test con access-list di 45 linee
Throughput misurato in TCP
93.52 Mbps
Throughput misurato in UDP:
96.17 Mbps
5.1.4 Symantec 5300
Cominciamo, al solito, vedendo le caratteristiche del dispositivo:
• S.O. Proprietario (Linux based)
• Management console per windows.
• NAT
• Accounting
• VPN
105
•
•
•
Antivirus
Packet Filtering
IDS (Con LiveUpdate!)
Il software utilizzato è il solito e anche le macchine di test sono le stesse
usate per testare il box OpenBSD: 2 IBM Xseries 330 Biprocessori PIII 800
512MB 2 Fast Ethernet on Board. Anche questo dispositivo si configura tramite
una interfaccia grafica; a differenza del box OpenBSD però, questa gira su
windows. Nelle prossime figure possiamo vedere qualche esempio di schermata di
configurazione:
fig. 5.4 – Pannello di configurazione del Symantech 5300
106
fig. 5.5 – Pannello per la definizione delle regole sul Symantech 5300
5.1.5 Nokia IP330
Caratteristiche tecniche:
• Interfaccia Web
• Suporto di interfacce WAN V35 T1/E1
• Funzionalità di routing (RIP,OSPF,BGP)
• Firewall
• VPN IPSec .
• IDS
• Packet Filtering
Vediamo qualche esempio di schermate del software di questo firewall
fig. 5.6 – Interfaccia web per la definizione delle regole sul Symantech 5300
5.1.6 Clavister
Caratteristiche tecniche:
• S.O.+Software Proprietari (Dimensioni minori di un Megabyte)
• Management console per windows in grado di gestire piu firewall anche
geograficamente distanti.
• Supporto Vlan 802.1q!
• Packet Filter
• Traffic Shaping
• NAT
• VPN
• Tool di Analisi dei Log
107
La caratteristica più particolare è proprio il fatto che il sistema operativo e il
software sono proprietari, e occupano solo un megabyte di spazio. Vediamo
qualche schermata di configurazione del software di controllo di questo
dispositivo:
fig. 5.7 – Schermata per la definizione delle regole sul Clavister
5.1.7 Conclusioni
Vediamo in una tabella comparativa un sommario delle caratteristiche dei
dispositivi testati:
Firewall
ACL
IDS
VPN
Gigabit
Prezzo
Cisco PIX
515
Si
No
Disponibile
8000€
Nokia
IP330
Symantec
SGS 5300
Si
Si
Si
Disponibile
dal mod. 525
in poi
No
Si
Si
Si
No
17.300€ (256
users)
34.173€ Senza
Limiti
Infoguard
IGWall
BoxBSD
Si
No
Si
Opzionale
Si
No
Clavister
Si
No
Configurabile Si (Dipende
dall’hardware)
Si
Si
tab. 5.1 – Tabella comparativa
0€+il PC
7200€
108
Una grossa differenza esiste tra PIX e Clavister e gli altri che sono dei PC
con un hardware specifico (rack mount) con un software con funzioni di firewall
che gira su un sistema operativo basato su un nucleo Linux o BSD.
Vediamo in un’altra tabella vantaggi e svantaggi delle due conclusioni:
Dispositivo Firewall
•
•
•
Vantaggi
Spesso in un unico Box sono
racchiuse le funzioanlità di
Firewall, IDS e VPN Server.
Hanno in genere una interfaccia
di management che rende
semplice la gestione del box e la
visualizzazione dei log.
In generale l’utilizzo di questi
appliance dovrebbe scaricare
l’amministratore dal lavoro di
installazione ed ottimizzazione
del sistema operativo,
permetendogli di occuparsi solo
della definizione delle regole di
sicurezza da implementare.
•
•
•
Svantaggi
Il prezzo è spesso abbastanza
elevato
Essendo spesso PC standard
preconfigurati e’ difficile che
l’hardware sia allineato al top
della tecnologia disponibile.
A differenza della modifica e
l’inserimento di nuove regole che
è molto semplice ed intuitivo, la
creazione di ACL complesse e
composte di molte regole risulta
poco funzionale da interfaccia
grafica e la configurazione a linea
di comando non è sempre
banale.
tab. 5.2 – Tabella comparativa dei firewall basati su dispositivi dedicati
Box BSD o Linux
•
•
•
•
Vantaggi
Il costo è unicamente quello del
PC che si vuole utilizzare.
Si può avere il controllo
completo delle funzionalità
implementate e quindi una
flessibilità totale.
I tool (IPtables e specialmente pf
su BSD) sono potenti e
documentati.
E’ possibile avvalersi di
piattaforme hardware più
performanti appena si rendono
disponibili sul mercato
semplicemente replicando al
configurazione su PC piu
potenti.
•
•
Svantaggi
Tutta la configurazione del Box
e la gestione dei log è lasciata al
sistemista che dovrà predisporre
autonomamente le
configurazioni e gli script di
analisi dei log.
Essendo pacchetti che risiedono
su sistemi operativi “Open”
continuamente in sviluppo,
occorre porre molta attenzione
in fase di installazione in modo
da non lasciare attivi servizi
potenzialmente vulnerabili.
tab. 5.3 – Tabella comparativa dei firewall basati su PC
109
•
•
•
Siamo quindi giunti alle seguenti considerazioni finali:
L’utilizzo di un firewall può essere indicato per quelle sezioni dell’INFN
che non dispongono di un router o uno switch centrale sufficientemente
“performante” nella valutazione delle ACL.
Un firewall può essere utile per proteggere in maniera particolare alcuni
specifici rami della propria rete.
Se l’unica funzione richiesta al firewall è quella di packet filter e non è
possibile delegarla ad un router, si consiglia l’utilizzo di Box BSD o Linux
opportunamente configurati. Se invece si desidera gestire da un unico Box
anche altre funzioni quali VPN, IDS o Antivirus allora si può pensare ad
un investimento più consistente in un dispositivo “proprietario”.
Ai LNF il router di accesso alla WAN è adeguato a gestire un flusso di dati
superiore al limite del circuito virtuale di accesso di 34Mbps. Abbiamo verificato
che con la banda saturata il carico della CPU del router, dovuto prevalentemente
alla esecuzione delle regole incluse nelle ACL, ha raramente superato un livello del
60%. Per questo motivo non si ritiene per ora necessario l’utilizzo di un firewall
tra lo switch e il router che introdurrebbe un ulteriore “point-of-failure”.
110
Capitolo 6
Evoluzione verso le VPN
In questo capitolo sono descritte le Reti Private Virtuali; nel primo paragrafo
vedremo cosa sono e come funzionano, nel secondo vedremo una
implementazione provata ai LNF per consentire un accesso sicuro ma allo stesso
tempo molto versatile; sicuro perché tutto il traffico è cifrato, versatile perché
l’utente collegato, da remoto, verso la LAN dei LNF via VPN può operare come
se si trovasse collegato direttamente all’interno della LAN.
6.1 – Introduzione.
VPN sta per Virtual Private Network, cioè Rete Privata Virtuale: una
tecnologia che consente di utilizzare la rete Internet per connettere in sicurezza
uffici e collaboratori a costi molto ridotti rispetto a quelli delle linee telefoniche
private dedicate. Vi sono due usi principali per le VPN: il primo è connettere due
o più reti geografiche separate come ad esempio la sede centrale e le filiali. Il
secondo uso consente agli impiegati o comunque a utenti autorizzati, di accedere
alla rete aziendale da un PC remoto, come ad esempio, viaggiando, da un laptop o
dal computer di casa. Entrambi questi usi permettono l’accesso a reti protette,
solo a utenti autorizzati. Occorre naturalmente prevedere soluzioni tecnologiche
che soddisfino pienamente i requisiti di sicurezza e flessibilità richiesti da questa
struttura.
Una rete privata virtuale è formata da due componenti principali: il gateway
di rete che ha interfacce multiple verso le diverse componenti del network e
diversi protocolli di cifratura e decifratura del traffico che lo attraversa. Due
gateway possono essere utilizzati per costituire una VPN tra due reti locali remote.
L’altro elemento della rete privata è un client VPN installato su un PC, in grado a
sua volta di cifrare e decifrare selettivamente il traffico che riceve e invia alla rete
geografica protetta dal gateway della VPN. Sono necessari in questo caso client
compatibili e gateway che supportino interfacce diverse.
111
6.1.1 Cifratura e autenticazione
La cifratura è il processo di modifica dell’informazione spedita, in modo che
questa non possa essere letta da nessuno all’infuori del recipiente selezionato.
Questo risultato si ottiene applicando un algoritmo matematico che richiede una
chiave di decifratura per sbloccare i dati originali. Gli algoritmi che utilizzano la
stessa chiave per cifrare e decifrare sono conosciuti come simmetrici: gli esempi
più comuni sono: DES e RC4. Algoritmi che utilizzano chiavi diverse per cifarer e
decifrare i dati si definiscono asimmetrici o “a chiave pubblica”. I più comuni
sono RSA e Diffie-Hellman. Si possono utilizzare congiuntamente sia gli uni sia
gli altri.
Oltre a cifrare e decifrare i dati, una VPN deve anche verificare chi invia le
informazioni e assicurare che queste non siano state modificate attraversando la
rete pubblica Internet. Il processo di verifica dell’identità del mittente si definisce
“autenticazione” che può essere fatta attraverso la verifica dello username e della
password e/o da un pezzo di informazione chiamato “certificato digitale”. Un
certificato digitale contiene i parametri di cifratura che possono essere usati per
identificare in modo univoco l’utente o il sistema di hosting da cui parte la
chiamata. La verifica che i dati non siano stati modificati da una terza parte non
autorizzata, nel corso della trasmissione si chiama “integrity cheking”: controllo
dell’integrità. Un processo che viene eseguito applicando un algoritmo, conosciuto
come “hash” (groviglio), ai dati, prima che questi vengano inviati e verificando lo
stesso hash alla ricezione. Se le mappe dei due hash non sono state modificate
significa che il dato è integro.
6.1.2 Tunnelling e protocolli
Le VPN utilizzano un processo che si definisce “tunnelling” per far passare
il traffico cifrato attraverso Internet. Il tunneling è il processo di incapsulamento
di un pacchetto di una rete, dentro un altro e consente di nascondere in tal modo
l’indirizzo IP del vero mittente e ricevente, oltre ad altri protocolli di informazioni
(come ad esempio se il pacchetto contiene e-mail o traffico web). Il pacchetto che
viaggia attraverso Internet è cifrato e solamente gli indirizzi pubblici della VPN
(Gateway o client) sono notificati durante il trasporto. Il sistema funziona anche
in presenza di indirizzi IP dinamici. Le VPN sono lo strumento ideale per
connettere due o più reti locali (LAN) di uffici geograficamente remoti.
Attraverso la VPN le persone possono utilizzare tutte le opportunità offerte da
una intranet: siti web aziendali, email, videoconferenze, scambio e condivisione di
file tra reti geografiche separate. Ancora più frequentemente le funzionalità della
VPN vengono utilizzate per connettere uffici periferici tra loro e con una sede
centrale. Il traffico di una rete viene indirizzato verso un server remoto attraverso
un normale indirizzo IP, ma passando attraverso il gateway della VPN viene
cifrato e inserito in una procedura di tunnelling che lo instrada automaticamente
verso la rete remota cui è destinato. Quando il gateway di questa rete riceve il
pacchetto di dati cifrati, verifica il mittente e l’integrità del pacchetto, quindi lo
decifra e lo distribuisce al destinatario senza modificarlo. Dato che la VPN è
112
implementata solo tra due gateway, rimane trasparente rispetto a qualsiasi utente e
applicazione.
Questo tipo di VPN può essere realizzata con una combinazione di
tecnologie IPSec e SKIP. IPSec significa IP Security ed è un protocollo standard
per VPN, sviluppato da Internet Engineering Task Force (IETF). Questo
protocollo definisce il formato dei protocolli utilizzati per cifrare e verificare i
pacchetti di dati. SKIP significa Simple Key Management for Internet Protocols
ed è un altro standard sviluppato da SUN, viene usato per negoziare e modificare
dinamicamente le chiavi di cifratura per migliorare i livelli di sicurezza e renderne
più semplice l’utilizzo. La tecnologia SKIP è compatibile con Check Point, e
TrustWorks.
6.1.3 VPN specifiche per singoli utenti remoti
Una rete privata virtuale consente a utenti remoti di accedere attraverso un
Provider Internet, alla LAN della sede centrale o, nel caso vi sia un sistema di
collegamento anche con altri uffici remoti, di accedere a tutti i terminali della
VPN in uso. Una volta connesso al provider l’utente attiva un collegamento VPN
al gateway della sua rete e, da quel momento in poi, tutto il traffico viene
indirizzato attraverso la VPN. Come nel caso della VPN che collega uffici remoti,
anche l’utente remoto sfrutta le tecnologie di tunnelling per nascondere il traffico,
ma in questo caso utilizza uno strato più basso della rete. Questo funziona
attraverso l’assegnazione da parte del gateway, di un indirizzo IP univoco al client
che si collega a questo punto come se fosse un utente interno della rete. Una volta
che il traffico viene decifrato dal gateway, il client utilizzerà l’indirizzo interno che
gli ha assegnato per farlo transitare sulla rete locale.
La tecnologia più usata per implementare le reti di utenti remoti è il Point to
Point Tunnelling Protocol (PPTP) di Microsoft. Il supporto per il PPTP è
integrato nel Microsoft Dial-Up Networking in Windows. Questo significa che
non occorre acquistare e installare client VPN di terze parti per gli utenti remoti.
Configurare un utente remoto di VPN comporta la definizione del circuito
virtuale sul client e la relativa creazione degli account utente sul gateway. Un
indirizzo IP viene assegnato al client quando si connette e viene rilasciato al
gateway quando la sessione è terminata. Gli account vengono creati stabilendo
una password e una usarname per ogni utente; per l’autenticazione si può fare
riferimento al database di “Active Directory” di Windows o ad un server
“RADIUS”. Gli utenti possono anche essere inseriti in gruppi con prerogative
speciali, cui possono essere associati accessi PPTP di gruppo.
Sul sistema dell’utente viene creato un nuovo ingresso di rete per il dial-up,
con l’indirizzo di IP pubblico del gateway. Per connettersi l’utente seleziona
l’ingresso di rete in dial-up e gli viene richiesta la password e lo username.
Windows si connette al gateway e gli viene assegnato un nuovo indirizzo IP sulla
LAN cui viene anche associato l’indirizzo del server DNS. L’utente può anche
decidere l’indirizzo IP del server Windows della LAN e, in questo modo, navigare
all’interno della rete e fare logging sui controllers di dominio di NT.
113
6.2 – Test ai LNF.
Come anticipato, avere la possibilità di collegarsi ad una LAN tramite una
VPN è molto vantaggioso dal punto di vista della sicurezza, perché sia i dati di
autenticazione, sia i dati che viaggiano sulla rete sono cifrati. Inoltre il
collegamento tramite VPN fa si che il computer remoto non sia semplicemente
collegato alla LAN ma si trovi “proiettato” all’interno della stessa, nel senso che
ottiene un numero IP appartente alla LAN stessa.
La soluzione sperimentata ai LNF fa uso di un server Windows collegato
allo switch centrale che fa da gateway per il protocollo PPTP di Microsoft. In
questo modo è facile per un utente che usi un sistema operativo Microsoft
collegarsi al server e instaurare una VPN a prescindere dal posto e dal tipo di
connessione utilizzato per collegarsi. Ad esempio può essere usato per collegarsi
alla LAN da casa, collegandosi ad un provider via modem, poi grazie al tunnel
VPN, si può usufruire dei servizi della LAN. Ovviamente con un accesso via
modem le prestazioni, a causa della scarsità di banda saranno limitate e
impediranno di fatto l’utilizzo di alcuni servizi. Questo problema non esiste,
ovviamente, utilizzando tecnologie quali ADSL, oppure collegandosi da una LAN
diversa da quella dei LNF. Ad esempio può essere utilizzata da una persona dei
LNF che si trova momentaneamente in un altro laboratorio dell’INFN o di una
Università.
6.2.1 Configurazione del servizio
Come anticipato è stata dedicata una macchina a fare da gateway; dato che
questa macchina deve cifrare tutto il traffico è stata scelta una macchina
abbastanza potente, cioè un PC Intel con 4 processori Xeon a 700 MHz con 2MB
di cache, 2 GB di RAM e due dischi di sistema in mirroring. Per connetterla ci
sono a disposizione 2 schede Fast Ethernet e un Gigabit Ethernet su fibra
ottica.In questo modo è possibile utilizzare la Gigabit per collegare la macchina
allo switch Catalyst 6500, e le altre a delle VLAN dedicate alle VPN (vedi fig.6.1).
Il sistema operativo è Windows 2000 Advanced Server.
114
WAN
ATM
7507
ACL
6500
VPN
Gateway
LAN
fig. 6.1 – Configurazione della rete con il gateway VPN
Vediamo come è stata configurata la macchina: innanzitutto bisogna
configurare il servizio tramite il programma “Routing and Remote Access” che si
trova tra gli “Administrative Tools” (fig. 6.2)
fig. 6.2 – Server: Configurazione del servizio tramite “Routing and Remote Access”
115
Selezionando le proprietà del server si accede ad un pannello di
configurazione che permette di abilitare il routing dei pacchetti e di abilitare
l’accesso remoto (fig 6.3).
fig. 6.3 – Server: Abilitazione del routing e di accesso remoto
Dopo aver abilitato questi servizi si passa alla configurazione di IP, dove
bisogna abilitare il routing di IP e le connessioni a richiesta basate su IP (vedi fig.
6.4). Successivamente si può scegliere se usare il protocollo DHCP per assegnare i
numeri IP ai client che si connettono oppure indicare una gamma di indirizzi che
assegna Windows stesso. Noi abbiamo scelto la seconda alternativa indicando una
gamma di indirizzi pubblici appartenenti alla LAN. Gli indirizzi scelti sono dal
193.206.84.249 al 193.206.84.254. Il primo viene assegnato all’interfaccia del
server, gli altri sono disponibili per i client. Anche queste impostazioni sono
visibili in fig. 6.4
116
fig. 6.4 – Server: Configurazione di IP
Dopo aver configurato il server bisogna creare la connessione sul client
utilizzando lo strumento “Make New Connection” e selezionando la connessione
a VPN come indicato in fig. 6.5.
fig. 6.5 – Client:Creazione di una connessione a VPN
Dopo averla creata ci si può connettere indicando il nome del server (nel
nostro caso w2ksrv), la propria username e la password. Dopo essersi connessi il
client avrà a disposizione una ulteriore interfaccia di rete (virtuale) configurata
con il numero IP assegnato dal server, quindi appartenente alla LAN interna dei
LNF anche se il collegamento fisico fosse stato fatto da un’altra LAN, ad esempio
117
da un provider commerciale. Per i nostri test abbiamo utilizzato la stessa LAN,
per motivi di semplicità e per avere a disposizione più banda per “stressare”
maggiormente il server. Lo scenario del test è visibile nella fig. 6.7
ATM
WAN
7507
ACL
193.206.84.146
VPN
Gateway
6500
193.206.84.249
193.206.84.253
172.16.14.130
Collegamenti fisici
{
Collegamento logico
LAN
Fast Ethernet
Gigabit Ethernet
ATM
Tunnel VPN
fig. 6.7 – Scenario di test
In questo schema, il gateway VPN fa anche da proxy ARP per i client, infatti
se un nodo della LAN deve mandare un pacchetto a quest’ultimo, utilizzerà il
numero IP assegnatogli dal server VPN (nell’esempio 193.206.84.250) e l’indirizzo
MAC dell’interfaccia fisica che collega il server allo switch Catalyst 6500. Per
verificare questo meccanismo abbiamo provato a vedere la cache ARP di un nodo
appartenente alla LAN. Questa verifica è stata importante per vedere se
effettivamente il traffico raggiungesse il client attraverso la VPN (193.206.84.253)
e non attraverso la normale interfaccia di rete locale (172.16.14.130). Il risultato si
può vedere in fig. 6.8
118
fig. 6.8 – Cache ARP di un nodo della LAN
Una volta appurato che il collegamento funzionasse abbiamo voluto provare
a vedere quanto la cifratura dei dati impegnasse il server. Per avere una misura
abbiamo effettuato un trasferimento di file da una macchina della LAN al client
VPN, in modo che il server dovesse cifrare tutti i pacchetti in arrivo prima di
rigirarli sul tunnel VPN. In particolare abbiamo fatto due prove: con e senza
compressione, ma entrambi con la cifratura Microsoft MPPE 128 bit che usa
l’algoritmo RSA RC4. Abbiamo visto che abilitando la compressione la velocità
media di trasmissione si attesta su circa 30 Mbps portando il carico di lavoro delle
4 CPU del server a circa il 20% di ognuna come visibile in fig. 6.9, mentre
disabilitando la compressione la velocità sale a quasi 40 Mbps e il carico sulle 4
CPU scende a quasi il 15%. È importante notare che il file trasferito era un
archivio compresso. In questo modo non si deve tener conto del fatto che a una
velocità maggiore corrisponde un numero maggiore di dati da trasferire, cosa che
avrebbe reso più difficile la valutazione delle performance globali. Abbiamo anche
voluto verificare che il file fosse veramente cifrato, per farlo abbiamo usato un
programma commerciale che cattura i pacchetti sulla rete (EtherPeek); in
appendice C è possibile vedere un pacchetto relativo al trasferimento di un file
ASCII, e come si può vedere, risulta incomprensibile.
119
fig. 6.9 – Carico di lavoro dovuto a un traffico di 30Mbps
Questi risultati sono confortanti, infatti è vero che si raggiunge il carico del
20% già con un solo client, ma non bisogna dimenticare, come già detto, che il
client era in realtà su rete locale a 100Mbps e che riusciva a fare un traffico di circa
30Mbps. Se si considera che l’utilità delle VPN è per accedere alla LAN
dell’esterno, e che il circuito virtuale ATM che collega il sito dei LNF al GARR è
di 34Mbps, si può vedere che il server è dimensionato adeguatamente per gestire il
traffico in entrata anche se fosse tutto su VPN.
Visto l’esito estremamente positivo del test si sta pensando di implementare
tale servizio in maniera stabile e definitiva per dare accesso dall’esterno a tutti gli
utenti dei LNF.
120
Appendice A
Glossario
0-9
100BaseFX - 100BaseFX utilizza un cavo in fibra ottica, per le connessioni
Fast Ethernet. Il cavo è conforme allo standard IEEE 802.3, ha una lunghezza
massima di 400 metri e una velocità di trasmissione pari a 10 Mbps.
100BaseT - 100BaseT utilizza un cavo (doppino) telefonico non schermato
UTP (Categoria 5), per le connessioni Fast Ethernet. Il cavo è conforme allo
standard IEEE 802.3, ha una lunghezza massima di 100 metri e una velocità di
trasmissione pari a 100 Mbps.
10Base2 - 10Base2 utilizza un cavo coassiale da 50 Ohm, chiamato anche
cavo Cheapernet o Thinnet, per le connessioni sottili Thin Ethernet. Il cavo è
conforme allo standard IEEE 802.3, ha una lunghezza massima di 185 metri e
una velocità di trasmissione pari a 10 Mbps.
10Base5 - 10Base5 utilizza un cavo coassiale da 50 Ohm, per le connessioni
normali Thick Ethernet. Il cavo è conforme allo standard IEEE 802.3, ha una
lunghezza massima di 500 metri e una velocità di trasmissione pari a 10 Mbps.
10BaseF - 10BaseF utilizza un cavo in fibra ottica, per le connessioni
Ethernet. Il cavo è conforme allo standard IEEE 802.3, ha una lunghezza
massima di 2000 metri e una velocità di trasmissione pari a 10 Mbps.
10BaseT - 10BaseT utilizza un cavo (doppino) telefonico non schermato
UTP (Categoria 3, 4 e 5), per le connessioni Ethernet. Il cavo è conforme allo
standard IEEE 802.3, ha una lunghezza massima di 100 metri e una velocità di
trasmissione pari a 10 Mbps.
A
A.A.A. - Acronimo di Authentication Authorization Accounting. Queste
rappresentano le tre fasi che validano ogni richiesta espressa da un utente
A.C.L. - Access Control List
A.D.S.L. - Asymmetric digital subscriber line. Una delle quattro tecnologie
DSL. L'ADSL trasmette con larghezza di banda più ampia in fase di ricezione che
in quella di trasmissione. In ricezione (verso l'utente) i dati viaggiano tra 1,5 e 9
Mbps, in trasmissione (dall'utente) tra i 16 e i 640 Kbps. L'ADSL copre distanze
fino a 5500 metri su singolo doppino telefonico in rame. Vedere anche HDSL,
SDSL e VDSL.
A.F.S. - Andrew File System
121
Applet - Riferito nello specifico a programmi client-server Java-Based.
Generalmente un applet è un componente di una applicazione scaricato in locale
in grado di comunicare direttamente con un server remoto.
Appletalk - Protocollo di rete proprietario di Apple computer. Usato sui PC
Macintosh
ARPANET - Advanced Research Projects Agency Network. Rete
telematica statunitense creata nel 1969 per collegare enti governativi e militari e
istituti di ricerca. Fu sviluppata negli anni '70 dalla BBN (Bolt, Beranek, and
Newman) e divenne il nucleo iniziale di Internet. Il termine ARPANET
scomparve definitivamente nel 1990.
A.S.I.C. - Application-Specific Integrated Circuit
A.T.M. - Asynchronous Transfer Mode. Modalità di trasporto asincrona che
trasferisce il traffico multiplo (come voce, video o dati) in cellule di lunghezza
fissa di 53 byte (piuttosto che in “pacchetti” di lunghezza variabile come accade
nelle tecnologie Ethernet e FDDI). La modalità ATM permette di raggiungere
velocità elevate e diventa particolarmente diffusa nelle dorsali di rete a traffico
intenso. Le apparecchiature di rete di nuova generazione permettono di
supportare le trasmissioni WAN anche in ATM, rendendola interessante anche
per grandi organizzazioni geograficamente distribuite.
C
C.A. - Certification Authority.
Categoria 1–5 - Classificazione dei cavi UTP in base allo standard
EIA/TIA-586. Categoria 1: utilizzata per le comunicazioni telefoniche, non adatta
al trasporto dei dati. È il classico doppino telefonico che arriva in tutte le case.
Categoria 2: può trasportare dati fino ad una velocità massima di 4 Mbps.
Categoria 3: utilizzata nelle reti 10BaseT, può trasmettere dati fino ad un massimo
di 10Mbps. Categoria 4: utilizzata nelle reti Token Ring, raggiunge la velocità di 16
Mbps. Categoria 5: adatta per il trasporto dei dati fino a 100 Mbps, tutti le nuove
reti vengono oggi costruite utilizzando questa categoria di cavi. Vedi anche UTP,
10BaseT e seguenti.
Certificato digitale - Il certificato digitale, conosciuto anche come Digital
ID, è l'equivalente elettronico di un passaporto o di una licenza di commercio.
Viene emesso da un'Autorità Certificativa (Certification Authority o CA) e
certifica ufficialmente l'identità del suo possessore. Un Digital ID è composto da
due chiavi complementari. Si tratta di un sistema a doppia-chiave: una chiave
privata viene installata sul server della società che vende al pubblico prodotti o
servizi e può essere utilizzata esclusivamente da questa società; una chiave
pubblica viene distribuita e incorporata in tutti i browser più comuni, come
Internet Explorer e Netscape Navigator, a cura della Certification Authority.
C.G.I. - Common Gateway Interface. Insieme di regole che descrivono
come un server web comunica con altre applicazioni presenti sullo stesso PC e
come queste applicazioni (chiamate “programmi CGI”) comunicano con il server.
122
Qualsiasi applicazione può diventare un programma CGI se gli input e gli output
sono conformi allo standard CGI.
Cifratura o crittografia - Sistema che permette di codificare messaggi
testuali in simboli non comprensibili a prima vista, in modo che non possano
essere interpretati da chi non possiede la corretta chiave di lettura. La crittografia è
nata prima dei computer, ed è stata spesso utilizzata per cifrare i messaggi militari.
In pratica le lettere del testo vengono trasformate con un determinato algoritmo
ed è sufficiente conoscere o scoprire tale algoritmo per decifrare (decryption) il
messaggio. Oggi, invece, l'algoritmo è ben noto, ma per la decodifica è necessario
conoscere una o più parole chiave. In inglese è chiamata “encryption”.
Commutazione di circuito - In una rete a “commutazione di circuito”,
quando una sessione di comunicazione viene aperta, si stabilisce un contatto fra la
parte chiamante e quella chiamata. La rete telefonica PSTN, che è di questo tipo,
garantisce la qualità del servizio (QoS) dedicando alla conversazione un circuito
full-duplex con una larghezza di banda 64 KHz. Tale larghezza di banda rimane
inalterata indipendentemente dal fatto che le parti siano in conversazione attiva o
in silenzio. Nella tecnologia a “commutazione di circuito” la capacità del canale
trasmissivo è interamente dedicata ad un solo tipo di trasmissione. Per questo
motivo non possiamo utilizzare questa linea per telefonare e
contemporaneamente navigare in Internet. Per fare entrambe le cose dobbiamo
avere installata una linea (rete) particolare, ad esempio una linea ISDN o ADSL.
Commutazione di pacchetto - Tecnologia di trasferimento file su cui si è
basato lo sviluppo di Internet. Ogni singolo messaggio viene suddiviso in
“pacchetti” di dati dalle dimensioni fisse, con il proprio numero di identificazione,
l'indirizzo del mittente e del destinatario. Tutte queste informazioni sono
racchiuse nell'header del pacchetto. Il “pacchetto” di dati può così viaggiare nella
rete in modo autonomo utilizzando il percorso più rapido per raggiungere la meta
(in questo viene “aiutato” dai router). Questa tecnologia permette di usare lo
stesso canale di comunicazione per far passare contemporaneamente pacchetti
contenenti dati diversi. Una volta arrivati a destinazione, il messaggio è
ricomposto nella sua forma originaria. Il “packet switching” è stato elaborato da
Paul Baran negli anni '60.
D
D.D.o.S. - Distributed Denial of Service
D.E.S. - Data Encryption Standard. Algoritmo introdotto negli Stati Uniti
nella metà degli anni 70. Il DES è un sistema crittografico che sfrutta chiavi di
lunghezza pari a 64-bit (8 caratteri ASCII).
D.H.C.P. - Dynamic Host Configuration Protocol. È un protocollo che
permette agli amministratori di rete di gestire centralmente ed in modo
automatico l'assegnamento dell'indirizzo IP di ogni dispositivo connesso ad una
rete (che deve risultare unico).
123
D.N.S. - Domain Name System. Non è un vero e proprio protocollo
Internet ma piuttosto un sistema per tradurre i nomi dei nodi (ad esempio
www.nasa.org ) in indirizzi numerici (ad esempio 192.168.2.1).
Dominio - Nome alfabetico che identifica un server Internet al quale è
abbinato un indirizzo IP numerico utilizzato per il trasferimento dei dati, la
traduzione è affidata al DNS. Il nome di dominio è diviso in più parti: il dominio
di primo livello (Top Level Domain), la parte a destra dell'URL, che identifica
spesso la nazione del dominio (esempio: it=italia, uk=inghilterra, fr=francia...)
oppure la sua qualificazione (com=commerciale, org=organizzazione,
mil=militare, edu=universitaria...). Nello standard OSI viene chiamato Country
Code; il PRMD (Private Domain) name, in genere la parte intermedia dell'URL,
ad esempio “cisco” in www.cisco.com. Chiamato spesso dominio di secondo
livello, il sottodominio è la parte più a sinistra dell'URL. Il dominio di primo
livello deve essere richiesto ad un organismo apposito diverso per ciascuna
nazione.
Dominio di collisione - Nelle reti Ethernet il dominio di collisione
rappresenta l'area di rete entro cui i frame si possono scontrare. Ripetitori e hub
favoriscono la possibilità delle collisioni, mentre switch, bridge e router la
riducono.
D.o.S. - Denial of Service
D.S.L. - Digital Subscriber Line. Tecnologia di rete che trasmette con
larghezza di banda ampia a distanze limitate e attraverso il tradizionale doppino
telefonico in rame. Le DSL sono di quattro tipi: ADSL, HDSL, SDSL e VDSL.
Ognuna di esse si avvale di due dispositivi specifici (simili ai modem) ai due
estremi della trasmissione. Poiché la maggior parte delle tecnologie DSL non
utilizza tutta la larghezza di banda disponibile sul doppino, rimane spazio per un
canale voce (ad esempio per normali telefonate). Vedere anche ADSL, HDSL,
SDSL e VDSL.
E
E-mail - Electronic Mail. Posta elettronica, ovvero scambio di messaggi e di
file attraverso una rete locale o Internet. Avviene in tempo reale ed è indipendente
dalla posizione fisica dei computer mittente e destinatario. I messaggi e file
vengono conservati da un server di tipo POP e/o IMAP che provvede ad
inoltrarli al destinatario quando questo si collega.
Encryption - Trasformazione, mediante un algoritmo matematico ed una
chiave, di un messaggio leggibile in un altro messaggio non facilmente
interpretabile. L'obiettivo e' quello di nascondere la natura dell'informazione agli
occhi di persone non autorizzate a venirne in possesso.
Ethernet - La più diffusa tecnologia LAN inventata dalla Xerox
Corporation e sviluppata successivamente dalla stessa Xerox insieme ad Intel e
Digital Equipment Corporation. La tecnologia Ethernet utilizza il protocollo
CSMA/CS (Collision Detection) per spostare i pacchetti tra computer. Opera su
vari tipi di cavi (coassiali o doppini telefonici) ad una velocità di 10 Mbps, è simile
124
alle serie standard IEEE 802.3. Vedere anche 10Base2, 10Base5, 10BaseF,
10BaseT e Fast Ethernet.
Extranet - Una rete simile ad Internet ma limitata nell'accesso a partner,
fornitori o clienti di un'azienda, cui è stata fornita un'apposita password. Permette
di condividere in modo semplice e conveniente informazioni e risorse.
F
Fast Ethernet - tecnologia LAN che utilizza lo stesso metodo di
trasmissione di Ethernet 10 Mbps, ovvero il protocollo CSMA/CS (Collision
Detection), ma che opera con una velocità dieci volte superiore, cioè 100 Mbps.
Fast Ethernet è la soluzione ideale per prestazioni superiori in reti Ethernet
congestionate, poiché utilizza lo stesso cablaggio e gli stessi software di rete. Le
varianti esistenti comprendono 100BaseFX, 100BaseT4 e 100BaseTX.
F.D.D.I. - Fiber Distributed Data Interface. Tecnologia LAN basata su una
rete con topologia ad anello da 100 Mbps che utilizza cavi a fibre ottiche che
coprono distanze fino a 2 Km. Generalmente è riservata alle dorsali di rete di
grandi organizzazioni.
Fibra ottica - Il cavo in fibra ottica utilizza i segnali luminosi per trasferire i
dati e li trasmette attraverso una sottile fibra in vetro. È generalmente composto
da una parte centrale in vetro circondata da parecchi strati di materiali protettivi. Il
fatto di trasmettere impulsi luminosi anziché segnali elettrici consente di eliminare
il problema delle interferenze elettriche. Per questo motivo è il mezzo trasmissivo
ideale per quegli ambienti che hanno parecchie interferenze elettriche. I dati che
viaggiano sulle fibre ottiche sono trasferiti a velocità altissime e su distanze
maggiori rispetto al cavo coassiale e al twisted pair. Le fibre ottiche vengono
spesso utilizzate per le dorsali (backbone).
Firewall - Il firewall (letteralmente “parete antincendio”) è un sistema che
impedisce gli accessi non autorizzati. In pratica è un sistema in grado di
controllare l'accesso alle reti intercettando tutti i messaggi in entrata e in uscita. Il
firewall, a seconda della configurazione e della tipologia, permette infatti il
passaggio solamente di determinati tipi di dati, da determinati PC e da determinati
utenti. Il firewall separa e protegge la rete interna, definendo e rafforzando le
policy di rete. I computer esterni alla rete devono attenersi a una specifica
procedura per ottenere l'accesso alle risorse, agli host e a tutte le altre
informazioni. Se l'accesso viene autorizzato l'utente può passare, a patto che si
attenga alla procedura definita dal firewall. Di solito sono configurati per
proteggere la rete contro i login non autenticati all'esterno.
Firma Digitale - Cifratura della chiave di hash atta a garantirne l'autenticità.
Frame - Gruppo logico di informazioni inviate come unità a livello
Collegamento Dati, su un mezzo trasmissivo. Spesso coincide con i dati
dell'intestazione (header) che controllano la sincronizzazione e gli errori relativi
all'invio delle informazioni dell'utente, contenute nell'unità. I termini cella,
datagramma, messaggio, pacchetto e segmento sono anch'essi sinonimi per
descrivere gruppi logici di informazioni inviate ai vari livelli del modello OSI.
125
Frame Relay - Tecnologia di collegamento di tipo geografico (WAN) a
commutazione di pacchetto che opera al livello COLLEGAMENTO DATI.
Questo protocollo è più efficiente dell'X.25.
F.T.P. - File Transfer Protocol. Parte del principale del gruppo (TCP/IP) di
protocolli Internet, utilizzato per trasferire i file dai server Internet ai computer
dell'utente.
G
Gateway - Punto di collegamento che regola la comunicazione fra due reti,
fra Internet e una rete locale. I gateway connettono reti anche tecnologicamente
molto diverse tra loro operando ad un livello OSI superiore (livello
APPLICAZIONE) a quello in cui operano i router (livello RETE). I gateway
sono infatti elementi di comunicazione usati nella interconnessione di reti locali
tra loro eterogenee, sia su scala locale LAN che su scala geografica WAN, a cui
possono essere affidate anche complesse funzioni di conversione di protocolli,
rappresentazione dati e modalità di accesso a risorse in maniera trasparente alle
singole reti.
G.A.R.R. - Gruppo per l'Armonizzazione delle Reti della Ricerca
Gigabit Ethernet - Tecnologia LAN che utilizza lo stesso metodo di
trasmissione di Ethernet 10 Mbps, ovvero il protocollo CSMA/CS (Collision
Detection), ma che opera con una velocità cento volte superiore, 1.000 Mbps,
cioè 1 Gbps. Gigabit Ethernet viene impiegata nelle dorsali aziendali a fibra ottica.
Una tecnologia alternativa a questo tipo di rete è l'ATM.
G.P.R.S. - General Packet Radio Service. Standard per le comunicazioni
cellulari a 150 Kbps.
G.U.I. - Graphic User Interface. Interfaccia utente che riceve comandi non
tramite la digitazione sulla tastiera, ma utilizzando forme grafiche come puntatori,
icone, finestre, menu e pulsanti. Microsoft Windows e Apple MacOS sono esempi
di piattaforme GUI.
H
Hash, Algoritmo - Procedura secondo la quale, dato un messaggio ed una
chiave, è possibile determinare l'integrità del messaggio.
Hop - Termine che descrive il passaggio di un pacchetto di dati tra due nodi
di una rete. Ad esempio il tratto di rete fra un router (o uno switch) e l'altro.
Host - Computer ospite che accetta, tramite rete, le richieste di altri PC o
terminali, che possono così utilizzare programmi o condividere dati presenti
sull'host.
H.T.M.L. - HyperText Markup Language. Semplice linguaggio di
formattazione dei documenti utilizzato per preparare le pagine che devono essere
visualizzate dai browser Web. Creato nel 1991, l'HTML fu elaborato
successivamente dal CERN di Ginevra. Si tratta di un linguaggio piuttosto
semplice. Esistono molte versioni, tutte comunque, devono passare
l'approvazione del W3C, l'organizzazione che regolamenta e promuove l'uso dello
standard. Esistono vari editor HTML in commercio che facilitano o
126
automatizzano del tutto la creazione del codice HTML, consentendo di
impaginare i documenti senza alcuna conoscenza di programmazione.
H.T.T.P. - Hypertext Transfer Protocol. Protocollo su cui si basa il WWW
(World Wide Web). In linea di massima l'unica attività svolta da un server HTTP
è quella di inviare file, siano essi documenti testuali, documenti in formato
HTML, immagini, suoni, sulla base delle richieste pervenuti dai client degli utenti
Internet tramite browser.
I
I.A.N.A - Internet Assigned Numbers Authority
I.C.M.P. - Internet Control Message Protocol. Protocollo Internet a livello
RETE che riporta i messaggi d'errore e di controllo della rete.
I.D.S. - Intrusion Detection System
I.K.E. - Internet Key Exchange. Procedura che garantisce lo scambio delle
chiavi di cifratura.
I.M.A.P. - Internet Message Access Protocol. Protocollo per l'E-mail, più
evoluto del POP. IMAP4, per esempio, permette di scaricare messaggi anche solo
parzialmente, di archiviare i messaggi sia sul computer sia sul server e di
condividere caselle di posta con altri utenti. Anche l'IMAP utilizza il protocollo
SMTP.
I.N.F.N. - Istituto Nazionale di Fisica Nucleare
Internet - L'insieme di tutte le connessioni di rete. Ogni rete è costituita da
un insieme di computer (nodi) tra loro collegati dal protocollo TCP/IP. Esistono
tuttavia reti che non si basano sul protocollo TCP/IP e pertanto non sono
considerate appartenenti ad Internet, comunque è possibile comunicare con
queste reti grazie ai gateway. Internet può essere considerata in parte l'evoluzione
del sistema ARPANET.
Internetworking - Termine generale che si riferisce all'intero sistema di
interconnessione di reti e che comprende prodotti, procedure e tecnologie di rete.
Intranet - Rete che utilizza la stessa tecnologia di Internet ma limitata
nell'accesso ai soli dipendenti dell'azienda o membri dell'organizzazione. Di solito
viene usata dalle aziende per mettere in collegamento la sede centrale con le varie
filiali sparse nel mondo. Ad essa si accede tramite password.
I.P. - Internet Protocol. È il protocollo di comunicazione di Internet. I
messaggi vengono suddivisi in pacchetti e inviati attraverso la Rete. Il protocollo
IP aggiunge ad ogni pacchetto le informazioni necessarie (fra cui l'indirizzo IP del
computer di destinazione) affinché ogni host possa instradare il pacchetto verso la
destinazione finale.
IPSec - Protocollo basato su IP che garantisce l'integrità e l'autenticità del
traffico che transita su una rete condivisa non sicura.
IP spoofing - Questa operazione permette agli hacker di venire in possesso
di indirizzi IP della rete privata dell'azienda che vogliono attaccare. L'obiettivo è
quello di eludere i controlli di sicurezza al perimetro “costruendo” pacchetti IP il
cui indirizzo sorgente è l'indirizzo IP “rubato”.
127
I.S.O. - International Organization for Standardization. Nata nel 1947 a
Londra, questa organizzazione a partecipazione volontaria presiede alla
regolamentazione degli standard internazionali riguardanti molteplici settori. Nel
1978 l'ISO propose OSI, un modello di riferimento a 7 livelli per sistemi di rete
diversi.
L
LAN - Local Area Network. Rete o gruppo di segmenti di rete confinati in
un edificio o un campus, che collega computer e periferiche (es. stampanti, fax,
scanner) installate nella stessa sede (es. stesso palazzo, anche a piani diversi)
oppure in sedi vicine (es. due palazzi adiacenti). Le LAN operano di solito ad alta
velocità; per esempio Ethernet ha una velocità di trasferimento dati di 10 Mbps o
di 100 Mbps nel caso della Fast Ethernet. Confrontare con la voce WAN.
Larghezza di banda - Capacità di “trasporto dei dati” di un collegamento
di rete utilizzata per indicare la velocità di trasmissione. Per esempio, un
collegamento Ethernet è in grado di trasprtare 10 Mbps (10 milioni di bit al
secondo); un collegamento 100 Mbps (100 milioni di bit al secondo); 1.000 Mbps
(1 miliardo di bit al secondo).
Livello 1: Fisico - Il livello fisico si occupa della trasmissione dei singoli bit
da un estremo all'altro dei vari mezzi di comunicazione che possono essere il
doppino telefonico, il cavo coassiale, le fibre ottiche, le onde radio, i satelliti.
Perché si possa avere una connessione tra PC è necessario dunque, ma non
indispensabile, un supporto fisico, composto solitamente da un cavo e da
interfacce di comunicazione. La connessione tipica di una rete locale utilizza
sistemi Ethernet. I cavi e le schede Ethernet appartengono a questo primo livello.
Protocollo standard è il protocollo Ethernet.
Livello 2: Collegamento Dati - Il livello del collegamento dati riguarda i
dispositivi che gestiscono il collegamento dati da un PC all'altro della stessa rete.
Controlla la correttezza delle sequenze di bit trasmesse e ne richiede
eventualmente la ritrasmissione. Provvede alla formattazione delle informazioni
ed alla sincronizzazione dei frame, nonché alla correzione ed al recupero dei
messaggi errati. Un frame contiene, a livello di collegamento dati, l'indirizzo di
destinazione e, se richiesto da un livello superiore, anche l'indirizzo di origine, e
un codice per la correzione e rilevazione degli errori. Il protocollo più utilizzato
nel livello 2 è il protocollo X.25.
Livello 3: Rete - Nel livello di rete i messaggi vengono suddivisi in pacchetti
che, una volta giunti a destinazione, vengono riassemblati nella loro forma
originaria. Il livello di rete provvede inoltre a reinstradare tramite i router i
pacchetti verso il PC di destinazione. Nel caso di una rete locale a banda larga con
canali multipli ciò significa che è a questo livello che avviene lo smistamento dei
pacchetti dati da e verso i rispettivi canali di origine o di destinazione. Il
protocollo di rete più utilizzato nel livello 3 è il protocollo IP.
Livello 4: Trasporto - Il livello di trasporto gestisce la trasmissione dei
pacchetti end-to-end. Ha il compito specifico di assicurare il trasferimento dei dati
tra strati di sessione appartenenti a sistemi diversi, geograficamente separati, senza
128
che sui dati vi siano errori o duplicazione. È in grado di identificare il destinatario,
aprire o chiudere una connessione con il sistema corrispondente, suddividere o
riassemblare un testo, controllare e recuperare gli errori, controllare la velocità con
cui fluiscono le informazioni. A questo livello l'esistenza dei livelli inferiori è
completamente ignorata e ciò porta ad identificarlo come il primo dei livelli che
prescindono dal tipo e dalle caratteristiche della rete utilizzata. Il protocollo
standard utilizzato nel livello 4 è il TCP.
Livello 5: Sessione - Il livello di sessione gestisce la corretta
sincronizzazione della corrispondenza dei dati che verranno poi visualizzati.
Instaura cioè una sessione, cioè un collegamento logico e diretto tra due
interlocutori, organizzandone il dialogo. Per tipo di dialogo si intende la modalità
full-duplex, ovvero in entrambe le applicazioni in trasmissione e ricezione
contemporaneamente (tipo telefono), o in half-duplex, che equivale a dire che
mentre una stazione trasmette l'altra riceve o viceversa (tipo radiotelefono),
oppure in simplex, dove una stazione può sempre e solo trasmettere e l'altra
sempre e solo ricevere (come nelle trasmissioni televisive). Per sincronizzazione
s'intende invece la capacità di sapere sempre fino a che punto la comunicazione
sia arrivata a buon fine.
Livello 6: Presentazione - Il livello di presentazione gestisce i formati di
conversione dei dati, cioè effettua tutte le opportune conversioni in modo da
compensare eventuali differenze di rappresentazione e di formato dei dati in
arrivo e/o in partenza. Macchine diverse possono avere infatti rappresentazioni
diverse. Ha anche il compito di assicurare l'opportuna compressione e/o la
necessaria crittografia dei dati da scambiare.
Livello 7: Applicazione - Il livello di applicazione riguarda i cosiddetti
programmi applicativi. Questo livello gestisce la visualizzazione dei dati: login
remoto, file transfer, posta elettronica. Per la gestione dei PC, il problema si
presenta quando due sistemi che vogliono comunicare possiedono video o tastiere
diverse, e quindi non compatibili. Ad esempio, per spostare il cursore ad inizio
linea o per cancellare lo schermo, ogni scheda ha i suoi comandi specifici: invece
di dotare tutti i sistemi di opportuni traduttori per tutti i possibili interlocutori è
evidentemente molto più semplice definire uno standard unico di un PC virtuale a
cui tutti i corrispondenti dovranno adeguarsi per comunicare.
L.N.F. - Laboratori Nazionali di Frascati
Login - Operazione durante la quale vengono digitati lo username e la
password, per avere accesso a reti, siti o pagine Internet riservate.
L.P.D. - Line Printer Daemon
M
M.A.C. (address) - Media Access Control Address. Indirizzo di livello 2 di
un nodo.
M.A.N. - Metropolitan Area Network. Rete che si estende sull'area
metropolitana. Ricopre quindi un'area geografica maggiore di un LAN ma minore
di una WAN. Vedi anche LAN e WAN.
129
N
N.A.S. - Network attached storage
N.A.T. - Network Address Translation. Meccanismo sviluppato per ridurre
il fabbisogno globale di indirizzi IP unici. Il NAT permette ad una organizzazione
di utilizzare al suo interno indirizzi non unici, ovvero utilizzati anche da altre
aziende. La connessione verso internet è possibile grazie ad una traslazione degli
indirizzi privati in pubblici. Ad un unico indirizzo pubblico (risparmio degli
indirizzi IP) possono corrispondere numerosi indirizzi privati.
NetBEUI - NetBIOS Extended User Interface. Versione aggiornata del
protocollo NetBIOS utilizzato nei sistemi operativi di rete (LAN Manager, LAN
Server, Windows for Workgroups e Windows NT). NetBEUI organizza il
trasporto dei frame aggiungendo funzioni supplementari. Inoltre, implementa il
protocollo OSI LLC2.
NetBIOS - Network Basic Input/Output System. Era il nome di uno dei
componenti software sviluppati in principio da IBM e Microsoft per supportare i
servizi NetBIOS dei primi PC.
N.I.C. - Network Interface Card. Si tratta della scheda di rete, cioè un
dispositivo che permette al computer di colloquiare con la rete. Le schede di rete
sono generalmente installate all'interno del PC. Sul retro del computer compare la
parte terminale della scheda, dove si inserisce il cavo di rete. Portatili e notebook
hanno schede di rete differenti (formato PCMCIA), ed occupano uno slot che si
trova solitamente su uno dei lati. Esistono schede di rete Ethernet (10 Mbps) e
Fast Ethernet (100 Mbps).
N.NT.P. - Network News Transfer Protocol. Protocollo per la gestione
delle newsgroup in USENET ed Internet (gruppi di discussione).
N.T.P. - Network Time Protocol
O
O.S.I. - Modello OSI (Open Systems Interconnection). Tutto il sistema
hardware e software che ruota attorno alle reti è regolato da norme ben precise
che fanno riferimento nella maggior parte dei casi al cosiddetto Modello OSI,
realizzato nel 1984 dall'ISO (International Standard Organization). Questo
modello fornisce uno standard per le interconnessioni in rete dei vari PC.
P
Pacchetto - Gruppo di dati con un'intestazione (header) che può indicare il
contenuto del pacchetto e il suo destinatario. Si può immaginare un pacchetto
come una “busta di dati” con l'header che funge da indirizzo. I pacchetti vengono
inviati ai destinatari attraverso le reti utilizzando la modalità “packet switching”.
Password - Parola che consente l'accesso di un utente ad una rete, ad un
servizio telematico o ad un sito Internet riservato. Alcuni software distinguono fra
lettere maiuscole e minuscole.
Peer-to-peer - Architettura di rete nella quale tutti i computer possono
essere sia client che server.
130
PGP - Pretty Good Privacy. Sistema di crittografia a chiave pubblica che
consente scambi sicuri di file e messaggi attraverso la rete.
Plug-in - Software accessorio che aggiunge determinate funzioni ai
programmi.
POP - Post Office Protocol. Si tratta del primo protocollo di posta
elettronica. Il server POP immagazzina la posta arrivata e la rende disponibile
quando l'utente si collega. Dalla versione POP3 la lettura dei messaggi arrivati e la
composizione dei nuovi messaggi possono essere effettuati off-line, collegandosi
poi per un brevissimo periodo, giusto per consentire l'invio e la ricezione
automatica dei messaggi. Un protocollo di questo tipo, ma decisamente più
avanzato è l'IMAP. POP può essere inteso però anche come “Point of Presence”,
ossia come punto locale di accesso alla rete.
PPP - Point to Point Protocol. Protocollo che ha sostituito il protocollo
SLIP che forniva connessioni router-to-router e host-to-network su circuiti
sincroni e asincroni. Lo SLIP infatti poteva funzionare solo con il protocollo IP,
mentre il PPP va bene anche per altri protocolli come l'IPX e l'ARA. Inoltre il
PPP possiede meccanismi di sicurezza propri come il CHAP e il PAP. Il PPP si
basa essenzialmente su due protocolli: l'LCP e l'NCP.
PPTP - Point-To-Point Tunneling Protocol. Protocollo utilizzato da
Windows 98 che permette l'implementazione di reti virtuali VPN in Internet o
Intranet, consentendo di utilizzare protocolli diversi dal TCP/IP, come il
protocollo IPX per reti NetWare.
Proxy Server - I Proxy Server sono dei server che “filtrano” le informazioni
che arrivano da Internet attraverso il firewall. Quando ci si connette ad un proxy
con il proprio software client, il server avvia il suo software client (proxy) e
fornisce i dati. Dal momento che i proxy server duplicano tutte le comunicazioni,
sono in grado di mantenere il logging di tutto quello che fanno. Un grande
vantaggio dei proxy server sta nel fatto che sono completamente sicuri, se
configurati correttamente, non avendo instradamenti IP diretti.
Q
QoS - Quality of Service - Qualità del Servizio. Nasce dall'idea che la
velocità di trasmissione e il tasso di errori possono essere misurati, migliorati ed in
alcuni casi bisogna garantirne una percentuale. QoS è particolarmente importante
quando si trattano comunicazioni che includono video e voce o comunque
informazioni di tipo multimediali, poiché questi tipi di dati devono essere gestiti in
modo differenziato rispetto ai dati puri.
R
Rete di perimetro - Ci si riferisce alla rete posta tra la rete pubblica
(untrusted network o external network) e la rete interna sicura (trusted network)
con l'obiettivo di aggiungere un livello di sicurezza aggiuntivo.
Router - Termine che indica un dispositivo che sposta i dati tra segmenti di
rete diversi ed è in grado di leggere l'header del pacchetto di dati per determinare
131
il percorso di trasmissione migliore. I router possono collegare segmenti di rete
che utilizzano protocolli diversi. Essi permettono inoltre a tutti gli utenti di una
rete di condividere un unico collegamento verso Internet o verso una WAN. I
router sono ancora più intelligenti degli hub e degli switch. Basandosi su una
mappa di rete denominata tabella di routing, i router possono fare in modo che i
pacchetti raggiungano le loro destinazioni attraverso i percorsi più idonei. Se cade
la connessione tra due router, per non bloccare il traffico, il router sorgente può
creare un percorso alternativo. I router definiscono anche i collegamenti tra reti
che utilizzano protocolli diversi, come ad esempio l'IPX (Internet Packet
Exchange) e l'AppleTalk. Il router mantiene costantemente un elenco delle
possibili vie di inoltro dei pacchetti di dati, verificando l'occupazione delle linee e
scegliendo la soluzione migliore (incrociando sia le informazioni sui tempi, che
quelle sui costi). Infine, i router gestiscono anche i trasferimenti mobili, come lo
spostamento continuo di un PC portatile.
Router-based firewall - Sono firewall dove la sicurezza è implementata
utilizzando filtri a livello di pacchetto come primo stadio di protezione della rete.
RSA - Il più diffuso sistema di cifratura. Il suo nome deriva dalle iniziali dei
suoi 3 inventori: Ronald River, Adi Shamir e Leonard Adleman. Fu inventato nel
1978.
S
S/Key - Metodo di autenticazione sviluppato dalla Bellcore che utilizza delle
one-time password. Con questo sistema, viene generato per l'utente un set di
password partendo da una parola chiave. Quando il sistema presenta all'utente la
schermata di autenticazione, l'utente genererà, partendo dalla parola chiave, una
one-time password che varrà solo per quella sessione.
S.A.N - Storage Area Network
S.D.S.L. - Single-Line Digital Subscriber Line. Una delle quattro tecnologie
DSL. L'SDSL trasmette con larghezza di banda pari a 1,544 Mbps sia in fase di
ricezione che di trasmissione su singolo cavo twisted pair. L'utilizzo di un singolo
doppino telefonico limita la copertura di trasmissione a 3048,8 metri. Vedere
anche ADSL, HDSL e VDSL.
Security policy - Insieme di regole che specificano quale rete o suo
elemento è abilitata a comunicare con quali altre reti o elementi di rete.
Server - Termine che indica un computer e un software che offrono servizi
ai client quali la memorizzazione dei file (file server), i programmi (application
server), la condivisione di stampanti (print server), fax (fax server) o modem
(modem server). Quando la rete si ingrandisce e si aggiungono altri computer, uno
di essi diventa il cosiddetto server, cioè un punto centrale per l'archiviazione dei
dati o dei programmi applicativi in rete. Trasformare un computer in un server
dedicato (cioè un PC su cui non ci lavora nessuno e che rimane a disposizione di
tutti) consente di risparmiare sia sui costi aggiuntivi di nuove infrastrutture di rete,
sia sui costi di gestione delle stesse. I computer collegati al server vengono
chiamati client. Non è comunque necessario disporre di un server dedicato nella
132
propria rete. Tuttavia, se alla rete si aggiungono sempre più utenti, un server
dedicato può fungere da centrale per i compiti amministrativi come il backup dei
file e gli upgrade dei programmi.
S.M.T.P. - Simple Mail Transfer Protocol. Protocollo per lo scambio di
messaggi di posta elettronica in rete TCP/IP (Internet, Intranet, Extranet).
Progettato per messaggi in ASCII puro, attraverso le estensioni MIME può gestire
messaggi formattati ed allegati grafici, audio, video e multimediali.
S.N.M.P. - Simple Network Management Protocol. Protocollo standard di
Internet per la gestione di reti IP e dei dispositivi collegati. L'SNMP gestisce il
protocollo TCP/IP, computer, router, hub.
Spamming - Invio indiscriminato di grosse quantità di messaggi di posta
elettronica.
SSL - Secure Sockets Layer. Protocollo di sicurezza che assicura le
transazioni commerciali in rete con carte di credito.
Switch - Dispositivo che connette tra loro i computer analogamente a
quanto fa un hub, ma in modo più efficiente e flessibile. Migliora le prestazioni di
una rete segmentandola in sottoreti e attribuendo la banda disponibile in modo
intelligente. Quando la porta di uno switch riceve i pacchetti di dati, li invia alle
porte specifiche dei destinatari, sulla base delle informazioni contenute nell'header
di ogni pacchetto. In tal modo si ottimizza l'uso della larghezza di banda
disponibile tra client, server o workgroups collegati ad ogni porta dello switch. Gli
switch quindi sono più intelligenti degli hub e offrono una larghezza di banda
dedicata più grande. Uno switch stabilisce una connessione temporanea tra la
sorgente e il punto di destinazione, chiudendola al termine del collegamento. Lo
switch migliora le prestazioni di una rete segmentandola e riducendo la contesa
per l'utilizzo della larghezza di banda. Le porte dello switch sono collegate tramite
cavo UTP ai dispositivi di rete. I dispositivi connessi ad uno switch fanno parte
dello stesso segmento di rete e più switch possono essere collegati in serie per
formare una rete più complessa, a volte mischiando hub e switch secondo
necessità. Lo switch è più semplice e veloce del router, il quale sceglie
l'instradamento anche giudicando in base ad un resoconto dei costi e dei tempi di
trasmissione.
T
TCP/IP - Transmission Control Protocol/Internet Protocol. È il
protocollo utilizzato da Internet e da molte reti locali. In particolare, il TCP si
occupa della suddivisione dei messaggi in “pacchetti”, mentre l'IP pensa ad inviarli
al corretto destinatario.
T.F.T.P. - Trivial File Transfer Protocol
Telnet - Protocollo simile al TCP/IP che permette ad un utente di collegarsi
in maniera interattiva ad un PC in remoto; è un'applicazione client/server usata
per interrogazioni di database o per usufruire di servizi specifici di alcuni server.
Token Ring - Tecnologia LAN nella quale i pacchetti vengono trasferiti tra
le stazioni terminali della rete da un “gettone” (token) virtuale, che si muove
continuamente intorno ad un anello chiuso tra le stazioni, ad una velocità tra 4 e
133
16 Mbps. Il protocollo Token Ring viene utilizzato su topologie a stella (o con più
hub collegati ad anello), su cavi coassiali intrecciati a 150 W. Così come Ethernet,
anche il protocollo Token Ring fornisce servizi per i primi due livelli dell'OSI,
cioè il livello Fisico e il livello Collegamento Dati. I protocolli per i livelli 1 e 2
dell'OSI si distinguono in funzione del mezzo trasmissivo usato e del modo in cui
il segnale è applicato al mezzo. Nelle reti Token Ring quando una stazione vuole
trasmettere un pacchetto deve aspettare il gettone e rimuoverlo dall'anello prima
di trasmettere il proprio pacchetto. Quest'ultimo viaggerà in una sola direzione
lungo l'anello, passando da un PC all'altro. Come nel caso di reti Ethernet, il
pacchetto è di solito indirizzato ad una singola stazione, e quando passerà da
quella stazione il pacchetto verrà copiato. Poi continuerà a viaggiare lungo l'anello
finché non ritornerà alla stazione di partenza, che provvederà a rimuoverlo dalla
rete e ad inviare il gettone alla stazione successiva che si trova sull'anello.
Topologia a bus - Nella topologia a bus tutti i PC sono connessi tra loro in
modo lineare, per così dire in sequenza “a catena”. Le estremità di un bus non
sono collegate tra loro, ma devono sempre essere terminate, altrimenti i segnali
che raggiungono la fine del cavo possono fare un eco indietro, disturbando la
trasmissione. Nelle reti con topologia a bus, come in quelle con topologia ad
anello, viene di solito utilizzata la trasmissione a “commutazione di pacchetto”.
Una stazione che vuole trasmettere delle informazioni divide il suo messaggio in
tanti piccoli pacchetti e li invia uno alla volta. La topologia a bus è usata spesso
con la cablatura in cavo coassiale. La “topologia ad albero” è una generalizzazione
della topologia a bus, infatti una rete ad albero viene realizzata collegando insieme
più reti a bus.
Topologia a stella - La topologia a stella è oggi la topologia più utilizzata.
In essa tutti i computer sono connessi ad un nodo centrale che può essere un
semplice ripetitore (hub) o anche un dispositivo intelligente (switch o router).
Nelle reti con topologia a stella i pacchetti che vengono inviati da un PC ad un
altro sono ripetuti su tutte le porte dell'hub. Questo permette a tutti i PC di vedere
qualsiasi pacchetto inviato sulla rete, ma solo il PC a cui il pacchetto è indirizzato
lo copierà sul proprio hard disk. Uno dei vantaggi è dato dal fatto che se vi è
un'interruzione su una delle connessioni della rete solo il computer attaccato a
quel segmento ne risentirà, mentre tutti gli altri PC continueranno ad operare
normalmente. Uno svantaggio è il costo aggiuntivo imposto dall'acquisto di uno o
più hub. Di solito, però, questa spesa è compensata dalla più facile installazione e
dal costo più economico del cablaggio in twisted pair rispetto al cavo coassiale.
Topologia ad anello - Una topologia ad anello è in pratica una topologia a
bus dove le due estremità sono unite tra loro a formare un anello. In questa
topologia le informazioni viaggiano in una sola direzione. I dati, organizzati in
pacchetti ognuno dei quali contiene l'indirizzo di destinazione, girano all'interno di
questo anello fino a raggiungere il PC di destinazione. La topologia ad anello può
essere utilizzata con la cablatura in twisted pair, in cavo coassiale o in fibra ottica.
Il protocollo più importante attualmente utilizzato su reti locali con topologia ad
anello è il protocollo Token Ring.
134
Trusted network - Sono le reti delimitate dalla propria rete di perimetro. Ci
si riferisce a loro con il termine “sicure” perché sono sotto il nostro diretto
controllo e quindi contemplate nella nostra policy di sicurezza.
U
UDP - User Datagram Protocol. UDP è un protocollo di trasporto
semplice, senza connessione, che si basa sul trasferimento di pacchetti di dati.
Non è particolarmente affidabile: invia i pacchetti ma non garantisce che questi
arrivino a destinazione. Sono quindi gli applicativi che lo utilizzano che devono
preoccuparsi dell'affidabilità del servizio.
UMTS - Universal Mobile Telecommunications System. Il nuovo standard a
banda larga basato su una serie di apparecchiature e sulla W-Cdma (WidebandCode division multiple access) che consentirà ai cellulari della terza generazione di
accedere a banche dati on line, partecipare a videoconferenze, seguire programmi
TV e radiofonici, ricevere e inviare messaggi audio e video, comprare via Internet,
effettuare il trading on line e attivare servizi di home banking direttamente dal
telefonino.
Untrusted network - Sono le reti che si sa essere al di fuori della propria
rete di perimetro. Ci si riferisce a loro con il termine “non sicure” proprio perché
non sono sotto il nostro diretto controllo e quindi non sono contemplate nella
nostra policy di sicurezza. Generalmente si fa riferimento a queste reti quando si
parla della rete pubblica (Internet).
URL - Universal Resource Locator. L'indirizzo di una pagina web su
Internet, cioè l'indirizzo completo da digitare per ricevere una pagina, in formato
alfabetico. L'URL viene trasformata in indirizzo IP dal DNS.
User-id - Vedere “Username”.
Username - Parola che identifica l'utente di una rete, di un servizio
telematico o di un sito Internet. Bisogna digitarla esattamente, assieme alla
password. Alcuni software distinguono fra lettere maiuscole e minuscole. Lo
username può essere composto da sole lettere, da soli numeri, oppure lettere e
numeri insieme; è pubblico e sempre accessibile, anzi è indispensabile conoscere
quello di un altro utente per potergli indirizzare un messaggio di e-mail (negli
indirizzi di posta elettronica, lo username costituisce la prima parte:
[email protected]).
UTP - Unshielded Twisted Pair. Doppino telefonico a quattro fili utilizzato
nell'implementazione di molti tipi di rete. Il cavo UTP non è schermato
(unshielded) e questo non permette di ridurre le interferenze elettromagnetiche
(EMI). Esistono cinque tipi di cavi UTP: categoria 1, categoria 2, categoria 3,
categoria 4 e categoria 5. Vedere anche STP.
V
V.D.S.L. - Very-High-Data-Rate Digital Subscriber Line. Una delle quattro
tecnologie DSL. L'VDSL trasmette con larghezza di banda fra 13 e 52 Mbps in
fase di ricezione e fra 1,5 e 2,3 Mbps in fase di trasmissione su singolo cavo
135
twisted pair. L'utilizzo di un singolo doppino telefonico limita la copertura di
trasmissione tra 304,8 e 1.372 metri. Vedere anche ADSL, HDSL e SDSL.
V.L.A.N. - Virtual Local Area Network
V.P.N. - Virtual Private Network. Rete privata virtuale che permette al
traffico IP di viaggiare in modo sicuro su una rete TC/IP pubblica (Internet,
Intranet o Extranet) grazie alla codifica di tutto il traffico da una rete ad un'altra.
La VPN utilizza il “tunneling” per codificare tutte le informazioni a livello IP e
rappresenta l'alternativa economica alle più costose linee dedicate.
W
W.A.N. - Wide Area Networks. Rete geografica che connette computer in
città o nazioni diverse. Una tecnologia comune per le WAN è quella delle linee
telefoniche operanti fra 1 e 2 Mbps o nel caso di collegamenti intercontinentali,
l'uso di satelliti. Esempi di reti WAN sono i network di tipo Frame Relay, SMDS e
X.25.
Wireless - Le tecnologie “wireless”, sono quelle tecnologie che non
utilizzano cavi per i collegamenti. Le LAN wireless (WLAN) sono reti locali senza
cavi, interne a edifici, che comunicano utilizzando una tecnologia radio o a raggi
infrarossi per collegare i computer. Ad esempio una persona che utilizza un PC
portatile con tecnologia wireless è in grado di controllare la posta elettronica,
connettersi ad Internet e alle risorse di rete mentre si “sposta” fisicamente
all'interno di un edificio. Le WLAN impiegano sia la tecnologia a raggi infrarossi
(IR) sia la frequenza radio (RF), ma quest'ultima è senz'altro la più utilizzata,
avendo un raggio d'azione più lungo, una banda più larga e una copertura più
ampia. La maggior parte delle reti WLAN dispone oggi di una frequenza di 2,4
GHz. In casi particolari, si possono tuttavia raggiungere frequenze ancora più
elevate che superano i 10 Mbps. Le reti wireless sono molto utili negli edifici dove
può essere difficoltoso effettuare il cablaggio o dove è necessario crearlo in
brevissimo tempo. Questo tipo di rete ha tuttavia degli svantaggi: è molto costosa,
è poco sicura, è suscettibile all'interferenza elettrica della luce e delle onde radio ed
è di solito più lenta delle LAN che utilizzano la cablatura.
W.W.W. - World Wide Web. Termine coniato da Tim Berners-Lee (ideatore
del linguaggio HTML) nel 1990, indica l'insieme dei server Internet che
consentono alle pagine html e ad altri servizi di essere visualizzati attraverso
applicazioni client chiamate browser.
X
X.25 - Il protocollo X.25 è un protocollo di rete standard adottato dal
CCITT (Consultative Committee for International Telegraph and Telephone).
Opera su rete a “commutazione di circuito”, è utilizzato soprattutto su reti WAN,
reti pubbliche telefoniche e Frame Relay.
X.D.S.L. - Acronimo generico che si riferisce all'intera famiglia delle
tecnologie DSL. Vedi ADSL, HDSL, SDSL e VDSL.
136
Appendice B
ACL
no access-list 103
!
! Black list
access-list 103 deny ip any host 193.206.xxx.xxx log
!
!access-list 103 permit udp any host 192.84.xxx.xxx log
!access-list 103 permit tcp any host 192.84.xxx.xxx log
!
! Permesso a tutte le connessioni TCP gia' stabilite
!
access-list 103 permit tcp any 193.206.80.0 0.0.7.255 established
access-list 103 permit tcp any 192.135.25.0 0.0.0.255 established
access-list 103 permit tcp any 192.135.26.0 0.0.0.255 established
access-list 103 permit tcp any 192.84.128.0 0.0.3.255 established
!
! Permesso di tutti i nodi ai dns e smtp in ip
!
(sarebbe meglio sulle porte bind e smtp)
!
access-list 103 permit tcp any host 193.206.84.12 eq 53 log
access-list 103 permit udp any host 193.206.84.12 eq 53 log
access-list 103 permit tcp any host 193.206.84.12 eq 25 log
access-list 103 permit tcp any host 193.206.84.112 eq 53 log
access-list 103 permit udp any host 193.206.84.112 eq 53 log
access-list 103 permit tcp any host 193.206.84.112 eq 25 log
!
! Permesso di tutti i nodi ai server SSH del Calcolo (tcp 22)
!
access-list 103 permit tcp any host 193.206.84.35 eq 22 log
access-list 103 permit tcp any host 193.206.84.36 eq 22 log
access-list 103 permit tcp any host 192.84.130.106 eq 22 log
!
! Permesso di tutti i nodi ai web server primari
! sulle porte http (tcp 80) e https (udp,tcp 443)
!
access-list 103 permit tcp any host 193.206.84.219 eq 80 log
access-list 103 permit tcp any host 193.206.84.220 eq 80 log
access-list 103 permit tcp any host 193.206.84.198 eq 80 log
access-list 103 permit tcp any host 193.206.84.219 eq 443 log
access-list 103 permit tcp any host 193.206.84.220 eq 443 log
access-list 103 permit tcp any host 193.206.84.198 eq 443 log
#access-list 103 permit udp any host 193.206.84.221 eq 443 log
access-list 103 permit tcp any host 193.206.84.221 eq 443 log
!
!
!Permesso al nodo di Trieste SISSA per accesso al server web della
Presidenza
INFN
!
!
137
access-list 103 permit tcp host 147.122.xxx.xxx host 193.206.xxx.xxx
eq 443 log
!
!
! Permesso di tutti i nodi a web server secondari sulla porta http
! (tcp http-80,https-443,rtsp-554)
!
access-list 103 permit tcp any host 193.206.83.14 eq 80 log
access-list 103 permit tcp any host 193.206.83.14 eq 8080 log
access-list 103 permit tcp any host 193.206.82.4
eq 80 log
access-list 103 permit tcp any host 193.206.83.14 eq 554 log
access-list 103 permit udp any host 193.206.83.14 eq 554 log
access-list 103 permit tcp any host 193.206.83.208 eq 80 log
access-list 103 permit tcp any host 193.206.80.159 eq 80 log
access-list 103 permit tcp any host 193.206.80.166 eq 80 log
access-list 103 permit tcp any host 193.206.85.83 eq 80 log
!
! richiesto da <username>
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq <port> log
!
! Permesso di tutti i nodi di cosenza al web server del
funzionamento sulla
!
porta http (tcp 80)
!160.97.xxx.xxx/24 192.167.xxx.xxx/24
!
access-list 103 permit tcp 192.167.xxx.xxx 0.0.0.255 host
193.206.xxx.xxx eq 80 log
access-list 103 permit tcp 192.167.xxx.xxx 0.0.0.255 host
193.206.xxx.xxx eq 80 log
access-list 103 permit tcp 160.97.xxx.xxx 0.0.0.255
host
193.206.xxx.xxx eq 80 log
access-list 103 permit tcp 160.97.xxx.xxx 0.0.0.255
host
193.206.xxx.xxx eq 80 log
!
!
!Database esperimento <username>
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq 4333 log
!
!
!Visibilita' DataBase Kloe 192.135.25.71
!
access-list 103 permit tcp any host 192.135.25.71 eq 10030
access-list 103 permit tcp any host 192.135.25.71 eq 10038
access-list 103 permit tcp any host 192.135.25.71 eq 10040
!
! Permesso di tutti i nodi verso i server AFS (TCP e UDP range 70007009)
!
access-list 103 permit tcp any host 193.206.84.121 range 7000 7009
log
access-list 103 permit tcp any host 192.84.130.151 range 7000 7009
log
access-list 103 permit tcp any host 193.206.84.122 range 7000 7009
log
access-list 103 permit tcp any host 192.84.130.152 range 7000 7009
log
138
access-list 103 permit tcp any host 193.206.84.123 range 7000 7009
log
access-list 103 permit tcp any host 192.84.130.153 range 7000 7009
log
access-list 103 permit tcp any host 192.135.25.111 range 7000 7009
log
access-list 103 permit tcp any host 192.135.25.112 range 7000 7009
log
!
! Permesso di tutti i nodi per le call-back di afs (porta tcp 7001)
!
access-list 103 permit tcp any any eq 7001 log
!
! Permesso di tutti gli afsserver (di autenticazione INFN) verso
afsserver in ip
!
access-list 103 permit udp any host 193.206.84.121 eq 750 log
access-list 103 permit udp any host 193.206.84.122 eq 750 log
access-list 103 permit udp any host 193.206.84.123 eq 750 log
!
! Permesso di tutti i nodi all' NTPserver sulla porta ntp (udp 123)
! (afs1, afs1-f, afs3, afs3-f)
!
access-list 103 permit udp any host 193.206.84.121 eq 123 log
access-list 103 permit udp any host 192.84.130.151 eq 123 log
access-list 103 permit udp any host 193.206.84.122 eq 123 log
access-list 103 permit udp any host 192.84.130.152 eq 123 log
access-list 103 permit udp any host 193.206.84.123 eq 123 log
access-list 103 permit udp any host 192.84.130.153 eq 123 log
!
! Permesso al tunnel Appletalk (gre/ip)
!
access-list 103 permit gre any host 193.206.82.11 log
!
! Permesso del router GARR-B a fare telnet al router lnfgw
!
access-list 103 permit tcp host 193.206.xxx.xxx host 193.206.xxx.xxx
eq 23 log
!
! Permesso di tutti i nodi a dirpers sulle porte ftp (tcp 20, 21)
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq 20 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 21 log
!
! Permesso di tutti i nodi a ragsac sulle porte ftp e telnet (tcp
20, 21, 23)
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq 20 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 21 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 23 log
!
! Permesso di tutti i nodi a patsac sulle porte ftp (tcp 20, 21)
!
access-list 103 permit tcp any host 193.206.xxx.xxx eq 20 log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 21 log
!
! Permesso a tutti i tunnel su IP
!
139
access-list 103 permit esp any 193.206.80.0 0.0.7.255 log
access-list 103 permit esp any 192.84.128.0 0.0.3.255 log
!
! Permesso del server NT di SLAC a tutti i nodi dei LNF (protocollo
gre/ip)
!
access-list 103 permit gre host 134.79.xxx.xxx 193.206.80.0
0.0.7.255 log
access-list 103 permit gre host 134.79.xxx.xxx 193.206.80.0
0.0.7.255 log
!
! Permesso di tutti i nodi al server di dominio W2k dei LNF
(protocollo gre/ip)
e pptp
!
access-list 103 permit gre any host 193.206.xxx.xxx log
access-list 103 permit tcp any host 193.206.xxx.xxx eq 1723 log
!
! Divieto a tutto il resto sotto la porta 1024
!
access-list 103 deny tcp any any log
!
! Divieto a tutti i nodi verso le porte alte UDP “pericolose”:
!
NFS
(udp e tcp porta 2049),
!
MySQL
(tcp e udp porta 3306),
!
fontsrv (udp e tcp porte 7000 e
7100)
!
webmin (udp porta 10000)
!
access-list 103 deny udp any any eq 2049
log
access-list 103 deny udp any any eq 3306
log
access-list 103 deny udp any host 193.206.84.107 eq 7000 log
access-list 103 deny udp any any eq 7100
log
access-list 103 deny udp any any eq 10000
log
!
! Permesso di tutti i nodi verso le porte alte udp (>1024)
!
access-list 103 permit udp any any gt 1024
access-list 103 deny
udp any any
!
! permesso di tutti i nodi al ping
!
access-list 103 permit icmp any any log
!
! Divieto a tutto il resto
!
access-list 103 deny ip any any log
!
!===================================================================
===========
!
! Access List 104 per il TCP-Intercept
!
no access-list 104
!
! Permesso di tutti i nodi ai dns e smtp in ip
!
(sarebbe meglio sulle porte bind e smtp)
!
140
access-list 104 permit tcp any host 193.206.84.12 eq 53 log
access-list 104 permit tcp any host 193.206.84.12 eq 25 log
access-list 104 permit tcp any host 193.206.84.112 eq 53 log
access-list 104 permit tcp any host 193.206.84.112 eq 25 log
!
! Permesso di tutti i nodi ai server SSH del Calcolo (tcp 22)
!
access-list 104 permit tcp any host 193.206.84.35 eq 22 log
access-list 104 permit tcp any host 193.206.84.36 eq 22 log
access-list 104 permit tcp any host 192.84.130.106 eq 22 log
!
! Permesso di tutti i nodi ai web server primari
! sulle porte http (tcp 80) e https (udp,tcp 443)
!
access-list 104 permit tcp any host 193.206.84.219 eq 80 log
access-list 104 permit tcp any host 193.206.84.220 eq 80 log
access-list 104 permit tcp any host 193.206.84.198 eq 80 log
access-list 104 permit tcp any host 193.206.84.219 eq 443 log
access-list 104 permit tcp any host 193.206.84.220 eq 443 log
access-list 104 permit tcp any host 193.206.84.198 eq 443 log
#access-list 104 permit udp any host 193.206.84.221 eq 443 log
access-list 104 permit tcp any host 193.206.84.221 eq 443 log
!
! Permesso di tutti i nodi a web server secondari sulla porta http
! (tcp http-80,https-443,rtsp-554)
!
access-list 104 permit tcp any host 193.206.83.14 eq 80 log
access-list 104 permit tcp any host 193.206.83.14 eq 8080 log
access-list 104 permit tcp any host 193.206.82.4
eq 80 log
access-list 104 permit tcp any host 193.206.83.14 eq 554 log
access-list 104 permit tcp any host 193.206.83.208 eq 80 log
access-list 104 permit tcp any host 193.206.80.159 eq 80 log
access-list 104 permit tcp any host 193.206.80.166 eq 80 log
access-list 104 permit tcp any host 193.206.85.83 eq 80 log
!
! Permesso di tutti i nodi di cosenza al web server del
funzionamento sulla
!
porta http (tcp 80)
!160.97.xxx.xxx/24 192.167.xxx.xxx/24
!
access-list 104 permit tcp 192.167.201.0 0.0.0.255 host
193.206.xxx.xxx eq 80 log
access-list 104 permit tcp 192.167.201.0 0.0.0.255 host
193.206.xxx.xxx eq 80 log
access-list 104 permit tcp 160.97.xxx.xxx 0.0.0.255
host
193.206.xxx.xxx eq 80 log
access-list 104 permit tcp 160.97.xxx.xxx 0.0.0.255
host
193.206.xxx.xxx eq 80 log
!
! Permesso di tutti i nodi verso i server AFS (TCP e UDP range 70007009)
!
access-list 104 permit tcp any host 193.206.84.121 range 7000 7009
log
access-list 104 permit tcp any host 192.84.130.151 range 7000 7009
log
access-list 104 permit tcp any host 193.206.84.122 range 7000 7009
log
141
access-list 104 permit tcp
log
access-list 104 permit tcp
log
access-list 104 permit tcp
log
access-list 104 permit tcp
log
access-list 104 permit tcp
log
!
! Permesso di tutti i nodi
!
access-list 104 permit tcp
!
!
!
! Permesso di tutti i nodi
!
access-list 104 permit tcp
access-list 104 permit tcp
!
! Permesso di tutti i nodi
20, 21, 23)
!
access-list 104 permit tcp
access-list 104 permit tcp
access-list 104 permit tcp
!
! Permesso di tutti i nodi
!
access-list 104 permit tcp
access-list 104 permit tcp
!
!
exit
!
any host 192.84.130.152 range 7000 7009
any host 193.206.84.123 range 7000 7009
any host 192.84.130.153 range 7000 7009
any host 192.135.25.111 range 7000 7009
any host 192.135.25.112 range 7000 7009
per le call-back di afs (porta tcp 7001)
any any eq 7001 log
a dirpers sulle porte ftp (tcp 20, 21)
any host 193.206.xxx.xxx eq 20 log
any host 193.206.xxx.xxx eq 21 log
a ragsac sulle porte ftp e telnet (tcp
any host 193.206.xxx.xxx eq 20 log
any host 193.206.xxx.xxx eq 21 log
any host 193.206.xxx.xxx eq 23 log
a patsac sulle porte ftp (tcp 20, 21)
any host 193.206.xxx.xxx eq 20 log
any host 193.206.xxx.xxx eq 21 log
142
Appendice C
Esempio di pacchetto cifrato
Flags:
0x00
Status:
0x00
Packet Length:1459
Timestamp:
19:03:06.368704 03/04/2003
Ethernet Header
Destination:
00:04:76:24:71:AF [0-5]
Source:
00:05:DC:08:8C:0A [6-11]
Protocol Type:
0x0800 IP [12-13]
IP Header - Internet Protocol Datagram
Version:
4 [14 Mask 0xF0]
Header Length:
5 (20 bytes) [14 Mask 0x0F]
Type of Service:
%00000000 [15]
000.
...0
....
....
....
....
....
0...
.0..
..0.
Precedence: Routine,
Normal Delay,
Normal Throughput,
Normal Reliability
ECT bit - transport protocol will ignore the CE
bit
Total Length:
Identifier:
Fragmentation Flags:
.... ...0 CE bit - no congestion
1441
1051
%000
[16-17]
[18-19]
[20 Mask 0xE0]
0.. Reserved
.0. May Fragment
..0 Last Fragment
0 (0 bytes) [20-21 Mask 0x1FFF]
Fragment Offset:
Time To Live:
127 [22]
Protocol:
47 GRE - General Routing Encapsulation [23]
Header Checksum:
0x6120 [24-25]
Source IP Address:
193.206.84.146 w2ksrv.lnf.infn.it [26-29]
Dest. IP Address:
172.16.14.130 [30-33]
No IP Options
GRE - General Routing Encapsulation
IP Data Area:
0....}.....d..9. 30 81 88 0B 05 7D C0 00 00 08 B4 64 00 06 39 E7
..Ud[H..X...-..s FD 94 55 64 5B 48 B1 FB 58 15 D5 D4 2D B0 F1 73
[email protected]\)...!CL 0E A8 74 02 40 77 0A 4B 5C 29 BE FD B3 21 43 4C
{...0.d.Y.(....w 7B AA 82 84 30 E6 64 D9 59 9D 28 EA C0 B8 BF 77
x.L^...m.m..p... 78 9C 4C 5E BC A9 A5 6D F8 6D 93 1B 70 14 99 1D
......c......... 93 88 07 DE 87 ED 63 1B C4 9E 14 CB 92 99 D0 AE
..;&...*y."].x.o DF 92 3B 26 90 A4 D0 2A 79 DB 22 5D 03 78 13 6F
M.'AaT;__.h&.G.C 4D DD 27 41 61 54 3B 5F 5F 16 68 26 F1 47 8E 43
..q..Y].R......! AA 17 71 E7 F0 59 5D EA 52 B5 84 BB F4 B4 89 21
.k....?qf...#... 1C 6B 1D C6 1C FA 3F 71 66 84 C9 BB 23 F8 C9 F4
)!':.#.g.W...B.m 29 21 27 3A 97 23 85 67 00 57 C3 98 EA 42 B9 6D
2.....d0.j...*.I 32 B3 DA 00 B3 82 64 30 BA 6A B9 F9 CC 2A 9A 49
..w..1....5u-... 0A EE 77 AF CE 31 BA FC 94 C0 35 75 2D E6 89 82
...=.j$.!..R...g AF F2 B7 3D D2 6A 24 09 21 B4 99 52 AC 84 BD 67
./D\.B$.....aE.. E9 2F 44 5C B2 42 24 10 CD 11 11 A8 61 45 BA EE
..._....Z..E.T.. FD C8 CA 5F 94 E8 95 CE 5A 16 AE 45 A1 54 D9 9B
..m....N...(.... E4 A2 6D CA E7 F3 8E 4E FA C6 CA 28 F2 91 A2 FA
ddJ ............ 64 64 4A 20 DF A3 CD 9F C1 14 1B 15 A5 97 C6 FF
./z.\w.....UD{S/ F6 2F 7A F4 5C 77 1D CA 0D 92 B8 55 44 7B 53 2F
..."Y...Y].',#.+ 96 1A F9 22 59 B5 18 96 59 5D 97 27 2C 23 8E 2B
.....Xe..I.l..j. EA CB AF DF C1 58 65 B2 14 49 D6 6C B6 E8 6A ED
'......lW.6%..c. 27 DF E0 98 9B 15 E3 6C 57 9E 36 25 C8 8B 63 AA
.i9..(..F....f.. 82 69 39 ED A0 28 E8 87 46 F6 F8 EA B1 66 B5 BB
..Z/...MR....|.. E0 00 5A 2F E4 B3 B9 4D 52 8D 90 CB EA 7C D6 C9
[34-49]
[50-65]
[66-81]
[82-97]
[98-113]
[114-129]
[130-145]
[146-161]
[162-177]
[178-193]
[194-209]
[210-225]
[226-241]
[242-257]
[258-273]
[274-289]
[290-305]
[306-321]
[322-337]
[338-353]
[354-369]
[370-385]
[386-401]
[402-417]
143
:{1...S.._.6.eB.
..i.4TJ......;~C
Q......PC.......
0..........!....
.x2|?..!...%...d
-....\..P.{;...0
.M.="..b...B.$Kd
RO.........-....
..+.5>\....W\..!
..r....).0....G?
Fp..4R..F.:.>.#"
...@.>. .t..I..G
x!.4...&....t ..
.1y..mt...A...ef
<....b....7e..>.
..`R.B..V=....w.
=........._.5...
...s..#.U.'...+l
-.#.s..(..}.."..
Z}.:..P8...._.?.
...........d.$.V
X..&},.#v3.W.=..
.3......9K.....L
..:...Up.../`lmP
..#.........Q&..
R...T,...Il....s
<..s...v..U<1...
%R/.....j.`k.V|.
hzK~..M/F4yiZ...
...qnU.8z:......
k..\Q..H..P..qj8
?t.\......p.H...
.Q.6.......Y....
.......6x...`$..
.O........t.....
...u....|.l{..D.
v=.r....DC}..(..
.{U~...7..U...`f
.e...Z@.=.......
..$.n'.2.]......
;ii..\.z.0.. h..
..#..a.F:.i%...w
.h{.....~.g..Eoz
jl.i......n...o.
3X....sE..d[..4j
#.K6....u...F...
...Yl.......D.g.
...[B:..<.@ f.R.2...V.y.A....f.
L....`a3`...^2f.
....w+-......V..
..]....([email protected].
.+....c.r...Ftc^
I.6.0..6....:..+
S.1.e75.p.5.U..f
.S.k..*jC.4..u..
..D,.........&..
.w.......(Sq..-.
f^..J...Y.......
.%.M..J.......8.
.n<...x.........
...,.8.TI9.z...,
......k....V.*..
..1.......Q.!...
3A
A1
51
30
0C
2D
90
52
04
FD
46
A2
78
C8
3C
01
3D
AA
2D
5A
87
58
F9
1D
AC
52
3C
25
68
86
6B
3F
A6
F4
BB
1F
76
B0
AC
DC
3B
82
C9
6A
33
23
0C
F5
14
4C
F2
AE
13
49
53
DA
FE
E6
66
B2
B2
E1
09
07
7B
DC
A3
80
78
0E
4D
4F
0F
89
70
8F
21
31
D1
B2
D4
DD
C7
7D
B6
A4
33
01
84
AA
8C
52
7A
94
B1
74
51
84
4F
A2
3D
7B
65
1C
69
DC
68
6C
58
ED
BA
90
32
D1
CD
C4
2B
91
AB
53
E6
77
5E
25
6E
C8
C8
A3
31
69
AA
8B
32
B8
EF
A1
2B
72
15
E7
C4
79
18
60
B1
C9
23
CF
C2
C7
9A
3A
23
FE
B3
2F
4B
C2
C0
C4
F7
17
94
BA
93
55
B6
24
69
23
7B
8E
14
4B
0C
1F
DF
AF
8F
5D
CC
36
31
C3
44
FD
F9
9B
3C
C5
9F
31
D0
B0
AF
A0
7C
0A
3D
C6
AA
BC
16
40
34
B0
D3
52
B5
73
C9
3A
03
26
19
1F
EB
A1
73
B9
7E
71
5C
5C
36
CB
83
75
72
7E
9C
A6
9E
8D
E8
69
85
36
59
5B
DD
12
03
B6
9F
B7
B8
6B
2C
CF
B2
4D
9E
2C
F0
A7
11
34
BA
1E
3F
D6
22
0B
35
EF
34
F6
E6
11
92
EB
AF
D1
73
87
97
7D
E4
FB
D3
54
88
BE
F6
6E
51
92
07
CA
86
1A
11
CC
BF
6E
E4
00
93
CC
9E
F6
6C
42
C4
1D
77
FF
AC
30
65
B9
B1
1B
4A
1F
FD
C8
9D
A4
87
54
89
A4
9E
5C
EA
91
3E
C1
52
3E
D6
6D
62
42
F0
E7
A9
86
F1
2C
DC
CD
8E
2C
FD
C0
C0
55
D5
E9
13
D0
8A
1A
B8
05
5A
27
5C
61
CC
DD
0C
A6
9A
3A
56
60
2B
0E
9B
1C
37
07
F4
DD
92
FE
0B
38
BB
87
53
4A
CB
A8
9C
0E
CE
82
5C
CA
CC
DB
A9
74
0B
CB
19
23
90
50
19
F0
C7
55
18
CA
B0
16
4D
CF
DC
AD
F1
E6
14
9F
80
9A
40
95
8C
D3
F6
E8
73
C6
F2
F6
DD
61
2D
E0
63
D7
35
2A
8D
8D
D0
4A
78
9E
6B
CF
ED
D3
50
9D
21
EF
62
F0
13
29
FB
20
26
FD
C6
9E
90
E6
28
38
08
23
FF
70
C2
05
76
E5
2F
38
48
FF
F0
36
09
C6
1A
37
CC
32
7A
46
FB
DB
45
AC
11
E4
79
33
C4
28
05
36
FE
6A
92
19
B6
9E
81
54
A0
DC
BD
10
43
0B
C3
50
AF
A1
02
05
46
DB
FA
A0
E2
56
A8
55
D6
8D
F1
76
39
FB
DE
DE
BF
6A
46
7A
81
B3
FB
78
CC
7C
44
C7
3D
DC
FE
3A
7E
99
C8
75
E0
3C
D8
60
0D
52
72
AF
70
43
C7
F2
59
DE
81
49
E7
EA
5F
AD
0B
C5
91
14
E3
0A
B1
30
EB
74
8C
9E
E1
3D
CE
DF
16
84
85
33
4B
DF
0B
49
E9
A9
34
3A
A7
DE
F1
10
F8
98
43
C6
AE
5D
30
AF
00
04
F0
10
8E
CF
41
A2
A6
B3
D2
FC
DC
F0
C5
28
E0
0A
D4
39
B6
F0
8A
0D
D5
08
B4
7B
80
8A
BC
03
3A
06
01
41
37
16
5F
27
7D
8B
BE
B8
EF
83
E5
6C
55
60
79
A2
50
70
C2
0B
74
6C
7D
55
0D
B4
B1
69
67
6E
64
8F
EA
40
07
DA
E4
A7
E2
12
35
34
B6
53
E3
D8
F9
0C
C9
51
36
FB
8D
21
25
3B
42
2D
57
95
E1
D0
92
CB
65
D4
07
B9
BC
03
64
57
ED
2F
D8
9D
3C
6B
69
0F
C3
A8
59
16
E0
7B
95
A9
9A
B8
88
25
A9
16
5B
D4
0C
20
A4
B2
E3
40
EE
E7
CA
AF
C0
71
F3
EC
90
7A
56
F2
F6
AA
EF
1E
8F
FC
95
B3
5C
DA
3E
49
74
F3
EE
BD
35
13
0D
5F
14
F3
90
60
51
00
31
DC
5A
B9
13
48
DD
60
A0
09
0F
F8
B7
BD
20
85
FC
CE
8C
46
44
66
E2
5E
8B
05
46
3A
55
C5
DF
84
E5
80
D7
D2
1D
21
65
3B
AC
13
EF
1C
24
8B
FD
81
9E
0C
20
E7
FE
F7
EA
E5
22
D3
24
3D
A2
6C
26
06
D1
56
E2
19
71
A2
BE
24
B1
CC
28
1A
BE
1B
68
DB
45
C8
16
84
89
8B
88
32
56
DF
74
A9
EF
75
26
D6
0F
01
CB
9A
2A
15
42
7E
E1
F8
12
EC
4B
06
B7
47
23
97
84
65
3E
77
E6
2B
19
3F
E5
A8
84
6D
92
94
F3
7C
D3
BF
6A
D7
94
06
AB
44
C7
60
EE
A7
17
BB
6F
6F
34
E7
67
52
66
66
D9
44
63
8E
A0
10
82
2D
9A
38
15
9B
CC
A1
C6
43
E1
DA
64
30
64
AD
21
3F
22
47
09
66
13
B1
CF
6C
9C
A4
56
0D
4C
50
E5
73
18
89
C2
C9
38
E9
0E
0B
EF
9C
D6
66
05
BC
D7
77
7A
DA
6A
1A
B5
2D
DE
A5
00
EA
5E
2B
66
D7
F1
E3
E5
BC
F4
2C
96
F4
[418-433]
[434-449]
[450-465]
[466-481]
[482-497]
[498-513]
[514-529]
[530-545]
[546-561]
[562-577]
[578-593]
[594-609]
[610-625]
[626-641]
[642-657]
[658-673]
[674-689]
[690-705]
[706-721]
[722-737]
[738-753]
[754-769]
[770-785]
[786-801]
[802-817]
[818-833]
[834-849]
[850-865]
[866-881]
[882-897]
[898-913]
[914-929]
[930-945]
[946-961]
[962-977]
[978-993]
[994-1009]
[1010-1025]
[1026-1041]
[1042-1057]
[1058-1073]
[1074-1089]
[1090-1105]
[1106-1121]
[1122-1137]
[1138-1153]
[1154-1169]
[1170-1185]
[1186-1201]
[1202-1217]
[1218-1233]
[1234-1249]
[1250-1265]
[1266-1281]
[1282-1297]
[1298-1313]
[1314-1329]
[1330-1345]
[1346-1361]
[1362-1377]
[1378-1393]
[1394-1409]
[1410-1425]
[1426-1441]
144
.,u.G.o`...I.
C4 2C 75 E9 47 BB 6F 60 EF 8D 85 49 FE
FCS - Frame Check Sequence
FCS (Calculated):
0x33220D1B
[1442-1454]
145
Bibliografia
http://www.linuxjournal.com/article.php?sid=4685
http://www.uli.it/spam.html
http://www.dada.net/abuse.shtml
Tanenbaum – Reti di computer
J. Scambray, S. McClure, G. Kurtz – Hacking exposed (second edition)