刘春雷 马云飞
1.临沂市人民医院;2.菲律宾克里斯汀大学国际学院
为保证数据安全,保障业务的高可用,两个或多个数据中心协同作战,共同保障的方式成为大家共认的解决方案。堡垒机作为数据中心重要的运维安全设备,其双活部署可以很好的解决一个数据中心瘫痪的情况下,运维人员可以几乎无感知的继续运维,保障运维的连续性和高效性。本文研究了堡垒机跨数据中心双活部署的原理与实现,以供参考。
随着信息化进程的不断推进,企业信息系统变的日益复杂。不同运维背景和运维水平的人员,因信息安全意识不同,技术能力不足等原因,越权操作、违规操作计算设备、操作系统、网络设备、安全设备、数据库等设备或软件而造成安全问题的事件层出不穷。堡垒机也称作运维安全审计系统,其主要是用来防护特定区域网络内的网络信息系统的一种设备,堡垒机的防护主要是两个层面,一个是外部的用户访问入侵和恶意破坏,另一个是防护内部用户对网络信息资源的访问入侵和恶意破坏,依托多种技术措施和手段来实时监控堡垒机防护范围内的网络环境下的每个软硬件的使用状况、操作实况、进行追溯回放等。通过集中化运维管控、统一运维管理出口,实行身份认证与权限控制、记录和监控运维人员操作过程、从而为数据中心运维,构建了一套完善的事前预防、事中监控、事后审计的运维管控体系,最终实现对运维访问的合规性控制。堡垒机作为一种重要的运维安全审计设备,已经成为现代数据中心运维中必不可少的一种安全设备。
堡垒机的作为主要的运维审计设备,其主要功能体现在几个方面:(1)运维账号的设立及对应权限的设置。根据维护人员的分工权限,设立维护人员在堡垒机的运维账号并授予其管理的软件或硬件的操作权限,账号和权限的细粒度关联,使得用户与系统和操作之间做到一一对应,满足了细粒度管理的要求。(2)对运维账号的全生命周期的操作审计。从运维账号登录时间起一直到账号退出,此账号所做的所有操作均被记录,方便事后追溯。(3)满足网络安全法及等保要求。运维审计日志保存6个月以上以及双因素认证登录,满足了网络安全法和等保的相关要求。
为保证业务的可靠性、连续性,服务器和数据在多数据中心存在,已成为一种业务安全性保障的一种重要措施。不论是双活数据中心建设,还是容灾机房建设,还是灾备机房建设,目的均是为了保证数据的安全,确保在突发情况发生时,另一份数据可以拉起或者可以恢复。
如前所述,堡垒机是数据中心设备运维当中的唯一通道,其是打开服务器、网络产品、安全产品等核心设备的一把“钥匙”,如果运维过程中钥匙丢失或者损坏,我们将不得不采取密码恢复,将密码明文告知工程师,运维审计无法进行等情况,将会给我们的运维工作带来很多麻烦和无法预估的损失,所以堡垒机的冗余部署势在必行。
传统的堡垒机部署方式有单机部署,HA本地高可靠部署。单机部署是风险最高的,只要此单台设备故障,堡垒机即失去运维能力。本地双机部署可以解决单机部署所带来的风险,一台设备出现故障,另一台设备可以接替故障设备继续工作,但是本地双机部署仍然无法解决数据中心级别故障情况下的设备运维问题。比如一个数据中心发生停电,水灾等情况,整个数据中心无法使用,即使另一个数据中心是双活或容灾数据中心,但因为堡垒机只部署在故障数据中心内,可用数据中心的设备无法实现运维接管,必然会进行密码的恢复等系列操作,耽误很多的业务恢复时间。所以多数据中心情况下的堡垒机跨数据中心部署是运维连续性的一项重要举措,非常有必要。
堡垒机跨数据中心的双活部署,需要重点解决两个层面的问题。(1)网络引流的问题,即堡垒机运维会话的负载分发,通过适合的负载配置将运维会话请求分配到适合的堡垒机节点上,由堡垒机节点完成连接服务器的后续操作。(2)保障两台堡垒机之间的数据一致性,运维人员不论在哪个数据中心,都可以呈现统一运维界面,同一运维内容。实现这两点,堡垒机才能为用户提供跨数据中心运维正确的访问授权和审计服务。
我院堡垒机的数据引流算法,选用的是LVS-SH调度算法,LVS-SH调度算法可以对访问堡垒机的源地址进行Hash,并通过Hash找出对应的堡垒机节点。这样相同IP在访问堡垒机集群时,在会话保活期内访问的均是同一台节点,后续所有数据均由此节点与客户端直接交互,不再经过调度节点进行转发,因此具有较高的处理效率,而且此算法几乎没有单点瓶颈。调度节点出现故障后,也不会影响已经连接到其他节点上的正在进行的服务。
为保证配置数据的一致性,堡垒机将配置数据保存在PostgreSQL数据库中,并采用PostgreSQL Replication技术来实现数据同步。集群内,有一个节点为PG主节点,所有的写操作都在这上面发生;其他节点均为PG从节点,会实时同步PG主节点上的数据变动。所有从节点中,有一个节点会与主节点进行数据的同步备份(仅当备份成功后,数据库事物才会提交);其他节点则与主节点进行数据的异步备份(数据库事物在主节点提交后,随后才会备份到从节点上,不影响数据库的响应能力)。这样部署既可以保证数据的高可用,也可以最大程度上确保集群的性能。另外堡垒机的数据库服务器部署在跨数据中心的私有云环境中,即使一端数据中心出现极端情况,出现了服务器宕机等情况,数据库服务器仍可以自动漂移至另一院区数据中心的虚拟化池中,这也保证了数据库的高可用和数据的一致性[1]。
对于审计数据,通过使用GlusterFS分布式文件系统保存回放文件等以文件形式保存的审计数据。GlusterFS具有无元数据节点瓶颈、高可用、高扩展、高性能、高效率等特点,特别是对于堡垒机的回放文件通常比较大的特点,GlusterFS可以充分发挥其大文件处理效率高的特点。
堡垒机的故障检测和切换是通过Keepalived实现的,而Keepalived高可用服务对之间的故障切换转移,是通过VRRP来实现的。VRRP可以实现堡垒机双活中的虚拟IP共享,用户仅需要访问虚拟IP地址即可。在 Keepalived服务对之间,作为主的服务器会一直发送 VRRP广播包,告诉备服务器它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管主,承担主所运行的资源,从而保证业务的连续性。因接管速度最快可以小于1秒,用户几乎无感知。至于会话连接,当双活的某个节点故障时,连接到该节点的会话会断开,被自动分配到其他正常节点上,而且一直连接到其他正常节点的会话没有影响,双活将持续运行。故障节点恢复后,将自动重新恢复双活,无需进行人工干预,双活状态自动恢复到正常状态。
在分析透彻双活堡垒机部署的原理和难点后,再行部署双活堡垒机顿感目标明确,思路清晰。在我们单位实现跨院区双活数据中心的基础上,我们给双活堡垒机搭建了虚拟堡垒机数据库服务器,部署PostgreSQL数据库。两台堡垒机分别部署在两个数据中心,配置独立的IP地址后,通过VRRP协议虚拟出虚IP地址,运维人员通过此虚拟IP分别自动连到恰当的堡垒机上实行运维。双活堡垒机部署完毕后,我们组织进行了堡垒机切换测试和堡垒机故障演练,将一端的堡垒机硬性断电,查看另一端堡垒机的接管情况,实际检验双活堡垒机的切换效果。通过测试,运维账户可以实现无感知继续运维,我院双活堡垒机部署切换正常,双活堡垒机部署取得了成功[2]。双活堡垒机部署如图1所示:
图1 双活堡垒机部署Fig.1 Double live fortress machine deployment
堡垒机部署过程中也遇到了一些困难。堡垒机内存使用率过高就是其中一个。经过分析,双活部署模式下,因运维人员多,运维数据大,每天呈现百万级增涨,堡垒机数据处理模块效率下降,每分钟处理数据量无法满足每分钟产生的数据量,导致堡垒机数据缓存服务不断堆积新数据。物理内存不断消耗,直至被耗费殆尽。
经过与研发和实施工程师反复研究,造成这个问题的原因是在双活部署环境下,堡垒机数据库的分区表插件工作效率严重下降导致,通过研发工程师重写分区表插件解决了这个问题。部署过程中还遇到用户在多次使用堡垒机的过程中,造成一些业务无法正常使用或需要频繁登录。通过LVS会话持久化配置,使登录用户在一定时间段内连接的会话均分发至同一堡垒机,从而解决用户某些需要会话保持的功能,无法正常使用的问题。
堡垒机跨数据中心部署,保证了数据中心级别灾难发生的情况下,服务器的运维仍可正常进行,使用习惯不改变,维护效率不降低,可以取得高可用的效果,但凡事正反两面,高可用、高安全必然牵涉到更多的技术,更复杂的结构,这也就对运维提出了更高的要求。安全设备的运维一定要以制度加技术相结合的方式进行管理[3]。
堡垒机的管理首先需要从制度上明确数据运维管理的责任义务。堡垒机账号的申请,不论是单位内部职工还是公司驻场人员,都需要先行签订保密协议且确有运维服务器的需求。正式申请必须要通过办公流程进行审批,审批通过后方可开通账号。账号要分级分类进行管理,根据账号持有人的需求,分配相应权限。为满足等保要求,堡垒机管理制度中还需要对双因子认证登录,三权分立管理,日志留存六个月,告知账号申请人堡垒机管理规定等相关内容。
既然要通过堡垒机实现身份认证和SSO,那就要堵住其他服务器运维管理的通道和端口。通过防火墙做好ACL策略,控制以远程桌面方式访问Windows系统以及SSH协议或telnet协议访问Centos等Linux系统,限制访问服务器的IP地址,不允许其他IP地址登录服务器,只允许堡垒机访问,以便将所有运维及访问入口均通过堡垒机设备管控,实现全流程监管。
通过设置双因子认证。登录堡垒机的运维账户不仅要输入账户密码还要输入随机验证码,这大大降低了被攻击识别的可能性。开启防暴力破解功能,让试图通过撞击密码进行的攻击,在猜测三次后即被关闭在“大门”之外。
堡垒机双活部署虽然保证了运维的高可用,但如果运维工作跟不上,高可用也会变成不可用,所以进行定期的双活堡垒机的巡检非常的重要。每日运维人员登陆主备堡垒机和堡垒机数据服务器查看数据库服务器状态,及时发现问题处理苗头性问题,始终保持两台堡垒机的良好运行状态,对于保证双活堡垒机运行的长久稳定性很有必要。
堡垒机做为运维管控的核心设备,其集群部署,在目前多数据中心并存成为主流的背景下,解决了在一个数据中心瘫痪的情况下,服务器、交换机、数据库等关键软硬件设备的运维,仍可以在无需调整运维方式的情况下继续运维,保持实现运维审计和权限管控功能,实现了运维安全的连续性,为两个或多个数据中心设备的不间断运维提供了很好的解决方案。