Advertisement

ZStack云平台应用堡垒机教程

阅读量:

1、目的

1.1 �堡垒机具备统一的账户管理策略,在线对所有远程服务器等账号实施集中管理,并能全面监控账号从创建到销毁全过程;同时允许根据不同用户设定特定的安全策略,在细粒度层面实施访问控制措施,在最大程度上防止非法或越权访问行为的发生,并有效保护各类用户资源的安全性。

1.2 在网络安全领域中,在除了传统防火墙之外的其他防护措施中还有一种更为关键的设备——堡垒机。这种设备对于整个网络安全系统而言承担着至关重要的角色。由于这些设备直接面对外网的安全威胁,在进行设计和配置时需要投入大量时间和资源以确保它们能够抵御外来的攻击。值得注意的是,在实际应用中有一些网络管理员甚至会将这些设备作为试验品来测试网络的安全性——通过让这些设备被成功入侵来验证网络的安全防护能力。这种设置不仅使入侵者难以成功突破真正的目标网络(即真实的主机),而且也大大增加了监控和追踪入侵行为的效率。

1.3 堡垒机在企业网络管理中主要负责把关入口,在任何情况下都需要将所有的外部或内部网络设备及服务器的请求进行拦截检查。无论是外部还是内部的请求进入或访问目标设备前都需要经过堡垒机的严格审查与处理。“如果发现有非法访问请求或者恶意攻击行为发生,则会立即识别并阻止这些非法访问请求,并且会过滤掉所有来自外部或内部的非法指令。”总之,“这台设备不仅能够起到最强防护作用,在保障企业内网安全性的同时还能促进企业的内网管理更加合理化与专业化。”

1.4 本文档旨在为ZStack云平台的众多用户提供通过堡垒机实现对部署在该平台的应用系统日常维护及集中式管理的方法。该方法无需运维人员单独处理相关运维工作,并仅需一台或多台堡垒机即可管理和运营整个服务架构中的主机。同时方便对私有网络服务器进行管理和维护,并最大限度地降低应用系统的安全风险。本文档将结合上述场景及其相关安全因素撰写关于如何在ZStack云平台上部署Linux型堡垒机的详细指南。

2、ZStack云平台方案

2.1 准备软件

2.2.1 进行部署之前,需提前下载云平台所需的系统ISO、部署安装包。

2.2.2 以ZStack 3.7.1版本为例,可在官网下载相关资源。

http://cdn.zstack.io/product_downloads/iso/ZStack/3.7.1/7948o1y5rx/ZStack-x86_64-DVD-3.7.1-c74.iso

注意

注:下载操作完成,请在管理节点处进行核验以确认文件完整性并确保其哈希值与指定网站标识相匹配;如果上述条件未能满足,则请执行重新下载流程

校验md5的检测方法参考:

#md5sum ZStack-x86_64-DVD-3.7.1-c74.iso

2.2 总体规划

2.2.1 网络规划介绍

在网络规划中,通常需要将网络划分为若干个子网。这些子网可以分为公共(public)和专用(private)两类。公共子网中的云主机可以直接接收来自互联网的数据流量,并且可以发送到互联网上的数据流量。然而,在专用子网上运行的云主机无法直接与互联网进行通信。然而,在专用子网上运行的云主机可以通过连接到公共子网内的NAT(基于地址转换)设备来访问互联网。

根据以上描述的不同子网特性,我们需要将防火墙设备绑定到弹性公网IP上以便实现对该类设备的集中管理配置需求。受管理的服务器可以根据其在业务系统中的角色选择部署于公共或专用子网上。例如,在实际生产环境中可以根据具体需求对防火墙设备分配一个独立的公网IP地址。

2.2.2 实验环境介绍

PC为本机,能连通Internet,本机IP为192.168.167.38/24

通过Jumpserver服务在centos7虚拟机上配置一块网络适配器,并为其绑定一个弹性公网IPv4地址(IP地址为172.20.14.15/16),该宿主服务器可连接到互联网。同时,在该CentOS虚拟服务器上运行的堡垒机能够ping通连接到PC和Service端口

service为Centos7虚拟机,安装一块网卡,IP地址为10.0.214.167/16

目前PC端无法连接10.0.0.0/16网段的所有IP

两个Centos系统都安装了openssh-client和openssh-service,并正常运行sshd系统服务

PC被弹性公网IP成功实现了远程连接至jumpserver,并借助private network IP完成了对服务的远程管理。最终实现了PC对远端服务的有效控制。具体网络架构规划图如附图所示

在这里插入图片描述

3、Linux堡垒机部署

3.1 创建堡垒机

于ZStack私有云端管理平台的主菜单界面,在导航栏中依次选择'资源池' > '云端主机管理'"路径;随后将跳转至'云端主机管理界面';请依次单击'创建云端主机'"按钮;在此界面中,请单机键盘输入相应的操作指令;其中建议在此处键入相应的操作指令;其中所使用的虚拟机镜像名称是CentOS-7-x86_64-DVD-1804;并从三层互连网络中选择本公司的网络地址;具体配置细节可参考图1进行设置。

图1 创建云主机

3.2 安装系统

3.2.1打开控制台

通过访问当前云主机的控制台界面,您可以进入云主机系统进行操作。默认情况下会启动 ISO 引导安装界面,并建议您先选择 "Install ZStack" 操作模式以完成操作系统安装。在服务器引导设置中选择 Legacy 引导模式时将采用 U 盘启动方式(如图 2 所示)

图2 选择安装方式

3.2.2选择语言

根据个人喜好选择语言,这里选择English(United States),如图3所示:

 语言选择

3.2.3进入系统安装界面

在系统安装界面中,在进入系统安装界面时,默认已设置参数无需修改。通常情况下,默认参数不需要管理员进行调整。

•DATE&TIME:Americas/New York timezone

•LANGUAGE:English(United States)

•KEYBOARD:English(US)

系统安装界面如下图4所示:

图4 系统安装界面

3.2.4选择安装模式

确认

在系统安装界面中打开【软件选择

图5 服务器安装模式候选

3.2.5配置硬盘分区

在安装系统的主界面上,在输入并确认硬盘路径信息后,默认会跳转至硬盘分区设置界面;随后,请您根据需求选择并指定好目标系统盘位置;随后点击 "I will configure partitioning" 进行手动分区设置;完成后即可开始硬盘分区配置过程(如图6所示)。

图6 配置硬盘分区
  1. 用户需要手动设置不同的存储解决方案,在此场景中您将:
  • 手动指定以下四种存储方案:Standard Partition(标准分卷)、Btrfs(基于树的文件系统)、LVM(逻辑体积管理)以及其精简配置(Thin Provisioning)。
  • 首先,在列表中选定 Standard Partition 方案。
  • 单击「+」按钮开始分卷操作。
  • 完成所有分卷创建后,请单击「完成」按钮以保存设置。
  • 如图7所示即为最终效果展示:
图7 选择分区格式

创建引导分区,如图8所示:

图8 创建引导分区

创建 swap 分区,如图9所示:

图9 创建swap分区
  1. 建立根分区,在配置根目录的过程中,在未指定Desired Capacity的情况下,默认将所有空间划分为/目录(如图10所示)。
图10 创建根分区
  1. 确认无误后,点击Done按钮完成磁盘分区操作,如图11所示:
图11 完成磁盘分区

触发完成操作后会弹出确认提示;选择并应用区域划分设置, 如图12所示。

图12 应用分区配置

3.2.6配置网络

复制代码
    在系统安装界面,点击NETWORK & HOST NAME进入网卡配置主界面,选择需要修改的网卡,点击Configure按钮进行配置,如图13所示:
图13 配置网卡

在General选项预设中,默认情况下不会启用‘自动连接至此网络当可用’的设置。因此必须检查该网络接口是否已启用开机自动连接功能。如图14所示。

图14 自动启动网卡
  1. 在 IPv4 设置选项中,请根据个人需求选择 DHCP 或 Manual 两种模式。在 Manual 模式下需手动配置 IP 地址、掩码以及相关的网络参数如网关和 DNS 位置。在此处建议选择 DHCP 模式,在配置完成后,请单击 Save 按钮完成保存操作。如图15所示:
图15 配置网卡

3.2.7开始安装

配置完成后,请返回至系统安装主页,并在启动安装程序前,请点击BeginInstallation按钮以开始安装过程(如图16所示)。

图16 开始安装

3.2.8设置root用户密码

  1. 安装过程自动进行,安装过程中请设置ROOT PASSWORD,如图17所示:
图17 设置root用户密码

完成基础系统的安装后,需手动执行Reboot操作以实现重启.重启完成后,系统将自动切换至Linux操作系统,并如图18、图19所示

图18 重启
图19 进入系统

3.3 添加公网弹性IP

网络服务

新增弹性IP

创建新弹性IP

在ZStack私有云管理界面中,在导航栏中找到并单击【网络服务

单击页面中的【新增虚拟机

系统将自动启动虚拟机实例并分配资源参数

在出现的【创建新虚拟机实例

完成配置后保存设置并启动该虚拟机实例以供后续使用

图20 创建弹性IP

指定目标云主机及其所需的网络接口后,请执行确认操作以完成配置。

图21 绑定云主机
图22 绑定云主机网卡
图23 弹性IP详情界面

3.3.3 在弹性IP绑定完成后,在云主机控制台发送ping指令至www.baidu.com以验证网络通信状态(如图24所示)。

图24 测试网络连通性

3.4 应用部署

3.4.1安装yum源

Yellow dog Updater, Modified(简称Yum)是一个专为Fedora、Red Hat以及CentOS等系统提供的Shell界面工具。通过RPM包管理系统自动生成所需的软件更新条目,并从远程服务器上下载并安装这些更新。该工具能够自动解析各软件间的依赖关系,并一次性完成所有相关软件的安装过程。Yum源则是一个专门收集各种开源项目源代码的大数据库;当你需要某个特定项目时只需搜索并获取其完整代码库即可。

复制代码
    #mkdir  /etc/yum.repos.d/back
    
    #mv  /etc/yum.repos.d/* /etc/yum.repos.d/back
    
    #curl –o  /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #yum clean all  && yum makecache
    
    #yum install  wget -y
    
    #wget -O  /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.4.2安装python包

Python是一种跨平台式的通用程序设计语言。它具有面向对象特性的动态类型编程语言,并最初被设计为编写自动化脚本(如shell脚本)。伴随版本迭代更新及新增功能,在软件开发领域得到了越来越广泛的应用。当前稳定版本通常基于Py3.0及以上开发。

复制代码
    #yum -y install  wget sqlite-devel xz gcc automake zlib-devel openssl-devel
    
    #mkdir -p  /opt/server/tools
    
    #cd  /opt/server/tools/
    
    #tar xvf  Python-3.6.1.tar.xz && cd Python-3.6.1
    
    #./configure  --prefix=/usr/local/python3 && make && make install

3.4.3安装git

Git是一种功能强大的版本控制工具,在Linux系统中被广泛使用;这里向大家讲解如何在Linux系统中使用YUM进行软件包管理。

复制代码
    #yum -y install  git

3.4.4安装mysql和创建数据库

数据库是一种按照数据结构组织、存储和管理数据的系统。它是长期存放在计算机中的有序、共享且统一管理的数据集合。它以特定方式组织在一起,并能够与多个用户共享使用;同时具备最小冗余度,并与应用程序保持独立性。类似于电子文件柜的功能体——它为用户提供了一个存储电子文件的地方,并支持新增内容、检索信息以及更新或删除现有记录的操作空间。

复制代码
    #yum -y install  mariadb mariadb-devel mariadb-server
    
    #systemctl  enable mariadb
    
    #systemctl start  mariadb
    
    #DB_PASSWORD=`cat  /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`   
    
    #echo -e  "\033[31m 数据库密码是 $DB_PASSWORD \033[0m"   
    
    #mysql -uroot -e  "create database jumpserver default charset 'utf8'; grant all on  jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '$DB_PASSWORD'; flush  privileges;"

3.4.5建立加速pip

当我们使用Python进行编程时, 通常需要安装多种不同的软件包. 因此, 我们需要有一个用于管理和维护这些软件包的工具. 通过在Linux系统中安装pip这个工具来管理和维护这些软件包.

复制代码
    #cd
    
    #mkdir .pip
    
    #vi  ~/.pip/pip.conf
    
    [global]
    
    index-url =  http://mirrors.aliyun.com/pypi/simple/
    
    
    
    [install]
    
    trusted-host=mirrors.aliyun.com

3.4.6安装jumpserver

该系统作为全球首个全面开放源代码的安全平台,在采用 GNU GPL v2.0 开源协议的基础上满足 4A 标准的专业安全管理系统

JumpServer基于 Python 和 Django 开发, 遵循现代网络应用标准, 整合了业内最先进且功能完善的 Web 终端解决方案, 界面设计优雅、用户体验卓越。

基于分布式架构设计的JumpServer系统,在不同机房及跨区域环境下实现部署,并通过中心节点提供的API进行操作。在各机房中部署相应的登录节点后,在横向扩展的同时确保不支持并发访问。

JumpServer现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。

Jumpserver安装包地址:https://pan.baidu.com/s/1HlNOxnd3jxstw5cMMLU–g

复制代码
    #cd  /opt/server/tools/
    
    #yum install  unzip -y
    
    #unzip  jumpserver-rpm.zip
    
    #cd  jumpserver-rpm/jumpserver
    
    #git checkout  master
    
    #cd install/
    
    #python  install.py

3.4.7配置

安装jumpserver的过程涉及必要的设置包括数据库参数设置、账号及其密码获取与验证以及不同邮箱地址的配置(如163.com和QQ.com),最终完成系统的配置与部署工作。

请输入您服务器的IP地址,用户浏览器可以访问 [10.0.0.31]: 172.20.14.15

是否安装新的MySQL服务器? (y/n) [y]: n

请输入数据库服务器IP [127.0.0.1]: 127.0.0.1

请输入数据库服务器端口 [3306]: 3306

请输入数据库服务器用户 [jumpserver]: jumpserver

请输入数据库服务器密码: M0ynoMmM6p3Egz3qtQhjS07I

请输入使用的数据库 [jumpserver]: jumpserver

连接数据库成功

……

请输入管理员用户名 [admin]: admin

请输入管理员密码: [5Lov@wife]: password

请再次输入管理员密码: [5Lov@wife]: password

Starting jumpserver service: [ 确定 ]

安装成功,Web登录请访问http://ip:8000, 祝你使用愉快。

请访问 https://github.com/jumpserver/jumpserver/wiki 查看文档

3.4.8登陆

启动浏览器;然后在地址栏输入指定的HTTP地址(如http://IP:8000);随后即可访问_jumpserver_的登录界面并完成登录流程(见图25和图26)。

图25 登陆
图26 用户界面

3.4.9添加远程主机

目标主机为需要远程管理的设备;该用户可通过单击资产管理模块 > 进入资产详情页面,在线填入相关信息,并参考图27完成操作流程。

图27 添加主机

3.4.10添加Sudo命令

sudo命令是系统用户在远程主机上登录后所能执行的一系列命令操作;单击授权管理界面中的相关选项并输入相关信息即可完成授权。

图28 添加Sudo

3.4.11添加系统用户

系统用户名是在基于Linux的操作系统环境下的远程登录账户,在进行远程操作之前必须确认目标主机上确实存在该账户配置项;单击授权管理选项卡并选择'系统用户'进行关联配置;填写必要的信息后点击保存以完成配置流程,请参考图29完成操作

图29 添加系统用户
  1. 创建完系统用户后,点击推送,输入相关内容,绑定主机,如图30、31所示:
图30 点击推送
图31 绑定主机

3.4.12添加授权规则

该模块允许配置哪些系统用户与用户组以允许其访问哪些远程主机,并且同时便于进行分类管理。在功能界面中,请您依次点击权限管理菜单下的"授权规则"选项,在弹出的对话框中输入所需信息(如图32所示)。

图32 添加授权规则

3.4.13连接

最后点击资产管理 —> 查看资产,点击主机的连接按钮,完成连接,如图33、34所示:

图33 点击连接
图34 完成连接

4、测试

4.1 从PC端直接连接service,无法进行连接,如图35所示:

图35 连接失败

图35 连接失败

4.2 使用Xhell客户端从PC端进行连接至Jumpserver主机远程服务;同时亦可通过Jumpserver管理界面直接接入服务以确保成功建立连接,请参考图36、37。

图36 连接成功
图37 连接成功

总结

堡垒机通常被视为IT管理人员或运维团队常用的工具之一,并可被视为一类能够通过中间平台实现远程设备批量操作的网络设备。此外,在网络安全领域中容易成为攻击目标的主机自然也是需要具备强大防护能力的对象。

在ZStack平台上,在配置堡垒机时可以通过绑定弹性IP来实现多台网卡设备的功能。弹性IP不仅允许公有网络的访问与内部私有网络的资源进行关联,并且还能将一个网络中的公网IP地址转换为另一个网络中的私有云主机IP地址。这种设置使得内部私有网络成为独立的空间,在不被外部网络直接访问的同时也能够保障云服务的安全性。

但堡垒机未能实施运维人员的操作行为监控与审查机制,在实际运用过程中仍可能存在错误操作或违规行为导致的操作失误现象。这些操作失误往往会导致在发生时难以迅速确定具体原因及责任方。

全部评论 (0)

还没有任何评论哟~