Realizzazione di un' interfaccia web per la gestione dei file di log generati da un Web Server

1,355 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,355
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Realizzazione di un' interfaccia web per la gestione dei file di log generati da un Web Server

  1. 1. Università degli Studi di Trieste Realizzazione di un’interfaccia web per la gestione dei log file di un web server Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria InformaticaLaureando: Relatore:Marco Furlanetto Prof. Maurizio Fermeglia Anno Accademico 2011/2012
  2. 2. 2
  3. 3. Sommario1 INTRODUZIONE1.1 Obiettivo .......................................................................................................................................... 51.2 Risultato della tesi ............................................................................................................................ 52 LA GESTIONE DELLE AUTENTICAZIONI2.1 RADIUS ............................................................................................................................................ 6 2.1.1 EAP ........................................................................................................................................................ 6 2.1.2 Struttura del protocollo ........................................................................................................................ 82.2 IAS ................................................................................................................................................... 9 2.2.1 Diversi metodi di autenticazione ........................................................................................................ 10 2.2.2 Diversi metodi di autorizzazione ........................................................................................................ 10 2.2.3 Server di accesso eterogenei .............................................................................................................. 11 2.2.4 Proxy RADIUS ...................................................................................................................................... 11 2.2.5 Autenticazione e autorizzazione utente centralizzate ....................................................................... 11 2.2.6 Amministrazione centralizzata per tutti i server di accesso ............................................................... 11 2.2.7 Controllo e accounting centralizzati ................................................................................................... 12 2.2.8 Scalabilità ............................................................................................................................................ 12 2.2.9 Estensibilità......................................................................................................................................... 122.3 NPS ................................................................................................................................................ 123 STRUTTURA DELLAPPLICAZIONE3.1 Log ................................................................................................................................................. 143.2 Database ........................................................................................................................................ 183.3 Software ........................................................................................................................................ 19 3.3.1 Pagina web ..................................................................................................................................... 20 3.3.2 Codice ............................................................................................................................................. 224 FUNZIONAMENTO DELLAPPLICAZIONE4.1 Ricerca e caricamento log ............................................................................................................... 23 3
  4. 4. 4.2 Analisi log e caricamento database ................................................................................................. 244.3 Visualizzazione dei dati ................................................................................................................... 254.4 Funzionalità.................................................................................................................................... 26 4.4.1 Filtri sui campi del database ........................................................................................................... 27 4.4.2 Gestione degli archivi contenenti i file di log ................................................................................. 29 ................................................................................................................................................................. 31 4.4.3 Operazioni sul database ................................................................................................................. 315 CONCLUSIONI5.1 DIAMETER ...................................................................................................................................... 33 5.1.1 UDP (User Datagram Protocol) ........................................................................................................... 33 5.1.2 TCP (Transfer Control Protocol).......................................................................................................... 33 5.1.3 Miglioramenti rispetto a RADIUS ....................................................................................................... 345.2 Possibili miglioramenti per l’applicazione ........................................................................................ 34 5.2.1 Estensione a più dipartimenti............................................................................................................. 34 5.2.2 Gestione di più tipologie di log ........................................................................................................... 35 5.2.3 Grafici di andamento .......................................................................................................................... 35 5.2.4 Connessione a vari database .............................................................................................................. 355.3 Ambiente di sviluppo ...................................................................................................................... 35 4
  5. 5. 1. Introduzione1.1 ObiettivoSi vuole realizzare un’applicazione web per la gestione di file di log.I file di log vengono creati da un Web Server che gestisce le autenticazioni per l’accesso ad Internetattraverso la connessione wireless degli utenti del Dipartimento di Ingegneria Industriale edell’Informazione.L’applicazione deve permettere all’analista di effettuare in maniera intuitiva il controllo delle informazionicontenute nei log.E’ da precisare che l’applicazione permette di analizzare le richieste di autenticazione, non i contenutiscambiati.1.2 Risultato della tesiAll’ avvio l’applicazione si presenta nel seguente modo: Figura 1 - Schermata principale dellapplicazione 5
  6. 6. 2. La gestione delle autenticazioni In questo capitolo illustrerò il funzionamento del sistema che gestisce le credenziali degli utenti di una retegestita in ambiente Microsoft Windows, chiarendo prima tre concetti fondamentali: autenticazione,autorizzazione e accounting (AAA). 1. L’autenticazione ha lo scopo di riconoscere l’utente, normalmente tramite username e password; 2. L’autorizzazione definisce a quali risorse può accedere un utente autenticato. Tali risorse vengono definite dai gestori di rete; 3. L’accounting permette di avere una panoramica sull’uso delle risorse da parte dell’utente, in modo da tracciare delle statistiche di utilizzo.2.1 RADIUSRADIUS (Remote Authentication Dial-In User Service) è un protocollo di tipo AAA usato attualmente comestandard per l’autenticazione remota e viene implementato in appositi server.Il protocollo non si occupa della memorizzazione delle credenziali: questo è a carico di servizi esterni comedatabase o file di testo.A partire da username e password, grazie a RADIUS è possibile gestire numerose informazioni: per esempioun Internet Service Provider (ISP) può analizzare l’uso della banda da parte degli utenti, e di conseguenzaimporre eventuali limiti di utilizzo.Ai fini della tesi mi soffermerò sulla descrizione dei metodi di autenticazione tramite tecnologia wireless.2.1.1 EAPEAP (Extensible Authentication Protocol) è un protocollo di autenticazione largamente utilizzato negliaccess-point. Il suo utilizzo all’interno di una rete wireless impone che l’access-point inoltri la richiestad’autenticazione di un client ad un server dedicato (server RADIUS). 6
  7. 7. Di seguito vengono descritti i principali metodi di autenticazione EAP: • EAP-Message Digest 5 (MD5) E’ un metodo di autenticazione di livello base supportato da molti server e di facile implementazione. Il suo utilizzo, però, non è consigliato quando il grado di sicurezza richiesto è elevato; uno dei principali motivi è la mancanza di mutua autenticazione: solo il client è obbligato a dimostrare la propria identità, quindi un malintenzionato può fingere di essere il server, ed in questo modo ottenere le credenziali della vittima; • EAP-TLS Il Transport Layer Security (TLS) offre un livello di sicurezza molto elevato grazie all’utilizzo di certificati lato client e lato server tramite l’utilizzo dell’infrastruttura a chiave pubblica (Public Key Infrastructure o PKI). Un certificato è un’ insieme di informazioni riguardanti un’entità (persona, azienda, ecc.) verificato tramite appositi algoritmi; ogni client dispone di un certificato. Questa maggior sicurezza richiede però un aumento della complessità degli strumenti software; • EAP-TTLS Il Tunnelled Transport Layer Security (TTLS), estensione di TLS, è un metodo a due passaggi. Nel primo si verifica l’identità del server e si crea il tunnel crittato di comunicazione; nel secondo si verifica l’identità del client utilizzando un secondo metodo di autenticazione, generalmente l’MD5. Una volta verificata la sua identità, il tunnel viene disabilitato. • EAP-LEAP Lightweight Extensible Authentication Protocol sviluppato da Cisco. Si basa su un protocollo di autenticazione chiamato "reciproco consenso": sia il client, sia laccess-point a cui il client richiede la connessione devono autenticarsi prima di avere accesso allinterno della rete. In questo modo si previene laccesso non autorizzato di access-point estranei alla rete. 7
  8. 8. 2.1.2 Struttura del protocollo Figura 2 - Struttura di un pacchetto RADIUSNel seguito vengono descritti nel dettaglio i campi del pacchetto:Code, identifica i seguenti tipi di pacchetto: Codice Nome Descrizione 1 Access-Request Inviato da un client ad un server RADIUS. Conterrà le informazioni che servono al server per determinare se autorizzare l’accesso di un utente di un NAS 2 Access-Accept Quando il server RADIUS riceve un Access-Request, invierà un Access-Accept se il valore di tutti gli attribute presenti nell’Access-Request sono accettabili. Access-Accept fornirà le informazioni di configurazione necessarie al client 3 Access-Reject Quando il server RADIUS riceve un Access-Request, invierà un Access-Reject se qualcuno dei valori degli attribute presenti nell’Access-Request è inaccettabile 4 Accounting-Request Inviato da un client ad un server, contiene informazioni di accounting. Se il server RADIUS accetta l’Accounting-Request, risponderà con un Accounting-Response 5 Accounting-Response Inviato dal server al client per confermarela ricezione dell’Accounting-Request 11 Access-Challenge Quando il server RADIUS riceve un Access-Accept, può inviare al client un Access-Challenge, che richiederà una risposta. Il client risponderà con un nuovo Access-Request 12 Status-Server (experimental) 13 Status-Client (experimental) 255 ReservedIdentifier: è utilizzato per associare richieste e risposte e per determinate richieste duplicate;Length: la lunghezza dell’intero pacchetto;Authenticator: è utilizzato per autenticare la risposta del server. Sono definiti due tipi di Authenticator: o Request-Authentication: utilizzato nei pacchetti Access-Request e Accounting-Request; o Response-Authenticator: utilizzato nei pacchetti Access-Accept, Access-Reject, Access-Challenge e Accounting-Response; 8
  9. 9. Attributes: campo di lunghezza variabile; il formato è il seguente: Figura 3 - Campo Attributo • Type: tipo di attributo (dettaglio nella seguente tabella) 1 User-Name 2 User-Password 4 NAS-IP- Address 5 NAS-Port 32 NAS-Identifier 40-59 Accounting • Length: dimensione dell’attributo; • Value: campo di lunghezza variabile; è possibile ottenere la sua dimensione analizzando il campo length del pacchetto.2.2 IASIl Servizio di Autenticazione Internet (IAS) è limplementazione Microsoft di un server RADIUS in WindowsServer 2003. Come server RADIUS, il servizio IAS esegue operazioni centralizzate di autenticazione,autorizzazione e accounting delle connessioni per numerosi tipi di accesso alla rete, tra cui wireless,cablato, VPN, ecc..Il protocollo può essere inoltre configurato come proxy RADIUS permettendo alle richieste dei client diessere inoltrate ad altri server RADIUS.Funzionalità di IAS: • Diversi metodi di autenticazione • Diversi metodi di autorizzazione • Server di accesso eterogenei • Proxy RADIUS • Autenticazione e autorizzazione utente centralizzate • Amministrazione centralizzata server di accesso • Controllo e accounting centralizzati • Scalabilità • Estensibilità 9
  10. 10. Nei paragrafi seguenti descriverò con più dettaglio le funzionalità appena elencate.2.2.1 Diversi metodi di autenticazioneIl servizio IAS supporta diversi protocolli di autenticazione e consente di aggiungere metodi personalizzatiper determinate esigenze. I metodi di autenticazione supportati sono i seguenti: • Protocolli di autenticazione PPP (Password-based Point-to-Point Protocol; PPP permette di connettere due nodi di una rete): o PAP (Password Authentication Protocol): il client si fa riconoscere dal server tramite una password; se la rete è composta da più di due nodi la sicurezza diventa più debole; o CHAP (Challenge Handshake Authentication Protocol): il server verifica periodicamente l’identità del client tramite chiave condivisa (handshake); o MS-CHAP (Microsoft Challenge Handshake Authentication Protocol): implementazione Microsoft di CHAP a cui sono state aggiunte funzionalità di crittografia; o MS-CHAP versione 2 (MS-CHAP v2): deriva da MS-CHAP; impone che anche il server dimostri la propria identità al client. • Protocollo EAP (Extensible Authentication Protocol): Questo metodo viene descritto nel paragrafo 2.2.1.2.2.2 Diversi metodi di autorizzazioneI metodi di autorizzazione supportati sono i seguenti: • DNIS (Dialed Number Identification Service): Autorizzazione in base alle credenziali fornite dal client in fase di autenticazione; • Servizio ANI/CLI (Automatic Number Identification/Calling Line Identification): Le credenziali non vengono trasmesse; • Autorizzazione guest: Quando, all’atto dell’accesso, non vengono fornite le credenziali del client. 10
  11. 11. 2.2.3 Server di accesso eterogeneiIl servizio IAS supporta server di accesso che supportano le specifiche RFC RADIUS 2865 e 2866; i principalisono: • Punti di accesso senza fili: IAS può essere utilizzato come server RADIUS per punti di accesso senza fili che utilizzano RADIUS per lautenticazione e lautorizzazione dei nodi senza fili. • Switch di autenticazione: può essere utilizzato come server RADIUS per switch di rete Ethernet che utilizzano RADIUS per lautenticazione e lautorizzazione dei nodi di commutazione.2.2.4 Proxy RADIUSIAS consente di inoltrare una richiesta RADIUS in ingresso a un altro server RADIUS per lelaborazionedellautenticazione e dellautorizzazione o dellaccounting. In qualità di proxy RADIUS, il servizio IAS puòessere utilizzato ogni volta che la richiesta RADIUS deve essere indirizzata a un altro server RADIUS. Ilservizio IAS consente di inoltrare le richieste in base al nome utente, allindirizzo IP del server di accessoremoto, allidentificatore del server di accesso, ecc.2.2.5 Autenticazione e autorizzazione utente centralizzatePer autenticare una richiesta di connessione, il server IAS convalida le credenziali verificandole con gliaccount utente memorizzati. È possibile autorizzare laccesso alla rete sulla base di diverse condizioni, tracui: • Lappartenenza dellaccount utente ad un gruppo. • Lora del giorno o il giorno della settimana. • Il tipo di supporto mediante il quale lutente effettua la connessione, ad esempio un supporto senza fili, un switch Ethernet, un modem o una rete VPN. • Il numero telefonico chiamato dallutente. • Il server di accesso da cui proviene la richiesta.2.2.6 Amministrazione centralizzata per tutti i server di accessoIl supporto per lo standard RADIUS consente al server IAS di controllare i parametri di connessione perciascun server di accesso che implementa RADIUS. 11
  12. 12. 2.2.7 Controllo e accounting centralizzatiIl supporto per RADIUS consente al server IAS di raccogliere in un’unica posizione i record relativi allutilizzo(accounting) inviati da tutti i server di accesso. Vengono archiviate nei file di log informazioni sul controllo,ad esempio le autenticazioni accettate e quelle rifiutate, oltre a informazioni sullutilizzo, ad esempio irecord di connessione e disconnessione. Il server IAS supporta un formato di file di log che può essereimportato direttamente in un database permettendo l’analisi con qualsiasi applicazione standard perlanalisi dei dati.2.2.8 ScalabilitàÈ possibile utilizzare il server IAS in diverse configurazioni per reti di varie dimensioni: da server autonomiper reti di piccole dimensioni a grandi organizzazioni e provider di servizi Internet.2.2.9 EstensibilitàAttraverso strumenti di sviluppo software (SDK – Software Development Kit) compatibili con IAS si può: • Controllare il numero di sessioni di rete degli utenti. • Importare dati di utilizzo e di controllo direttamente in un database ODBC (Open Database Connectivity). • Creare moduli di autorizzazione personalizzati. • Creare moduli di autenticazione personalizzati (non EAP).2.3 NPSA partire dalla versione 2008 dei sistemi operativi Microsoft Windows Server il sistema IAS viene sostituitoda NPS (Network Policy Server).Fornisce le stesse funzionalità di IAS, introducendo vari miglioramenti, tra i quali : • Supporto a NAP (Network Access Protection), che fornisce una piattaforma di accesso sicuro a reti private; questo grazie al controllo dello stato del firewall e dell’anti-virus del client; • Supporto ad indirizzi IPv6; • Possibilità di salvare le informazioni di configurazione in documenti XML; IAS faceva uso del motore per database JET.NPS produce i file di log che verranno analizzati dall’applicazione sviluppata per la tesi. 12
  13. 13. 3. Struttura dell’applicazione Il sistema è diviso in tre parti: • Log • Database • Software Figura 4 - Schema generico di un sistema RADIUSIn Figura 4 viene schematizzato il funzionamento del sistema RADIUS: i client possono connettersi al serverRADIUS utilizzando varie tecnologie. Il server dispone di un database contenente tutte le credenziali inmodo da verificare l’identità degli utenti.Di seguito verrà descritta nel dettaglio ogni componente. 13
  14. 14. 3.1 LogI log sono file di testo generati con cadenza ben definita dal server di autenticazione.Questi file vengono salvati come INxxyy.log: “IN” indica che vengono generati mensilmente, xx l’anno e yy ilmese.Genericamente, una riga del file appare nel seguente modo:"CLIENTCOMP","IAS",03/07/2008,13:04:33,1,"client",,,,,,,,,9,"10.10.10.10","npsclient",,,,,,,1,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,La seguente tabella descrive nel dettaglio ogni attributo: VALORE ATTRIBUTO TIPO DI DATO DESCRIZIONE"CLIENTCOMP" ComputerName Text The name of the server where the packet was received (this is an IAS-internal attribute)."IAS" ServiceName Text The name of the service that generated the record—IAS or the Routing and Remote Access service (this is an IAS-internal attribute).03/07/2008 Record-Date Time The date at the NPS or Routing and Remote Access server (this is an IAS- internal attribute).13:04:33 Record-Time Time The time at the NPS or Routing and Remote Access server (this is an IAS- internal attribute).1 Packet-Type Number The type of packet, which can be: 1 = Access-Request 2 = Access-Accept 3 = Access-Reject 4 = Accounting-Request This is an IAS-internal attribute."client" User-Name Text The user identity, as specified by the user. Fully-Qualified- Text The user name in canonical format (this is an IAS-internal attribute). Distinguished- Name Called-Station-ID Text The phone number dialed by the user. Calling-Station-ID Text The phone number from which the call originated. Callback-Number Text The callback phone number. Framed-IP-Address Text The framed address to be configured for the user. NAS-Identifier Text The text that identifies the network access server originating the request. NAS-IP-Address Text The IP address of the network access server originating the request. NAS-Port Number The physical port number of the network access server originating the request.9 Client-Vendor Number The manufacturer of the network access server (this is an IAS-internal attribute)."10.10.10.10" Client-IP-Address Text The IP address of the RADIUS client (this is an IAS-internal attribute)."npsclient" Client-Friendly- Text The friendly name for the RADIUS client (this is an IAS-internal attribute). Name Event-Timestamp Time The date and time that this event occurred on the network access server. Port-Limit Number The maximum number of ports that the network access server provides to the user. NAS-Port-Type Number The type of physical port that is used by the network access server originating the request. Connect-Info Text Information that is used by the network access server to specify the type of connection made. Typical information includes connection speed and data encoding protocols. Framed-Protocol Number The protocol to be used. Service-Type Number The type of service that the user has requested.1 Authentication- Number The authentication scheme, which is used to verify the user and can be: Type 14
  15. 15. 1 = PAP 2 = CHAP 3 = MS-CHAP 4 = MS-CHAP v2 5 = EAP 7 = None 8 = Custom This is an IAS-internal attribute. Policy-Name Text The friendly name of the network policy that either granted or denied access. This attribute is logged in Access-Accept and Access-Reject messages. If a user is rejected because none of the network policies matched, then this attribute is blank.0 Reason-Code Number The reason for rejecting a user, which can be: 0 = IAS_SUCCESS 1 = IAS_INTERNAL_ERROR 2 = IAS_ACCESS_DENIED 3 = IAS_MALFORMED_REQUEST 4 = IAS_GLOBAL_CATALOG_UNAVAILABLE 5 = IAS_DOMAIN_UNAVAILABLE 6 = IAS_SERVER_UNAVAILABLE 7 = IAS_NO_SUCH_DOMAIN 8 = IAS_NO_SUCH_USER 16 = IAS_AUTH_FAILURE 17 = IAS_CHANGE_PASSWORD_FAILURE 18 = IAS_UNSUPPORTED_AUTH_TYPE 32 = IAS_LOCAL_USERS_ONLY 33 = IAS_PASSWORD_MUST_CHANGE 34 = IAS_ACCOUNT_DISABLED 35 = IAS_ACCOUNT_EXPIRED 36 = IAS_ACCOUNT_LOCKED_OUT 37 = IAS_INVALID_LOGON_HOURS 38 = IAS_ACCOUNT_RESTRICTION 48 = IAS_NO_POLICY_MATCH 64 = IAS_DIALIN_LOCKED_OUT 65 = IAS_DIALIN_DISABLED 66 = IAS_INVALID_AUTH_TYPE 67 = IAS_INVALID_CALLING_STATION 68 = IAS_INVALID_DIALIN_HOURS 69 = IAS_INVALID_CALLED_STATION 70 = IAS_INVALID_PORT_TYPE 71 = IAS_INVALID_RESTRICTION 80 = IAS_NO_RECORD 96 = IAS_SESSION_TIMEOUT 97 = IAS_UNEXPECTED_REQUEST This is an IAS-internal attribute. Class Text The attribute that is sent to the client in an Access-Accept packet. Session-Timeout Number The length of time (in seconds) before the session is terminated. 15
  16. 16. Idle-Timeout Number The length of idle time (in seconds) before the session is terminated. Termination-Action Number The action that the network access server takes when service is completed. EAP-Friendly- Text The friendly name of the EAP-based authentication method that was used by Name the access client and NPS server during the authentication process. For example, if the client and server use Extensible Authentication Protocol (EAP) and the EAP type MS-CHAP v2, the value of EAP-Friendly-Name is “Microsoft Secured Password (EAP-MSCHAPv2)." Acct-Status-Type Number The number that specifies whether an accounting packet starts or stops a bridging, routing, or Terminal Server session. Acct-Delay-Time Number The length of time (in seconds) for which the network access server has been sending the same accounting packet. Acct-Input-Octets Number The number of octets received during the session. Acct-Output- Number The number of octets sent during the session. Octets Acct-Session-Id Text The unique numeric string that identifies the server session. Acct-Authentic Number The number that specifies which server authenticated an incoming call. Acct-Session-Time Number The length of time (in seconds) for which the session has been active. Acct-Input-Packets Number The number of packets received during the session. Acct-Output- Number The number of packets sent during the session. Packets Acct-Terminate- Number The reason that a connection was terminated. Cause Acct-Multi-Ssn-ID Text The unique numeric string that identifies the multilink session. Acct-Link-Count Number The number of links in a multilink session. Acct-Interim- Number The length of interval (in seconds) between each interim update that the Interval network access server sends. Tunnel-Type Number The tunneling protocol to be used. Tunnel-Medium- Number The medium to use when creating a tunnel for protocols. For example, L2TP Type packets can be sent over multiple link layers. Tunnel-Client- Text The IP address of the tunnel client. Endpt Tunnel-Server- Text The IP address of the tunnel server. Endpt Acct-Tunnel-Conn Text An identifier assigned to the tunnel. Tunnel-Pvt-Group- Text The group ID for a specific tunneled session. ID Tunnel- Text The tunnel to which a session is assigned. Assignment-ID Tunnel-Preference Number The preference of the tunnel type, as indicated with the Tunnel-Type attribute when multiple tunnel types are supported by the access server. MS-Acct-Auth- Number A Routing and Remote Access service attribute. For more information, see RFC Type 2548. MS-Acct-EAP-Type Number A Routing and Remote Access service attribute. For more information, see RFC 2548. MS-RAS-Version Text A Routing and Remote Access service attribute. For more information, see RFC 2548. MS-RAS-Vendor Number A Routing and Remote Access service attribute. For more information, see RFC 2548. MS-CHAP-Error Text A Routing and Remote Access service attribute. For more information, see RFC 2548. MS-CHAP-Domain Text A Routing and Remote Access service attribute. For more information, see RFC 2548. MS-MPPE- Number A Routing and Remote Access service attribute. For more information, see RFC Encryption-Types 2548. MS-MPPE- Number A Routing and Remote Access service attribute. For more information, see RFC Encryption-Policy 2548. Proxy-Policy-Name Text The name of the connection request policy that matched the connection request. Provider-Type Number Specifies the location where authentication occurs. Possible values are 0, 1, and 2. A value of 0 indicates that no authentication occurred. A value of 1 indicates that authentication occurs on the local NPS server. A value of 2 indicates that the connection request is forwarded to a remote RADIUS server for authentication. Provider-Name Text A string value that corresponds to Provider-Type. Possible values are "None" for a Provider-Type value of 0, "Windows" for a Provider-Type value of 1, and "Radius Proxy" for Provider-Type value of 2. Remote-Server- IP address The IP address of the remote RADIUS server to which the connection request Address was forwarded for authentication."CLIENTCOMP" MS-RAS-Client- Text The name of the remote access client. The Vendor-Length of the Value field, Name including the vendor ID, vendor-type, vendor-length, and value, must be at 16
  17. 17. least 7 and less than 40. Value, which specifies the computer name of the endpoint that is requesting network access, is sent in ASCII format and is null terminated. The valid character set for the computer name includes letters, numbers, and the following symbols: ! @ # $ % ^ & ‘ ) ( . - _ { } ~. MS-RAS-Client- Number The operating system version that is installed on the remote access client. The Version Vendor-Length of the Value field, including the vendor ID, vendor-type, vendor-length, and value, must be at least 7. Value, which specifies the version of the operating system on a remote access client, is a string that is in network byte order.Ai fini della tesi tutti i file di log elaborati dall’applicazione sono raggruppati in un’unica directory, il cuiindirizzo viene memorizzato in una tabella del database.Nella seguente schermata viene mostrato un log generato dal server universitario del dipartimento DI3: Figura 5 - Struttura di un logLe dimensioni dei file variano ovviamente a seconda del numero di tentativi di autenticazione da parte degliutenti: generalmente posso occupare da poche centinaia di kilobyte a decine di megabyte di spazio sumemoria di massa. 17
  18. 18. 3.2 DatabaseIl database è stato realizzato attraverso MySQL 5.5 con l’ausilio dell’interfaccia grafica MySQL Workbench5.2 CE e del connettore all’ambiente .NET MySQL Connector Net 6.5.4. Figura 6 - MySQL Workbench 5.2 CEIl database è costituito da una tabella principale, contenente le informazioni importate dai file di log e databelle di look-up per la descrizione di campi codificati. 18
  19. 19. In Figura 6 viene mostrata la tabella principale; in Figura 7 la tabella per la descrizione del campo codificatoReason-Code: Figura 7 - Tabella descrizione campo Reason-Code3.3 SoftwareE’ l’interfaccia che permette all’utente di interagire con i log. Realizzata in ambiente VISUAL STUDIO 2010ULTIMATE, è divisa in due parti: 1. Pagina web 2. CodiceRappresenta l’intermediario tra le richieste dell’utente e il database. 19
  20. 20. Figura 8 - Ambiente Visual Studio 20103.3.1 Pagina webRealizzata nel linguaggio ASP.NET, consiste in un’unica pagina web con elementi a comparsa, a secondadelle scelte dell’utente. 20
  21. 21. Figura 9 - Codice ASP.NET 21
  22. 22. 3.3.2 CodiceE’ la parte che soddisfa le richieste dell’utente; è stato realizzato in linguaggio C#. Figura 10 - Codice C# 22
  23. 23. 4. Funzionamento dell’applicazione In questo capitolo verrà descritto il funzionamento dell’applicazione, mostrando come i file di log, ildatabase e il software operano tra di loro.4.1 Ricerca e caricamento logCome già descritto in precedenza in ciascun file di log sono memorizzate le informazioni di determinatemensilità. L’applicazione permette il caricamento dei file del periodo di interesse.All’avvio viene eseguito un controllo sul database: se risulta vuoto viene mostrata automaticamente lafinestra che permette il caricamento del file di log che si desidera analizzare (Figura 11). Figura 11 - Avvio con database vuotoUna volta scelto il file desiderato parte l’esecuzione di tre test: 1. Integrità dei dati inseriti: semplice controllo che conferma l’inserimento di dati numerici, e successivamente della validità degli stessi (ad esempio mese 13); 2. Esistenza del file nella directory; 3. Esistenza del file nel database, evitando quindi perdite di tempo per il caricamento. 23
  24. 24. 4.2 Analisi log e caricamento databaseSe i test descritti nel paragrafo precedente hanno dato esito positivo il programma apre il file in modalitàlettura e ne analizza ogni riga. Ciascuna corrisponde ad un record della tabella del database. Su ognielemento prelevato si esegue un controllo: • in caso di stringa di caratteri si esegue la copia; • si fa una conversione nel tipo di dato previsto dallo standard (ad esempio numero intero, data e ora); • se il campo è vuoto, nel corrispondente campo del database comparirà il valore NULL.Successivamente si esegue una conversione per le date: dal formato mm/gg/aaaa utilizzato dal server alformato gg/mm/aaaa per poter essere elaborati dal database MySQL.Al termine di questa elaborazione il programma avvia la query di inserimento nel database, caricando ilrecord nella tabella. Questo procedimento viene ripetuto per ogni riga del file. Il tempo richiesto da questaoperazione dipende dalle prestazioni del computer. Figura 12 - Log caricato con successoAl termine dell’operazione compare un messaggio di conferma, e viene data la possibilità di caricare neldatabase un nuovo file di log relativo ad un altro periodo di interesse.In Figura 13 si visualizzano i dati appena caricati. 24
  25. 25. Figura 13 - Visualizzazione log appena caricato4.3 Visualizzazione dei datiLa visualizzazione è uno degli aspetti più importanti dell’applicazione: deve dare all’utente una visionepulita delle informazioni assistendolo con una descrizione per ogni elemento dell’interfaccia. Data lanumerosa presenza di campi con informazione nulla, ho deciso di visualizzarne solo un sottoinsieme, cherappresenta le informazioni più significative. Per mezzo di un pulsante è comunque possibile visualizzare indettaglio i singoli record (Figura 14).Nello specifico il formato di NPS prevede 66 campi, ma di questi solo 13 li ho ritenuti di interesse per losviluppo dell’applicazione in quanto contengono informazioni su data, orari, utenti e dispositivi. 25
  26. 26. Figura 14 - Dettaglio di un record del databaseCome è possibile vedere dalla Figura 14, nella schermata vengono visualizzati al massimo dieci record, inmodo da avere una visione più ampia delle informazioni. Questa configurazione è stata scelta e realizzataanche per un suo utilizzo su un dispositivo mobile.4.4 FunzionalitàLe funzionalità dell’applicazione si posso raggruppare in tre macro aree: • filtri sui campi del database; • gestione degli archivi contenenti i file di log; • gestione dei record del database (inserimento e cancellazione). 26
  27. 27. 4.4.1 Filtri sui campi del databaseI filtri permettono di raggruppare le informazioni per utente, per data, per tipologia di pacchetto RADIUS(request/response) oppure facendo combinazioni su più campi. Si dividono in due gruppi: • filtri semplici • filtri composti4.4.1.1 Filtri sempliciQuesto tipo di filtri permette di raggruppare le informazioni in base ai valori di un singolo campo.In Figura 15, ad esempio, è stato applicato il filtro sull’utente “Fermeglia Maurizio”: Figura 15 - Applicazione del filtro utente In Figura 16 vengono visualizzati tutti i record in cui lo ‘User-Name’ non è registrato nel database del webserver: 27
  28. 28. Figura 16 - Esempio di filtro su campo Reason-Code4.4.1.2 Filtri compostiQuesti filtri coinvolgono più campi, ad esempio è possibile visualizzare gli utenti che hanno avanzato unarichiesta di autenticazione al server in determinati momenti della giornata, come mostrato in Figura 17: 28
  29. 29. Figura 17 - Filtro per definiti orari di una giornata4.4.2 Gestione degli archivi contenenti i file di logL’applicazione permette tre operazioni riguardanti i file di log: • Modificare l’indirizzo della directory sorgente (Figura 18) • Visualizzare tutti i file presenti nella directory (Figura 19) • Visualizzare i file caricati nel database (Figura 20)L’indirizzo della nuova directory viene salvato in una apposita tabella del database. 29
  30. 30. Figura 18 - Possibilità di cambiare la directory sorgente dei log Figura 19 – Lista dei file presenti nella directory sorgente 30
  31. 31. Figura 20 - Lista dei file caricati nel database4.4.3 Operazioni sul databaseSul database è possibile eseguire le seguenti operazioni: • Caricare file • Cancellare tutti i record (reset) • Cancellazione mirata di record (Figura 21)L’ultima operazione da la possibilità di cancellare i soli record che rispettano determinati requisiti: adesempio tra due date oppure in un intervallo orario di una giornata. 31
  32. 32. Figura 21 - Parametri per la cancellazione dei recordE’ importante sottolineare che i record vengono cancellati solo nel database, quindi in caso di eliminazioneaccidentale posso essere recuperati dai file di log. 32
  33. 33. 5. Conclusioni 5.1 DIAMETERRitengo opportuno a fini di interesse e non per la tesi, introdurre un protocollo sviluppato per correggere ipunti deboli di RADIUS ed evolverne le caratteristiche: DIAMETER.DIAMETER, come RADIUS, è un protocollo AAA: è costituito da un protocollo base (specificato nell’RFC3588) e da un set di estensioni chiamato Applicazioni Diameter.Questa progettazione gli permette di essere esteso a nuove tecnologie d’accesso. Il protocollo base forniscemeccanismi di base per un trasporto affidabile e gestione degli errori; ogni applicazione si affida ai servizidel protocollo base per supportare uno specifico tipo di accesso alla rete (cablato, wireless, ecc).Prima di illustrare le caratteristiche del protocollo apro una parentesi veloce sui protocolli utilizzati per iltrasporto dei dati: UDP e TCP.5.1.1 UDP (User Datagram Protocol)Questo protocollo viene utilizzato da applicazioni che non necessitano trasferimenti affidabili di dati,prediligendo la velocità: in questa maniera si evitano ad esempio ritardi nelle comunicazioni broadcast.UDP quindi permette, grazie alla sua semplice struttura, trasferimenti più veloci e una minore complessitàdei sistemi che lo adottano.UDP viene utilizzato da RADIUS.5.1.2 TCP (Transfer Control Protocol)Lutilizzo del protocollo TCP è, in generale, preferito quando è necessario avere garanzie sulla consegna deidati o sullordine di arrivo dei vari segmenti (come nel caso di trasferimenti di file).TCP è un protocollo orientato alla connessione, ovvero prima di poter trasmettere dati deve stabilire lacomunicazione, negoziando una connessione tra mittente e destinatario, che viene esplicitamente chiusaquando non più necessaria. Esso quindi possiede le funzionalità per creare, mantenere e chiudere unaconnessione.TCP viene utilizzato da DIAMETER. 33
  34. 34. 5.1.3 Miglioramenti rispetto a RADIUSSono diversi i motivi per cui si dovrebbe passare a DIAMETER; di seguito elenco i principali: • La necessità di trasmettere informazioni con attributi più lunghi di 255 caratteri, che RADIUS non supporta, o di inviare pacchetti di richiesta più lunghi del limite imposto da UDP; • Il campo identificativo del pacchetto è un ottetto, cioè contiene un numero da 0 a 255; quindi si possono rilevare dei problemi in caso di un elevato numero di richieste da un server di accesso; • DIAMETER è più robusto per certe tipologie di attacchi; • DIAMETER protegge l’intera connessione tra client e server, e non singole tratte (client-NAS e NAS- server) come RADIUS.Di contro il protocollo DIAMETER è più complesso di RADIUS e le macchine lo utilizzano richiedono uninsieme di risorse maggiore.5.2 Possibili miglioramenti per l’applicazioneL’applicazione è stata progettata per sistemi non aventi grandi capacità di calcolo; è stata sviluppata su unnotebook HP 6730b avente le seguenti specifiche: • Sistema Operativo Windows 7 Enterprise, Service Pack 1; • Processore Intel(R) Core(TM) 2 Duo P8400 @2,26GHz; • 4 GB di memoria;Tuttavia la sua struttura modulare permette l’introduzione di altre funzionalità, che verranno elencate diseguito.5.2.1 Estensione a più dipartimentiIl programma è stato progettato per gestire i log del server NPS di un solo dipartimento, ma è possibileestendere il controllo a tutto il campus universitario. Tale operazione richiede un aumento dellacomplessità del database e delle procedure di recupero dati: non più un recupero in locale, ma unagestione delle connessioni ai vari server dipartimentali. 34
  35. 35. 5.2.2 Gestione di più tipologie di logEseguendo poche modifiche al codice, il programma è in grado di analizzare tipologie di log aventi formatidiversi, provenendo quindi da server diversi che registrano informazioni in altri ambiti, permettendoall’utente di avere più servizi integrati gestibili da un’unica interfaccia grafica.5.2.3 Grafici di andamentoL’applicazione può essere integrata con l’inserimento di strumenti grafici di analisi; di seguito elenco dellesituazioni la cui analisi può essere migliorata per mezzo di essi: • Richieste di autenticazione nelle varie fasce orarie di una giornata; • Richieste di autenticazione nell’arco di settimane, mesi e anni; • Richieste provenienti dai vari dipartimenti universitari; • Richieste per tipologia di utenti (personale, studenti, ecc); • Access-point più utilizzati per le connessioni; • Rilevamento di problemi di autenticazione.5.2.4 Connessione a vari databaseGrazie sempre alla sua struttura modulare e al linguaggio di programmazione utilizzato (C#), l’applicazioneè in grado di registrare le informazioni su diversi tipi di database (Jet, MySQL, SQL Server), a seconda dellevarie esigenze.5.3 Ambiente di sviluppoCome ambiente di sviluppo è stato scelto Microsoft Visual Studio 2010 Ultimate. Le motivazioni che mihanno portato a fare questa scelta sono: • Semplicità di utilizzo dell’ambiente; • Possibilità di sviluppare molte tipologie di applicativi; • Linguaggi di programmazione supportati; • Ampia documentazione disponibile in internet. 35
  36. 36. L’apprendimento delle funzionalità dei linguaggi di programmazione ASP.NET e C#, secondo me daincludere nel piano di studio della facoltà, è stato possibile grazie ai forum di discussione e dai siti internetufficiali: • technet.microsoft.com/; • www.aspitalia.com; • www.html.it; • Stackoverflow.com; 36

×