1. JumpServer堡垒机部署实战:v4.10.15安装全记录
最近在给客户部署JumpServer v4.10.15堡垒机时,发现网上很多教程要么版本老旧,要么漏掉了关键配置步骤。作为一款开源的堡垒机系统,JumpServer在权限管理和审计日志方面的表现确实可圈可点,但安装过程对新手来说还是有不少坑要踩。今天我就把从零开始部署的全过程整理出来,重点说明那些官方文档没细讲但实际会影响使用的细节。
先说说为什么选择v4.10.15这个版本——这是目前(2024年)的LTS长期支持版本,相比之前的v3.x系列增加了对Kubernetes资产的支持,Web终端性能提升了约40%,而且修复了SSH隧道连接的几个稳定性问题。对于生产环境来说,这个版本在功能和稳定性之间取得了不错的平衡。
重要提示:部署前请确保服务器满足最低配置要求(4核CPU/8GB内存/100GB磁盘),实测低于此配置在并发连接数超过20时会出现明显卡顿。
1.1 基础环境准备
我的部署环境是CentOS 7.9,这里以最常用的场景为例。首先处理依赖项,很多安装失败都是因为漏掉了这些基础包:
bash复制# 关闭SELinux(必须步骤)
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 安装EPEL源和基础依赖
yum install -y epel-release
yum install -y git wget sqlite-devel xz gcc automake zlib-devel openssl-devel redis
特别注意:如果服务器之前安装过旧版Docker,必须先彻底卸载(yum remove docker*),否则会导致端口冲突。推荐使用官方脚本安装Docker CE:
bash复制curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
1.2 核心组件安装
JumpServer由多个微服务组成,官方提供了all-in-one的安装脚本,但我更推荐分步安装以便排查问题:
- 下载离线安装包(国内服务器建议用这个方式)
bash复制wget https://github.com/jumpserver/installer/releases/download/v4.10.15/jumpserver-offline-installer-v4.10.15-amd64-64.tar.gz
tar -xf jumpserver-offline-installer-v4.10.15-amd64-64.tar.gz
cd jumpserver-offline-installer-v4.10.15
- 修改配置文件
config-example.txt,这几个参数必须正确设置:
ini复制# DB配置(如果用外部MySQL需提前建库)
DB_PASSWORD=StrongPassword@123
# Redis配置(生产环境建议用独立Redis)
REDIS_PASSWORD=Redis@123
# 管理员账号(首次登录用)
ADMIN_PASSWORD=Admin@123
- 执行安装脚本
bash复制./jmsctl.sh install
安装过程大约需要10-20分钟,取决于服务器性能。完成后会输出Web访问地址(默认https://服务器IP),但先别急着登录——还有几个关键配置要做。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 关键配置与调优
2.1 网络与防火墙设置
JumpServer默认使用以下端口:
- 80/443:Web界面
- 2222:SSH网关
- 3306:MySQL(如果使用内置数据库)
- 6379:Redis
建议在防火墙放行这些端口:
bash复制firewall-cmd --permanent --add-port={80,443,2222}/tcp
firewall-cmd --reload
踩坑记录:如果后端有Nginx反代,必须配置
proxy_set_header X-Real-IP $remote_addr;,否则审计日志会记录为127.0.0.1。
2.2 邮件服务配置
很多用户忽略了邮件配置,导致无法接收工单通知和二次验证码。以腾讯企业邮为例:
- 修改
/opt/jumpserver/config/config.txt:
ini复制# SMTP配置
EMAIL_HOST=smtp.exmail.qq.com
EMAIL_PORT=465
EMAIL_HOST_USER=notify@yourdomain.com
EMAIL_HOST_PASSWORD=YourSMTPPassword
EMAIL_USE_SSL=true
DEFAULT_FROM_EMAIL=notify@yourdomain.com
- 重启服务使配置生效:
bash复制./jmsctl.sh restart
测试邮件发送:
bash复制./jmsctl.sh send_test_mail recipient@example.com
2.3 OTP双因素认证配置
JumpServer支持TOTP双因素认证,这也是开头热词中otpauth://totp链接的用途。要启用该功能:
- 在"系统设置"-"安全设置"中开启"启用OTP验证"
- 用户首次登录时会提示用Google Authenticator等APP扫描二维码
- 紧急情况下可通过命令行重置OTP:
bash复制docker exec -it jms_core python /opt/jumpserver/apps/manage.py reset_otp --username=admin
3. 资产管理与连接实战
3.1 添加Linux资产(以Ubuntu为例)
-
在"资产管理"-"资产列表"点击创建
-
填写主机信息时注意:
- 协议组选择
SSH/RDP - 管理账号建议用特权账号(如root)
- 勾选"自动推送系统用户"
- 协议组选择
-
对于Ubuntu系统,需先在目标服务器执行:
bash复制# 允许root登录(临时)
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
systemctl restart sshd
安全提示:资产添加完成后,应立即关闭root远程登录,改用普通账号+sudo方式。
3.2 Windows资产连接问题排查
开头热词提到的"堡垒机远程windows操作系统时提示无法连接远程"是典型问题,解决方法:
-
确保目标Windows已启用远程桌面:
- 运行
gpedit.msc - 定位到"计算机配置"-"管理模板"-"Windows组件"-"远程桌面服务"
- 启用"允许用户通过远程桌面服务远程连接"
- 运行
-
在JumpServer上检查:
- 资产协议选择"RDP"
- 端口是否为3389(或自定义端口)
- 网络可达性(可用telnet测试)
-
如果使用本地mstsc能连但JumpServer不行,通常是NLA(网络级别认证)问题:
- 在Windows注册表添加:
reg复制[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "DisableRestrictedAdmin"=dword:00000000
- 在Windows注册表添加:
3.3 创建同权限账号
对于热词中"如何创建一个和当前用户同权限的另外一个账号"的需求:
- 在"权限管理"-"资产授权"找到原用户的授权规则
- 点击克隆,修改名称和用户即可
- 或者通过命令行批量操作:
bash复制# 导出原授权
./jmsctl.sh export_perms > perms.json
# 修改json文件中的用户名
vi perms.json
# 导入新授权
./jmsctl.sh import_perms < perms.json
4. 日常维护与问题排查
4.1 常见错误解决方案
-
Web终端无法连接:
- 检查Core容器日志:
docker logs jms_core -f - 常见原因是Redis连接失败,检查
config.txt中的REDIS配置
- 检查Core容器日志:
-
会话录像无法播放:
bash复制# 重建录像索引 docker exec -it jms_core python /opt/jumpserver/apps/manage.py rebuild_asset_session -
忘记管理员密码:
bash复制docker exec -it jms_core python /opt/jumpserver/apps/manage.py changepassword admin
4.2 备份与迁移
生产环境必须定期备份:
bash复制# 完整备份(包括数据库、配置、会话录像)
./jmsctl.sh backup
# 恢复备份
./jmsctl.sh restore /opt/jumpserver/backup/backup-2024-06-01.tar.gz
迁移到新服务器时,需注意:
- 保持Docker版本一致
- 检查
/opt/jumpserver/data目录权限 - 如果IP变化,要更新
config.txt中的SERVER_HOST
4.3 性能调优建议
当用户数超过100时,建议:
- 数据库迁移到外部MySQL集群
- 使用独立Redis服务器
- 调整Docker资源限制:
bash复制docker update --cpus 4 --memory 8G jms_core
对于Web终端卡顿问题,可以:
- 在"系统设置"-"终端设置"中调大
TERMINAL_HEARTBEAT_INTERVAL - 启用SSH压缩:在资产协议组添加
-C参数
5. 安全加固措施
- 定期更换密钥:
bash复制# 重新生成加密密钥
docker exec -it jms_core python /opt/jumpserver/apps/manage.py generate_secret_key
# 更新到config.txt的SECRET_KEY项
vi /opt/jumpserver/config/config.txt
-
审计日志监控:
- 在"审计"-"操作日志"中关注敏感操作
- 设置邮件告警规则(如root登录、授权变更)
-
HTTPS强化配置:
修改Nginx配置增加安全头:nginx复制add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block";
经过以上步骤,一个生产可用的JumpServer堡垒机就部署完成了。实际使用中我发现v4.10.15对Kubernetes的支持确实比之前版本稳定很多,Web终端的文件传输速度也明显提升。如果遇到会话中断问题,可以尝试在"系统设置"-"终端设置"中将"REUSE_CONNECTION"设为True,这在我管理的多个客户环境中有效降低了连接丢失概率。
