Reale Roberto, Ronchi Francesco - INFN-LNF

Servizi di Rete e Unix
Stage estivo 2005
Laboratorio Nazionale Frascati
Roberto Reale (ITIS CANNIZZARO, Colleferro)
Francesco Ronchi (ITIS E. Fermi, Roma)
Una rete è un insieme di macchine collegate fra loro, in modo da formare un sistema e
per permettere lo scambio di informazioni
Possiamo distinguere le reti in base alla loro:
•
ESTENSIONE
o LAN Local Area Network, rete locale
o MAN Metropolitan Area Network, rete metropolitana
o WAN Wide Area Network, rete geografica
•
TOPOLOGIA
STELLA
ANELLO
BUS
I dati per viaggiare nella rete, vengono confezionati in pacchetti, attraverso i quali si
definiscono il mittente ed il destinatario dei dati trasmessi.
Il confezionamento e le dimensioni dei pacchetti dipendono dal tipo di rete utilizzata.
I pacchetti di dati vengono trasmessi e ricevuti in base a delle regole definite da un:
PROTOCOLLO DI COMUNICAZIONE
Il MODELLO ISO-OSI Scompone la gestione della rete in 7 livelli:
LIVELLO
DEFINIZIONE
CONTESTO
7
6
5
4
3
Applicazione
Interfaccia di comunicazione con i programmi
(Application program interface).
Presentazione
Formattazione e trasformazione dei dati a vario
titolo, compresa la cifratura e decifratura.
Sessione
Instaurazione, mantenimento e conclusione
delle sessioni di comunicazione.
Trasporto
Invio e ricezione di dati in modo da controllare
e, possibilmente, correggere gli errori.
Rete
Definizione dei pacchetti, dell'indirizzamento e
dell'instradamento in modo astratto rispetto al
tipo fisico di comunicazione.
Collegamento dati
(data link)
Definizione delle trame (frame) e
dell'indirizzamento in funzione del tipo fisico di
comunicazione.
Fisico
Trasmissione dei dati lungo il supporto fisico di
comunicazione.
2
1
INTERCONNESSIONE TRA RETI
Quando si vogliono unire due reti per formarne una sola più grande, si devono utilizzare dei nodi speciali
connessi simultaneamente a entrambe le reti da collegare. A seconda del livello su cui si interviene per fare
questo collegamento si parla di:
• Ripetitore (1° livello)
• Bridge (2° livello)
• Router (3° livello)
• Gateway (4° livello)
TCP/IP
Il TCP/IP rappresenta un sistema di protocolli di comunicazione basati su IP, cioè il
protocollo IP si colloca al 3° livello del modello ISO-OSI, mentre TCP si colloca al di
sopra di questo e utilizza IP a livello inferiore, come si può vedere nel seguente schema
che mostra l’abbinamento ISO-OSI e TCP/IP:
ARP Address resolution protocol
La chiamata ARP viene usata quando un protocollo di livello 3 (rete), vuole contattare un nodo
situato nella rete fisica locale, non conoscendo l’indirizzo Ethernet.
Questa richiesta viene ascoltata da tutte le interfacce connesse a quella rete fisica in modo da
trovare quale macchina, ossia quale indirizzo Ethernet corrisponde all’indirizzo richiesto.
INDIRIZZI IP
Gli indirizzi IP tradizionali (IPv4), sono composti da una sequenza di 32 bit, suddivisi in
4 gruppetti di 8 bit, rappresentati in modo decimale separati da un punto. ES: 1.2.3.4
5 classi, dalla lettera A alla E
Gli indirizzi IP vengono divisi in:
Indirizzi speciali (loopback), indirizzo che
corrisponde a se stesso. Es: 127.0.0.1
Indirizzi riservati alle reti private
Protocolli TCP, UDP, ICMP
TCP:Instaura un collegamento tra due utenti, rende affidabile il trasferimento dati e il
flusso di dati che si trasferiscono può viaggiare in entrambe le direzioni (full-duplex).
UDP:Usa l’IP per trasportare messaggi da una macchina ad un’altra, risulta più veloce
dell’ TCP, ma decisamente meno affidabile!
ICMP:Protocollo attraverso il quale i router e gli utenti comunicano per sondare eventuali
problemi o comportamenti anomali verificatisi in rete.
DNS (Domain Name System)
La gestione diretta degli indirizzi IP è piuttosto faticosa dal punto di vista umano.
Per questo motivo si preferisce associare un nome agli indirizzi numerici.
Il sistema utilizzato è il DNS, ovvero il sistema dei nomi di dominio.
Come si può vedere nel seguente schema, nella rete internet, gli indirizzi sono organizzati ad
albero in domini, sottodomini, fino ad arrivare ad identificare il nodo desiderato.
Firewall
Un firewall è un componente attivo che seleziona e collega due o più tronconi di rete.
Interponendolo tra una rete esterna (internet) e una interna (lan), il firewall risulta il posto
migliore ove imporre delle logiche di traffico per i pacchetti in transito e/o eseguire:
•
controllo
•
modifica
•
monitoraggio
Tipologie di firewall
Firewall
Funzione
Packet Filter
Si limita a valutare gli header di ciascun
pacchetto.
Stateful
Riconosce pacchetti TCP malevoli che non fanno
parte di alcuna connessione.
Inspection
Scambia informazioni circa le connessioni da
stabilire all’interno del corpo del pacchetto.
Content Filtering
Analizza il contenuto dei pacchetti in transito.
Esistono firewall Hardware e Software
DHCP
(Dinamic Host Configuration Protocol)
Il DHCP è un protocollo di rete che permette ai dispositivi che ne facciano richiesta, di essere
automaticamente configurati per entrare a far parte della LAN. Tramite questo protocollo, non è
necessario specificare manualmente nessun parametro di rete, in quanto il DHCP-server 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 DHCP-server farà il resto.
WWW
(World Wide Web)
Il www, creato al CERN di Ginevra nel 1994, rappresenta la rete mondiale di
strutturazione dell’informazione e delle risorse in modalità ipertestuale.
Utilizza il protocollo HTTP e, tramite il linguaggio HTML (Hyper Text Markup Language), permette la
visualizzazione di immagini, filmati e suoni.
A fianco si puo` vedere il
risultato di una pagina Html
compresa da piu` immagini,
testi e filmati.
Il Sistema Operativo Unix
Unix e avvio
____________________________________________________________________________________________________________________________________________
Unix è un Sistema Operativo (come per es. Windows) usato principalmente
in ambito scientifico, per offrire servizi a più persone. E’ piu’ stabile, robusto,
flessibile e quindi piu’ affidabile.
Una volta installato il S.O. viene avviato utillizzando:
•
•
Boot loader: programma o codice che si occupa di caricare il S.O.
Kernel: nocciolo del S.O.
Il boot loader viene salvato nel primo settore dell’hard disk al momento
dell’installazione.
Esso poi si prende cura di caricare il kernel in memoria centrale. Il
kernel viene definito il nocciolo del S.O. poiché i programmi utilizzano il kernel
per le loro attività evitando così di agire direttamente con la CPU.
Una volta caricato in m.c., il kernel monta (mount) il file system principale
(root) e infine avvia la procedura di inizializzazione (init).
Tutto questo procedimento viene chiamato fase di bootstrap
Il termine “root” e la multiutenza
____________________________________________________________________________________________________________________________________________
Negli ambienti Unix bisogna fare attenzione al termine root. Infatti esso
assume molteplici significati:
•
•
•
•
•
directory root: directory radice;
file system root: file system principale di un gruppo che poi si unisce insieme;
utente root: amministratore;
dominio root: dominio principale;
finestra root: finestra principale (“desktop”);
Di solito i sistemi Unix sono multiutente. Perciò gli utenti vanno distinti tra
l’amministratore del sistema (superuser) e gli altri utenti.
Inoltre i vari utenti vengono associati a uno più gruppi.
File System
____________________________________________________________________________________________________________________________________________
Il file system è il modo con cui sono organizzati i dati all’interno di un disco o di una partizione.
Quando un sistema Unix viene avviato, si attiva il file system principale, o root, quindi possono
essere collegati a questo altri file system a partire da una directory o sottodirectory di quella
principale.
Ciò significa che, nei sistemi Unix, per accedere a un CD appena introdotto, occorre dire al
sistema di collegare il file system del CD in modo che lo si possa usare come parte dell’unico file
system. Per rimuovere il CD bisogna prima interrompere questo collegamento.
Permessi di accesso
_____________________________________________________________________________________________________________________________
Si distinguono tre tipi di accesso ai file:
•
r – lettura
•
w – scrittura
•
x – esecuzione
Per ogni file, ogni utente può ricadere in una di queste tre categorie: proprietario,
gruppo proprietario o utente diverso. Perciò per ognuna di queste categorie ogni file
avrà degli accessi diversi.
Generalmente i permessi si esprimono con una stringa di 9 caratteri.
I primi tre caratteri sono riservati al proprietario, i secondi tre al gruppo proprietario e gli
ultimi tre agli altri utenti.
Esempio
rwxrw-r--
email.txt
Proprietario: accede in lettura, scrittura e esecuzione
Gruppo proprietario: accede in lettura, scrittura ma NON in esecuzione
Altri utenti: può accedere solamente in lettura
Iptables
____________________________________________________________________________________________________________________________________________
Si può affermare con relativa precisione che in Linux esiste un firewall interno che si
chiama Iptables.
Componenti fondamentali di Iptables sono le regole. In effetti bisogna scrivere una serie
di regole per poter filtrare i pacchetti che arrivano alla macchina. Ecco un esempio:
Esempio
iptables –A INPUT –-protocol tcp --source 192.168.0.1 –-destination-port 22 –j DROP
•
•
•
INPUT – controlla le connessioni verso il nostro computer
OUTPUT – controlla le connessioni in uscita dal nostro computer
FORWARD – controlla le connessioni che passano attraverso il nostro computer


DROP – taglia le connessioni definite dalla regola
ACCEPT – accetta le connessioni definite dalla regola
DNS,DHCP e HTTP Server
____________________________________________________________________________________________________________________________________________
Una macchina Unix può essere configurata, anche contemporaneamente, come:
•
•
•
•
DNS (Domain Name System)
DHCP Server (Dynamic Host Configuration Protocol)
HTTP Server
etc...
Questi meccanismi sono “nascosti” quando noi usiamo, ad esempio, internet.
All’apparenza la navigazione su internet sembra facile ed immediata. In realtà è molto più
complessa poichè dietro alla visualizzazione delle pagine web e alla comunicazione con i
server ci sono questi servizi elencati sopra.
Configurare il DNS
____________________________________________________________________________________________________________________________________________
Il DNS è il servizio che traduce un determinato nome di dominio richiesto, nell’indirizzo IP
corrispondente e viceversa. Un server DNS ovviamente avrà, all’interno, salvati alcuni
domini a cui corrisponderanno determinati indirizzi IP. Quando nel browser viene scritto
un certo dominio (es. www.google.it ) il DNS a cui verrà indirizzata la richiesta controllerà
se “conosce” quel dominio. Se lo “conosce”, “leggerà” l’IP corrispondente e indirizzerà il
client verso quell’IP. Segue un esempio di configurazione DNS provata durante lo stage.
Configurare il DNS
______________________________________________________________________________________________________________________________
Configurare il DHCP Server
____________________________________________________________________________________________________________________________________________
Il DHCP, come dice il nome, è un protocollo che assegna dinamicamente gli indirizzi IP a
chi li richiede o a chi serve. Infatti in un DHCP Server si può definire un range di indirizzi
IP. Ogni qualvolta un host si connette alla rete, il DHCP Server gli assegnerà un IP
compreso in quel range dinamicamente, oppure volendo anche staticamente.
Segue un esempio di una configurazione DHCP Server provata durante lo stage.
Configurare il DHCP Server
____________________________________________________________________________________________________________________________________________
Configurare l’HTTP Server
____________________________________________________________________________________________________________________________________________
L’HTTP Server, che viene anche detto Web Server, e’ un servizio che fornisce pagine
web, documentazioni, filmati etc...
Il Web Server ha al suo interno delle directory nelle quali sono salvate le pagine HTML
(Hyper Text Markup Language) create dal programmatore che vengono poi inviate a
chiunque si colleghi ad esso.
Si possono creare piu’ Web Server su una stessa macchina ed essi prendono il nome di
Virtual Hosts. Ogni Virtual Host avra’ un proprio dominio che potra’ essere contattato da
qualsiasi client attraverso un normale browser.
Segue un esempio di configurazione di Apache (il Web Server piu’ diffuso ad oggi) per
piu’ Virtual Hosts provata durante lo stage.
Configurare l’HTTP Server
____________________________________________________________________________________________________________________________________________