Administrar el acceso a múltiples sistemas Linux

15

A busqué respuestas pero no encontré nada aquí ...

En pocas palabras: una organización sin fines de lucro necesita urgentemente modernizar su infraestructura. Lo primero es encontrar alternativas a la gestión de cuentas de usuario en varios hosts Linux.

Tenemos 12 servidores (tanto físicos como virtuales) y unas 50 estaciones de trabajo. Tenemos 500 usuarios potenciales para estos sistemas. La persona que construyó y mantuvo los sistemas a lo largo de los años se retiró. Escribió sus propios guiones para gestionarlo todo. Aún funciona. No hay quejas allí. Sin embargo, muchas de las cosas son muy manuales y propensas a errores. El código es desordenado y después de las actualizaciones a menudo debe modificarse. La peor parte es que hay poco o ningún documento escrito. Hay solo unos pocos Léame y notas aleatorias que pueden o no ser relevantes. Por lo tanto, el mantenimiento se ha convertido en una tarea difícil.

Actualmente, las cuentas se administran a través de / etc / passwd en cada sistema. Las actualizaciones se distribuyen a través de scripts cron para corregir los sistemas a medida que se agregan cuentas en el servidor "principal". Algunos usuarios deben tener acceso a todos los sistemas (como una cuenta sysadmin), otros necesitan acceso a servidores compartidos, mientras que otros pueden necesitar acceso a estaciones de trabajo o solo a un subconjunto de ellos.

¿Existe alguna herramienta que pueda ayudarnos a administrar cuentas que cumpla con los siguientes requisitos?

  • Preferiblemente de código abierto (es decir, gratis ya que el presupuesto es MUY limitado)
  • corriente principal (es decir, mantenida)
  • preferiblemente tiene integración LDAP o se podría hacer que interactúe con el servicio LDAP o AD para la autenticación del usuario (será necesario en el futuro cercano para integrar cuentas con otras oficinas)
  • gestión de usuarios (agregar, caducar, eliminar, bloquear, etc.)
  • permite administrar a qué sistemas (o grupo de sistemas) tiene acceso cada usuario; no todos los usuarios están permitidos en todos los sistemas
  • soporte para cuentas de usuario que podrían tener diferentes homedirs y montajes disponibles según el sistema en el que hayan iniciado sesión . Por ejemplo
    • sysadmin ha iniciado sesión en el servidor "main" tiene main: // home / sysadmin / as homedir y tiene todos los montajes compartidos
    • sysadmin conectado a las estaciones de trabajo del personal tendría nas: // user / s / sysadmin como homedir (diferente del anterior) y un conjunto de monturas potencialmente limitado,
    • un cliente conectado tendría su homedir en una ubicación diferente y sin monturas compartidas.
  • Si hay una interfaz de administración fácil, sería increíble.
  • Y si esta herramienta es multiplataforma (Linux / MacOS / * nix), ¡será un milagro!

He buscado en la web y no he encontrado nada adecuado. Estamos abiertos a cualquier sugerencia. Gracias.

EDITAR: esta pregunta se ha marcado incorrectamente como un duplicado. El enlace a la respuesta solo habla de tener homedires iguales en todos los sistemas, mientras que necesitamos tener homedirs diferentes basados ​​en el usuario del sistema que está actualmente conectado (homedirs MÚLTIPLES). También se debe otorgar acceso solo a algunas máquinas, no a todo el lote. Mods, por favor, comprenda el alcance completo del problema en lugar de simplemente marcarlo como duplicado para los puntos ...

Swartz
fuente
No se otorgan 'puntos' por marcar duplicados. Su pregunta no fue lo suficientemente clara como para que 5 personas la consideraran duplicada.
user9517
No lo sabia OK gracias. Sin embargo, se marcó un duplicado a toda prisa. Lea los requisitos de formulario de puntos que establecen claramente lo que se necesita. Esto no es un duplicado. El enlace proporcionado a "solución" permite el acceso indiscriminado a todos los sistemas (necesitamos limitar quién tiene acceso y a qué sistema o grupos de sistemas). La ubicación real de homedir depende del sistema al que se accede. El mismo usuario puede tener diferentes homedirs Y montajes dependiendo del sistema en el que esté conectado.
Swartz
Solo para aclarar: en el ejemplo de sysadmin mencionado anteriormente, main y nas son servidores diferentes. Entonces, ¿el mismo usuario tendría acceso a diferentes homedirs dependiendo del homedir en el que inicie sesión?
Marco Bizzarri
@MarcoBizzarri: no estoy seguro de entender. El sistema en el que el usuario ha iniciado sesión determina el homedir. SysA y SysB podrían tener / home / bob en / etc / passwd, mientras que homdir para Bob en SysC podría ser / someplace / else / bob. Las dos ubicaciones contendrán datos diferentes. El usuario del sistema que ha iniciado sesión determina qué otros montajes están disponibles. Esto permitiría que solo los sistemas de personal accedan a montajes de personal compartidos. Donde los sistemas disponibles "públicamente" se limitarán a otros montajes. Por lo tanto, el personal debe estar en una PC designada por el personal para acceder a los montajes del personal. Un poco de compartimentación ...
Swartz
Ok, entonces hay dos puntos diferentes aquí: el homedir es fijo, y puede estar en algún lugar (ya sea en el mismo servidor u otro) pero siempre es eso. Quiero decir, SysA siempre tiene su homedir en serverX, pase lo que pase. Después de eso, hay un directorio compartido entre el personal, llamémoslo staff_dir, que debería estar disponible cuando la gente del personal inicie sesión en staff_workstation, pero no cuando inicie sesión en normal_workstation; ¿Es eso correcto?
Marco Bizzarri

Respuestas:

17

FreeIPA es probablemente lo que estás buscando. Es para Linux lo que Active Directory es para Windows. (También puede hablar con AD si tiene un entorno heterogéneo, pero no debe usarse para administrar máquinas Windows directamente. Use AD para eso).

La documentación de Red Hat (lo llaman Gestión de Identidad) es muy exhaustiva y fácil de seguir, y debería ser aplicable principalmente incluso si no está utilizando sistemas derivados de Red Hat.

Michael Hampton
fuente
+1 freeipa es increíble.
Sirex
Estaré mirando FreeIPA. Gracias por el consejo. Pregunta: ¿FreeIPA admite tener diferentes homedirs en diferentes sistemas? Ejemplo: el usuario Bob tiene homedir (exportado por NFS) en / shared / home / xyz cuando está conectado a SystemA y SystemB, pero cuando está en SystemC / whatever / special es homedir de Bob.
Swartz
¿ Miraste los montajes automáticos ? Esto debería llevarlo a aproximadamente el 90% del camino, con el 10% restante como cambios menores en su entorno existente.
Michael Hampton
Sí, los sistemas existentes usan montaje automático. Estos se configuran manualmente para cada tipo de sistema. Lamentablemente, nuestro entorno existente es demasiado engorroso para mantenerlo. Especialmente después de las actualizaciones o al crear nuevas imágenes del sistema. Aunque su núcleo funciona, siempre hay algo que necesita ajustes para que funcione.
Swartz
Bien entonces. Ahora tienes una buena oportunidad para comenzar a limpiar cosas.
Michael Hampton
6

Sugeriría un buen consultor local para evaluar los detalles de su situación ...

De Verdad.

Puede haber otros requisitos o matices comerciales que las personas en este foro pueden no reconocer o invertir lo suficiente como para considerar. Un recurso dedicado es su mejor opción ... De lo contrario, solo le estamos lanzando recomendaciones de productos para algo que está fácilmente fuera del alcance para un Q&A simple.


A pesar de eso, mi enfoque sería aprovechar Microsoft Active Directory y vincular los sistemas Linux en el uso de SSSD o LDAP. FreeIPA está bien en una casa totalmente Linux, pero aunque diga "sin fines de lucro", eso no excluye necesariamente a Windows. Te encontrarás con Active Directory en algún lugar del camino. Es posible que desee aumentar esto con directorios de inicio montados automáticamente, pero los detalles de quién se monta cuando o dónde no están claros.

Incluso en los entornos de nube privada de 99% de Linux que construyo ahora, todavía confío en Active Directory para facilitar la administración y la autenticación centralizada. Los grupos y los permisos de acceso son fáciles, la política de contraseñas y la antigüedad de la cuenta es sencilla. La solución de Microsoft cubre cualquier inquietud acerca de la mantenibilidad, el reparto mental y la compatibilidad. La replicación está incorporada, está bien documentada y hay un poco de protección contra el futuro inherente a la tecnología.

Sin embargo, faltan algunos detalles de su pregunta original ...

  • ¿Qué distribuciones particulares de Linux están presentes en el entorno? ¿Son consistentes las versiones?
  • ¿Requiere el mismo nivel de granularidad de administración para sus sistemas Macintosh (la mayoría de las organizaciones no intentan administrar completamente las computadoras Apple)?
  • ¿Hay usuarios remotos?
  • Usted menciona "* nix" - ¿Qué tipo de * nixes están presentes?
ewwhite
fuente
2
No vale la pena que Freeipa pueda hacer todas esas cosas para máquinas Linux (replicación, política de contraseñas, grupos, etc.) y es muy fácil de configurar (¡en serio!). También hace una replicación bidireccional contra el directorio activo (bastante seguro de que los nuevos usuarios son unidireccionales debido a que AD tiene campos adicionales), pero si tiene máquinas con Windows, querrá AD sin importarlo, ya que es tan central para Windows. vida. Además, todavía falta un poco de documentación en Freeipa.
Sirex
Lamentablemente no hay presupuesto para un consultor. No hay máquinas con Windows (solo si el personal trae las suyas). Todos los sistemas son CentOS (algunos 5.x otros son 6.x). La organización está en proceso de adquirir algunos iMacs más antiguos (2007-ish), por lo tanto, sería bueno tener una herramienta que funcione en OSX y Linux. Una cosa buena: no hay que preocuparse por Windows.
Swartz
De acuerdo con la sugerencia de Active Directory: si los costos de licencia son un problema, Samba4 es una alternativa gratuita y utiliza las mismas herramientas / infraestructura de administración que un AD nativo alojado en Windows. Casi cualquier otra cosa se puede configurar para autenticarse contra AD a través de PAM, winbind, LDAP, etc. Para la administración de la configuración de toda la infraestructura, consulte Salt ( saltstack.com/community.html blog.smartbear.com/devops/… )
nedm 01 de
3

El sistema actual funciona pero es difícil de administrar. Supongo que también hay otros problemas para administrar esos servidores si todo se hizo manualmente. Tomaría un enfoque diferente al no reemplazar algo que funciona (gestión de usuarios) y resolver el problema de administración de los servidores.

Recomiendo usar algo como cfengine http://cfengine.com/community (edición gratuita allí) para "modernizar" la administración de su sistema, no solo la administración de usuarios. Es una buena oportunidad para probarlo porque su sistema actual funciona de manera muy similar a cfengine para distribuir la configuración a los servidores, en su caso el / etc / passwd. Entonces, en lugar de reemplazar, migra esos scripts a cfengine. Esperemos que el impacto sea muy mínimo porque todavía estás usando el mismo / etc / passwd.

Una vez que se sienta cómodo con cfengine, puede crear más recetas para resolver más problemas, como tener un sistema de administración de usuarios completamente nuevo y tener la herramienta para administrar la configuración en los servidores.

Para ayudarlo a comenzar, encontré este enlace http://explosive.net/opensource/cfpasswd/doc/cfengine.html que muestra cómo distribuir / etc / passwd y archivos relacionados.

Incluso si quisiera reemplazar el sistema de administración de usuarios ahora, aún necesita una herramienta de administración para administrar esos servidores. Es mejor tener una herramienta de administración más temprano que tarde y reconfigurar su administración de usuarios con una herramienta de administración.

imel96
fuente
0

Solo algunas cosas rápidas para agregar:

He estado usando Puppet en mi implementación - idea similar a cfengine - http://puppetlabs.com

Esto también podría hacer su gestión de usuarios y la configuración general / gestión del servidor.

Si desea probar algo tan versátil como Samba, podría tener la posibilidad de administrar los directorios con alguna configuración, así como la posibilidad de utilizar un back-end LDAP para la configuración. Samba 4 ha madurado mucho y en realidad podría proporcionar un entorno integrado con Windows y Linux para la gestión / autenticación.

Samba funciona con AD o como reemplazo de AD también.

También hay un producto llamado Centrify que miré hace algún tiempo. Nunca llegué demasiado lejos, pero creo que también tienen una versión gratuita / de código abierto. Si mal no recuerdo, tenía potencial para un entorno mixto, proporcionando administración de Windows y Linux, y posiblemente Mac.

Respaldaría la sugerencia de un consultor. Estas implementaciones pueden ser muy complicadas de configurar muy rápido, pero fáciles de mantener una vez que están documentadas y configuradas.

La mejor de las suertes

JTWOOD
fuente
1
He visto Puppet and Chef para la gestión de la configuración desde el principio. Puppet permite 10 nodos gratis, con Chef obtienes 5 gratis. Después de ese punto, Puppet Labs cobra $ 99 / nodo / año. Serían unos pocos miles para nosotros. Factor decisivo. Aunque no recuerdo los precios del chef, es la misma idea. No en el presupuesto. :(
Swartz