J'examine un logiciel qui fournit à un utilisateur une identité unique sur plusieurs ordinateurs. En d'autres termes, un utilisateur doit disposer des mêmes autorisations sur chaque ordinateur et l'utilisateur doit avoir accès à tous ses fichiers (répertoire de départ itinérant) sur chaque ordinateur. Il semble y avoir de nombreuses solutions pour cette idée générale, mais j'essaie de déterminer la meilleure pour moi. Voici quelques détails ainsi que les exigences:
- Le réseau de machines sont des instances Amazon EC2 exécutant Ubuntu.
- Nous accédons aux machines avec SSH.
- Certaines machines sur ce LAN peuvent avoir des utilisations différentes, mais je ne parle que des machines pour une certaine utilisation (exécution d'une plate-forme multi-locataire).
- Le système n'aura pas nécessairement un nombre constant de machines.
- Il se peut que nous devions modifier de manière permanente ou temporaire le nombre de machines en cours d'exécution. C'est la raison pour laquelle j'examine l'authentification / stockage centralisé.
- La mise en œuvre de cet effet doit être sécurisée.
- Nous ne savons pas si les utilisateurs auront un accès direct au shell, mais leur logiciel sera potentiellement exécuté (sous des noms d'utilisateurs Linux restreints, bien sûr) sur nos systèmes, ce qui équivaut à un accès direct au shell.
- Supposons que leur logiciel puisse être potentiellement malveillant pour des raisons de sécurité.
J'ai entendu parler de plusieurs technologies / combinaisons pour atteindre mon objectif, mais je ne suis pas sûr des ramifications de chacune.
- Un ancien article de ServerFault recommandait NFS et NIS, bien que la combinaison présente des problèmes de sécurité selon cet ancien article de Symantec . L'article suggère de passer à NIS +, mais, comme il est ancien, cet article de Wikipedia a cité des déclarations suggérant une tendance à l'écart de NIS + par Sun. Le remplacement recommandé est une autre chose dont j'ai entendu parler ...
- LDAP. Il semble que LDAP puisse être utilisé pour enregistrer les informations utilisateur dans un emplacement centralisé sur un réseau. NFS devrait encore être utilisé pour couvrir l'exigence de «dossier de départ itinérant», mais je vois des références à leur utilisation ensemble. Étant donné que l'article de Symantec a souligné des problèmes de sécurité dans NIS et NFS, existe-t-il un logiciel pour remplacer NFS, ou devrais-je tenir compte des suggestions de cet article pour le verrouiller? Je tends vers LDAP parce qu'un autre élément fondamental de notre architecture, RabbitMQ, a un plugin d'authentification / autorisation pour LDAP. RabbitMQ sera accessible de manière restreinte aux utilisateurs du système, donc je voudrais lier les systèmes de sécurité ensemble si possible.
- Kerberos est un autre protocole d'authentification sécurisé dont j'ai entendu parler. J'ai appris un peu à ce sujet il y a quelques années dans un cours de cryptographie, mais je ne m'en souviens pas beaucoup. J'ai vu des suggestions en ligne selon lesquelles il peut être combiné avec LDAP de plusieurs manières. Est-ce nécessaire? Quels sont les risques de sécurité de LDAP sans Kerberos? Je me souviens aussi que Kerberos était utilisé dans un autre logiciel développé par l'Université Carnegie Mellon ...
- Andrew File System, ou AFS. OpenAFS est disponible, bien que sa configuration semble un peu compliquée. Dans mon université, AFS fournit les deux exigences ... Je peux me connecter à n'importe quelle machine et mon "dossier AFS" est toujours disponible (au moins lorsque j'achète un token AFS).
Avec des suggestions sur la voie à suivre, quelqu'un a-t-il des guides particulièrement utiles? Comme le souligne le texte en gras, LDAP semble être le meilleur choix, mais je suis particulièrement intéressé par les détails de mise en œuvre (Keberos? NFS?) En ce qui concerne la sécurité.
Ceci est une réponse partielle.
NIS / NIS +
N'utilisez pas NIS. Utilisez LDAP avec le schéma nis.
OpenLDAP (alias slapd sur Ubuntu)
Assurez-vous de configurer les ACL et SSF (facteurs de sécurité) appropriés.
Il est très facile d'envoyer des mots de passe en clair si vous ne faites pas attention.
http://www.openldap.org/doc/
NFS
NFS n'est pas un chiffré.
Il peut être emballé en ssl avec quelques astuces.
Sans Kerberos, s'appuie sur ip_addr pour l'authentification.
Avec Kerberos, il est possible que SASL soit utilisé pour tout chiffrer.
Kerberos
requiert qu'OpenLDAP dispose d'une authentification unique SASL pour l'authentification LDAP. (Pas difficile.)
Devrait utiliser des entrées DNS. (Pas obligatoire, mais très utile).
GSSAPI peut être utilisé à la place des clés ssh. (Peut coexister.) Les
machines KDC doivent être distinctes de vos machines clientes.
OpenAFS chiffré
avec DES. (Pas considéré comme sécurisé.)
Nécessite soit des kerberos, soit son propre serveur d'authentification hérité.
Possède ses propres ACL de système de fichiers.
la source