“门神”顾名思义,就是守护整个京东资源机云安全的守护神,是京东云平台自主研发的一套基于服务树角色授权的线上机器运维平台,该平台支持认证登录、系统运维和安全审计,可以对京东云平台所有的主机进行统一的访问控制、操作历史记录等,是符合4A的专业运维审计系统,构建统一、高效、安全运维通道,保障云端运维工作遵循法律法规要求、降低人为安全风险,提高运维效率。 设计目标为了适应京东云业务快速发展、所需管理的物理机、虚机和容器数量指数级增加的现状,满足公司安全认证、高效运维、操作审计、职权管控的要求,门神设计初期就制定了如下目标:
支持双因子认证机制,通过二维码、动态令牌等技术,控制账号密码泄露风险,防止运维人员身份冒用和复用。
自研SSH交互界面,简洁易用,方便管理大量主机,简化运维和安全操作,提升运维效率;门神登录成功后支持资源机之间的无密码穿梭。
全程记录运维人员的操作行为,操作内容支持各种维度信息查询,支持操作记录回放,将全程审计运维操作作为事件追溯的保障和事故分析的依据。
将京东云服务树作为账号和资源机授权信息的来源,统一运维入口,统一自然人与主机账号间的权限关系,统一运维操作审计管控点。
门神各模块实现分布式设计和部署,单节点问题不会影响整个系统正常提供服务;支持上万级别的并发会话运维能力。 设计细节1、核心技术点 门神系统涉及诸多技术,其中核心技术点包括:
用户登录relay采用密码 验证码方式,其中验证码可以选择基于云翼的6位数字验证码或者基于京东内部工作客户端(京me)的二维码扫描验证。
门神用户身份认证是基于kerberos协议,保证在非安全网络环境下的安全认证登录,并且实现一次登录relay后,在授权资源机之间可以免密穿梭。
使用nsswitch替代/etc/passwd实现用户信息的获取,该扩展部署到每台资源机,从doorgod-api模块获取登录账号的uid、gid信息。
基于sudoers实现基于角色的用户权限控制,运维角色可以sudo到root账号下操作,开发角色只能使用自己的账号操作,无法sudo。
内部模块交互白名单机制,密码只签名、不传输;非对称加密保存密码;自动加黑机制防止被爆破;定时过期机制。 2、设计详情 从门神总体架构图可以看出,门神的数据源是京东云自研的核心数据模块(服务树模块),所有用户和资源机信息都是从服务树模块获取并保存到数据库和kerberos中的,并通过脚本实时同步服务树中变化的数据,从而保证数据会实时的同步到门神系统。门神主要模块包括relay、kerberos、relay-server、doorgod-api和需要安装到资源机的客户端dg-client,下文介绍结合核心模块的设计和实现。
该模块是用户登录门神的“前端”,以独立容器方式启动,其sshd开启kerberos认证。用户使用ssh协议登录时需要输入用户名和密码,kerberos验证通过后登录容器;login-shell二次验证还需要用户输入从云翼获取的验证码,或者使用京me扫码验证,二次校验无误方可进入用户操作界面。
a、输入主界面index number选择资源机登录; b、直接输入ip登录; c、输入应用名称或者ip进行模糊匹配,选择具体资源机登录; d、输入右侧历史记录的index number登录(以“!”开始)。
作为门神系统的安全认证模块,是保证京东云数十万线上机器安全运维的关键。
dg-client是c语言实现的so文件,所有门神管控的资源机都需要安装该文件,并对资源机的nsswitch.conf文件追加该so文件的扩展信息,使得所有门神用户信息都通过该so文件获取。另外,kerberos配置文件也需要下载到资源机的etc目录下。
门神日志是由syslog服务来进行监控和发送到kafka集群的,日志解析服务会消费kafka中的数据,并进行解析,解析后数据发送到ES集群; 通过云翼可以按照目的ip、操作类型、关键字(支持精确匹配和模糊匹配)、时间进行查询操作日志,从而实现用户操作全程审计;门神还支持用户操作回放功能,能更加清楚的对用户操作进行审计。
|
|