JumpServer开源堡垒机的部署与数据迁移
JumpServer开源堡垒机的部署与数据迁移
更多详情内容可以查看官方文档
环境准备
安装依赖包
1 | apt-get update |
安装MySQL数据库
首先下载官方的最新的 APT 源
1 | wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb |
安装后会让你配置MySQL的版本, 按需选择最新的 LTS 版本或者集群版本即可
然后更新 APT 源, 查看 MySQL 版本
1 | apt update |
安装最新的 MySQL8.4
1 | apt install mysql-server |
新建 Jumpserver 数据库
1 | mysql -u root -p |
安装Redis缓存
添加 APT 源, 更新源, 然后安装
1 | apt-get install lsb-release curl gpg |
安装部署Jumpserver
在官网下载最新版的安装包
1 | cd /opt |
!!! 注意
安装的过程中有个非常迷惑的点, 不管是 MySQL 还是 Redis 均不能使用127.0.0.1
或loclhost
地址, 如果使用本地地址会出现无法连接的异常
所以在配置地址的时候需要使用内网地址, 例如10.20.7.21
解决 Jumpserver 无法登录本地数据库的方案
MySQL 的解决方案
1
2
3
4
5
6
7
8
9
10
11
12
13# 首先修改my.cnf, 让数据库允许所有IP连接
vim my.cnf
[mysqld]
bind-address=0.0.0.0
# 修改完成后重启
systemctl restart mysql
# 然后登入数据库, 刷新用户的登录权限
mysql -u root -p
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;Redis 的解决方案
1
2
3
4
5
6
7# 修改Redis的安全配置, 允许所有IP访问和关闭保护模式
vim /etc/redis/redis.conf
bind 0.0.0.0
protected-mode no
# 修改完成后重启
systemctl restart redis
然后在安装的过程中使用内网地址即可解决连接问题
jumpserver 部署完成后, 默认登陆端口是 80, 默认账号密码是 admin / ChangeMe
Jumpserver常用命令和配置
安装完成后 JumpServer 配置文件路径为 /opt/jumpserver/config/config.txt
1 | cd jumpserver-ce-v4.4.1-x86_64 |
数据迁移
根据官方文档和网上的迁移教程来看, 迁移过程中需要保证数据库版本、SECRET_KEY
等配置一致
本次新部署使用了最新版本的 Jumpserver, 数据库等也升级到了最新的 MySQL 8.4 / Redis 7, 相关的密钥为了安全也全部更换了, 可以说是寄的彻底, 靠备份和还原数据库的方式来迁移数据可以预估会有一大堆难以解决的奇怪Bug
就在查阅文档的时候, 我看到了官方的通过表格批量创建更新 JumpServer 资产授权和用户信息这篇文档
文档注明, 在资产列表页面可以通过上传/下载 CSV 或者 XLSX 表格的方式实现批量备份、创建、更新资产信息
页面还提供了空表格模板, 可以先创建一些测试的资产条目, 结合导出的模板内容和旧的跳板机上导出的内容, 对表格格式稍作修改, 最后顺利导入到新的 Jumpserver 中
资产安全配置
资产管理
在资产列表 -> 资产树中, 通过不同的子节点对资产进行分类管理
然后就可以在授权管理 -> 资产授权中将子节点授权给特定用户或用户组
用户管理
堡垒机的账号分为3类角色, 系统管理员、审计员、用户/其他自定义角色, 通常情况下, 管理员为运维工程师/安全工程师, 审计员为安全工程师, 用户为需要访问堡垒机纳管的资源的员工
不同角色登入堡垒机后的权限不同, 显示的工作空间面板也因此有差异
用户与用户组
在用户管理的用户列表/用户组中可以分别创建用户/用户组
便于在资产管理中根据具体的用户/用户组进行授权
账号管理
这个账号管实际上管理的是服务器资产上面的用户, 例如 Linux 服务器的 root 用户, Windows Server 服务器上的 Administrator 用户
jumpserver 会用这个用户去创建连接实例、查看服务器信息等操作, 所以用户的权限需要比较大
jumpserver 还会用这个用户去帮你在服务器上面创建其他系统用户, 所以这个用户必须要预先在服务器上面创建好
添加限制IP
在安全设置 -> 登录限制中, 配置限制用户和IP登录失败次数以及登录间隔, 防止爆破攻击
同时开启IP白名单和黑名单, 为12F的局域网设置白名单, 其他IP全拒绝
添加限制命令
配置命令组和命令过滤, 阻止用户修改 sshd_config 配置、使用 passwd 等敏感命令
收尾
同样, 为部署了堡垒机的 Linux 服务器开启 SSHD 登录 IP 白名单模式, 开启防火墙等安全措施
1 | vim /etc/ssh/sshd_config |