Secure Network Filesystems für Linux: Was machen die Leute?


26

NFSv3 ist weit verbreitet, aber das Standardsicherheitsmodell ist ... kurios . CIFS kann die Kerberos-Authentifizierung verwenden, ist jedoch ohne POSIX-Semantik kein Starter. AFS hat den Datenverkehr auf dem Kabel nie verschlüsselt und ist krb4 - und im Grunde ein totes Projekt. Ausgefallene neue experimentelle Dateisysteme entstehen entweder nie oder sie konzentrieren sich auf die Geschwindigkeit (und wenn Sie Glück haben, auf die Zuverlässigkeit der Daten). Beispielsweise verwendet Lustre dasselbe Client-Vertrauensmodell wie NFSv3. Für den Heimgebrauch ist sshfs praktisch, aber das lässt sich nicht skalieren.

Und dann gibt es natürlich NFSv4 mit sec = krb5p. Theoretisch großartig, aber nach zehn Jahren scheint es in der realen Welt beunruhigend unbenutzt zu sein. Der Linux-Client hat gerade das experimentelle Tag entfernt. Und wenn Sie sich EMC Celerra, Isilon usw. ansehen, ist alles NFSv3. (Celerra unterstützt NFSv4, aber es ist wirklich in der Dokumentation vergraben. Isilon hat anscheinend daran gearbeitet, die RPCGSS-Unterstützung zu FreeBSD hinzuzufügen, also kommt sie vielleicht, aber jetzt ist sie nicht da.) Ich kann diesen Beitrag nicht einmal als "nfsv4" markieren, weil ich bin neu hier und das wäre ein neuer tag .

Also wirklich . Was macht ihr alle?


Ich würde gerne "NFS3 over IPSEC" sagen, aber ich kann nicht.
sysadmin1138

1
"NFS3 over IPSEC" hilft bei der direkten Problembehandlung, behebt jedoch kein anderes grundlegendes NFS-Problem: Wenn eine Client-Box gerootet wird oder wenn Sie sich in einer Umgebung befinden, in der Benutzer auf ihren eigenen Systemen gerootet werden, werden sie gerootet kann jeden entfernten Benutzer trivial verkörpern.
Mattdm

Da bist du, neuer Tag;)
Cry Havok

1
AFAIK, Kerberos wurde für NFS
Javier

2
Ich bin mir nicht so sicher, ob der Datenverkehr auf dem Kabel in einer LAN-Umgebung verschlüsselt werden muss (die Authentifizierung sollte jedoch verschlüsselt sein). Sie sollten auf jeden
Fall

Antworten:


8

Da es sich um eine bestimmte Frage handelt (Was macht ihr alle?), Lasst es uns beantworten: Nichts. Die meisten Administratoren und Benutzer sorgen sich nicht um die NFS-Sicherheit, daher verwendet jeder NFSv3. In der Regel handelt es sich um eine kontrollierte Umgebung (in dem Sinne, dass nur bekannte Computer eine Verbindung zum Netzwerk herstellen können). Wenn jemand erwischt wird, wie er die Infrastruktur missbraucht, wird er gefeuert oder ins Gefängnis gesteckt.

Daten, die wirklich von niemandem gelesen werden sollen, verschlüsseln Sie explizit, z. B. Firefox-Kennwortdatenbanken, SSH-Schlüssel oder PGP-Schlüssel. Sie tun dies, weil Sie wissen, dass der Administrator sie auf dem Dateiserver lesen kann, sodass die Sicherheit des Netzwerk-Dateisystems sowieso keine Hilfe darstellt.


14

Sie scheinen hier zwei Fragen zu stellen:

Was verwenden wir eigentlich? und was macht das

Was ich tatsächlich benutze, ist CIFS. In meinen Anwendungsfällen ist POSIX weniger wichtig, sodass ich keine Probleme hatte. NFS3 wird in Bereichen verwendet, in denen die Sicherheit nicht wichtig ist, z. B. auf meinem SLES-Installationsserver. Und schließlich sshfs / gvfs für einfaches User-Land-Sharing. Wireline-Verschlüsselung wird nicht als erforderlich erachtet, daher ist dies für uns kein wichtiger Faktor.

Was die andere Frage betrifft, scheint es sechs Hauptanforderungen für das zu geben, wonach Sie suchen:

  1. Verschlüsselt den Datenverkehr auf der Leitung.
  2. Verschlüsselt die Authentifizierung.
  3. Posix-Semantik.
  4. Starke Durchsetzung von serverbasierten ACLs.
  5. Ist nicht userland.
  6. Wird tatsächlich benutzt.

Ich vermute, dass die Punkte 5 und 6 hier die Killer sind, aber hier ist es auch (auch das ist der Punkt, an dem ein Tisch wirklich praktisch wäre, aber markdown / StackExchange unterstützt es nicht).

NFSv3 + IPSec

  1. Auf dem Draht verschlüsselt, passieren
  2. Keine verschlüsselte Authentifizierung, fehlgeschlagen
  3. Posix-Semantik übergeben
  4. Keine starke Durchsetzung von serverbasierten ACLs, fehlschlagen
  5. Ist kein userland, pass
  6. Wird tatsächlich benutzt, weitergeben

NFSv4 + Krb + IPSec

  1. Auf dem Draht verschlüsselt, passieren
  2. Verschlüsselte Authentifizierung, bestanden
  3. Posix-Semantik übergeben
  4. Starke Durchsetzung von serverbasierten ACLs, pass
  5. Ist kein userland, pass
  6. Wird eigentlich nicht benutzt, scheitern

CIFS

  1. Nicht auf dem Draht verschlüsselt, scheitern
  2. Verschlüsselte Authentifizierung
  3. Posix-Semantik, bestanden (Samba & Kernel, Windows hat seit den NT-Tagen eine Posix-Ebene)
  4. Starke Durchsetzung von serverbasierten ACLs, pass
  5. Ist kein userland, pass
  6. Wird tatsächlich benutzt, weitergeben

CIFS + IPSec

  1. Auf dem Draht verschlüsselt, passieren
  2. Verschlüsselte Authentifizierung
  3. Posix-Semantik, pass (Samba & Kernel jetzt)
  4. Starke Durchsetzung von serverbasierten ACLs, pass
  5. Ist kein userland, pass
  6. Wird eigentlich nicht benutzt, scheitern

SSHFS

  1. Auf dem Draht verschlüsselt, passieren
  2. Verschlüsselte Authentifizierung, bestanden
  3. Posix-Semantik übergeben
  4. Starke Durchsetzung von serverbasierten ACLs, pass
  5. Ist Userland, scheitern
  6. Wird tatsächlich benutzt, weitergeben

AFP / NetATalk

  1. Auf dem Kabel verschlüsselt, scheitern
  2. Verschlüsselte Authentifizierung, bestanden
  3. Posix-Semantik übergeben
  4. Starke Durchsetzung von serverbasierten ACLs, pass
  5. Ist kein userland, pass
  6. Wird tatsächlich benutzt, scheitern

Und ich rühre die verteilten Dateisysteme da draußen nicht an. Es gibt einfach keine einzige Sache, die alles macht. Einige kommen näher (CIFS) und andere sind bereits vorhanden, aber niemand verwendet sie (NFS4 + IPSec, CIFS + IPSec). Aus irgendeinem Grund ist ein sicheres Netzwerk-Dateisystem im Laufe der Jahre vielen Kompromissen unterworfen.


Sie hätten "NFSv4 + Krb" erwähnen und "7. Ist es relativ schnell (dh verglichen mit demselben Protokollstapel ohne Verschlüsselung)?" Hinzufügen können. als eine Frage. Was wahrscheinlich sein , würde nicht für NFSv4 + krb5p, aber passieren 1-6 Fragen.
al.

könnte Zeit für ein neues sicheres Netzwerk-Dateisystem SNFS sein?
Der Unix-Hausmeister

@ user37899 Das Problem besteht wie immer darin, Appliance-Anbieter davon zu überzeugen, es zu unterstützen, und Organisationen, es bereitzustellen.
sysadmin1138

1
Wir hatten wirklich Pech, CIFS im POSIX-Modus zu verwenden. Vielleicht ist es Zeit, das noch einmal zu überdenken.
Mattdm

FWIW Ich verwende CIFS + IPsec, aber nicht mit POSIX-Semantik. Server ist emc Celerra, Clients win7. IPSec-Tunnel werden im LAN-zu-LAN-Modus zwischen Cisco ASA (neben Celerra) und dem in Win7 eingebauten IPSec ausgeführt.
Dan Pritts

3

Ich benutze openafs seit Jahren in der Produktion, sowohl mit Linux- als auch mit Windows-Clients. Es funktioniert großartig, hat eine aktive Entwickler-Community und ist in den letzten Jahren viel einfacher zu installieren und zu verwalten geworden, da die verschiedenen Linux-Distributionen die entsprechenden Pakete enthalten. Es hat seine Warzen, aber ich habe festgestellt, dass sie durch mehr administrative Flexibilität, die Möglichkeit, Clients und Server durch langsame Verbindungen voneinander zu trennen, die Leichtigkeit von Offsite-Backups und andere positive AFSismen ausgeglichen werden.

Eine Sache, die ich besonders mag, ist die Ausführung von mit dem Internet verbundenen Produktions-Webservern auf openafs, wobei die ACLs gesperrt sind. Ohne ein Kerberos-Ticket gibt es keinen Prozess auf dem Computer - auch keinen, der als Root ausgeführt wird - der in das Dateisystem schreiben kann. Ich kann nicht zählen, wie oft wir aufgrund dieser einfachen Maßnahme bemerkt haben, dass Angriffe völlig fehlschlagen.

Es gibt einige ziemlich große openafs-Benutzer - der größte kommerzielle Benutzer, den ich kenne, ist Morgan Stanley.


1

Wie wäre es mit OpenAFS, das noch am Leben ist und ein VPN unter sich hat, weil die einzige Verschlüsselung im Moment DES ist.


2
Ich habe OpenAFS in der Produktion verwendet. Gerüchte über seine Lebendigkeit sind stark übertrieben.
Mattdm

In diesem Monat gab es eine neue Version und zuvor gab es ziemlich regelmäßige Updates, um neue Versionen von Windows und neue Versionen des Linux-Kernels zu unterstützen (die neueste Version unterstützt 3.0).
Hubert Kario

1

Ich sehe, dass viele Leute in diesem Thread über das Verbergen von Daten sprechen, dh Angriffe, die nicht in der Lage sind, Ihre Daten abzuspionieren. Ebenso wichtig ist es, über Datenintegrität und -authentizität nachzudenken. Sind diese NFS-Pakete wirklich von Ihrem NFS-Server? Wurde ein nfs-Paket während der Übertragung geändert?


NFS over IPsec kümmert sich darum (bei Weitverkehrsverbindungen) und die Überwachung auf ARP-Vergiftungen erfolgt auf LAN-Basis
Hubert Kario

verwendet jemand ipsec tatsächlich mit Erfolg?
Der Unix-Hausmeister

1

Nun, für mich klingt es so, als ob eines dieser verteilten Dateisysteme für Sie geeignet wäre. Ich würde OpenAFS nicht wirklich empfehlen wollen, da es alt ist und noch kein IPv6 unterstützt.

Ich bin sehr zufrieden mit GlusterFS . Gluster ist ziemlich ausgereift, funktioniert gut und hat ein gutes Feature-Set. Wie kürzlich im IRC besprochen, unterstützt Gluster auch IPv6 nicht in stabiler Weise. Diese Funktion ist für 3.6 oder 3.7 geplant.

Es gibt auch ein Projekt namens HekaFS, das auf Gluster aufbaut und erweiterte Authentifizierungsfunktionen und SSL hinzufügt. Es ist imo sehr gut dokumentiert und sehr gut gestaltet.

Was Sie vielleicht auch interessieren könnte, ist XtreemFS , das für globales Grid-Computing ausgelegt ist, also standardmäßig mit SSL und so weiter. Meine Wahl fiel jedoch auf Gluster, da die Community aktiver zu sein scheint und dies viel besser dokumentiert ist.

Beide sind natürlich posix-konform.


0

Ich benutze NFS. Server-zu-Server-NFS wird jedoch über ein dediziertes Netzwerk-Backbone durchgeführt, sodass keine Verschlüsselung erforderlich ist und die Authentifizierung irgendwie sinnlos ist. Stellen Sie einfach jeden Export so ein, dass nur ein ausgewähltes Verzeichnis für einen Server freigegeben wird, der auf IP basiert.


dediziertes Netzwerk, bis jemand mit Wireshark in das Rack einbindet.
Der Unix-Hausmeister

Das ist dann ein physisches Sicherheitsproblem. Sobald sie mit den Servern im selben Raum sind, ist das Spiel sowieso vorbei.
Veranda

-2

Bei allem Respekt sehen Sie dieses Problem völlig falsch und sollten sich für ein paar Stunden von der Konsole entfernen.

Nahezu der gesamte Speicher ist unverschlüsselt, da dies auf dieser Ebene des Abstraktionsstapels keine Rolle spielt. Bezweifel es? Wenn Sie auf Ihren Brokat-Glasfaserschalter tippen, werden Sie feststellen, dass der Glasfaserkanal genau wie iscsi und nfs von Natur aus ein unverschlüsseltes Durcheinander ist. Das ist ein mittleres Problem, kein Speicherprotokollproblem. Möchten Sie beispielsweise sicheres und verschlüsseltes NFS? Erstellt ein LAN, das Punkt-zu-Punkt zwischen dem NFS-Client und dem Server mithilfe von ipsec / ssl / tls oder einer reinen Hardwarelösung verschlüsselt ist.


Ich denke, Sie vermissen einen wichtigen Punkt. Wie die Frage besagt, liegt das Problem beim NFS-Sicherheitsmodell. Verschlüsselung ist zwar nett, aber, wie Sie sagen, ein lösbares Problem. Das große Problem bei NFS ist, dass, sobald ein Dateisystem auf einem System bereitgestellt ist, jeder mit Root-Zugriff auf diesem System auf alle Dateien auf diesem Dateisystem zugreifen kann, unabhängig von Eigentumsrechten oder Berechtigungen. Ein System wie AFS oder theoretisch NFSv4 mit sec = krbp5 erfordert starke Berechtigungsnachweise für den Zugriff auf Dateien und bedeutet daher eine erhebliche Erhöhung der Sicherheit. Ein verwurzelter NFS-Client ist nicht gleichbedeutend mit einer massiven Datenexposition.
larsks

1
Sofern Sie den Benutzer nicht auffordern, Anmeldeinformationen für jeden Zugriff einzugeben, werden die Anmeldeinformationen gespeichert. Ein root-kompromittierter Client gibt den gespeicherten Schlüssel wahrscheinlich leicht auf. Jedes vernetzte Dateisystem erhöht die Gefährdung des Dateisystems durch Kompromisse.
BillThor

@BillThor Dies ist, was ich dachte .. Ist es immer noch anfällig für Angriffe, wenn sich die Anmeldeinformationen im Kernelspeicher befinden? Ich denke, ein Kernel-Modul könnte geladen werden, um einen beliebigen Teil des Kernel-Speichers zu lesen.
Rob Olmos

Solange die Anforderung im Kontext eines Benutzers mit Zugriff auf den freigegebenen Speicher verwendet wird, spielt es wahrscheinlich keine Rolle, wo sich die Anmeldeinformationen befinden. Anmeldeinformationen werden häufig von einem Hintergrundprozess gespeichert, sodass jeder, der mit ihm kommunizieren kann, wahrscheinlich auf den freigegebenen Speicher zugreifen kann. Ich würde das Risiko eines gesicherten Netzwerkspeichers in etwa dem lokalen Speicher gleichsetzen.
BillThor

2
@BillThor: Mit Kerberos wird das Risiko erheblich gemindert, da der Angreifer nur Zugriff auf die Dateisysteme der Benutzer hat, die ihre Tickets weitergeleitet haben, und dies nur für die Lebensdauer dieser Tickets. Mit der systembasierten Authentifizierung (a la nfsv3) kann root auf die Dateien eines beliebigen Benutzers zugreifen und diese manipulieren , selbst wenn dieser Benutzer jemals nichts mit dem gefährdeten System zu tun hatte.
Mattdm
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.