1 / 56

La Rete

La Rete. Configurazione di base della rete File system distribuiti La sicurezza della rete. Giuseppe Stanghellini - IGM - CNR - Bologna. La rete TCP/IP.

ivana
Download Presentation

La Rete

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. La Rete Configurazione di base della rete File system distribuiti La sicurezza della rete Giuseppe Stanghellini - IGM - CNR - Bologna

  2. La rete TCP/IP Le rete che si basa su IP (internet protocol) è stata sviluppata dall'esercito degli stati uniti con lo scopo di creare una topologia di rete che fosse in grado di sopravvivere ad eventuali attacchi. IP è alla base di una struttura di protocollo a livelli, ciascun livello di protocollo fornisce una funzione particolare al livello superiore. Insieme dei protocolli che si basano su IP - IP (Internet protocol) - TCP (Transmission control protocol) - UDP (User datagram protocol) - ICMP (Internet control message protocol)

  3. La rete TCP/IP Lo stack di protocollo IP e i protocolli applicativi

  4. La rete TCP/IP L'header del pacchetto IP - Il protocollo IP non è orientato alle connessioni, cioè ciascun pacchetto è posto in rete ed inviato alla destinazione senza verifica che vi sia realmente giunto. - Nell'header del pacchetto si nota che gli indirizzi sono a 32 bit.

  5. La rete TCP/IP L'header del pacchetto TCP - Il protocollo TCP è orientato alle connessioni, cioè sono garantiti sia la consegna che il corretto ordine dei pacchetti mediante l'uso di numeri sequenza e di conferme. - Il protocollo TCP usa i numeri di porte per instradare i pacchetti al processo corretto negli host di provenienza e destinazione.

  6. La rete TCP/IP Struttura della rete TCP/IP - La rete TCP/IP è divisa in sottoreti, ognuna delle quali comunica con le altre reti attraverso un dispositivo chiamato gateway. - L'indirizzo di una macchina in rete è univoco ed è a 32 bit, ed è rappresentato come una quaterna di numeri, ognuno dei quali può essere assegnato nell'intervallo che va da 0 a 255, per esempio '10.1.2.24' - Una sottorete è definita con un quaterna di numeri che specificano quale parte dell'indirizzo a 32 bit è statico e quale dinamico, per esempio la quaterna 255.255.255.0 specifica che i primi tre numeri dell'indirizzo delle macchine della rete sono statici e che il quarto è invece modificabile; questa sottorete ha una disponibilità di 255 indirizzi diversi. - Se per esempio avessimo Ipaddr=10.1.2.24, Netaddr=255.255.255.0 e tentassimo di comunicare con un IPaddr=10.2.2.123, allora il sistema si renderebbe conto (tramite Netaddr e IPaddr) che il numero chiamato è al di fuori della sottorete locale e instraderebbe il pacchetto attraverso il gateway.

  7. Configurazione di base della rete Quindi per garantire il collegamento dobbiamo configurare diversi parametri. ? Parametri da configurare: Numero IP (4 byte che identificano la macchina) Netmask (4byte che identificano la rete locale) Gateway (Dispositivo di rete che permette di uscire dalla rete locale) Nome host (Nome che identifica la macchina) DNS (Host che trasla da Nome host a numero IP)

  8. Configurazione di base della rete ?

  9. Configurazione di base della rete ?

  10. Configurazione di base della rete ?

  11. Configurazione di base della rete ?

  12. Ifconfig

  13. Ifconfig

  14. Route

  15. Hostname

  16. DNS (domain name system)

  17. I servizi di rete ??? A questo punto, abbiamo configurato la rete dal punto di vista del basso livello, cioè abbiamo configurato la rete fino al livello di trasporto. Ora dobbiamo configurare i servizi, cioè dobbiamo configurare il livello applicativo. ???

  18. I servizi di rete Cosa sono - Sono quei programmi che ci consentono di aprire sessioni telnet, ftp, web, nfs etc. - I servizi che si vogliono fornire sono quindi molti. - Il numero IP invece è unico. QUINDI - Ogni connessione di rete avviene attraverso un canale esclusivo (porta) che identifica in modo univoco la connessione stessa. - Vi sono porte dedicate a ben determinati servizi; quelle fino a 1023 e alcune successive.

  19. I servizi di rete Il file /etc/services (corrispondenza porta/servizio)

  20. I servizi di rete Come sono implementati -Vengono implementati tramite programmi (demoni) che si pongono in ascolto su una porta che gli viene assegnata. -La modalità di esecuzione di tali programmi puo' essere di due tipi: 1) Installazione permanente del programma in memoria. 2) Esecuzione del programma su richiesta del client(alla apertura del collegamento).

  21. I servizi di rete Modalità 'programma in memoria' Unix e i runlevel Unix e' caratterizzato da una modalità di funzionamento definita 'runlevel', runlevel 1 per la modalita' 'single user', runlevel 3 per quella multiutente e cosi' via ... Ad ogni runlevel corrisponde una configurazione dei servizi di rete che vengono offerti (attivati o disattivati).

  22. I servizi di rete Impostazione e configurazione dei runlevel I runlevel si impostano tramite il file di configurazione: /etc/inittab La struttura di directory /etc/rc.d e' utilizzata dal sistema per fare partire o fermare i servizi nei relativi runlevel (rc0.d, rc1.d, rc2.d etc.)

  23. I servizi di rete Impostazione del runlevel predefinito

  24. I servizi di rete Configurazione dei runlevel(GUI)

  25. I servizi di rete Configurazione dei runlevel

  26. I servizi di rete Modalidtà 'esecuzione alla richiesta' - Si ottiene tramite un 'superservizio' in grado di attivare i servizi alla richiesta di un utilizzatore, si chiama Inetd e deve essere avviato con la modalita' precedente (rcX.d). - Ultimamente e' stato arricchito di una nuova sintassi e chiamato xinetd. (extended inetd)

  27. I servizi di rete Configurazione di inetd (file /etc/inetd.conf)

  28. I servizi di rete Tcpd e i file /etc/hosts.* - Tcpd è un contenitore (wrapper) che offre delle capacità di logging e controllo degli accessi. - Viene eseguito prima del programma del servizio. - Intercetta tutto il traffico di rete da e verso il servizio, effettuando su di esso dei controlli che ne aumentano la sicurezza. - Il controllo degli accessi avviene tramite i file /etc/hosts.allow e /etc/hosts.deny.

  29. I servizi di rete Tcpd (come funziona) - Tre regole molto semplici applicate in cascata: 1) Se l'host è presente nel file hosts.allow la connessione è accettata. altrimenti 2) Se l'host è presente nel file hosts.deny la connessione è rifiutata. altrimenti 3) La connessione è accettata.

  30. I servizi di rete Configurazione di xinetd (come si fa) -Xinted è caratterizzato da un file di configurazione principale e da un file per ogni servizio che puo' attivare ftp, telnet, etc. (ma potrebbe anche essere un file unico, TANTO PER COMPLICARCI LA VITA) -Il principale è /etc/xinetd.conf -Gli altri sono in /etc/xinetd.d/

  31. I servizi di rete Configurazione di xinetd (/etc/xinetd.conf)

  32. I servizi di rete Configurazione di xinetd (/etc/xinetd.d/)

  33. I servizi di rete Restart del servizio -Tutte le volte che si cambia un file di configurazione di un servizio, perchè i cambiamenti abbiano luogo è in genere necessario fare ripartire il servizio stesso. Per farlo è sufficente utilizzare lo script presente in /etc/init.d, per esempio: /etc/init.d/xinetd restart ma anche cambiamenti alla config. di rete: /etc/init.d/network restart

  34. File system distribuiti NFS (network filesystem) - Permette ad un host remoto di montare partizioni di un sistema e di usare quelle partizioni come se fossero filesystem locali. - Correntemente ve ne sono due versioni, la 2 e la 3. Linux usa la 3 quando è disponibile, altrimenti prova con la 2. - La versione 3 è più evoluta e fornisce il supporto all'estensione LFS large file support che permette anche ai sistemi a 32 bit di creare e manipolare file più grandi di 2GB.

  35. File system distribuiti NFS (network filesystem) - NFS 2 e NFS 3 sono entrambi implementati sul contenitore tcpd, quindi anche loro utilizzano i file /etc/hosts.allow e /etc/hosts.deny. NFS 3 è meglio perchè: - Ha LFS, importante perchè si sta parlando di un filesystem distribuito, e quindi sistemi UNIX a 64 bit quali Solaris, Digital Unix, Irix etc, possono montare tale filesystem e avere la capacità di creare file più estesi di 2GB come per i loro filesystem proprietari (xfs, ufs, avfs etc). - NFS 3 gestisce meglio i problemi di rete.

  36. File system distribuiti Come funziona l'NFS - NFS usa RPC (remote procedure call) per indirizzare le richieste tra client e server. - I processi che lavorano tramite RPC e che permettono ad NFS di funzionare sono: 1) rpc.mountd: Accetta le richieste di 'mount' dai client. 2) rpc.nfsd: Implementa la parte utente della comunicazione NFS, in sostanza monta il file system e ne permette l'utilizzo alla stregua di uno locale. 3) rpc.statd: Implementa il 'Network Status Monitor' (NSM), utilizzato dal client alle inattese cadute del collegamento NFS. 4) rpc.quotad: Gestisce le quote. 5) rpc.lockd: Gestisce i lock sui file (ma ora ci pensa il kernel linux)

  37. File system distribuiti (NFS) Configurazione di NFS Parte server: 1) Editare il file /etc/exports 2) Avviare (o riavviare) i servizi rpc.mountd e rpc.nfsd (i due che sono strettamente indispensabili al funzionamento di NFS) Parte Client: Montare i filesytem remoti tramite il comando mount: mount -t nfs hostname:/dir /dir_locale E infine (se tutto va bene): Inserire una riga di configurazione nel file /etc/fstab

  38. File system distribuiti (NFS)

  39. La sicurezza della rete L'errore - Molti utenti ritengono che i loro sistemi non siano appetibili agli hacker, questi stessi utenti sono esattamente quelli che gli hacker attaccano. - Qualsiasi macchina collegata in rete è appetibile, anche solo per il fatto di costituire essa stessa un nuovo punto di partenza per futuri attacchi. - L'hacker ha come obiettivo primario guadagnare accesso a quante più macchine gli è possibile. MA SOPRATTUTTO Molte volte trova la strada spianata e si diverte un mondo.

  40. La sicurezza della rete Cosa fa l'hacker (1) - Cambia i binari peculiari di unix allo scopo di guadagnare informazioni sugli utenti e di mantenersi celato (login, libc, etc.) - Installa nuovo software allo scopo di implementare servizi nascosti (chat-line, fserv per scambio file, etc.) - Utilizza la potenza di calcolo e la banda di rete disponibile per tentare di guadagnare l'accesso ad altre macchine.

  41. La sicurezza della rete Cosa fa l'hacker (2) - Utilizza lo spazio disco per memorizzare i propri file. - Utilizza proprio software per monitorare la rete (sniffing del traffico). - Utilizza servizi locali per propri scopi (spamming di posta etc.) E ... (buon motivo per tenerlo fuori) - Se vuole CANCELLA TUTTO.

  42. La sicurezza della rete Il buffer overflow Cosa fa Consente, a chi lo sfrutta, di eseguire codice arbitrario con privilegi di root. Come funziona L'attacco avviene in generale sulle porte di rete attraverso le quali è presente un servizio (ftp, telnet, ssh etc.) che contiene un bug di overflow, l'attaccante sostituisce il programma sotto attacco con una shell, aprendo così a tutti gli effetti un accesso con utente root.

  43. La sicurezza della rete Il Denial of service (Dos) Cosa fa Consiste nel tentativo da parte dell'attaccante di impedire che un servizio sia disponibile agli utenti che normalmente ne fanno utilizzo. Come avviene (alcuni esempi) - Syn Flood (esaurimento delle risorse di rete, con conseguente blocco della rete della macchina attaccata) - Echo ICMP (saturazione della rete con messaggi ICMP con conseguente blocco di tutta rete.)

  44. La sicurezza della rete I servizi critici Storicamente i servizi più critici sono stati sendmail, ftpd, sshd, telnetd. In ogni caso è buona norma disabilitare tutti i servizi che non servono, e se se ne può fare a meno disabilitare anche ftpd e telnetd (con ssh si fanno le stesse cose che con questi due servizi) Come posso disabilitare i servizi ? Come abbiamo visto precedentemente i servizi vengono attivati tramite i tre principali meccanismi: /etc/inittab, /etc/inetd.conf (xinted.d) e /etc/rc.d/rcX.d. Basta rimuoverli ...

  45. La sicurezza della rete Usare ssh al posto di telnet: >ssh nome_utente@host Usare scp al posto di ftp: >scp file_sorgente utente@host:file_destinazione Perchè ssh + scp sono più sicuri di ftp + telnet ? -Utilizzano un solo servizio, e quindi sono fisicamente meno vulnerabili. -Le informazioni che si scambiano client e server sono tutte criptate quindi non e' possibile sniffarne le sessioni in modo intelligibile.

  46. Il personal firewall I dati che viaggiano in rete -I dati inviati in rete sono spediti non come blocco unico ma suddivisi in frammenti, chiamati pacchetti. Ogni pacchetto è costituito da un header che contiene provenienza, destinazione, tipologia e altro, e dai dati veri e propri (body). -Il kernel del computer di destinazione riassembla i dati in modo da ricostruire il flusso originale. -Il kernel è quindi in grado in via teorica di scartare o respingere pacchetti in base alle informazioni contenute nell'header o nel corpo dei dati.

  47. Il personal firewall Cosa è un firewall ? Un firewall è un dispositivo di rete che instrada i pacchetti verso altri dispositivi di rete, effettuando su di essi un filtraggio secondo una logica programmata. In pratica è un router che fa passare solo ciò che si vuole. Cosa è un personal firewall E' un firewall locale, incorporato nel kernel. Ai dati è permesso passare attraverso il firewall solo se soddisfano un insieme di regole (filtri), che agiscono sulla base del tipo di pacchetto (telnet, ssh, etc), e su indirizzi e porte di provenienza e destinazione.

  48. Il personal firewall Come è implementato In linux vi sono due principali implementazioni: 1) ipchains (kernel 2.2.x) 2) iptables (kernel 2.4.x) Iptables è lo standard di oggi, ed è stato completamente riscritto per avere maggiori prestazioni e più chiarezza, noi esamineremo quest'ultimo. Nel kernel (parte netfilter) ci sono tre tabelle chiamate catene: INPUT, OUTPUT e FORWARD, quando il kernel riceve un pacchetto viene gestito nella modalità seguente:

  49. Il personal firewall Come è implementato (2) -All'arrivo del pacchetto, il kernel guarda a chi è destinato (fase di routing), se e' per la macchina locale allora il pacchetto passa all'esame della catena INPUT, se è per un'altra macchina sulla rete e il forward è abilitato (nel kernel) passa all'esame della catena FORWARD. -Se un programma eseguito sulla macchina cerca di spedire un pacchetto, questo pacchetto passa all'esame della catena OUTPUT. -Ogni catena è formata da una lista di regole, ogni regola è del tipo: 'SE IL PACCHETTO E' COSI' ALLORA FAI QUESTO CON IL PACCHETTO' dove QUESTO può essere: ACCEPT, DROP, QUEUE, RETURN. -Il kernel applica la prima regola della catena in esame e se non è soddisfatta passa a quella successiva, una volta che le regole sono esaurite applica la POLICY della catena (cioè la regola dei pacchetti che non soddisfano nessuna regola). -Per questo motivo la POLICY di ogni catena di regole del FIREWALL dovrebbe essere impostata a DROP.

  50. Il personal firewall Implementiamone uno molto semplice -La prima cosa da fare è impostare la POLICY in modo che TUTTO CIO' CHE NON E' ESPRESSAMENTE ACCETTATO VENGA RESPINTO >/sbin/iptables -P INPUT DROP E poi abilitare i protocolli da accettare (ssh,dns,pop etc.): > /sbin/iptables -A INPUT -s 0/0 -d 10.1.2.24 -p tcp --dport ssh -j ACCEPT > /sbin/iptables -A INPUT -s 0/0 -d 10.1.2.24 -p ... ...... ...... ... > ..... .... Ma si può fare anche di più, con i nuovi filtri sullo stato della connessione (NEW, RELATED, ESTABLISHED), si può abilitare in maniera flessibile la connessione verso l'esterno, solo quando è originata dalla macchina locale.

More Related