Estoy buscando un software que proporcione al usuario una identidad única en varias computadoras. Es decir, un usuario debe tener los mismos permisos en cada computadora, y el usuario debe tener acceso a todos sus archivos (directorio de inicio móvil) en cada computadora. Parece que hay muchas soluciones para esta idea general, pero estoy tratando de determinar la mejor para mí. Aquí hay algunos detalles junto con los requisitos:
- La red de máquinas son instancias de Amazon EC2 que ejecutan Ubuntu.
- Accedemos a las máquinas con SSH.
- Algunas máquinas en esta LAN pueden tener diferentes usos, pero solo estoy discutiendo las máquinas para un uso determinado (ejecutar una plataforma de arrendamiento múltiple).
- El sistema no tendrá necesariamente una cantidad constante de máquinas.
- Es posible que tengamos que modificar permanente o temporalmente la cantidad de máquinas en funcionamiento. Esta es la razón por la que estoy buscando autenticación / almacenamiento centralizado.
- La implementación de este efecto debe ser segura.
- No estamos seguros de si los usuarios tendrán acceso directo a la shell, pero su software potencialmente se estará ejecutando (bajo nombres de usuario de Linux restringidos, por supuesto) en nuestros sistemas, lo que es tan bueno como el acceso directo a la shell.
- Asumamos que su software podría ser potencialmente malicioso en aras de la seguridad.
He oído hablar de varias tecnologías / combinaciones para lograr mi objetivo, pero no estoy seguro de las ramificaciones de cada una.
- Una publicación anterior de ServerFault recomendaba NFS y NIS, aunque la combinación tiene problemas de seguridad según este artículo anterior de Symantec . El artículo sugiere pasar a NIS +, pero, como es antiguo, este artículo de Wikipedia ha citado declaraciones que sugieren una tendencia a alejarse de NIS + por Sun. El reemplazo recomendado es otra cosa de la que he oído hablar ...
- LDAP Parece que LDAP se puede usar para guardar la información del usuario en una ubicación centralizada en una red. NFS aún tendría que usarse para cubrir el requisito de 'carpeta de inicio de itinerancia', pero veo referencias de que se usan juntos. Dado que el artículo de Symantec señalaba problemas de seguridad tanto en NIS como en NFS, ¿hay algún software que reemplace a NFS, o debería tener en cuenta las sugerencias de ese artículo para bloquearlo? Me inclino por LDAP porque otra pieza fundamental de nuestra arquitectura, RabbitMQ, tiene un complemento de autenticación / autorización para LDAP. RabbitMQ será accesible de manera restringida para los usuarios del sistema, por lo que me gustaría vincular los sistemas de seguridad si es posible.
- Kerberos es otro protocolo de autenticación seguro del que he oído hablar. Aprendí un poco sobre eso hace algunos años en una clase de criptografía, pero no recuerdo mucho al respecto. He visto sugerencias en línea de que se puede combinar con LDAP de varias maneras. ¿Es esto necesario? ¿Cuáles son los riesgos de seguridad de LDAP sin Kerberos? También recuerdo que Kerberos se estaba utilizando en otro software desarrollado por la Universidad Carnegie Mellon ...
- Andrew File System, o AFS. OpenAFS está disponible para su uso, aunque su configuración parece un poco complicada. En mi universidad, AFS proporciona ambos requisitos ... Puedo iniciar sesión en cualquier máquina y mi "carpeta AFS" siempre está disponible (al menos cuando adquiero un token AFS).
Junto con las sugerencias sobre el camino que debo seguir, ¿alguien tiene alguna guía que sea particularmente útil? Como señaló el texto en negrita, LDAP parece ser la mejor opción, pero estoy particularmente interesado en los detalles de implementación (Keberos? NFS?) Con respecto a la seguridad.
Esta es una respuesta parcial.
NIS / NIS +
No utilice NIS. Utilice LDAP con nis esquema.
OpenLDAP (también conocido como slapd en Ubuntu)
Asegúrese de configurar las ACL y SSF (factores de seguridad) adecuados.
Es muy fácil enviar contraseñas de forma clara si no tiene cuidado.
http://www.openldap.org/doc/
NFS
NFS no está encriptado.
Se puede envolver en ssl con algunos trucos.
Sin Kerberos se basa en ip_addr para la autenticación.
Con Kerberos es posible que SASL se use para cifrar todo.
Kerberos
requiere que OpenLDAP tenga autenticación de transferencia SASL para la autenticación LDAP. (No es difícil).
Debe usar entradas DNS. (No requerido, pero muy útil).
GSSAPI se puede usar en lugar de ssh-keys. (Puede coexistir). Las
máquinas KDC deben estar separadas de sus máquinas cliente.
OpenAFS
cifrado con DES. (No se considera seguro).
Requiere kerberos o su propio servidor de autenticación heredado.
Tiene sus propias ACL del sistema de archivos.
fuente