Vernetztes Dateisystem mit Sicherheit auf Benutzerebene für Linux

8

Ich möchte die Dateifreigabe zwischen Servern und Clients unter Linux aktivieren. Ich möchte mich nicht wie in NFSv4 auf das Vertrauen der Computer verlassen, da Clientbenutzer über Root-Rechte verfügen. Was sind meine Optionen neben SMB (SAMBA)? Unterstützt OpenAFS Authentifizierung und Zugriff auf Benutzerebene? Die Verwendung von gemountetem WebDAV / ftp / sshfs erscheint für LAN albern.

Konrads
quelle
Meinen Sie damit, dass sie Root-Zugriff auf die Server oder nur auf ihre eigenen Client-Computer haben?
wag2639

Antworten:

14

Ich bin mir nicht sicher, ob ich das vollständig verstehe:

"Ich möchte mich nicht wie in NFSv4 auf das Vertrauen der Computer verlassen, da Clientbenutzer über Root-Rechte verfügen."

Wenn Sie meinen, dass die Clientbenutzer Root-Rechte auf dem Client haben und nicht möchten, dass sie Root auf dem Host haben, verwenden Sie einfach nicht die Option "no_root_squash". Sie können auch setuid deaktivieren, um das Risiko für den Client vom Server zu verringern.

Sie haben auch die Möglichkeit, Kerberos mit NFSv4 zu verwenden, siehe diesen Link .

Mit anderen Worten, NFSv4 bietet Ihnen möglicherweise die Sicherheit, die Sie benötigen, und ist gleichzeitig ein bisschen mehr ... (skalierbar?) .. die Verwendung von sshfs überall. Es ist vielleicht immer noch nicht das, was Sie wollen, aber ich würde es nicht zu früh aufgeben.

Kyle Brandt
quelle
Zum Beispiel habe ich zwei Projekte / joeisworking und / mattisworking. Selbst wenn ich Squash Root mache, kann Matt von seiner Workstation aus auf Joe's zugreifen.
Konrads
2
@Konrads: Nicht wenn Sie Kerberos verwenden, wie Herr Brandt erwähnt hat. Selbst wenn Matt Root auf seiner eigenen Workstation hat, kann er Joes TGT nicht bekommen.
Janneb
Ich denke, Konrads ist sich einfach nicht sicher, wie NFS konfiguriert werden soll, oder hat zuvor ein schlecht konfiguriertes Netzwerk erlebt. NFS kann sehr sicher sein und genau das erreichen, was in der Frage beschrieben wird. Ich würde argumentieren, dass NFSv4 eines der (wenn nicht das sicherste) Netzwerk-Dateisysteme ist (wenn es richtig konfiguriert ist).
Chris S
3

Bei Kerberos gewährt nur der kdc-Server Authentifizierungstoken. Ein Client-Computer selbst kann sich nur als Host authentifizieren (und das heißt, wenn Sie ihm die Schlüsseltabelle für einen übereinstimmenden nfs / client-hostnamen @ REALM-Principal geben), und dies gibt ihm nur das Recht, mit dem nfs-Server zu kommunizieren. Es sind die Benutzer, die sich authentifizieren können, und der NFS-Server autorisiert sie nur, auf ihre eigenen Dateien zuzugreifen. Mit sec = krb5p verhindert der Server auch das Schnüffeln und Ändern.

Als Root erhalten Ihre Benutzer keine unangemessenen Berechtigungen. Die einzige Möglichkeit, auf weitere Dateien zuzugreifen, besteht darin, die Computer des anderen zu hacken, den NFS-Server oder den KDC zu hacken. NFSv4 mit Kerberos entspricht Ihren Sicherheitsanforderungen.

Hier erfahren Sie mehr über das Sicherheitsmodell:

Wenn Sie sich eine Bereitstellung ansehen, finden Sie hier einige Debian / Ubuntu-zentrierte Tutorials. Ich habe einfache Setups ohne LDAP ausgewählt. Diese Distributionen haben eine debconf-basierte Konfiguration, die Ihnen einen Weg dorthin bietet.

Meine Ergänzungen: Sie müssen keinen des-cbc-crc-Enctype angeben, aber Sie müssen_weak_crypto in krb5.conf zulassen, damit das Kommunikationsprotokoll des-cbc-crc für die Stream-Verschlüsselung verwenden kann. Dies wird in 2.6.35-Kerneln unnötig.

Wenn Sie etwas Appliance-ähnliches suchen, gibt es FreeIPA .

Tobu
quelle
Dies ist interessant, da ich bisher verstanden habe, dass es in NFSv4 nur eine Server-zu-Server-Authentifizierung gibt und dann das System, das das exportierte Volume bereitstellt, für das Aussortieren der Berechtigungen verantwortlich ist (squash_root_fs ist die Ausnahme). Können Sie einige Links zu Dokumenten bereitstellen?
Konrads
2

sshfs ist der richtige Weg. Auf dem Client:

sshfs -o idmap=user,workaround=rename user@server:/home/user/share /home/user/share

Berechtigungen wie ssh ... weil Sie ssh verwenden! Das Schöne ist, dass Sie nichts auf dem Server berühren müssen, vorausgesetzt, sshd ist installiert und läuft ordnungsgemäß. Könnte nicht die Leistung wie die anderen Vorschläge haben, aber es ist sehr einfach.

SuperJames
quelle
0

Samba klingt tatsächlich nach Ihrer besten Wahl. samba hat Unix-Erweiterungen, daher sollte es beim Mounten als cifs unter Linux die richtigen Unix-Berechtigungen und so weiter anzeigen. Ich denke, das wird die beste Option für Ihre Einschränkungen sein. Wenn das nicht klappt, könnte sshfs zur Not verwendet werden, aber es hat keine so gute Leistung oder Integration in das Betriebssystem wie Samba.

mtinberg
quelle
0

Unterstützt OpenAFS Authentifizierung und Zugriff auf Benutzerebene?

Ja, es klingt so, als würde OpenAFS Ihre Anforderungen hier erfüllen, aber auch Kerberized NFSv4. In beiden Umgebungen müssen Sie den Clients nicht "vertrauen". Die Zugriffskontrolle wird von Servern erzwungen. In früheren Versionen von NFS mussten Sie Clients effektiv "vertrauen", Kerberized NFSv4 jedoch nicht. OpenAFS hat nie "vertrauenswürdige" Clients benötigt und verlässt sich auch auf Kerberos für Authentifizierung und Sicherheit.

Adeason
quelle