Load Balancing TCP e UDP con Nginx

Ultimamente avevo necessità di un bilanciatore su una infrastruttura PaaS e ho pensato ad utilizzare nginx come sistema Load Balancing TCP e UDP.

Il Load Balancing è un modo eccellente per ridimensionare l’applicazione e aumentarne le prestazioni e la ridondanza. Nginx, che è un popolare software per server Web, può essere configurato come un semplice ma potente bilanciamento del carico per migliorare la disponibilità e l’efficienza delle risorse del server. In una configurazione nginx funge da punto di ingresso singolo per un’applicazione Web (o in questo caso come un server dns) distribuita che lavora su più server separati.

Continua a leggere

Infrastruttura Single-Signon Unix

Una volta definito l’ambiente in cui verrà sviluppato il modello, si è proceduto alla scelta dei programmi da integrare: la scelta è ricaduta su programmi OpenSource, in quanto più facilmente reperibili ed eventualmente modificabili. È possibile realizzare la stessa infrastruttura con programmi supportati, ma bisogna verificare con il produttore se le funzionalità siano disponibili, ad esempio se l’LDAP server supporta Kerberos come password back-end.

Preparazione del DNS

Kerberos richiede che vi siano alcune entry nel DNS che puntino ai servizi erogati, anche se pochi programmi sembrano cercare queste entry. È bene verificare che il reverse look-up di ciascun server sia garantito: alcuni problemi legati al kerberos sono relativi al fatto di non riuscire a risolvere in modo corretto i nomi. Per quanto riguarda il laboratorio, questo è il DNS relativo alla parte kerberos: Continua a leggere

Scenario di Single-SingOn

monitorQuando ho cominciato questa “avventura”, mi sono prefisso alcuni punti. Il primo in assoluto è che prima di procedere alla rinfusa con l’implementazione del software, ho preferito usare un approccio più strutturato al problema, definendomi degli obiettivi o requisiti. Vediamoli insieme:

  • Il KDC doveva risiedere principalmente su un ambiente Unix, ma si doveva comunque dimostrare teoricamente la possibilità di usare un KDC su ambiente Windows (Active Directory)
  • Il server LDAP doveva risiedere su un ambiente Unix, con gli stessi requisiti del KDC per quanto riguarda l’ambiente Windows

Continua a leggere

Kerberos

linuxKerberos è un protocollo di autenticazione sviluppato presso il MIT, il cui nome evoca il famoso cane a tre teste della mitologica greca, e fornisce un meccanismo per una autenticazione reciproca (mutual authentication) tra client e server o tra due server. Il protocollo assume che le transazioni iniziali tra client e server avvengano in una rete insicura, probabilmente sotto monitor di qualche utente smaliziato, e che anche i computer non siano posti in un luogo sicuro, probabilmente saranno collegati a Internet. In un ambiente poco sicuro, sia esso Internet o una intranet, non è escluso poter trovare un attaccante in grado di intercettare le comunicazioni tra client e server e di catturare dati o, peggio, di modificarli. Il sistema di autenticazione Kerberos, così come la figura mitologica, è composto da tre elementi: il Key Distribution Center (KDC), l’utente e il server con il servizio a cui l’utente vuole accedere. Nei prossimi paragrafi si riassumeranno le caratteristiche salienti di Kerberos, ma per maggiori informazioni si suggerisce una lettura approfondita della bibliografia, in particolare del whitepaper “Kerberos: An Authentication Service for Open Network Systems”, presentato a USENIX nel 1988, e del WhitePaper “Windows 2000 Kerberos Authentication”. Continua a leggere