Autenticazione di rete + home directory di roaming: quale tecnologia dovrei esaminare?


9

Sto cercando un software che fornisca a un utente un'unica identità su più computer. Cioè, un utente dovrebbe avere le stesse autorizzazioni su ciascun computer e l'utente dovrebbe avere accesso a tutti i suoi file (home directory di roaming) su ciascun computer. Sembra che ci siano molte soluzioni per questa idea generale, ma sto cercando di determinare la migliore per me. Ecco alcuni dettagli insieme ai requisiti:

  1. La rete di macchine sono istanze Amazon EC2 che eseguono Ubuntu.
    • Accediamo alle macchine con SSH.
    • Alcune macchine su questa LAN possono avere usi diversi, ma sto solo discutendo di macchine per un certo uso (eseguendo una piattaforma multi-tenancy).
  2. Il sistema non avrà necessariamente un numero costante di macchine.
    • Potrebbe essere necessario modificare in modo permanente o temporaneo la quantità di macchine in esecuzione. Questo è il motivo per cui sto esaminando l'autenticazione / archiviazione centralizzata.
  3. L'implementazione di questo effetto dovrebbe essere sicura.
    • Non siamo sicuri se gli utenti avranno accesso diretto alla shell, ma il loro software sarà potenzialmente in esecuzione (con nomi utente Linux limitati, ovviamente) sui nostri sistemi, il che è buono come l'accesso diretto alla shell.
    • Supponiamo che il loro software possa essere potenzialmente dannoso per motivi di sicurezza.

Ho sentito parlare di diverse tecnologie / combinazioni per raggiungere il mio obiettivo, ma non sono sicuro delle conseguenze di ciascuna.

  • Un post ServerFault precedente raccomandava NFS e NIS, sebbene la combinazione abbia problemi di sicurezza secondo questo vecchio articolo di Symantec . L'articolo suggerisce di passare a NIS +, ma, poiché è vecchio, questo articolo di Wikipedia ha citato affermazioni che suggeriscono una tendenza al di fuori di NIS + di Sun. La sostituzione consigliata è un'altra cosa di cui ho sentito parlare ...
  • LDAP. Sembra che LDAP possa essere utilizzato per salvare le informazioni dell'utente in una posizione centralizzata su una rete. NFS dovrebbe ancora essere usato per coprire il requisito della "cartella home roaming", ma vedo i riferimenti di questi usati insieme. Poiché l'articolo di Symantec ha evidenziato problemi di sicurezza sia in NIS che in NFS, esiste un software per sostituire NFS o devo tenere conto dei suggerimenti di quell'articolo per bloccarlo? Mi sto orientando verso LDAP perché un altro pezzo fondamentale della nostra architettura, RabbitMQ, ha un plug-in di autenticazione / autorizzazione per LDAP. RabbitMQ sarà accessibile in modo limitato agli utenti del sistema, quindi, se possibile, vorrei unire i sistemi di sicurezza.
  • Kerberos è un altro protocollo di autenticazione sicura di cui ho sentito parlare. Ne ho imparato un po 'qualche anno fa in un corso di crittografia, ma non me ne ricordo molto. Ho visto suggerimenti online che può essere combinato con LDAP in diversi modi. È necessario? Quali sono i rischi per la sicurezza di LDAP senza Kerberos? Ricordo anche che Kerberos veniva utilizzato in un altro software sviluppato dalla Carnegie Mellon University ...
  • Andrew File System o AFS. OpenAFS è disponibile per l'uso, anche se la sua configurazione sembra un po 'complicata. Nella mia università, AFS fornisce entrambi i requisiti ... Posso accedere a qualsiasi macchina e la mia "cartella AFS" è sempre disponibile (almeno quando acquisisco un token AFS).

Insieme ai suggerimenti su quale percorso dovrei esaminare, qualcuno ha delle guide che sono state particolarmente utili? Come sottolineato dal testo in grassetto, LDAP sembra essere la scelta migliore, ma sono particolarmente interessato ai dettagli di implementazione (Keberos? NFS?) Per quanto riguarda la sicurezza.

Risposte:


7

Informazioni su autenticazione, autorizzazione e directory

Questa non è una risposta completa alla tua domanda, ma ho pensato che potesse aiutarti a rispondere alle tue domande su NIS vs. LDAP vs. Kerberos.

Inizia con questo , che fornisce una buona panoramica della differenza tra autenticazione e autorizzazione , che è importante capire per questo tipo di discussione.

Kerberos è, come dici tu, solo un protocollo di autenticazione. Dato un insieme di credenziali, ad esempio un nome utente e una password, ti dirà se sono validi o meno. Questo è tutto ciò che fa.

Al contrario, sia NIS che LDAP sono servizi di directory. Consentono a un client di interrogarli per informazioni sugli utenti (qual è la tua home directory? Qual è il tuo ID utente?). Entrambi possono essere utilizzati come fonti di autenticazione con vari gradi di gravità dei problemi.

NIS non esegue davvero alcuna autenticazione per te da solo. Piuttosto, espone un hash di password ai computer client e il sistema locale esegue l'effettiva fase di autenticazione allo stesso modo degli account locali. Il problema qui è che chiunque abbia un account su uno dei tuoi client NIS può prendere tutti gli hash delle tue password e quindi montare un attacco di forza bruta su di loro a loro piacimento.

LDAP è in qualche modo più sicuro, poiché il passaggio di autenticazione viene effettivamente eseguito sul server. Devi assicurarti di crittografare le tue sessioni LDAP con SSL o TLS, altrimenti la password viene esposta in chiaro sul filo, dove è vulnerabile allo sniffing dei pacchetti.

È molto comune utilizzare Kerberos per l'autenticazione e quindi NIS o LDAP per l'autorizzazione (in genere ciò significa "appartenenza al gruppo") e informazioni sulla directory. Direi che NIS, una volta rimossi gli hash delle password (spostando la tua autenticazione su Kerberos) non è molto meno sicuro di LDAP e ha il vantaggio di essere disponibile "out of the box" su qualsiasi moderna distribuzione Linux.

LDAP, d'altra parte, è generalmente molto più estensibile, si ridimensiona meglio se si dispone di un gran numero di utenti (o altri oggetti di directory), fornisce query avanzate ed è generalmente più gestibile. LDAP è inoltre supportato in modo nativo in una varietà di applicazioni, mentre NIS ha una strana relazione incestuosa con il sistema operativo principale che potrebbe essere indesiderabile.

Se stai costruendo cose da zero, suggerirei Kerberos per l'autenticazione e LDAP per il tuo servizio di directory.

Filesystem

NFS ha un grande vantaggio: ce l'hai già, è ampiamente distribuito ed è generalmente stabile. Esistono due aspetti negativi principali di NFS:

  • Non si adatta bene per gli I / O paralleli. Se hai un gran numero di macchine che colpiscono lo stesso filesystem, il tuo singolo server NFS potrebbe avere difficoltà a tenere il passo. Questo è il motivo per cui i cluster più grandi utilizzano in genere un file system del cluster (come Lustre, GlusterFS, GPFS, GFS, ecc.) Progettato per supportare l'I / O parallelo.

  • Ha un cattivo modello di sicurezza. In genere, le decisioni sulla sicurezza di NFS si basano interamente sul tuo ID utente numerico. Se hai root su un sistema che può montare un filesystem NFS, hai accesso a tutti i file, perché puoi sempre creare un utente locale con l'ID utente appropriato. Questo non è strettamente vero, perché sia NFSv3 e NFSv4 hanno diversi livelli di supporto per l'autenticazione Kerberos, ma devo ancora incontrare qualcuno di utilizzare questo ... così il vostro chilometraggio può variare.

Per le piccole implementazioni, la maggior parte delle persone usa NFS nonostante i suoi limiti.

Esistono molte altre soluzioni - i filesystem del cluster che ho menzionato sopra, così come AFS e altri - ma la maggior parte di questi richiederà un po 'di lavoro da parte tua per farli funzionare su qualunque distribuzione tu abbia selezionato. Di recente ho sentito parlare di cose positive su GlusterFS, quindi se stavo cercando un'alternativa NFS potrebbe essere il primo posto in cui cerco.


Grazie per aver chiarito queste cose. In realtà ho una buona base nell'autorizzazione contro l'autenticazione; Non sono sicuro delle capacità di ciascun software. Anche la parte di archiviazione è importante; sai come il modello di sicurezza di Kerberos / LDAP si collega a NFS?
Brian,

Ho aggiornato la risposta con alcune informazioni su NFS.
Larks

In questo caso non vedo alcun motivo per essere limitato a un singolo server NFS, anche se uno potrebbe essere sufficiente e ne sarà possibile aggiungere altri in un secondo momento. help.ubuntu.com/community/AutofsLDAP
84104

Ho provato a leggere quella guida di AutofsLDAP e altre. È scritto male o non aggiornato, poiché i miei risultati differiscono e non posso procedere oltre un certo punto. :(
Brian,

Potresti voler aprire una nuova domanda con i dettagli appropriati.
Larsks,

0

Questa è una risposta parziale.

NIS / NIS +
Non utilizzare NIS. Usa LDAP con nis schema.

OpenLDAP (aka slapd su Ubuntu)
Assicurati di impostare ACL e SSF corretti (fattori di sicurezza).
È molto facile inviare le password in chiaro se non stai attento.
http://www.openldap.org/doc/

NFS
NFS non è crittografato.
Può essere avvolto in ssl con qualche trucco.
Senza Kerberos si affida a ip_addr per auth.
Con Kerberos è possibile che SASL sia utilizzato per crittografare tutto.

Kerberos
richiede che OpenLDAP disponga dell'autenticazione pass-through SASL per l'autenticazione LDAP. (Non difficile.)
Dovrebbe usare voci DNS. (Non richiesto, ma molto utile).
GSSAPI può essere usato al posto di ssh-keys. (Possono coesistere.) Le
macchine KDC devono essere separate dalle macchine client.

OpenAFS
crittografato con DES. (Non considerato sicuro.)
Richiede kerberos o il suo server di autenticazione legacy.
Ha i propri ACL di file system.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.