我在我的Linux服务器的典型场景。 我很确定很多人也可能面临类似的问题。 我想知道如何过来。
情况:
1.我们有一个5台Linux服务器,我们已经托pipe了各种网站
2.我们一直在做开发,这些网站是活的,每天都需要调整代码
3.我们需要允许员工通过SSH访问服务器。 (Rackspace托pipe的服务器)
4.我们通过Assembla设置了存储库,并在其上configuration了自动部署
5.我们开发大部分PHP和MySQL的网站
6.由于我们是一家小公司,而且事情需要快速移动,所以一段时间后,我们与团队成员共享服务器的root密码
问题:
1.每当员工离开组织时,我们必须更改所有数据库密码,ssh密码为root,删除帐户,删除所有访问。 这些活动需要很长时间。 有时甚至1-2天。 如果工作量更多,则可能需要更多的时间(尽pipe不超过3天)。 但这三天很脆弱。 有人离开了组织可以访问一切。
2.我们不能隐藏数据库密码是网站的configuration文件以纯文本格式(大多数CMS有configuration文件以纯文本forms存储密码)
临时解决scheme:
1.我们采用了Windows云托pipe,并且只configuration了从该系统的IP访问的所有服务器。 因此,如果用户需要访问Linux服务器,他们首先需要login到云上的Windows服务器,然后通过Putty和Winscp,以及MySQL Workbench访问服务器。 唯一的好处是现在即使用户知道SSH,MySQL ID和密码,他们也不能login,因为他们的login从Windows帐户中删除。
我知道,知道允许其他IP在服务器上访问SSH和MySQL的方法的人可以随时对其进行configuration并使用它。
请求:请不要在这里启动Windows抨击。 由于我的团队更喜欢Windows环境,所以我保持这种状态。
如何使用任何目录服务? 例如LDAP似乎很好。 通过额外的authconfig(用于操作系统层),sudoersconfiguration你摆脱99%用户pipe理的问题。
此外,像Hudson / Jenkins,Bamboo等CI工具可以轻松configuration任何LDAP。
对于MySQL,您可以给另一个posixGroup使用访问mysql命令的访问权限,并解决root密码(只属于组的用户)的问题。
我不确定您是否可以使用LDAP访问您的代码源代码库(如果您拥有自己的SVN / Git服务器,则可能)。 我根本不知道:)