管理对多个 Linux 系统的访问

管理对多个 Linux 系统的访问

我寻找答案,但没有找到任何答案......

长话短说:一个非营利组织急需对其基础设施进行现代化改造。首先要找到一种替代方法来管理多个 Linux 主机上的用户帐户。

我们有 12 台服务器(包括物理和虚拟服务器)和大约 50 个工作站。这些系统有 500 个潜在用户。多年来建立和维护系统的人已经退休。他编写了自己的脚本来管理这一切。它仍然有效。没有什么可抱怨的。然而,很多东西都是手动操作的,容易出错。代码很乱,更新后经常需要调整。最糟糕的是几乎没有文档。只有一些自述文件和随机注释,这些注释可能不再相关。因此,维护已成为一项艰巨的任务。

目前,每个系统上的帐户都通过 /etc/passwd 进行管理。在“主”服务器上添加帐户时,更新会通过 cron 脚本分发到正确的系统。某些用户必须有权访问所有系统(例如 sysadmin 帐户),其他用户需要访问共享服务器,而其他用户可能需要访问工作站或仅访问其中的一部分。

有没有一个工具可以帮助我们管理符合以下要求的账户?

  • 最好是开源的(即免费,因为预算非常有限)
  • 主流(即维护)
  • 最好具有 LDAP 集成或可以与 LDAP 或 AD 服务交互以进行用户身份验证(在不久的将来将需要将帐户与其他办公室集成)
  • 用户管理(添加、过期、删除、锁定等)
  • 允许管理每个用户可以访问哪些系统(或系统组) - 并非所有用户都可以访问所有系统
  • 支持用户账户根据其登录的系统拥有不同的主目录和挂载点。 例如
    • 登录到“主”服务器的系统管理员已main://home/sysadmin/作为 homedir 并拥有所有共享挂载
    • 登录员工工作站的系统管理员将nas://用户/s/sysadmin作为主目录(与上面不同)和可能有限的挂载集,
    • 登录的客户端的主目录位于不同位置,并且没有共享挂载。
  • 如果有一个简单的管理界面那就太棒了。
  • 如果这个工具是跨平台的(Linux / MacOS / *nix),那将是一个奇迹!

我搜索了网络,没有找到合适的。我们欢迎任何建议。谢谢。

编辑:这个问题被错误地标记为重复。链接的答案只谈到在所有系统上拥有相同的主目录,而我们需要根据用户当前登录的系统拥有不同的主目录(多个主目录)。此外,只需要向某些机器授予访问权限,而不是全部。版主,请了解问题的全部范围,而不是仅仅为了获得积分而将其标记为重复...

答案1

免费IPA可能就是您要找的东西。它对于 Linux 的作用就如同 Active Directory 对于 Windows 的作用一样。(如果您有异构环境,它也可以与 AD 通信,但不应直接用于管理 Windows 计算机。为此请使用 AD。)

Red Hat 的文档(他们称之为身份管理)非常彻底且易于遵循,即使您不使用 Red Hat 衍生的系统也应该适用。

答案2

我建议好的当地顾问来评估您的具体情况……

真的。

可能还有其他业务需求或细微差别,本论坛的人们可能没有意识到或没有投入足够的精力去考虑。专用资源是您最好的选择...否则,我们只是向您推荐一些产品,而这些产品很容易超出简单的问答范围。


尽管那样,我的方法是利用 Microsoft Active Directory 并将 Linux 系统绑定到使用固态存储系统或 LDAP。免费IPA在全 Linux 的家庭中是没问题的,但即使你说“非盈利”,也不一定排除 Windows。你会遇到 Active Directory某处沿着路径。您可能希望使用自动挂载的主目录来增强此功能,但具体谁在何时何地被挂载还不清楚。

即使在我现在构建的 99% Linux 私有云环境中,我仍然依赖 Active Directory 来实现轻松管理和集中身份验证。组和访问权限很简单,密码策略和帐户时效也很简单。Microsoft 解决方案涵盖了有关可维护性、思维共享和兼容性的任何问题。复制是内置的,有据可查,并且该技术本身具有一定的面向未来性。

不过,您的原始问题缺少一些细节......

  • 环境中存在哪些特定的 Linux 发行版?版本是否一致?
  • 您是否需要对您的 Macintosh 系统实施相同级别的管理粒度(大多数组织并不尝试全面管理 Apple 计算机)?
  • 有远程用户吗?
  • 您提到了“*nix”——存在哪些类型的*nix?

答案3

当前系统可以运行,但难以管理。我猜如果一切都手动完成,管理这些服务器还会有其他问题。我会采取不同的方法,不替换某些可以运行的东西(用户管理),并解决服务器的管理问题。

我建议使用类似 cfengine 的东西http://cfengine.com/community(那里有免费版本)来“现代化”您的系统管理,而不仅仅是用户管理。这是一个很好的尝试机会,因为您当前的系统非常像使用 cfengine 将配置分发到服务器,在您的情况下是 /etc/passwd。因此,您无需替换,而是将这些脚本迁移到 cfengine。希望影响会非常小,因为您仍在使用相同的 /etc/passwd。

一旦您熟悉了 cfengine,您就可以构建更多的方案来解决更多的问题,比如拥有一个全新的用户管理系统,并且您有工具来管理服务器上的配置。

为了帮助您入门,我找到了此链接http://explosive.net/opensource/cfpasswd/doc/cfengine.html展示如何分发 /etc/passwd 和相关文件。

即使您现在想更换用户管理系统,您仍然需要一个管理工具来管理这些服务器。最好尽早拥有管理工具,并在管理工具下重新配置您的用户管理。

答案4

只需快速添加几件事 -

我在部署中一直使用 Puppet - 类似于 cfengine -http://puppetlabs.com

这也可以进行用户管理和常规配置/服务器管理。

如果您想尝试像 Samba 这样多功能的东西,它可以通过一些配置来管理目录,以及使用 LDAP 后端进行配置。Samba 4 已经非常成熟,实际上可以提供一个与 Windows 和 Linux 集成的环境来进行管理/身份验证。

Samba 可以与 AD 配合使用,也可以替代 AD。

我还看过一款名为 Centrify 的产品。我没怎么用过,但我相信他们也有免费/开源版本。如果我没记错的话,它有混合环境的潜力,提供 Windows 和 Linux 管理,也可能提供 Mac 管理。

我赞同顾问的建议。这些部署可能非常复杂,设置起来非常快,但一旦记录和配置好,维护起来就很容易了。

祝你好运

相关内容