Ubuntu 22.04部署JumpServer堡垒机全攻略 📅 2026/7/22 6:17:50 1. 项目概述最近在给公司搭建一套符合等保要求的堡垒机系统最终选择了开源的JumpServer作为解决方案。JumpServer作为一款广受欢迎的开源堡垒机提供了资产管理和审计功能特别适合中小型企业使用。这次我选择在Ubuntu 22.04 LTS系统上进行部署主要考虑到22.04版本提供了5年的长期支持系统稳定性有保障。Ubuntu 22.04作为最新的LTS版本默认搭载了Python 3.10和更新的系统库这对JumpServer的运行环境非常友好。相比之前的20.04版本22.04在安全性和性能上都有明显提升特别是对现代硬件的支持更好。选择在线安装方式可以确保获取到最新的软件包和依赖关系避免手动安装可能遇到的版本冲突问题。2. 环境准备2.1 系统要求检查在开始安装前我们需要确保系统满足JumpServer的基本运行要求操作系统Ubuntu 22.04 LTS64位CPU至少4核推荐8核以上内存至少8GB推荐16GB磁盘空间至少50GB推荐100GB以上网络稳定的互联网连接可以通过以下命令检查系统资源# 查看系统版本 lsb_release -a # 查看CPU信息 lscpu # 查看内存情况 free -h # 查看磁盘空间 df -h2.2 系统更新与基础配置首先更新系统软件包到最新版本sudo apt update sudo apt upgrade -y安装一些基础工具这些工具在后续安装和排错中会很有用sudo apt install -y curl wget vim git net-tools2.3 防火墙配置Ubuntu 22.04默认使用ufw防火墙我们需要开放JumpServer所需的端口sudo ufw allow 22/tcp # SSH端口 sudo ufw allow 80/tcp # HTTP端口 sudo ufw allow 443/tcp # HTTPS端口 sudo ufw enable注意如果服务器位于内网环境可以考虑关闭防火墙或根据实际网络环境调整规则。生产环境建议保持防火墙开启并严格限制访问IP。3. 依赖环境安装3.1 Python环境配置JumpServer基于Python开发我们需要确保系统有合适的Python环境# 检查Python版本 python3 --version # 安装Python开发工具和pip sudo apt install -y python3-dev python3-pip python3-venv3.2 数据库安装MySQLJumpServer支持多种数据库这里我们选择MySQL作为后端数据库sudo apt install -y mysql-server mysql-client安装完成后进行安全配置sudo mysql_secure_installation按照提示设置root密码并移除测试数据库和匿名用户等不安全配置。创建JumpServer专用的数据库和用户sudo mysql -u root -p # 在MySQL命令行中执行 CREATE DATABASE jumpserver DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER jumpserverlocalhost IDENTIFIED BY StrongPassword123; GRANT ALL PRIVILEGES ON jumpserver.* TO jumpserverlocalhost; FLUSH PRIVILEGES; exit提示请将StrongPassword123替换为实际的强密码并妥善保存。3.3 Redis安装JumpServer使用Redis作为缓存和消息队列sudo apt install -y redis-server检查Redis服务状态sudo systemctl status redis4. JumpServer安装与配置4.1 下载安装脚本JumpServer官方提供了便捷的在线安装脚本wget https://github.com/jumpserver/jumpserver/releases/download/v3.10.21/quick_start.sh chmod x quick_start.sh4.2 运行安装脚本执行安装脚本前建议先创建一个安装配置文件cat config.txt EOF # JumpServer配置 DB_HOSTlocalhost DB_PORT3306 DB_NAMEjumpserver DB_USERjumpserver DB_PASSWORDStrongPassword123 # Redis配置 REDIS_HOSTlocalhost REDIS_PORT6379 REDIS_PASSWORD # 管理员账户 ADMIN_USERNAMEadmin ADMIN_PASSWORDAdmin123 ADMIN_EMAILadminexample.com # 其他配置 SECRET_KEY$(openssl rand -hex 16) BOOTSTRAP_TOKEN$(openssl rand -hex 16) EOF然后运行安装脚本sudo ./quick_start.sh --config config.txt安装过程会自动下载所需组件并完成基础配置整个过程大约需要10-30分钟取决于网络速度。4.3 服务启动与验证安装完成后启动JumpServer服务sudo systemctl start jms_all设置开机自启sudo systemctl enable jms_all检查服务状态sudo systemctl status jms_all如果一切正常现在可以通过浏览器访问JumpServer了地址http://服务器IP用户名admin或config.txt中配置的用户名密码Admin123或config.txt中配置的密码5. 安全加固与优化5.1 HTTPS配置生产环境强烈建议启用HTTPS可以使用Lets Encrypt免费证书sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com5.2 定期备份配置创建备份脚本cat /usr/local/bin/backup_jumpserver.sh EOF #!/bin/bash BACKUP_DIR/var/backups/jumpserver DATE$(date %Y%m%d) mkdir -p $BACKUP_DIR/$DATE # 备份数据库 mysqldump -u jumpserver -pStrongPassword123 jumpserver $BACKUP_DIR/$DATE/jumpserver_db.sql # 备份配置文件 cp -r /opt/jumpserver/config $BACKUP_DIR/$DATE/ cp -r /opt/jumpserver/data $BACKUP_DIR/$DATE/ # 压缩备份 tar -czf $BACKUP_DIR/jumpserver_backup_$DATE.tar.gz $BACKUP_DIR/$DATE # 删除临时文件 rm -rf $BACKUP_DIR/$DATE # 保留最近7天备份 find $BACKUP_DIR -name jumpserver_backup_*.tar.gz -type f -mtime 7 -delete EOF chmod x /usr/local/bin/backup_jumpserver.sh添加到cron定时任务(crontab -l 2/dev/null; echo 0 2 * * * /usr/local/bin/backup_jumpserver.sh) | crontab -5.3 性能优化调整Nginx配置以提高性能sudo vim /etc/nginx/conf.d/jumpserver.conf在server块中添加以下优化参数client_max_body_size 100m; client_body_buffer_size 1m; keepalive_timeout 65; gzip on; gzip_min_length 1k; gzip_comp_level 4; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xmlrss text/javascript;然后重启Nginxsudo systemctl restart nginx6. 常见问题排查6.1 安装过程中断如果安装过程中断可以尝试以下步骤清理部分安装的文件sudo rm -rf /opt/jumpserver sudo rm -rf /etc/nginx/conf.d/jumpserver.conf检查并修复依赖关系sudo apt --fix-broken install重新运行安装脚本6.2 无法访问Web界面如果安装完成后无法访问Web界面检查服务是否正常运行sudo systemctl status jms_all检查端口是否监听sudo netstat -tulnp | grep -E 80|443检查防火墙设置sudo ufw status6.3 数据库连接问题如果遇到数据库连接错误检查MySQL服务状态sudo systemctl status mysql验证数据库用户权限mysql -u jumpserver -p -e SHOW GRANTS FOR jumpserverlocalhost检查JumpServer配置文件中的数据库连接信息grep -A5 DATABASE /opt/jumpserver/config/config.txt7. 高级配置与扩展7.1 对接LDAP/AD认证JumpServer支持与企业现有的LDAP或Active Directory集成登录JumpServer管理后台进入系统设置-LDAP设置填写LDAP服务器信息、基础DN、绑定DN和密码配置用户映射规则测试连接并保存7.2 配置邮件通知配置SMTP服务以启用邮件通知功能进入系统设置-邮件设置填写SMTP服务器、端口、用户名和密码设置发件人地址测试邮件发送保存配置7.3 多节点部署对于大规模部署可以考虑将JumpServer的不同组件部署在多台服务器上Core服务核心逻辑处理Web服务前端界面和APIMySQL数据库单独部署在高性能服务器上Redis缓存单独部署KoKo服务SSH代理服务Guacamole服务RDP/VNC代理服务这种分布式架构可以通过修改配置文件中的服务地址来实现组件间的通信。8. 日常维护与管理8.1 版本升级JumpServer团队会定期发布新版本升级步骤如下备份当前系统和数据库查看官方升级文档了解版本变更和注意事项下载新版安装包或使用官方升级脚本执行升级命令检查服务是否正常启动验证各项功能是否正常8.2 日志分析JumpServer的日志文件位于以下位置核心服务日志/opt/jumpserver/logs/Nginx访问日志/var/log/nginx/access.logNginx错误日志/var/log/nginx/error.logMySQL日志/var/log/mysql/error.log可以使用以下命令查看实时日志# 查看核心服务日志 tail -f /opt/jumpserver/logs/jumpserver.log # 查看Nginx访问日志 tail -f /var/log/nginx/access.log8.3 性能监控建议部署监控系统来跟踪JumpServer的性能指标系统资源监控CPU、内存、磁盘IO、网络服务监控Nginx、MySQL、Redis、JumpServer各组件业务指标监控并发会话数、命令执行次数、文件传输量等可以使用PrometheusGrafana搭建监控系统或者使用JumpServer自带的监控功能。9. 实际使用经验分享在实际部署和使用JumpServer的过程中我总结了以下几点经验权限设计JumpServer的权限系统非常灵活但也比较复杂。建议先设计好清晰的权限结构包括用户组、资产组和系统角色的对应关系。一开始不要设置太复杂的权限随着使用逐步细化。会话审计JumpServer的会话审计功能非常强大但会占用大量存储空间。建议配置自动清理策略或者将会话录像存储到专门的存储系统中。性能调优对于用户量较大的环境需要特别注意MySQL和Redis的性能调优。可以考虑增加Redis内存、优化MySQL查询、添加适当的索引等。多因素认证强烈建议启用多因素认证(MFA)可以大大提高系统安全性。JumpServer支持TOTP、短信、邮件等多种二次验证方式。定期演练定期测试备份恢复流程确保在真正需要时能够快速恢复系统。同时也要测试灾难恢复方案确保业务连续性。文档建设为终端用户编写简明扼要的使用指南特别是针对常见操作如登录方式切换、文件传输等。这可以大大减少支持工作量。