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.
8
Antworten:
Ich bin mir nicht sicher, ob ich das vollständig verstehe:
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.
quelle
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 .
quelle
sshfs ist der richtige Weg. Auf dem Client:
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.
quelle
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.
quelle
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.
quelle