运维 关于如何搭建一个核心管理服务器的问题

linjunhalida · 2015年11月02日 · 最后由 XSQ1022 回复于 2020年04月29日 · 8086 次阅读

一个很常见的问题: 小团队,几个开发者,一堆的服务器,每个开发者有部分服务器的操作权限。 简单的管理:每个服务器上面大家自己加自己的 ssh pubkey,需要的时候登录服务器操作。

缺点:

  • 服务器开放 ssh 端口,非常不安全
  • 服务器上面谁登录了不知道,因为大家都用同一个 admin 帐号(比如 ubuntu)
  • 难以修改 ssh key,需要登录到服务器上面去改

我想的解决方案:

  • 一个核心堡垒机,很完善的安全加固
  • 服务器只开放 ssh 给堡垒机
  • 堡垒机设置用户,他们的 pubkey,以及可以访问的服务器权限
  • 监控用户操作,记录日志,发现问题告警
  • 堡垒机挂掉后有应急访问服务器的方案

请问大家有没有类似的开源或者公开的解决方案吗?谢谢~

这个问题我在 SO 上面提问了: http://serverfault.com/questions/733205/centralized-audit-server-solution-for-mutiple-server-management

堡垒机给乙方用用还可以 给团队内部人用太蛋疼了

大家都到服务器上去干啥子了啊? 产品环境天天要人工上去操作吗?

可以用 git 做个集中的配置管理仓库(CMDB),一旦这个 git 仓库有提交,通过 CI 检测到,自动执行,变更服务器 服务器还是不要登录的好 相关的开源软件有 ansible,puppet,saltstack,chef 等等

我这用 web 页面进行管理,能操作的也就那么几个有限的命令

试试 FreeIPA,我们之前用的这个。现在所有帐号在 LDAP 里管理

可以用动物名(或魔戒人物)作为机器的名字,团队内部沟通起来很方便,也很有趣。

  • dog - mongodb
  • tiger - web server
  • cat - mysql
  • snake - nginx

这是 Vincent 教给我的,哈哈。

为每个员工开设一个专用的用户 然后生成专用的 ssh 密码对 这样一个员工辞职后,只需要在服务器删除相对应的公钥即可 禁止密码登录

#8 楼 @xiaoronglv 我们有台服务器就叫 tiger。。

赞同 #9 楼 的做法 并且 测试环境是所有后端人员都可以访问 但是生产环境可以 考虑 少数人使用 deploy 账号,并且专门提供只读账号给 小伙伴来 查看日志 etc

可以试试云帮手,兼容 windows 和 Linux 服务器系统的,而且是可视化的,功能有几十种还是比较全面好用的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号