APP下载

基于JumpServer的DevOps安全管控机制研究

2024-01-18曹园青

现代信息科技 2023年22期
关键词:软件开发运维

收稿日期:2023-05-14

DOI:10.19850/j.cnki.2096-4706.2023.22.015

摘  要:随着DevOps理念的广泛应用,软件开发和运维的整合变得越来越紧密,然而,安全性在DevOps实践中常常被忽视。为了解决这一问题,以JumpServer为基础,研究了基于JumpServer的DevOps安全管控机制。通过综合使用JumpServer的远程访问管理、访问控制和审计功能,结合DevOps实践中的安全要求,提出了一套适用于DevOps环境的安全管控机制。通过实验和案例研究,验证了该机制的有效性和可行性。研究结果对于促进DevOps实践与安全的结合,提高软件交付过程中的安全性具有重要的理论和实际意义。

关键词:DevOps;软件开发;运维;JumpServer;安全管控机制

中图分类号:TP393    文献标识码:A  文章编号:2096-4706(2023)22-0069-04

Research on DevOps Security Control Mechanism Based on JumpServer

CAO Yuanqing

(School of Mathematics and Computer Science, Hetao College, Bayannur  015000, China)

Abstract: With the widespread application of the DevOps concept, the integration of software development and operation and maintenance has become closer and closer. However, security is often neglected in DevOps practice. In order to solve this problem, based on JumpServer, the DevOps security control mechanism based on JumpServer is studied. Through the comprehensive use of JumpServer's remote access management, access control and audit functions, combined with the security requirements in DevOps practice, a set of security control mechanisms suitable for DevOps environments is proposed. Through experiments and case studies, the effectiveness and feasibility of the mechanism are verified. The research results have important theoretical and practical significance for promoting the combination of DevOps practice and security, and improving security in the software delivery process.

Keywords: DevOps; software development; operation and maintenance; JumpServer; security control mechanism

0  引  言

随着软件开发和系统运维的不断演进,DevOps(Development and Operations)理念已經成为许多组织实现敏捷开发和持续交付的关键方法。DevOps通过整合开发和运维团队,加强协作和自动化,实现了快速迭代、频繁交付和高效运维的目标。作为一种新兴的软件开发和交付方法论,DevOps安全的重要性越来越凸显,主要表现在保护敏感数据和隐私、保护应用程序免受攻击、确保远程访问的安全性、降低运维活动的风险以及符合合规性要求[1]。然而,在追求快速交付的过程中,安全性问题常常被忽视,导致潜在的安全漏洞和风险,进而在软件交付过程中的安全问题不断增多。

为了解决DevOps环境中的安全问题,将研究基于JumpServer的DevOps安全管控机制的实施和应用,通过将JumpServer与DevOps流程集成[2],实现对远程访问、资源权限和安全策略的有效管控,保护系统的安全性,并降低系统遭受安全威胁的风险,有助于提高团队的安全意识和能力,促进团队协作,并为企业和组织提供可靠的软件交付和运维环境。

1  DevOps与JumpServer技术

1.1  DevOps理念与实践

DevOps是Development(开发)和Operations(运维)两个词的组合[3],是一种强调开发团队和运维团队之间协作与整合的理念。它旨在通过加强沟通、协作和自动化,实现软件开发和运维过程的高效、快速和可靠。DevOps强调将开发、测试、部署和运维等环节紧密结合,强调持续交付和持续集成的原则。DevOps理念的核心原则包括:

1)自动化:通过自动化工具和流程,减少手动操作,提高效率和准确性。

2)协作和沟通:促进开发团队和运维团队之间的沟通和协作,共同解决问题和追求共同目标。

3)持续交付:将软件的开发、测试和部署过程进行整合和自动化,实现频繁且可靠的软件交付。

4)反馈和改进:通过不断收集反馈和监控数据,及时调整和改进软件开发和运维过程。

实践DevOps理念需结合一系列工具、技術和方法,以下是一些常见DevOps实践方式[4]:

1)持续集成:通过使用版本控制系统和自动化构建工具,开发人员可以将代码频繁地集成到共享的代码库中,并自动进行构建和测试。这有助于快速发现和解决代码集成问题,确保代码质量和稳定性。

这个阶段是整个DevOps生命周期的核心,这是一种软件开发实践,基本工作原理如图1所示,从图1可看出,首先开发人员需要更频繁地提交对源代码的更改,这可能是每天或每周一次,然后构建每个提交,这就可以及早发现问题(如果存在),最后,支持新功能的代码不断与现有代码集成。因此,软件不断发展导致更新后的代码需要与系统持续平稳地集成,以将变化反映给最终用户。

2)持续交付:在持续集成的基础上,持续交付将自动化的构建、测试和部署过程扩展到更广泛的范围,包括生成可部署的软件包、自动化部署和环境配置等。持续交付使得软件的发布过程更加可靠、快速和可控。

3)基础设施即代码:通过将基础设施的配置和管理作为代码进行版本控制和自动化处理,实现基础设施的可重复性和可扩展性。基础设施即代码可以通过工具如Ansible、Terraform等来实现。

4)自动化测试:自动化测试是保证软件质量和稳定性的关键实践。通过自动化执行单元测试、集成测试和端到端测试等各种类型的测试,能够及时发现和解决潜在的问题。

1.2  JumpServer

JumpServer是一种开源的堡垒机和访问管理系统,旨在提供强大的远程访问控制和安全审计功能,它被广泛应用于企业和组织中[5],用于管理和保护对敏感系统和数据的访问。其基本架构如图2所示。从图2不难看出,位于公网环境的IT人员(开发人员、运维人员和测试人员)在提出内网访问需求后,由位于防火墙内部的堡垒机鉴权,在权限允许的前提下实现JumpServer的基本功能。

JumpServer的主要功能特点如下:

1)远程访问管理:JumpServer提供了集中化的远程访问管理功能,可以管理和控制所有的远程访问请求。它支持SSH、RDP、Telnet等多种远程访问协议,用户可以通过Jumpserver安全地远程访问目标设备和系统。

2)访问权限管理:JumpServer具有灵活的访问权限管理机制,可以根据用户、角色和组织进行细粒度的访问控制。

3)安全审计和日志记录:JumpServer能够对所有的访问行为进行全面的审计和日志记录,包括用户登录、命令执行、文件传输等操作。

4)多因素身份验证:JumpServer支持多因素身份验证,可以增强用户登录的安全性。除了用户名和密码,用户还可以使用一次性密码(OTP)、指纹识别、硬件令牌等其他因素进行身份验证。

5)会话管理和录像回放:JumpServer提供了会话管理和录像回放功能,可以记录和回放用户与目标系统之间的会话。

6)集成和扩展性:JumpServer支持与其他系统的集成,如LDAP/AD、SIEM、CMDB等,可以与现有的企业基础架构进行无缝集成。

1.3  DevOps安全需求分析

随着DevOps实践的普及,安全性在DevOps中变得越来越重要[6]。在追求快速交付和持续集成的同时,需要确保其DevOps环境的安全性。DevOps安全需求主要涉及以下几个方面:

1)访问权限管理:在DevOps环境中,有多个开发人员、测试人员和运维人员参与,因此需要对访问权限进行精细的管理。安全需求包括定义不同角色和权限,并确保只有授权的人员可以访问和操作关键系统和资源。

2)身份验证与授权:安全性要求确保只有合法的用户可以登录和访问DevOps环境,并根据用户角色和职责进行适当的授权。强大的身份验证和授权机制是确保系统安全的关键要素。

3)代码和配置管理:DevOps环境涉及大量的代码和配置文件,因此需要确保这些文件的完整性和安全性。安全需求包括使用版本控制系统对代码进行管理,并采取措施保护敏感信息,如API密钥和数据库凭据。

4)漏洞管理和安全测试:在DevOps过程中,需要进行漏洞管理和安全测试,以发现和修复潜在的安全漏洞。安全需求包括使用自动化工具进行漏洞扫描和安全测试,并确保及时修复发现的漏洞。

5)日志和审计:安全需求涉及对DevOps环境中的所有活动进行全面的日志记录和审计。这包括用户登录、访问请求、配置更改等操作的审计,并确保日志的保密性、完整性和可靠性。

6)敏感数据保护:在DevOps过程中,可能涉及处理敏感数据,如个人身份信息或支付信息。安全需求包括采取适当的加密和数据保护措施,以确保敏感数据的保密性和完整性。

7)异常检测和响应:安全性要求包括实时监测和检测异常活动,如异常登录尝试或不寻常的配置更改,并能够及时响应和采取适当的安全措施。

2  基于Jumpserver的DevOps安全管控机制设计

2.1  安全策略设计

为了确保基于JumpServer的DevOps环境的安全性,设计了一套安全策略管理机制,以定义和实施安全策略,并确保其有效执行。

首先,确定适用于DevOps环境的安全策略框架。这包括制定一套安全准则和最佳实践,以满足组织的安全需求和合规性要求。安全策略框架可以包括访问控制、身份认证、数据加密、漏洞管理等方面的策略。

其次,设计安全策略的配置和管理机制。通过JumpServer提供的管理界面或配置文件,管理员可以定义和配置各种安全策略,以满足不同系统和环境的安全要求。

另外,安全策略管理机制还需要包括策略的实施和执行。这可以通过JumpServer的自动化功能来实现,如自动化扫描漏洞、自動化执行安全策略等。

最后,还需要建立安全策略的评估和持续改进机制。通过定期的安全审查和评估,检查安全策略的有效性和合规性。根据评估结果,及时进行调整和改进,以提高安全策略的有效性和适应性。

通过以上设计,可以确保基于JumpServer的DevOps环境中的安全策略得到有效管理和执行。这有助于减少安全漏洞和风险,提高系统的安全性和稳定性。

2.2  实验环境搭建

为了研究基于JumpServer的DevOps安全管控机制,需进行实验环境架设,实验架构图如图3所示,JumpServer作为中心控制节点,负责整个实验环境的安全管控,它提供远程访问管理、资源权限管理和审计日志管理等功能。Bastion作为堡垒机或跳板机,位于公共网络与内部网络之间,它用于管理对内部资源的访问,并提供额外的安全层。Web服务器1和Web服务器2分别运行不同的应用程序和服务,它们通过JumpServer进行远程访问和管理。数据库服务器1和数据库服务器2分别运行数据库服务,它们也通过JumpServer进行远程访问和管理。

在这个复杂的架构中,Bastion的引入增加了额外的安全控制层,保护内部网络免受未经授权的访问。通过Jumpserver,团队成员可以通过Bastion安全地远程登录到Web服务器和数据库服务器,进行开发、测试和运维等操作。

实验环境的搭建过程如下所示:

1)虚拟化平台选择:在本实验中,我们选择了VMware作为虚拟化平台。VMware提供了强大的虚拟机管理功能,适用于搭建复杂的实验环境。

操作系统选择:作为虚拟机的基础操作系统,我们选择了Ubuntu Server作为实验环境的操作系统。Ubuntu Server是一种常用的Linux发行版,具有广泛的应用和社区支持。

2)安装JumpServer:按照JumpServer的官方文档,我们在Ubuntu Server上进行了Jumpserver的安装和配置。通过使用Docker方式进行安装,我们成功地部署了JumpServer,并确保其能够正常运行。

3)创建虚拟机:使用VMware创建虚拟机,配置虚拟机的名称、操作系统类型和硬件配置。下载Ubuntu Server的镜像文件,并将其加载到虚拟机中。启动虚拟机,并按照屏幕提示完成Ubuntu Server的安装过程。为虚拟机设置静态IP地址,可以通过编辑/etc/network/interfaces文件来配置网络连接。

JumpServer安装和配置:

在Ubuntu Server上执行以下指令以安装Docker和Docker Compose:

sql

Copy code

sudo apt-get update

sudo apt-get install docker.io

sudo apt-get install docker-compose

克隆Jumpserver的代码库:

bash

Copy code

git clone https://github.com/jumpserver/jumpserver.git

进入Jumpserver目录,配置Jumpserver的环境变量和配置文件:

bash

Copy code

cd jumpserver

cp .env.example .env

cp config.yml.example config.yml

修改.env文件和config.yml文件,根据实际需求进行配置,如数据库连接、域名设置等。

启动Jumpserver容器:

Copy code

docker-compose up -d

4)配置网络连接:将虚拟机连接到同一个虚拟网络中,使它们能够互相通信。为虚拟机配置静态IP地址,并设置网络适配器为桥接模式,以便虚拟机可直接访问物理网络。

5)配置安全策略:在JumpServer中,我们创建了不同的角色和权限,如开发人员、测试人员和运维人员。对于Web服务器和数据库服务器,我们分别创建了相应的资源,并为不同的角色分配了不同的权限。

6)进行实验:在实验环境中,我们模拟了开发、测试和运维的典型操作。通过JumpServer,开发人员可以远程登录Web服务器进行代码部署,测试人员可以访问Web服务器进行功能测试,运维人员可以管理数据库服务器的权限。

7)结果分析:通过实验过程中的操作记录和日志,分析远程访问管理、资源权限管理和审计日志管理等方面的数据,并与实验前的预期目标进行比较。

通过以上实验环境搭建过程,能够在一个模拟的DevOps环境中验证和评估基于Jumpserver的安全管控机制。

3  结  论

研究了基于JumpServer的DevOps安全管控机制的实施与应用。通过设计和实施远程访问管理、资源权限管理和安全策略管理等机制,并成功地建立了一个安全可靠的实验环境,验证了这些机制的有效性,有助于安全管理团队在DevOps过程中实现安全管控,提高系统的可靠性,为企业和组织的软件开发和运维活动提供了有力的支持。此外,团队成员可以安全地远程登录到目标服务器进行操作,而无须直接暴露服务器的敏感信息。这有效地减少了潜在的安全风险,并提升了系统的整体安全性。

参考文献:

[1] 杜辉,赵政,李国兴,等.基于devops的软件开发与项目管理分析 [J].电子技术,2023,52(2):194-195.

[2] 赵伟.基于JumpServer的IT系统安全运维审计的研究与实现 [J].电子元器件与信息技术,2021,5(10):1-3.

[3] 马青松,熊新国,刘拥军.基于uni-app框架的机房运维管理系统设计与实现 [J].信息记录材料,2022,23(11):129-133.

[4] 张亚辉,马海燕,陈森,等.DevOps模式下的CMDB研究 [J].信息技术与信息化,2022(9):127-130.

[5] 刘旻子.基于DevOps的SaaS项目持续集成部署方法研究 [D].金华:浙江师范大学,2020.

[6] 郑舟,周芸韬.DevOps与自动化运维实践 [C]//中国新闻技术工作者联合会2021年学术年会论文集.沈阳:[出版者不详],2021:13-18.

作者简介:曹园青(1985—),男,汉族,内蒙古巴彦淖尔人,讲师,硕士研究生,主要研究方向:物联网、计算机网络、电化教育。

猜你喜欢

软件开发运维
大型国有企业环保设施第三方运维的探索与实践
运维技术研发决策中ITSS运维成熟度模型应用初探
风电运维困局
谈电力运维安全隐患排查治理
杂乱无章的光伏运维 百亿市场如何成长
信息安全环境下的计算机软件开发研究
核电厂定期试验管理软件开发
FPGA软件开发过程中编码规范的作用
基于ITIL的运维管理创新实践浅析