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 ____________________________________________________________________________________________________________________________________________