一、堡垒机简介
先说工具:JumpServer,开源堡垒机,官网 https://www.jumpserver.org/
堡垒机分两类:网关型和运维审计型。

堡垒机的作用,说白了就是防止员工删库跑路(不跑路也行,嘻嘻狗头.JPG)。
它类似于电脑和公司服务器之间的一个"管理者":你先访问堡垒机(或者通过公司 VPN 访问内网), 管理员给每个运维人员配一个账号,登录后只有被限制过的权限——比如只能控制数据库, 其他服务器碰不了。
这时候你下达的指令,其实是堡垒机替你访问的:
数据库 ←→ 堡垒机 ←→ 主机

它解决了不少问题:
- 运维人员不用记那么多服务器的密码
- 追责简单——堡垒机会录视频,上传、下载这些操作都会记录
- 还能禁用一些命令
二、JumpServer 配置
大多数情况都是官网离线安装,下载后进 Ubuntu 操作。
- 先看 IP(云服务器或虚拟机的),待会要远程连接
systemctl status sshd看 ssh 服务开没开- 一般需要 root 权限
- 上传压缩包用
rz(前提是装过yum -y install lrzsz),选中即可。
但一般没有直接拖进去快。如果都不行,可以先传到 /tmp,再解压到 /opt (用 /opt 是因为规范)
- 关于乱码:上传大文件都可能这样,可以多回车、重启会话、
或者用 rz -a 让界面正常了再传一次
补充:rz 本身就是 ASCII 格式上传,但有时候还是要手动勾选 ASCII 格式上传。
传完之后直接看官方文档就行:JumpServer 官方安装指南
安装完直接访问主机 IP,会自动跳转到堡垒机登录界面。
# 从飞致云社区下载最新的 linux/amd64 离线包,上传到 /opt 目录
cd /opt
tar -xf jumpserver-ce-v4.10.16-x86_64.tar.gz
cd jumpserver-ce-v4.10.16-x86_64
# 根据需要修改配置文件模板,不清楚用途可以跳过
cat config-example.txt
配置文件里几个关键项:
VOLUME_DIR=/data/jumpserver
DOCKER_SUBNET=192.168.250.0/24
DB_ENGINE=postgresql
DB_HOST=postgresql
DB_PORT=5432
DB_NAME=jumpserver
REDIS_HOST=redis
REDIS_PORT=6379
HTTP_PORT=80
TZ=Asia/Shanghai
安装和启停:
# 安装
./jmsctl.sh install
# 启动
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸载
./jmsctl.sh uninstall
# 帮助
./jmsctl.sh -h
安装完成后,配置文件路径是:/opt/jumpserver/config/config.txt
访问方式:
地址: http://<JumpServer服务器IP地址>:<服务运行端口>
用户名: admin
密码: ChangeMe
三、用户管理
分两块:用户列表和用户组。
用户列表其实就是常见的后台管理界面,没什么值得记的,说几个概念:
- MFA:二次认证(比如登上去之后还要做人脸识别)
- 来源:选择配置好的一些 API 接口(比如 OAuth 就是自动登录)。
目前社区版只有数据库、LDAP/AD、CAS——这些暂时不知道什么意思,也许以后会了解到
- 系统角色:
- 系统管理员:就是正在操作的人
- 系统审计员:事故之后回看 JumpServer 录制回放和日志的
- 用户:普通权限
- 管理员能看到控制台、审计台、工作台,其余两个顾名思义
- 还有一个 PAM,暂时不知道什么意思
- 批量创建:用户列表界面可以导入、下载模板(CSV / XLSX)
XLSX 用起来更直观(有表格、颜色、公式),CSV 就是纯文本逗号分隔。 用 XLSX 演示几个关键字段:
- 系统角色:
["系统管理员(00000000-0000-0000-0000-000000000001)"]
—— 如果添加其他用户,1 改成 2 就是审计,改成 3 就是普通用户,记得职称也改一下
- 相同字段直接复制 + 下拉粘贴就行(批量)
- 可以把已设置的账号导出
用户组就是给用户分组,没什么可说的。
四、资产管理(重要)
主要看资产列表和网域列表。
- 添加资产需要 IP,节点默认即可,RDP 协议即可,端口号可以改,其他按具体情况填。
⚠️ 添加 Linux 资产时,选择的服务要装好,否则没用——其实正常的 ssh 对 Linux 就够了。 这些只是添加主机,其他资产自己玩一下就懂了
- 这时候就可以在账号管理里添加账号了。
假设某个账号只能管指定资产,就不要多勾选其他资产,不然账号无法登入 (比如给 MySQL 的运维人员同时加了 MySQL 和 Linux 资产,这个人就登不进去了)。 用户名要填登录指定资产的那个账号

关于 Windows 账号: 在被远程主机(下面叫"原机")的 cmd 里输入 net user 可以看到所有账号(超级管理员、来宾用户 Guest)。
必须设置密码,否则无法登入——没有账号密码肯定登录不了。 也就是说用户名和密码必须都对应原机的,账号选择默认的"激活"即可。
我这里的 Win11 不太好操作,限制比较多,等以后弄个虚拟的 Win7 玩玩。
添加 Linux 和其他资产的账号原理相同,按具体需求改就行。
添加完之后,需要打开对应资产的服务:
- Linux:打开 / 安装 ssh 服务并
start - MySQL:开启远程登录
- Windows:打开 RDP 服务
对于 Windows,win + x 搜索"远程"就能看到允许远程访问计算机之类的选项, Win10/11 就搜"远程桌面",找到后开启即可。家庭版不能开启。
MySQL 则需要先连上,再输入开启命令(一般直接网上搜,注意看时间,新版语法可能变了)。


最后一步:授权。
资产是在资产池里的,需要分配出去用户才能登录。 授权管理 → 资产授权,添加好即可:用户组可以不写,节点默认, 账号勾选指定账号,然后选指定的员工 JumpServer 用户名,其他限制按需求定,提交。
到这里员工就能远程操作了。
⚠️ 注意:原机登录可能会把远程挤下线,毕竟用的是同一个账号。
管理员远程就不用这么麻烦:直接把资产授权给自己,右上角进 Web 终端, 选择资产,默认填入账号,直接开用。
五、命令过滤
授权管理 → 命令过滤。
就是通过堡垒机过滤一些命令,禁止运维人员执行,比如:
- 禁掉
etc作为关键词,防止看密码 - 禁掉
rm等等
具体设置到操作界面看看就知道了。内网是精细化管理的,分得很详细, 这个可能没法练习,只能先看看。
💡 最先执行的优先级就是 1。
当然也支持正则表达式,这个暂时不想了解,先记着。

六、控制台收尾 & 审计台
这部分可以直接看官方文档:JumpServer 离线安装
网域列表
资产管理 → 网域列表。
官方解释:网域是资产所在的位置,可以是机房、公有云或者 VPC。 网域中可以设置网关,当网络不能直达的时候,可以用网关跳转登录到资产。
实际上用得不多,一般应用于复杂的环境。
审计台(记录超详细)
- 仪表盘:记录了部分操作
- 会话记录:可以看到谁远程过,分在线会话和历史会话。
在线就能回放视频(跟网速有关)
- 命令记录:一旦操作触发了命令过滤的规则,就会被标记为危险(没危险的也会记录)
- 操作日志:用户在 JumpServer 的操作
- 改密日志:改了 JumpServer 账号密码就会记录
- 作业日志:对应记录了控制台 → 控制中心 → 在线列表的记录
JumpServer 还更新了部分新功能点,自己看吧。
七、工作台
没什么特别值得说明的,就是干活的地方。
能看管理的资产、操作终端、管理文件、设置定时命令(比如定时备份, 比 Linux 自带的定时任务方便)。
八、邮件服务配置
右上角的设置里可以进一步设置堡垒机的规则:
- 比如访问堡垒机的 URL——有外网域名就能改,更方便
- 公告:登录就会弹出
配置邮箱 SMTP
- 申请邮箱的 SMTP 服务
- 邮件设置 → 邮件服务器设置,来编辑这个
- 需要的东西界面里都有。用 QQ 邮箱举例:
- 登录 QQ 邮箱,在 设置 → 账户 → SMTP
- 打开 POP3/SMTP 和 IMAP/SMTP 两个服务
- 生成授权码,待会在堡垒机配置里要填这个授权码
(如果之前生成过,就去 QQ 邮件记录里找)
- SMTP 主机写
smtp.qq.com,端口 465,
SMTP 账号写 QQ 邮箱,密码填授权码,一般开的是 SSL 服务
- 邮件服务器到这里就设置完了
测试
在邮件设置功能里填写测试收件人,测试邮箱收到了就说明配置成功。
然后回到控制台创建账号,用邮件服务通知用户——这个功能很方便: 员工收到邮件可以自己设置密码。
⚠️ 但是如果堡垒机不在公网,跳转就会出错。
一般都是用公司的 VPN,要么就配一个公网能正常访问的域名。
还有部分功能、设置可以自己按官方文档查看学习。
九、堡垒机重置密码
root@VM-0-12-ubuntu:~# docker exec -it jms_core bash
root@jms_core:/opt/jumpserver# jmsctl reset-admin-password
bash: jmsctl: command not found
root@jms_core:/opt/jumpserver# cd /opt/jumpserver/apps
root@jms_core:/opt/jumpserver/apps# python manage.py changepassword admin
Changing password for user 'Administrator(admin)'
Password:
Password (again):
Password changed successfully for user 'Administrator(admin)'
⚠️ 账号被锁定的话,不要重复登录 —— 会一直刷新锁定时间。