写点什么

搭建 JumpServer 堡垒机管理数万台游戏服务器

用户头像
学神来啦
关注
发布于: 2021 年 07 月 12 日
搭建 JumpServer 堡垒机管理数万台游戏服务器

文章有点长请耐心观看哦!

1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境

1.1 跳板机概述

跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。



跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;


堡垒机概述:堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。


总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能。Jumpserver 概述:Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证,授权,审计,自动化运维等功能。JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产


官方网址: http://www.jumpserver.org



JumpServer 2 环境要求:硬件配置: 4 个 CPU 核心, 6G 内存, 50G 硬盘(最低)

1.2Jumpserver 实验拓扑图

实验环境:xuegod63 IP : 192.168.1.63 jumpserver 服务端 6G 内存 xuegod64 IP:192.168.1.64 资源,被管理的服务器 2G 内存


1.3 初始化系统环境

初始化系统环境关闭防火墙


[root@xuegod63 ~]# systemctl stop firewalld && systemctl disable firewalld
复制代码


关闭 selinux


[root@xuegod63 ~]# setenforce 0
复制代码


永久关闭(重启后生效,先设置临时再设置永久。)


[root@xuegod63 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/selinux/config
复制代码

1.4 安装 jumpserver 所需相关服务

自动部署


[root@xuegod63 ~]# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.10.2/quick_start.sh | bash
复制代码



cd 进入安装管理目录启动 jms


[root@xuegod63 ~]# cd /opt/jumpserver-installer-v2.10.2/[root@xuegod63 jumpserver-installer-v2.10.2]# ./jmsctl.sh restart
复制代码



注:不用配置开机启动,因为新版本的 jumpserver 是以 docker 运行的。这些 docker 实例开身就是开机自动启动的。Web 访问,新版本提供了 2 个访问地址一个 http 一个 httpshttp://192.168.1.63:8080/core/auth/login/ 用户:admin 密码: adminhttps://192.168.1.63:8443/core/auth/login/



首次登录需要修改密码,这里我们测试环境修改为 123456


2 jumpserver 平台系统初始化

2.1 系统基本设置

这里要写成自己真实的 URL 地址,不然后期用户访问不了。http://192.168.1.63,设置完成后,并点击“提交”按钮。这里可以选择 http 或 httpshttp://192.168.1.63:8080https://192.168.1.63:8443我们使用 https


2.2 配置邮件发送服务器

点击页面上边的"邮件设置" TAB ,进入邮件设置页面



配置 163 邮箱注:自己邮箱要开启 smtp 和 pop3 服务并增加授权码:开启 POP3/SMTP/IMAP 服务方法:请登录 163 邮箱,点击页面右上角的“设置”—在“高级”下,点“POP3/SMTP/IMAP”,开启图中两个选项,并开启客户端删除邮件提醒。即可开启成功。开通后即可用闪电邮、Outlook 等软件收发邮件了。新增授权密码:



ARYAOQXHFMXGBJVRbabrziluawkibaej 我的授权码是系统自动生成的,需要复制保存服务器地址:POP3 服务器:pop.163.com | SMTP 服务器:smtp.163.com | IMAP 服务器:imap.163.com



提交完之后测试邮件是否能够正常发送。



邮箱中查看邮件


3 使用 jumpserver 管理王者荣耀数万台游戏服务器

3.1 用户管理

1、添加用户组。

用户名即 Jumpserver 登录账号。用户组是用于资产授权,当某个资产对一个用户组授权后,这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。点击用户管理 —> 查看用户组 —> 添加用户组



添加新的小组 —> 王者荣耀-华北区运维部门



查看刚才添加的组


2、添加用户

点击用户管理 —> 用户列表 —> 创建用户其中,名称是真实姓名,用户名即 Jumpserver 登录账号。




然后点提交。就会收到用户创建成功的邮件扩展:MFA,Multi-FactorAuthentication,即多因子认证,是一种简单有效的安全认证方法。它能够在用户名和密码之外,再增加一层保护。MFA 设备,又叫动态口令卡或 Token 卡,是提供这种安全认证方法的设备。MFA 设备如:硬件 MFA 设备硬件 MFA 设备如下图所示,正面的 6 位数动态安全码 30 秒更新一次,背面有该硬件 MFA 设备的序列号。



手机校验码:



查看添加的用户



使用无痕浏览器,打开一个新窗口,登录邮箱:



成功提交用户信息后,Jumpserver 会发送一条设置"用户密码"的邮件到您填写的邮箱。登录一下 163 邮箱,查看邮件如下:



点击链接,跳转到 修改密码:123456



使用浏览器,无痕模式打开:https://192.168.1.63:8443/ 用户:mk 密码: 123456



能登录成功。切换到 admin 用户,给新用户 mk,配置 ssh 密钥




用户可以重置密码,也可以重置 SSH 密钥,方便后期登录:我在自己的另一台 linux 上,使用 mk 用户生成自己的 ssh 密钥。


[root@xuegod63 ~]# useradd mk[root@xuegod63 ~]# echo 123456 | passwd --stdin mk[root@xuegod63 ~]# su - mk[mk@xuegod63 ~]$ ssh-keygen     #一路回车[mk@xuegod63 ~]$ cat ~/.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDFMqCGfXDW8UW7Dd0QoXzvnny/4u9ET2sKBt2SQf+wVVS6pLJHE3QNXzHxg+uI1KRJwVtGiPWPtOQ4yj3HiMsBSLsFjOWFoIcv1myXYtLFuwovLfUJgyCwD/LHfSgJ821bUQ2w9uUkAKirBJtjKFC/E4l9Z+GgZmLr9ckRWfZOt3g+xD3iNlh/lD4FlTYz0U9hlb4GrpikP5WtsYZgpIImMTgPsxq3yspQGvTpzsj1ApfOgt0SEHsqd1yYv4K+2bokMDrpTSmvsHXTWCBwpXsp2NQA2s1aDKJIOTY3mDCDQdJl9aMbBAjErdYFvEoNybNdH98KTcEQeCsrCrI0SfR9 mk@xuegod63.cn
复制代码


把上面生成的公钥粘到这里:



提交完成

3.2 编辑资产树添加节点

使用 admin 用户登录 jumpserver,添加节点,节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。



名字为:王者荣耀-华北区-服务器


3.3 创建管理用户

Jumpserver 里各个用户的说明:



管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。



名称: 王者荣耀-华北区-服务器管理用户-root 密码是: 123456



前提,你的王者荣耀-华北区-服务器节点中所有的服务器 root 用户密码都是:123456 这样就可以使用此 root 用户管理服务器。注意:在创建管理用户时的“密码”处,需要指定为服务器 linux 系统中真实的 root 用户的密码。

3.4 创建系统用户

系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户, Jumpserver 使用系统用户登录资产。


系统用户的 Sudo 栏填写允许当前系统用户免 sudo 密码执行的程序路径,如默认的/sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不需要输入当前系统用户的密码,执行其他的命令任然需要密码,以此来达到权限控制的目的。


#此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。


系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。


Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。



增加一个名称:检查服务器运行状态的用户;用户名 : user 权限: /sbin/ifconfig,/usr/bin/top,/usr/bin/free



添加系统管理员用户



名称: 系统管理员用户; 用户名:managersudo 权限:/usr/local/sbin/,/usr/local/bin/,/usr/sbin/,/usr/bin/,/root/bin/注:如果写的是一个目录,不用具体命令。 目录路径最后面加一个/,这样看得更清楚。当然不加/也可以,只是有时可能会把/usr/local/sbin 当成一个命令。 必须使用英文逗号分隔。



3.5 创建资产

注: 增加资产前,一定要把 xuegod64,先运行起来




开启虚拟机 xuegod64.cn。 一会把这台机器当成资源添加平台中。主机名:game64.xuegod.cn-王者荣耀-华北区 IP: 192.168.1.64 系统平台:Linux 协议组:ssh 22 管理用户:王者荣耀-华北区-服务器管理用户-root(root)设置完成并点“提交”。



资产创建信息填写好保存之后,按下 F5 刷新一下页面,可以看到已经可以连接资产,说明正常:



如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。

3.6 创建授权规则

节点,对应的是资产,代表该节点下的所有资产。用户组,对应的是用户,代表该用户组下所有的用户。系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该分别给 Linux 资产和 Windows 资产创建授权规则。



名称:王者荣耀-华化区-服务器授权规则 #注:用户和用户组是指要给谁授权,如果授权了用户组,则该组中用户全部拥有权限。用户:不用写用户组: 王者荣耀-华北运维部门注资产和节点可授权单个资产也可按照节点进行授权。授权华北节点则华北节点下所有服务器被授权。资产:节点:/Default/王者荣耀-华北区-服务器动作:权限打勾,点开可以分配详细权限。



其它选项,使用默认,然后提交就可以了。



注:这一条授权的含意是: 只要是“王者荣耀-华北区运维部门”组中的人,对节点“王者荣耀-华北区-服务器”中的所有服务器,拥有“系统管理员用户”的权限。授权成功后,你自己手动到 xuegod64 上查看:


[root@xuegod64 ~]# tail /etc/passwd -n 5dbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinmanager:x:1000:1000:系统管理员用户:/home/manager:/bin/bash   #自动推送一个帐号,自动在资产服务器上创建系统用户[root@xuegod64 ~]# visudo   #sudo  相关的规则也会被自动推送过来manager ALL=(ALL) NOPASSWD: /usr/local/sbin,/usr/local/bin,/usr/sbin,/usr/bin,/root/bin
复制代码

3.7 用户使用资产

登录 Jumpserver : https://192.168.1.63:8443 用户: mk 密码: 123456 创建授权规则的时候,选择了用户组,所以这里需要登录所选用户组下面的用户才能看见相应的资产。使用无痕浏览器,再打开一个窗口,进行登录:



用户正确登录后的页面:



1、使用 web 界面连接资产,点击页面左边的 Web 终端:



打开资产所在的节点:双击资产名字,就连上资产了:如果显示连接超时,请检查为资产分配的系统用户用户名和密钥是否正确,是否正确选择 Linux 操作系统,协议 ssh,端口 22,以及资产的防火墙策略是否正确配置等信息。



接下来,就可以对资产进行操作了。

3.8 在 xshell 字符终端下连接 jumpserver 管理服务器

[root@xuegod63 ~]# ssh -p2222 mk@192.168.1.63  #进行链接  jumpserver 或使用 xshell 进行连接  jumpserver
复制代码



输入 jumpserver 用户 mk 和密码 123456



点击确定开始连接



Opt> 64 #输入一个 64,就可以直接登录:192.168.1.64Connecting to manager@game64.xuegod.cn-王者荣耀-华北区 0.3Last login: Thu Jun 7 23:15:13 1718 from xuegod63.cn[manager@xuegod64 ~] whoami #发现登录使用的是系统用户 managermanager[manager@xuegod64 ~] exit 登出 Opt> p #显示你有权限的主机



Opt> g #显示你有权限的主机组


3.9 查看历史命令记录

3.10 查看历史会话并回放视频

在线会话



历史会话


3.11 文件管理功能


在这此,可以新建文件夹,也可以上传文件到服务器。这些创建的文件和上传的文件,都会存在目标服务器的/tmp 目录下


[root@xuegod64 ~]# ls /tmp/
复制代码

3.12 作业中心

1、任务列表作业是 Jumpserver 向其所管理下的资产发送的指令, 例如, 测试资产可连接性、获取资产硬件信息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近 7 天的作业记录。点击作业名称可以查看作业的具体详情、作业的历史版本以及作业执行的历史记录



2、批量命令可以通过该功能快速下发命令到资产, 目前仅支持能被 ansible 管理的资产, 要求 系统用户 登陆方式为 自动登陆



更多内容,可以参数官方手册:https://jumpserver.readthedocs.io/zh/master/https://docs.jumpserver.org/zh/1.4.8/introduce.html

4 使用 jumpserver 管理 mysql 数据库

4.1 安装 mariadb 数据库

[root@xuegod64 ~]# yum install -y mariadb-server[root@xuegod64 ~]# systemctl enable --nowmariadb设置 root  密码[root@xuegod64 ~]# mysqladmin -uroot password "123456"创建 ecshop 数据库和 xuegod 用户,要指定 xuegod 用户可以从任意地方登录 mysql  数据库。[root@xuegod64 ~]# mysql -uroot -p123456MariaDB [(none)]> create database ecshop;MariaDB [(none)]> use ecshop;#创建电商网站数据库  ecshopMariaDB [(none)]> create table user(id int (20),name char(40));   #创建一个表  userMariaDB [(none)]> grant all privileges on *.* to 'xuegod'@'%'identified   by '123456';
复制代码

4.2jumpserver 管理数据库

添加 Mysql 系统用户



名称:xuegod-mysql 登录模式:自动登录 #账户信息为安装数据库后创建的授权用户用户名:xuegod 密码:123456



创建应用



名称:xuegod-mysql 主机:192.168.1.64 端口:3306 注:这里数据库是指 mysql 中的哪个库,我们测试环境选择 mysql 数据库即可。指定登录后,要使用的数据库:ecshop



应用授权



名称:xuegod-mysql 用户组:王者荣耀-华北区运维部门应用:xuegod-mysql 系统用户:xuegod-mysql



授权完成后,以 mk 用户登录,就可以在 Web 终端中管理 mysql 应用了。



总结:17.1Jumpserver 堡垒机概述-部署 Jumpserver 运行环境 17.2jumpserver 平台系统初始化 17.3 实战:使用 jumpserver 管理王者荣耀数万台游戏服务器 17.4 使用 jumpserver 管理 mysql 数据库


想要获取相关视频教程,+V 回复:“JumpServer”即可获得哦!



用户头像

学神来啦

关注

还未添加个人签名 2021.06.02 加入

10年Linux使用及管理经验,7年IT在线教育培训经验。精通Linux、Python、思科、C++、安全渗透等技术。曾任职国内知名互联网公司高级运维架构师、运维总监。对基于Linux下开源程序Openstack、Docker、K8S、DevOps、

评论

发布
暂无评论
搭建 JumpServer 堡垒机管理数万台游戏服务器