IT运维人员如何搭建堡垒机(跳板机)访问连接服务器
发布时间: 2017-09-12 浏览次数 : 68次
现在一定规模互联网企业,往往都拥有大量服务器,如何安全并高效的管理这些服务器是每个系统运维或安全运维人员必要工作。现在比较常见的方案是搭建堡垒机(跳板机)环境作为线上服务器的入口,所有服务器只能通过堡垒机进行登陆访问,合格的堡垒机个人以为要满足以下功能需求 1 线上机器要实现免密登陆 2 密码对所有普通用户不可见 3 不同用户拥有不同机器登陆权限 4 不同用户可登陆机器的操作权限可控制 5 操作记录可审计 。假设服务器全是linux系统,日常管理通过ssh,不知道有没有比较好的开源方案或者技术思路来实现以上需求?像bat这些大企业中服务器都是数万级别的,他们又是怎么进行管理的?
在管理设计之前,先整理出堡垒机要覆盖的基本功能点:
1、服务器统一账号权限管理,包括哪些用户可以对哪些服务器进行login,哪些用户有sudo权限;
2、用户行为记录,可在必要时回看审查,用户登录校验审查;
目标是将所有的linux服务器通过堡垒机进行管理把控,将来扩展下,同样可以通过ssh协议对 交换机、路由器、甚至是 Windows进行管理(目前windows已经可以实现通过ssh登录,不过这种方式就没有图形界面了且只能通过powershell来进行管理)。堡垒机(跳板机)架构设计基于以上几点功能点,设计架构如下:
下面对这个架构图做下说明:整体分为三层,总体来说,
第一层 校验用户是否有登录堡垒机的权限;
第二层真正为用户分配权限,同时判断经过第一层的用户是否有对目标机器操作的权限;
第三层则是真正登录/操作服务器的方式,在这里我将服务器的auth+sudo权限通过ldap来进行分布式动态管理,稍后会有专门的说明;
第一层:
登录入口,凡是有堡垒机使用权限的均可以由此入口处登录成功。
涉及主要服务: user login shell。
服务主要功能:
读取用户信息,判断是否有登录权限;
调用动态Token服务,验证用户passwd;
调用动态token服务,实现二维码扫码快速登录;
调用第二层中的授权服务api,获取&判断用户的login权限;
记录用户操作日志;
关联服务:
动态Token服务,类似于google auth,每个人的动态码均不一样,每分钟update一次,以此做登录堡垒机的校验,当然如果想简单,单独分配一个静态密码也可以;
第二层:
授权服务管理,获取登录用户当前的权限ip列表,判断用户的操作是否符合预授权。
涉及主要服务:授权管理服务服务主要功能:
设置用户/team的 权限列表;
将权限数据下发至第三层的ldap集群;
提供api获取用户的权限list;
关联服务:
CMDB,以cmdb中的服务树为基本单位做授权,同时在cmdb中判断授权的服务器对象是否有效;
OA,以oa中的用户组为基本单位做权限授予,同时基于oa来判断用户是否有效;
第三层:
登录实体服务器&执行命令;
将所有目标服务器的ssh登录体系对接ldap集群,通过在ldap中设置用户的publickey & sudo等信息,来统一控制用户的登录权限&sudo权限。目标规模:
使用两台服务器做ldap主从集群,所有实体服务器对接此集群,从而统一进行auth验证。
下一篇:三个课堂的概念是什么?