Secure Network Filesystems per Linux: cosa stanno facendo le persone?


26

NFSv3 è molto diffuso, ma il modello di sicurezza predefinito è ... caratteristico . CIFS può utilizzare l'autenticazione Kerberos, ma senza la semantica POSIX non è un avviatore. AFS non ha mai crittografato il traffico sul filo ed è krb4 - e sostanzialmente un progetto morto. I nuovi fantasiosi filesystem sperimentali non si materializzano mai o sono focalizzati sulla velocità (e se sei fortunato, l'affidabilità dei dati) - ad esempio, Lustre utilizza lo stesso modello di affidabilità client di NFSv3. Per uso domestico, sshfs è elegante, ma sicuramente non si adatta.

E poi ovviamente c'è NFSv4, con sec = krb5p. Grande in teoria, ma dopo dieci anni, sembra essere inutilizzato in modo preoccupante nel mondo reale. Il client Linux ha appena rimosso il tag sperimentale. E se guardi EMC Celerra, Isilon, ecc., È tutto NFSv3. (Celerra supporta NFSv4, ma è davvero sepolto nella documentazione. A quanto pare Isilon ha lavorato per aggiungere il supporto RPCGSS a FreeBSD, quindi forse sta arrivando, ma non è lì adesso.) Non posso nemmeno contrassegnare questo post come "nfsv4" perché Sono nuovo qui e sarebbe un nuovo tag .

Quindi davvero . Cosa state facendo tutti?


Vorrei dire "NFS3 su IPSEC", ma non posso.
sysadmin1138

1
"NFS3 over IPSEC" aiuta con il problema on-the-wire, ma non risolve un altro problema NFS fondamentale: se un client box viene rootato o se sei in un ambiente in cui gli utenti ottengono il root sui propri sistemi, loro può banalmente impersonare qualsiasi utente remoto.
mattdm,

Eccoti, nuovo tag;)
Cry Havok,

1
AFAIK, Kerberos è stato definito per NFS
Javier il

2
Non sono così sicuro della necessità di crittografare il traffico sul filo in un ambiente LAN (l'autenticazione dovrebbe essere crittografata però). Dovresti comunque monitorare l'avvelenamento da ARP ...
Hubert Kario,

Risposte:


8

Dal momento che è una domanda specifica (cosa state facendo tutti), rispondiamo: niente. La maggior parte degli amministratori e degli utenti non si preoccupano della sicurezza di NFS, quindi tutti usano NFSv3. In genere è un ambiente controllato (nel senso che solo macchine ben note possono collegarsi alla rete in primo luogo). Se qualcuno viene sorpreso ad abusare dell'infrastruttura, viene licenziato o imprigionato.

Per i dati che non vuoi davvero che nessuno sia in grado di leggere, li crittografhi esplicitamente, ad esempio database di password di Firefox, chiavi ssh o chiavi pgp. Lo fai perché sai che l'amministratore potrebbe leggerli sul file server, quindi la sicurezza del file system di rete non sarebbe comunque di alcun aiuto.


14

Sembra che tu stia facendo due domande qui:

Cosa stiamo effettivamente usando? e che cosa fa questo?

Quello che sto effettivamente usando è CIFS, nei miei casi d'uso POSIX è meno importante, quindi non ho avuto problemi. NFS3 viene utilizzato in aree in cui la sicurezza non è importante, come ad esempio il mio server di installazione SLES. E infine, sshfs / gvfs per una semplice condivisione utente-terra. La crittografia dei cavi non è ritenuta necessaria, quindi non è un fattore significativo per noi.

Per quanto riguarda l'altra domanda, sembrano esserci sei requisiti principali per quello che stai cercando:

  1. Crittografa il traffico sul filo.
  2. Crittografa l'autenticazione.
  3. Semantica Posix.
  4. Forte applicazione di ACL basati su server.
  5. Non è terra dell'utente.
  6. Viene effettivamente utilizzato.

Sospetto che i punti 5 e 6 saranno gli assassini qui, ma qui va (anche questo è il punto in cui un tavolo sarebbe davvero utile, ma markdown / StackExchange non lo supporta).

NFSv3 + IPSec

  1. Crittografato sul filo, passa
  2. Nessuna autenticazione crittografata, errore
  3. Semantica Posix, passaggio
  4. Nessuna forte applicazione di ACL basati su server, non riesce
  5. Non è userland, passa
  6. Viene effettivamente utilizzato, passa

NFSv4 + Krb + IPSec

  1. Crittografato sul filo, passa
  2. Autenticazione crittografata, pass
  3. Semantica Posix, passaggio
  4. Forte applicazione di ACL basati su server, pass
  5. Non è userland, passa
  6. In realtà non viene utilizzato, fallire

CIFS

  1. Non crittografato sul filo, errore
  2. Autenticazione crittografata
  3. Semantica Posix, pass (Samba e Kernel ora, Windows ha avuto un livello Posix dai tempi di NT)
  4. Forte applicazione di ACL basati su server, pass
  5. Non è userland, passa
  6. Viene effettivamente utilizzato, passa

CIFS + IPSec

  1. Crittografato sul filo, passa
  2. Autenticazione crittografata
  3. Posix semantics, pass (Samba & Kernel now)
  4. Forte applicazione di ACL basati su server, pass
  5. Non è userland, passa
  6. In realtà non viene utilizzato, fallire

SSHFS

  1. Crittografato sul filo, passa
  2. Autenticazione crittografata, pass
  3. Semantica Posix, passaggio
  4. Forte applicazione di ACL basati su server, pass
  5. Userland, fail
  6. Viene effettivamente utilizzato, passa

AFP / netatalk

  1. Crittografato sul filo, non riesce
  2. Autenticazione crittografata, pass
  3. Semantica Posix, passaggio
  4. Forte applicazione di ACL basati su server, pass
  5. Non è userland, passa
  6. Viene effettivamente utilizzato, fallire

E non sto toccando i file system distribuiti là fuori. Semplicemente non c'è una sola cosa che fa tutto. Alcuni si avvicinano (CIFS) e alcuni sono già lì, ma nessuno li usa (NFS4 + IPSec, CIFS + IPSec). Per qualche ragione un filesystem di rete sicuro è stato oggetto di molti compromessi nel corso degli anni.


Avresti potuto menzionare "NFSv4 + Krb" e aggiungere "7. È abbastanza veloce (cioè rispetto allo stesso stack di protocollo senza crittografia)?" come una domanda. Che probabilmente sarebbe un fallimento per NFSv4 + krb5p, ma passa per le domande 1-6.
al.

potrebbe essere il momento di un nuovo filesystem di rete sicuro SNFS?
The Unix Janitor

@ user37899 Il problema, come sempre, è convincere i fornitori di apparecchiature a supportarlo e le organizzazioni a implementarlo.
sysadmin1138

1
Abbiamo avuto davvero sfortuna nel tentativo di utilizzare CIFS in modalità POSIX. Forse è tempo di rivisitarlo.
mattdm,

FWIW Sto usando CIFS + IPsec, ma non con la semantica POSIX. il server è emc celerra, i client win7. tunnel ipsec realizzati in modalità lan-to-lan tra Cisco ASA (accanto a Celerra) e Win7 integrato in ipsec.
Dan Pritts,

3

Ho usato openafs in produzione per anni, con client sia Linux che Windows. Funziona benissimo, ha una comunità di sviluppo attiva ed è diventato molto più facile da installare e amministrare negli ultimi anni poiché le varie distribuzioni di Linux hanno incluso il packaging per esso. Ha le sue verruche, ma ho scoperto che sono compensate da una maggiore flessibilità amministrativa, dalla possibilità di avere client e server separati da collegamenti lenti, dalla facilità dei backup offsite e da altri AFSisms positivi.

Una cosa che mi piace in particolare è l'esecuzione di server Web di produzione rivolti a Internet su openaf, con gli ACL bloccati. Senza un ticket Kerberos non esiste alcun processo sulla macchina - nemmeno uno in esecuzione come root - che può scrivere sul filesystem. Non posso contare quante volte abbiamo notato che gli attacchi falliscono completamente a causa di quella semplice misura.

Ci sono alcuni utenti openafs piuttosto grandi - il più grande utente commerciale che conosco è Morgan Stanley.


1

Che ne dici di OpenAFS che è ancora attivo e una VPN sotto di essa perché la sua unica crittografia al momento è DES.


2
Ho usato OpenAFS in produzione. Le voci sulla sua vitalità sono molto esagerate.
Mattdm,

Ci sono state nuove versioni questo mese e prima ci sono stati aggiornamenti abbastanza regolari per supportare le nuove versioni di Windows e le nuove versioni del kernel Linux (la versione più recente supporta 3.0).
Hubert Kario,

1

Vedo che molte persone in questo thread parlano di nascondere i dati, ovvero attacchi che non sono in grado di curiosare sui tuoi dati. Un altrettanto importante pensare all'integrità e all'autenticità dei dati. Questi pacchetti nfs provengono davvero dal tuo server nfs? Un pacchetto nfs è stato modificato durante il trasporto?


NFS over IPsec si occupa di ciò (sui collegamenti ad ampia area) e il monitoraggio dell'avvelenamento da ARP lo fa su LAN
Hubert Kario,

qualcuno sta effettivamente usando ipsec con successo?
The Unix Janitor

1

Bene, a me sembra che uno di quei filesystem distribuiti sarebbe adatto a te. Non vorrei assolutamente raccomandare OpenAFS, dato che è vecchio, non supporta ancora IPv6, ..

Sono abbastanza contento di GlusterFS me stesso. Gluster è piuttosto maturo, funziona bene e ha un buon set di funzionalità. Tuttavia, come recentemente discusso in IRC, Gluster non supporta neanche IPv6 in modo stabile. Questa funzione sarà programmata per 3.6 o 3.7.

Esiste anche un progetto chiamato HekaFS, basato su Gluster, che aggiunge funzionalità di autenticazione e SSL più avanzate. È estremamente ben documentato e molto ben progettato.

Ciò che potrebbe interessarti è XtreemFS , che è progettato per il grid computing globale, quindi viene fornito con SSL e roba di default. Tuttavia, la mia scelta di utilizzo è caduta su Gluster, poiché la community sembra più attiva e documentata meglio.

Entrambi sono compatibili posix ovviamente.


0

Io uso NFS. Ma NFS da server a server viene eseguito su un backbone di rete dedicato, quindi la crittografia non è necessaria e l'autenticazione è quasi inutile. Basta impostare ogni esportazione per condividere solo una directory selezionata su un server basato su IP.


rete dedicata, fino a quando qualcuno non si collega allo switch rack con WireShark.
The Unix Janitor

Questo è un problema di sicurezza fisica allora. Una volta che si trovano nella stessa stanza con i server, il gioco finisce comunque.
Portico

-2

Con tutto il dovuto rispetto, stai osservando completamente questo problema nel modo sbagliato e dovresti allontanarti dalla console per alcune ore.

Praticamente tutto lo storage io non è crittografato perché non ha importanza in quel livello dello stack di astrazione. Ne dubito? Metti un colpetto sul tuo interruttore in fibra di broccato e vedrai che il canale in fibra, proprio come iscsi e nfs, è tutto un pasticcio non crittografato - di progettazione. Risolvere questo è un problema medio, non un problema del protocollo di archiviazione. Ad esempio, vuoi un nfs sicuro e crittografato? Creata una lan che è criptata punto a punto tra il client nfs e il server usando ipsec / ssl / tls o una soluzione hardware pura.


Penso che ti manchi un punto chiave. Come dice la domanda, il problema riguarda il modello di sicurezza NFS. Mentre la crittografia è buona, è, come dici tu, un problema risolvibile. Il grosso problema con NFS è che una volta montato un filesystem su un sistema, chiunque abbia accesso root su quel sistema può accedere a qualsiasi file su quel filesystem, indipendentemente dalla proprietà o dalle autorizzazioni. Un sistema come AFS o, in teoria, NFSv4 con sec = krbp5, richiede credenziali forti per accedere ai file e quindi rappresenta un aumento sostanziale della sicurezza. Un client NFS con root non equivale a una massiccia esposizione di dati.
Larks

1
A meno che non si richieda all'utente di immettere le credenziali per ciascun accesso, le credenziali verranno archiviate. È probabile che un client con compromissione della radice rinunci facilmente alla chiave memorizzata. Qualsiasi file system in rete aumenterà l'esposizione del file system al compromesso.
BillThor,

@BillThor Questo è quello che stavo pensando .. È ancora aperto agli attacchi se le credenziali sono nella memoria del kernel? Penso che un modulo del kernel possa essere caricato per leggere qualsiasi pezzo di memoria del kernel.
Rob Olmos,

Finché la richiesta viene utilizzata nel contesto di un utente con accesso all'archivio condiviso, è probabile che non contenga dove si trovano le credenziali. Le credenziali sono spesso detenute da un processo in background, quindi chiunque possa comunicare con esso può probabilmente accedere all'archivio condiviso. Classificherei il rischio per l'archiviazione di rete protetta più o meno come l'archiviazione locale.
BillThor,

2
@BillThor: con Kerberos, il rischio è significativamente mitigato, poiché l'attaccante avrebbe accesso solo ai filesystem degli utenti che hanno inoltrato i loro ticket e solo per la durata di tali ticket. Con l'autenticazione basata sul sistema (alla nfsv3), root può accedere e manipolare i file di qualsiasi utente, anche se quell'utente non ha mai avuto nulla a che fare con il sistema compromesso.
Mattdm,
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.