管理对多个Linux系统的访问


15

搜索了答案,但在此未找到任何答案。

长话短说:非营利组织迫切需要对其基础架构进行现代化。第一件事是找到在许多Linux主机上管理用户帐户的替代方法。

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

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

是否有工具可以帮助我们管理满足以下要求的帐户?

  • 最好是开源的(即免费,因为预算非常有限)
  • 主流(即保持)
  • 最好具有LDAP集成,或者可以与LDAP或AD服务进行接口以进行用户身份验证(在不久的将来需要将帐户与其他办公室集成)
  • 用户管理(添加,到期,删除,锁定等)
  • 允许管理每个用户有权访问的系统(或系统组)-并非所有系统上都允许所有用户
  • 支持可能具有不同homedirs和挂载的用户帐户,具体取决于他们登录的系统。例如
    • 登录到“主”服务器的sysadmin具有main:// home / sysadmin /作为homedir,并具有所有共享的装载
    • 登录到员工工作站的sysadmin将使用nas:// user / s / sysadmin作为homedir(与上面不同),并且可能会限制安装数量,
    • 登录的客户端会将其homedir放置在其他位置,并且没有共享的挂载。
  • 如果有一个简单的管理界面,那就太好了。
  • 如果此工具是跨平台的(Linux / MacOS / * nix),那将是一个奇迹!

我已经在网上搜索过,因此找不到合适的内容。我们欢迎任何建议。谢谢。

编辑:此问题已被错误地标记为重复。答案链接仅讨论在所有系统上具有相同的homedir,而我们需要根据当前登录的系统用户拥有不同的homedir(多个homedir)。另外,只需要对某些机器而不是全部机器授予访问权限。Mods,请理解问题的全部范围,而不是仅仅将其标记为重复点...


标记重复项不会获得“积分”。您的问题不清楚,有5个人认为该问题重复。
user9517 2013年

不知道 好,谢谢。但是,匆忙将其标记为重复。请阅读清楚说明所需内容的点状要求。这不是重复项。提供的“解决方案”链接允许对所有系统进行不加区别的访问(我们需要限制谁有权访问以及对哪个系统或一组系统进行访问)。实际homedir位置取决于正在访问的系统。同一用户可能具有不同的homedirs和挂载,这取决于他/她登录的系统。
Swartz 2013年

需要澄清的是:在上述sysadmin示例中,main和nas是不同的服务器吗?那么,同一用户是否可以访问不同的homedir,具体取决于他登录的homedir?
Marco Bizzarri 2013年

@MarcoBizzarri:不确定我是否理解。用户登录的系统确定homedir。SysA和SysB可能都在/ etc / passwd中具有/ home / bob,而SysC上Bob的homdir可能是/ someplace / else / bob。这两个位置将包含不同的数据。登录到系统用户将确定还有哪些其他安装可用。这将仅允许员工系统访问共享的员工坐骑。作为“公共”可用系统,将仅限于其他安装架。因此,工作人员必须在工作人员指定的PC上才能访问工作人员支架。有点分隔...
Swartz

好的,这里有两点不同:homedir是固定的,可以在某个位置(在同一台服务器上,也可以在另一台服务器上),但是总是这样。我的意思是,无论如何,SysA始终在serverX上存放其homedir。此后,在职员之间有一个共享目录,我们称它为staff_dir,该目录在职员登录到staff_workstation时应该可用,而在您登录normal_workstation时不可用;那是对的吗?
Marco Bizzarri 2013年

Answers:


17

FreeIPA可能就是您想要的。对于Linux而言,Active Directory对Windows而言。(如果您具有异构环境,它也可以与AD通讯,但不应直接用于管理Windows计算机。为此请使用AD。)

Red Hat的文档(它们称为Identity Management)非常详尽且易于遵循,即使您未使用Red Hat派生的系统,它也应该适用。


+1 freeipa很棒。
Sirex

我将看FreeIPA。谢谢你的提示。问题:FreeIPA是否支持在不同系统上具有不同的homedir?示例:用户Bob登录到SystemA和SystemB时在/ shared / home / xyz上具有(NFS导出的)homedir,但是在SystemC上时,/ whatever / special是Bob的homedir。
Swartz 2013年

您是否看过自动挂载?这应该使您获得大约90%的解决方案,其余10%是对您现有环境的微小更改。
迈克尔汉普顿

是的,现有系统确实使用自动挂载。这些是为每种类型的系统手动配置的。遗憾的是,我们现有的环境太繁琐,难以维护。特别是在更新后或创建新的系统映像时。尽管它的核心确实起作用,但总有一些需要调整才能使其起作用。
Swartz

好吧。现在您有了一个很好的机会开始清理东西。
迈克尔·汉普顿

6

我建议一个好的本地顾问来评估您的情况的细节。

真。

可能还有其他业务要求或细微差别,使论坛上的人们可能不认识或没有足够的考虑能力。最好的资源是您最好的选择...否则,我们只是向您抛出产品推荐,而这对于简单的问答而言很容易超出范围。


尽管如此,我的方法是利用Microsoft Active Directory,并在Linux系统上使用SSSD或LDAP。在全Linux系统中,FreeIPA很好,但是即使您说“非营利”,也不一定排除Windows。您将在路径中的某个地方遇到Active Directory 。您可能想通过自动挂载的主目录来增加它,但是不清楚何时何地挂载谁的细节。

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

但是,您最初的问题中缺少一些细节...

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

2
freeipa可以为linux机器做所有这些事情(复制,密码策略,组等),而且非常容易设置(真的!),这毫无价值。它还对活动目录进行双向复制(由于AD具有额外的字段,因此可以肯定新用户是单向的),但是如果您有Windows计算机,则无论它对Windows的重要性如何,您都将很可能想要AD。生活。另外,freeipa中的文档仍然有点缺乏。
Sirex 2013年

可悲的是没有顾问的预算。没有Windows机器(仅当员工自备时)。所有系统都是CentOS(有些是5.x,有些是6.x)。该组织正在开发一些较旧的(2007年代)iMac,因此,拥有一个适用于OSX和Linux的工具将是一件很高兴的事情。一件好事:无需担心Windows。
Swartz

同意Active Directory的建议-如果许可成本是一个问题,则Samba4是免费的替代产品,并且使用与Windows本地AD相同的管理工具/基础结构。几乎什么都可以被配置为通过PAM,winbind的,LDAP等。对于配置管理对广告进行身份验证的整个基础设施,检查出盐(saltstack.com/community.html blog.smartbear.com/devops/...
nedm

3

当前的系统有效,但难以管理。我猜如果一切都是手动完成的,那么管理那些服务器也会有其他问题。我会采用另一种方法,即不替换某些有效的方法(用户管理)并解决服务器的管理问题。

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

熟悉cfengine之后,您可以构建更多配方来解决更多问题,例如拥有全新的用户管理系统,并且可以使用该工具来管理服务器上的配置。

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

即使您现在想替换用户管理系统,您仍然需要一个管理工具来管理那些服务器。最好早点使用管理工具,然后在管理工具下重新配置用户管理。


0

只需添加几项快速操作-

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

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

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

Samba可与AD一起使用,也可以替代AD。

我前一段时间也看过一款名为Centrify的产品。我从没有过分了解它,但是我相信他们也有它的免费/开源版本。如果我记得,它有可能在混合环境中提供Windows和Linux管理,并可能提供Mac。

我同意顾问的建议。这些部署的设置非常快速,但变得非常复杂,但是一旦记录和配置,它们便易于维护。

祝你好运


1
我早就看过Puppet和Chef的配置管理。Puppet允许10个免费节点,而Chef则提供5个免费节点。之后,Puppet Labs每年每节点收费99美元。对我们来说将是几千。交易破坏者。尽管我不记得Chef的定价,但这是相同的想法。不在预算中。:(
斯沃兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.