Ich beschäftige mich mit Software, die einem Benutzer eine einzige Identität auf mehreren Computern bietet. Das heißt, ein Benutzer sollte auf jedem Computer die gleichen Berechtigungen haben, und der Benutzer sollte Zugriff auf alle seine Dateien (Roaming-Ausgangsverzeichnis) auf jedem Computer haben. Es scheint viele Lösungen für diese allgemeine Idee zu geben, aber ich versuche, die beste für mich zu finden. Hier sind einige Details zusammen mit den Anforderungen:
- Das Computernetzwerk besteht aus Amazon EC2-Instanzen, auf denen Ubuntu ausgeführt wird.
- Wir greifen mit SSH auf die Maschinen zu.
- Einige Computer in diesem LAN haben möglicherweise unterschiedliche Verwendungszwecke, aber ich diskutiere nur Computer für einen bestimmten Verwendungszweck (Ausführen einer mandantenfähigen Plattform).
- Das System verfügt nicht unbedingt über eine konstante Anzahl von Maschinen.
- Möglicherweise müssen wir die Anzahl der laufenden Maschinen dauerhaft oder vorübergehend ändern. Dies ist der Grund, warum ich mich mit zentraler Authentifizierung / Speicherung befasse.
- Die Umsetzung dieses Effekts sollte sicher sein.
- Wir sind uns nicht sicher, ob Benutzer direkten Shell-Zugriff haben, aber ihre Software wird möglicherweise (natürlich unter eingeschränkten Linux-Benutzernamen) auf unseren Systemen ausgeführt, was genauso gut ist wie der direkte Shell-Zugriff.
- Nehmen wir an, dass ihre Software aus Sicherheitsgründen möglicherweise bösartig sein könnte.
Ich habe von mehreren Technologien / Kombinationen gehört, um mein Ziel zu erreichen, bin mir jedoch nicht sicher, welche Auswirkungen diese haben.
- In einem älteren ServerFault-Beitrag wurde NFS & NIS empfohlen, obwohl die Kombination gemäß diesem alten Artikel von Symantec Sicherheitsprobleme aufweist . In dem Artikel wird vorgeschlagen, auf NIS + umzusteigen. In diesem Wikipedia-Artikel wurden jedoch Aussagen zitiert, die darauf hindeuten, dass Sun von NIS + abweicht. Der empfohlene Ersatz ist eine andere Sache, von der ich gehört habe ...
- LDAP. Es sieht so aus, als ob LDAP verwendet werden kann, um Benutzerinformationen an einem zentralen Ort in einem Netzwerk zu speichern. NFS müsste weiterhin verwendet werden, um die Anforderung "Roaming-Home-Ordner" abzudecken, aber ich sehe Referenzen, dass sie zusammen verwendet werden. Gibt es Software, die NFS ersetzt, da in dem Symantec-Artikel auf Sicherheitsprobleme in NIS und NFS hingewiesen wurde, oder sollte ich die Vorschläge dieses Artikels zum Sperren beachten? Ich tendiere zu LDAP, weil ein weiteres grundlegendes Element unserer Architektur, RabbitMQ, ein Authentifizierungs- / Autorisierungs-Plugin für LDAP enthält. RabbitMQ ist für Benutzer im System nur eingeschränkt zugänglich, daher möchte ich die Sicherheitssysteme nach Möglichkeit zusammenbinden.
- Kerberos ist ein weiteres sicheres Authentifizierungsprotokoll, von dem ich gehört habe. Ich habe vor einigen Jahren in einem Kryptographiekurs etwas darüber gelernt, kann mich aber nicht an viel erinnern. Ich habe online Vorschläge gesehen, dass es auf verschiedene Arten mit LDAP kombiniert werden kann. Ist das notwendig? Was sind die Sicherheitsrisiken von LDAP ohne Kerberos? Ich erinnere mich auch, dass Kerberos in einer anderen Software verwendet wurde, die von der Carnegie Mellon University entwickelt wurde ...
- Andrew File System oder AFS. OpenAFS steht zur Verfügung, obwohl die Einrichtung etwas kompliziert erscheint. An meiner Universität bietet AFS beide Anforderungen ... Ich kann mich an jedem Computer anmelden und mein "AFS-Ordner" ist immer verfügbar (zumindest wenn ich ein AFS-Token erhalte).
Hat jemand neben Vorschlägen, welchen Weg ich suchen sollte, Anleitungen, die besonders hilfreich waren? Wie der fette Text hervorhob, scheint LDAP die beste Wahl zu sein, aber ich bin besonders an den Implementierungsdetails (Keberos? NFS?) In Bezug auf die Sicherheit interessiert.
Dies ist eine teilweise Antwort.
NIS / NIS +
Verwenden Sie kein NIS. Verwenden Sie LDAP mit nis-Schema.
OpenLDAP (auch bekannt als slapd unter Ubuntu)
Stellen Sie sicher, dass Sie die richtigen ACLs und SSF (Sicherheitsstärkefaktoren) einrichten.
Es ist sehr einfach, Passwörter im Klartext zu senden, wenn Sie nicht vorsichtig sind.
http://www.openldap.org/doc/
NFS
NFS ist nicht verschlüsselt.
Es kann mit einigen Tricks in ssl eingewickelt werden.
Ohne Kerberos wird für die Authentifizierung auf ip_addr gesetzt.
Mit Kerberos ist es möglich, dass SASL verwendet wird, um alles zu verschlüsseln.
Kerberos Für
OpenLDAP ist eine SASL-Pass-Through-Authentifizierung für die LDAP-Authentifizierung erforderlich. (Nicht schwierig.)
Sollte DNS-Einträge verwenden. (Nicht erforderlich, aber sehr nützlich).
GSSAPI kann anstelle von SSH-Schlüsseln verwendet werden. (Kann nebeneinander existieren.)
KDC-Maschinen sollten von Ihren Client-Maschinen getrennt sein.
OpenAFS
mit DES verschlüsselt. (
Wird nicht als sicher angesehen.) Erfordert entweder Kerberos oder einen eigenen älteren Authserver.
Hat eigene Dateisystem-ACLs.
quelle