搭建 JumpServer 堡垒机管理数万台游戏服务器
1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境
跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到
目标设备进行维护和操作。
跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、
违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;
堡垒机概述:
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,
而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便
集中报警、及时处理及审计定责。
总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能。
Jumpserver 概述:
Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证,授
权,审计,自动化运维等功能。JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产
官方网址: http://www.jumpserver.org
JumpServer 2 环境要求:
硬件配置: 4 个 CPU 核心, 6G 内存, 50G 硬盘(最低)
实验环境:
xuegod63 IP : 192.168.1.63 jumpserver 服务端 6G 内存
xuegod64 IP:192.168.1.64 资源,被管理的服务器 2G 内存
初始化系统环境
关闭防火墙
[root@xuegod63~]# systemctl stop firewalld&&systemctl disable firewalld
关闭 selinux
[root@xuegod63~]# setenforce0
永久关闭(重启后生效,先设置临时再设置永久。)
[root@xuegod63~]# sed-i"s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config
自动部署
[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 一个 https
http://192.168.1.63:8080/core/auth/login/ 用户:admin 密码: admin
https://192.168.1.63:8443/core/auth/login/
首次登录需要修改密码,这里我们测试环境修改为 123456
这里要写成自己真实的 URL 地址,不然后期用户访问不了。http://192.168.1.63,设置完成后,
并点击“提交”按钮。
这里可以选择 http 或 https
http://192.168.1.63:8080
https://192.168.1.63:8443
我们使用 https
点击页面上边的"邮件设置" TAB ,进入邮件设置页面
配置 163 邮箱
注:自己邮箱要开启 smtp 和 pop3 服务并增加授权码:
开启 POP3/SMTP/IMAP 服务方法:
请登录 163 邮箱,点击页面右上角的“设置”—在“高级”下,点“POP3/SMTP/IMAP”,开启
图中两个选项,并开启客户端删除邮件提醒。即可开启成功。开通后即可用闪电邮、Outlook 等软件收
发邮件了。
新增授权密码:
ARYAOQXHFMXGBJVR
babrziluawkibaej
我的授权码是系统自动生成的,需要复制保存
服务器地址:POP3 服务器:pop.163.com | SMTP 服务器:smtp.163.com | IMAP 服务
器:imap.163.com
提交完之后测试邮件是否能够正常发送。
邮箱中查看邮件
3 使用 jumpserver 管理王者荣耀数万台游戏服务器
用户名即 Jumpserver 登录账号。用户组是用于资产授权,当某个资产对一个用户组授权后,这个
用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。
点击用户管理 —> 查看用户组 —> 添加用户组
添加新的小组 —> 王者荣耀-华北区运维部门
查看刚才添加的组
点击用户管理 —> 用户列表 —> 创建用户
其中,名称是真实姓名,用户名即 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~]# echo123456|passwd--stdinmk[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
把上面生成的公钥粘到这里:
提交完成
使用 admin 用户登录 jumpserver,添加节点,节点不能重名,右击节点可以添加、删除和重命名
节点,以及进行资产相关的操作。
名字为:王者荣耀-华北区-服务器
Jumpserver 里各个用户的说明:
管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该
用户来推送系统用户、获取资产硬件信息等。
名称: 王者荣耀-华北区-服务器管理用户-root 密码是: 123456
前提,你的王者荣耀-华北区-服务器节点中所有的服务器 root 用户密码都是:123456
这样就可以使用此 root 用户管理服务器。
注意:在创建管理用户时的“密码”处,需要指定为服务器 linux 系统中真实的 root 用户的密码。
系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户, Jumpserver
使用系统用户登录资产。
系统用户的 Sudo 栏填写允许当前系统用户免 sudo 密码执行的程序路径,如默认的
/sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不需要输入当
前系统用户的密码,执行其他的命令任然需要密码,以此来达到权限控制的目的。
#此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。
系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产
中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。
Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾
选。
增加一个名称:检查服务器运行状态的用户;
用户名 : user
权限: /sbin/ifconfig,/usr/bin/top,/usr/bin/free
添加系统管理员用户
名称: 系统管理员用户
; 用户名:manager
sudo 权限:/usr/local/sbin/,/usr/local/bin/,/usr/sbin/,/usr/bin/,/root/bin/
注:如果写的是一个目录,不用具体命令。 目录路径最后面加一个/,这样看得更清楚。当然不加/
也可以,只是有时可能会把/usr/local/sbin 当成一个命令。 必须使用英文逗号分隔。
注: 增加资产前,一定要把 xuegod64,先运行起来
开启虚拟机 xuegod64.cn。 一会把这台机器当成资源添加平台中。
主机名:game64.xuegod.cn-王者荣耀-华北区
IP: 192.168.1.64
系统平台:Linux
协议组:ssh 22
管理用户:王者荣耀-华北区-服务器管理用户-root(root)
设置完成并点“提交”。
资产创建信息填写好保存之后,按下 F5 刷新一下页面,可以看到已经可以连接资产,说明正常:
如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH
从 Jumpserver 主机正确登录到资产主机上。
节点,对应的是资产,代表该节点下的所有资产。
用户组,对应的是用户,代表该用户组下所有的用户。
系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。
节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该
分别给 Linux 资产和 Windows 资产创建授权规则。
名称:王者荣耀-华化区-服务器授权规则
#注:用户和用户组是指要给谁授权,如果授权了用户组,则该组中用户全部拥有权限。
用户:不用写
用户组: 王者荣耀-华北运维部门
注资产和节点可授权单个资产也可按照节点进行授权。授权华北节点则华北节点下所有服务器被授
权。
资产:
节点:/Default/王者荣耀-华北区-服务器
动作:权限打勾,点开可以分配详细权限。
其它选项,使用默认,然后提交就可以了。
注:这一条授权的含意是: 只要是“王者荣耀-华北区运维部门”组中的人,对节点“王者荣耀-华
北区-服务器”中的所有服务器,拥有“系统管理员用户”的权限。
授权成功后,你自己手动到 xuegod64 上查看:
[root@xuegod64~]# tail/etc/passwd-n5dbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:Userforpolkitd:/:/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
登录 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.64
Connecting to manager@game64.xuegod.cn-王者荣耀-华北区 0.3
Last login: Thu Jun 7 23:15:13 1718 from xuegod63.cn
[manager@xuegod64 ~]$ whoami #发现登录使用的是系统用户 manager
manager
[manager@xuegod64 ~]$ exit
登出
Opt> p #显示你有权限的主机
Opt> g #显示你有权限的主机组
在线会话
历史会话
在这此,可以新建文件夹,也可以上传文件到服务器。这些创建的文件和上传的文件,都会存在目标
服务器的/tmp 目录下
[root@xuegod64~]# ls/tmp/
1、任务列表
作业是 Jumpserver 向其所管理下的资产发送的指令, 例如, 测试资产可连接性、获取资产硬件信
息、测试管理用户可连接性和测试系统用户可连接性等命令。默认展示最近 7 天的作业记录。
点击作业名称可以查看作业的具体详情、作业的历史版本以及作业执行的历史记录
2、批量命令
可以通过该功能快速下发命令到资产, 目前仅支持能被 ansible 管理的资产, 要求 系统用户 登陆方
式为 自动登陆
更多内容,可以参数官方手册:
https://jumpserver.readthedocs.io/zh/master/
https://docs.jumpserver.org/zh/1.4.8/introduce.html
[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 tableuser(idint(20),namechar(40));#创建一个表 userMariaDB[(none)]>grant all privileges on*.*to'xuegod'@'%'identified by'123456';
添加 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 数据库