厉害了:全数据中心密码管理系统的建设--构建数据中心一体化运维平台第三篇

前言:本文中所引用的文档均为Redhat 技术专家杨金锋所提供。此方案,大卫也多次请教红帽技术专家陈镇。

密码管理系统的必要性

在大多数客户数据中心内部,密码管理都是一个很令人头疼的问题。为什么呢?

第一,数据中心中设备:Linux、AIX、Windows、数据库等的密码复杂度要符合要求,避免轻易被破解。

第二,数据中心设备的密码,需要定期修改,以保证安全性。

针对这种情况,我们当然可以定期手工修改数据中心设备的密码,但这带来三个问题:

  1. 手工修改工作量太大。想象一下,给几百个系统修改root密码的感觉?
  2. 手工修改密码的那个人,必然会知道密码被改成什么。如果由此密码被泄露,风险也很大。
  3. 针对数据中心的诸多设备,修改方式都不尽相同(Windows和Linux不同),这给运维人员带来了很大的压力。

那么,能否构建一个全数据中心密码管理系统呢?

当然,有一个选择,是使用堡垒机。我们可以通过堡垒机,来管理如Linux操作系统用户的密码。但是,堡垒机依赖于网络。如果一个Linux操作系统物理网卡出现问题,堡垒机无法与被管系统通讯,这时候,如果需要对被管Linux系统进行维护,还是要访问Linux操作系统的。这时候,就需要构建密码管理系统-----Password Management System,简称PMS。通过PMS来查询密码,登录系统。

需要指出的是,堡垒机与PMS绝对并不是互斥的,而是协同工作的。PMS可以在很大程度上降低客户手工修改密码、频繁修改密码这样繁重、重复劳动。

构建全数据中心密码管理系统

借助于Ansible Tower,我们可以构建全数据中心密码管理系统---Password Management System,简称PMS 。被纳管的对象如下:

PMS的三大优势:自动化、安全、统一:

PMS设计要点如下:

PMS的四大功能

1.被管理端上下线管理

通过PMS系统接口从资产表中筛选互信正常的服务器列表,将这批列表通过pms更新密码流程纳管到后台系统中设置crontab 定时任务,周期性扫描pms与资产库,如果发现资产表中已经不存在纳管机器的记录,则通过 PMS delete接口对该机器进行下线。

2.系统密码可靠性抽样检查

通过定时任务调用 PMS 的 sshcheck 接口,每天抽取1% 的已经纳管的机器,自动查询出密码并且验证密码的正确性。将检查的结果写入到pms数据库中,通过看板端展示审计结果。

3.系统密码修改方式

方式一:定期自动修改密码

方式二:自动检入前一天检出的密码

方式三:手工修改密码

4.系统密码查询

管理员通过PMS系统接口,或者管理界面勾选服务器的方式,对服务器指定账号进行密码查询,查询到的密码以明文的方式告知管理员,管理员需要对被查询到的密码加以保密。

PMS的安全加固策略

PMS必要保证端到端的安全性,通过以下四点实现:

PMS日志管理

在PMS中,查询和修改密码的操作,都会有强日志审计。

PMS架构设计

接下来,我们看一下PMS的工作流程:

被管系统用户列表初始化

首先,在PMS上,先有一个init.csv文件,里面列出被管系统的IP、用户名、操作系统类型:

系统筛选

接下来,PMS会对init.csv文件进行初始化。PMS会对符合密码变更条件的系统(会检查检查被管系统的网络通讯是否正常)进行筛选,形成filter.csv文件。filter.csv将作为生成随机密码的源文件。

文件加密

接下来,针对filter.csv文件,生成随机密码(密码生成可以跟客户的密码安全策略整合),并把密码储存在store.csv文件中,文件是加密存放的。

生成pw_inventory文件,该文件将用户ansible批量修改密码的参照文件:

修改密码

Ansible 根据pw_inventory文件,对被管系统进行批量自动化密码修改。

密码入库

对store.csv文件进行加密处理,然后存入到mysql数据库。

密码入库以后,可以查看IP和用户的对照关系:

密码查询流程

查询mysql中存储的密码时,需要提供被管机的IP地址+用户名+查询密码。查询到的密码也是加密的。

需要注意的是,PMS的好处在于,我们查询某个系统、某个用户的密码以后,数据库中这一行将被锁定。别人再去查询mysql,将无显示。直到前一个人用完这个密码,还回去后,其他人才可以查询这个系统、这个用户的密码。

总结:

目前,PMS系统已经实现了图形化操作,通过Ansible Tower实现。并且红帽的PMS已形成整体打包方案,对于客户而言,是“开箱即用”。若有意购买者,请联系红帽公司销售。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2017-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LEo的网络日志

coding感想(三)

3768
来自专栏Java面试笔试题

使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?

要提升读取数据的性能,可以指定通过结果集(ResultSet)对象的setFetchSize()方法指定每次抓取的记录数(典型的空间换时间策略);要提升更新数据...

901
来自专栏迁移服务平台

腾讯云文件迁移使用指南

迁移上云的时候,会有迁移上腾讯云对象存储(cos)的需求,目前的迁移方案有两种:1、cos提供的COS Migration工具;2、客户自己利用友商和cos的a...

3444
来自专栏IT大咖说

VMware vSphere 6.7 新功能介绍

内容来源:2018 年 06 月 19 日,VMware大中华区原厂高级技术讲师姚泉在“VMware在线技术专题分享·第二期”进行《VMware vSphere...

4643
来自专栏计算机编程

ionic 2.x の初见与坑

<h3>1、简单介绍:</h3> <p >博主是从来没有碰过angularJS 1.x与ionic 1.x的初学者,面对它们两者同时进入2.0时代(隔壁vue...

1602
来自专栏游戏杂谈

多文件压缩工具-RIA版

做游戏开发,在进入游戏前需要先加载很多资源文件,以XML格式居多。一般我们的做法是将多个XML/txt文件打包压缩,之前使用的方法是先将资源文件使用winrar...

1051
来自专栏ThoughtWorks

大型项目程序配置管理演化之路|TW洞见

今日洞见 文章作者、图片来自ThoughtWorks:窦衍森。封面图片来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司...

3306
来自专栏做全栈攻城狮

GitHub这么火,程序员你不学学吗? 超简单入门教程干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制。帮助大家摆脱命令行工具,简单快速的使用GitHub。

702
来自专栏FreeBuf

开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD...

1145
来自专栏做全栈攻城狮

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制。帮助大家摆脱命令行工具,简单快速的使用GitHub。

1103

扫码关注云+社区