0
点赞
收藏
分享

微信扫一扫

JumpServer堡垒机实现公司内网资产及公有云资产的管理

安装JumpServer (基于容器部署)

环境:一台机器实现
JumpServer:
MySQL:
Redis:

安装要求:
硬件配置:2个CPU核心,4G内存,50G硬盘(最低)

安装docker环境

[root@ubuntu2004 ~]#apt -y install docker.io 

(docker安装是从镜像来获取安装包,镜像来源于美国,可开启镜像加速)
[root@ubuntu2004 ~]#echo '{"registry-mirrors": ["http://si7y70hh.mirror.aliyuncs.com"]}' > /etc/docker/daemon.json
[root@ubuntu2004 ~]#cat /etc/docker/daemon.json 
{"registry-mirrors": ["http://si7y70hh.mirror.aliyuncs.com"]}
[root@ubuntu2004 ~]#systemctl restart docker.service 
[root@ubuntu2004 ~]#docker info  查看是否生效
 Registry Mirrors:               镜像加速
  http://si7y70hh.mirror.aliyuncs.com/
 Live Restore Enabled: false

安装mysql服务

[root@ubuntu2004 ~]#docker run --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.30
安装MySQL并配置密码,创建jumpserver数据库和用户并指定用户密码

下载MySQL客户端用于连接docker中的MySQL
[root@ubuntu2004 ~]#apt -y install mysql-client
连接docker中的MySQL
[root@ubuntu2004 ~]#mysql -uroot -p123456 -h127.0.0.1
查看字符集
mysql> status;
为latinl

在宿主机准备MySQL配置文件

准备相关目录
[root@ubuntu2004 ~]#mkdir -p /etc/mysql/mysql.conf.d/
[root@ubuntu2004 ~]#mkdir -p /etc/mysql/conf.d/

#生成服务器配置文件,指定字符集
[root@ubuntu2004 ~]#tee /etc/mysql/mysql.conf.d/mysqld.cnf <<EOF
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0
character-set-server=utf8   #添加此行,指定字符集
EOF
#生成客户端配置文件,指定字符集
[root@ubuntu2004 ~]#tee /etc/mysql/conf.d/mysql.cnf <<EOF
[mysql]
default-character-set=utf8  #添加此行,指定字符集
EOF

删除原有容器的MySQL   
[root@ubuntu2004 ~]#docker rm -f mysql

启动MySQL容器

将上面宿主机设置好的配置文件挂载至MySQL容器

[root@ubuntu2004 ~]#docker run -d -p 3306:3306 --name mysql --restart always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e =jumpserver  \
-e MYSQL_USER=jumpserver      \
-e =123456\
-v /data/mysql:/var/lib/mysql   \    #-v 把宿主机的文件夹让容器使用
-v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf  \
-v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf   mysql:5.7.30

查看docker进程
[root@ubuntu2004 ~]#docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
9823abed7dc0   mysql:5.7.30   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
重新连接docker中的MySQL
[root@ubuntu2004 ~]#mysql -uroot -p123456 -h127.0.0.1
查看字符集
mysql> status;
为utf8

安装redis服务

[root@ubuntu2004 ~]#docker run -d -p 6379:6379 --name redis --restart always  redis:6.2.7

部署JumpServer

脚本生成key和token:cat key.sh
#!/bin/bash

if [ ! "$SECRET_KEY" ]; then
  SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`;
  echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc;
  echo SECRET_KEY=$SECRET_KEY;
else
  echo SECRET_KEY=$SECRET_KEY;
fi
if [ ! "$BOOTSTRAP_TOKEN" ]; then
  BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
  echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc;
  echo BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN;
else
  echo BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN;
fi

[root@ubuntu2004 ~]#bash key.sh 
SECRET_KEY=kMjEQH5jFgaO2iatLxIyIG7etZ8cpRr0irVi2gQ0IbNRLDPeUN
BOOTSTRAP_TOKEN=kHzBGU4LU4Te4cDF

docker run --name jms_all -d \
  -v /opt/jumpserver/core/data:/opt/jumpserver/data \
  -v /opt/jumpserver/koko/data:/opt/koko/data \
  -v /opt/jumpserver/lion/data:/opt/lion/data \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=QabRlIzG7EadnZofxq5Zchb94ewJRvdxv5UMnbI9xeCUb3NDUR \ #替换key
  -e BOOTSTRAP_TOKEN=0MoIAZmTyPGAEf24 \                              #替换token
  -e LOG_LEVEL=ERROR \
  -e DB_HOST=10.0.0.100 \                                 #(注意IP为宿主机IP,不是127.0.0.1)
  -e DB_PORT=3306 \
  -e DB_USER=jumpserver \
  -e DB_PASSWORD=123456 \
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=10.0.0.100 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD='' \
  --privileged=true \
  --restart always \                  
  jumpserver/jms_all:v2.25.5
  
安装好后查看日志验证是否成功:
[root@ubuntu2004 ~]#docker logs -f jms_all   显示JumpServer就是成功
DNS解析本机IP, 10.0.0.100 jumpserver.meng.org
去本机网页访问
账号admin
密码admin

jumpserver用户管理,对不同的用户采取不同的管理

1、为不同的用户创建不同的jumpserver用户账号和密码
2、在后端被管理机器上创建账户,让jumpserver用户拿此账号连接后端机器进行管理(jumpserver内置anseble)
3、把后端被管理机器的账号与jumpserver的用户建立连接关系

JumpServer堡垒机实现公司内网资产及公有云资产的管理_JumpServer堡垒机

设置邮件

set form=1153454651@qq.com                #SMTP账号 
set smtp=smtp.qq.com                      #SMTP主机
set smtp-auth-user=1153454651@qq.com
set smtp-auth-passord=lpleqzkvwbaeiejh    #SMTP密码

SMTP端口:使用加密端口465,在下面使用SSL
         不加密端口25,不适用SSL
提交

创建用户和组

创建账号:jumpserver支持三种登录用户
管理员
普通用户
审计员

视图控制台(用户管理--创建用户组、普通用户和审计员)
1、用户组创建 如:开发组  提交
               测试组  提交
2、用户列表创建 
如:
名称和用户名:曼曼
邮件:
用户组:开发组
设置密码:123456,勾选下次登录修改密码
MFA(双因子验证):禁用(如果开启,需要手机下载) 
来源:数据库  
系统角色:用户,勾选激活。
保存继续添加

如:
名称和用户名:王昊
邮件:
用户组:测试组
设置密码:123456,勾选下次登录修改密码     
MFA(双因子验证):禁用(如果开启,需要手机下载) 
来源:数据库  
系统角色:用户,勾选激活。
提交


3、创建审计员   
如:
名称和用户名:凡超
邮件:
用户组:
设置密码:123456,勾选下次登录修改密码     
MFA(双因子验证):禁用(如果开启,需要手机下载) 
来源:数据库  
系统角色:系统审计员,勾选激活。
提交

资产管理:

1、创建管理账号特权账号:控制台  (此账号使jumpserver具有了管理后台机器的权限)
资产管理-系统用户-特权用户
名称和用户名:root
密码:后台资产root密码 
提交

2、创建资产-资产列表
资产树右键增加节点:开发机、测试机

3、资产管理-资产列表-创建
主机名:10.0.0.7-dev    
IP:10.0.0.7 
系统平台:linux
协议组:ssh 22
特权用户:root
节点:开发机 

主机名:10.0.0.8-dev    
IP:10.0.0.8 
系统平台:linux
协议组:ssh 22
特权用户:root
节点:开发机 

主机名:10.0.0.101-test    
IP:10.0.0.101
系统平台:linux
协议组:ssh 22
特权用户:root
节点:测试机

主机名:10.0.0.102-test    
IP:10.0.0.102
系统平台:linux
协议组:ssh 22
特权用户:root
节点:测试机

4、创建普通帐号:让jumpserver用户拿这个帐号来连接后台服务器(不要拿特权账号让jumpserver用户使用)
资产管理-系统用户-普通帐号-创建
用ssh协议(此协议选择根据用的系统来决定),不同用户创建不同的后台管理帐号
如:
名称:devuser 
协议:SSH
用户名:devuser 
认证方式:托管密码并自动生成 自动推送打开 
提交

名称:testuser 
协议:SSH
用户名:testuser
认证方式:托管密码并自动生成 自动推送打开 
提交

让jumpserver用户与普通用户还有后端资产建立关联关系:

让jumpserver的用户曼曼与资产管理普通用户devuser、还有后台服务器101.102关联起来
让jumpserver的用户王昊与资产管理普通用户testuser、还有后台服务器8.18关联起来

控制台-权限管理-资产授权-创建
名称:dev资产授权   
用户组:开发组   
节点:开发机   
系统用户:devuser

名称:test资产授权  
用户组:测试组   
节点:测试机   
系统用户:testuser

提交后在后端被管理服务器上查看账号是否被推送
getent passwd
有可能不自动推送,需要手动推送 
用户管理-系统用户-普通用户 点击用户名称-资产列表-推送
推送之后查看后台服务器有没有这个账户
getent passwd 如果有,还不能连接,就查看jumpserver并重启
[root@ubuntu2004 ~]#docker ps 
[root@ubuntu2004 ~]#docker restart jms_all

审计账号可以实时观看到jumpserver用户在线状态,对机器做了什么操作,还可以观看历史会话,下载历史会话,拖入到播放器内观看。需下载jumpserver播放器

https://github.com/jumpserver/VideoPlayer/releases

命令过滤器

控制台-资产管理-命令过滤-创建
名称:dev规则
用户组:开发组
资产:10.0.0.7 10.0.0.8
系统用户:devuser  勾选激活
提交

dev规则
命令过滤器规则-创建
过滤器:dev规则
内容:rm
动作:拒绝
提交

对MySQL资产做授权,管理MySQL

创建连接数据库账号,对应在MySQL中创建的账号
mysql> create user dev@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.07 sec)

mysql> create database devdb;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on devdb.* to dev@'10.0.0.%';
Query OK, 0 rows affected (0.00 sec)

创建MySQL应用
应用管理-应用授权-数据库-创建MySQL
名称:MySQL-dev
类型:MySQL 
主机:10.0.0.8 
数据库:devdb

创建连接MySQL的jumpserver账号:
资产管理-系统用户-普通用户-创建-MySQL
名称:MySQL-dev         
用户名:dev                        #在MySQL数据库中创建的用户
认证方式:托管密码:123456           #在MySQL数据库中创建的用户的密码
提交

应用授权:
权限管理-应用授权-创建
名称:MySQL-dev 
用户组:开发组  
应用:MySQL-dev(MySQL) 
系统用户:MySQL-dev
提交

命令行界面连接

进入命令行页面:ssh -p 2222 manman@10.0.0.101

资产的导出导入

资产批量管理
资产列表 右上角导入导出  提供csv xlsx两种模板
打开模板:特权用户:点击root,复制ID  节点:资产列表,前边不保留,后边是=号之后的
节点名称/test|dev
改好模板后,导入

网域管理

JumpServer堡垒机实现公司内网资产及公有云资产的管理_JumpServer堡垒机_02

实际生产环境中混合云使用很常见,但是jumpserver无法直接管理公有云服务器 可以通过JumpServer的网域功能实现混合云服务器的统一管理

网域的管理流程

1、购买几台云主机,且有一台云主机必须具备公网IP, 此主机充当网关服务器 
2、让网关服务器与所有的云主机(包括网关服务器)免密(可选) 
3、jumpserver要与网关服务器免密(可选) 
4、创建网域名称 
5、创建网关,指定网关服务器的公网IP,认证指定root和jumpserver的root的私钥文件(或者网关服务器 的root密码) 
6、添加一个特权用户(阿里云root): 阿里云网关服务器root用户和其私钥(或者root密码) 
7、添加资产(所有云主机,包括网关服务器),输入云主机的IP,并选择从上面创建网域进行跳转,认证选上面创建的特权用户 
8、授权给用户组管理上面创建的资产 
9、测试完成,不要忘记释放云主机和公网IP资源

第一步:购买云主机(购买多台云主机,至少一台主机有公网IP,充当网关服务器 配置ssh 免密钥验证,此步可选)

1、义购买云服务器ECS
付费模式:按量付费
地域及可用区:华北3(张家口) 随机分配
实例规格:共享标准型s6,2cpu,4Gib
购买实例数量:2台
镜像:rocky Linux 8.6  64位
存储:40G
下一步:网络和安全组
创建交换机,选择专有网络,并给交换机起名M50-NET,取消弹性公网IP并确认订单,创建实例

2、控制台-为其中一台ECS实例购买公网地址(弹性IP)
选择某一台实例停止-普通停机
在停机的实例上点击更多-网络和安全组-绑定弹性IP-创建公网IP(公网IP的地域要和实例在一起)
付费模式:按量付费
地域和可用区:华北3(张家口)
按流量收费:200Mbps
购买-确认订单-立即开通
绑定弹性IP

3、实例关机重置实例密码 (此root和密码需在创建jumpserver网关时使用)

第二步:创建网域

1、控制台-资产管理-网域列表-创建
名称:公有云-阿里
提交

2、网关-创建
名称:39.103.226.57-阿里云
ip:39.103.226.57
端口:22
协议:ssh
网域:公有云-阿里
用户名:root
密码:阿里云公网地址实例服务器密码
提交

第三步:创建特权账户(让jumpserver控制和管理阿里云后端服务器)

资产管理-系统用户-特权用户-创建
名称:root-阿里云
用户名:root(阿里云后端服务器的root账号)
密码:(阿里云后端服务器的root密码)
保存

第四步:添加资产(把阿里云上的服务器加进来管理)

资产管理-资产列表-资产树邮件新增-阿里云
主机名:172.30.0.202
IP(域名):172.30.0.202
网域:公有云-阿里
节点:阿里云
提交

第五步:资产授权

权限管理-资产授权-阿里云-创建
名称:开发-阿里云
用户组:dev
资产:172.30.0.202
节点:阿里云
系统用户:devuser (阿里云上没有,会推送过去)
提交

第六步:测试访问
举报

相关推荐

0 条评论