JumpServer 堡垒机部署全攻略:从环境准备到实战验证
在企业 IT 运维中,堡垒机作为 “运维入口守门人”,承担着权限管控、操作审计、风险预警等关键职责。JumpServer 作为国内开源堡垒机的标杆产品,凭借其丰富的功能、友好的 Web 界面和灵活的扩展性,成为众多企业的首选。本文将以CentOS 7.x 操作系统为例,带大家一步步完成 JumpServer 堡垒机的部署与初始化,从环境准备到功能验证,全程干货无套路。
一、部署前必看:环境准备与规划
在开始部署前,需确保服务器满足基础硬件要求,并完成操作系统的初始化配置,避免后续因环境问题导致部署失败。
1.1 硬件配置要求
JumpServer 对硬件资源的需求会随管理资产数量增长而增加,推荐基础配置如下:
- CPU:2 核及以上(管理 100 台以内资产推荐 4 核)
- 内存:4GB 及以上(管理 100 台以内资产推荐 8GB,避免因内存不足导致服务卡顿)
- 硬盘:50GB 及以上(建议使用 SSD,存储审计日志和操作录像需预留更多空间)
- 网络:服务器需能访问互联网(用于下载依赖包和 Docker 镜像),同时确保堡垒机与被管理资产(如 Linux、Windows 服务器)网络互通
1.2 操作系统初始化
以 CentOS 7.x 为例,需完成以下基础配置:
- 关闭防火墙与 SELinux(生产环境可按需开放端口,此处为简化部署暂时关闭)
| # 关闭防火墙并设置开机不启动 systemctl stop firewalld systemctl disable firewalld # 临时关闭SELinux setenforce 0 # 永久关闭SELinux(需重启生效) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
- 配置国内 YUM 源(加速依赖包下载,避免官方源超时)
| # 备份默认YUM源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 下载阿里云YUM源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理并生成缓存 yum clean all && yum makecache |
- 安装基础依赖工具
| yum install -y wget curl vim net-tools git |
二、核心组件安装:Docker 与 Docker Compose
JumpServer 官方推荐使用 Docker 容器化部署,无需手动配置复杂的依赖(如 Python、MySQL、Redis),只需安装 Docker 和 Docker Compose 即可快速启动服务。
2.1 安装 Docker
- 卸载系统中旧版本的 Docker(若存在)
| yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine |
- 安装 Docker 依赖包
| yum install -y yum-utils device-mapper-persistent-data lvm2 |
- 配置 Docker 阿里云镜像源
| yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
- 安装并启动 Docker
| # 安装Docker CE(社区版) yum install -y docker-ce docker-ce-cli containerd.io # 启动Docker并设置开机自启 systemctl start docker systemctl enable docker # 验证Docker是否安装成功(出现版本信息即正常) docker --version |
2.2 安装 Docker Compose
Docker Compose 用于编排多个 Docker 容器(如 JumpServer 主服务、MySQL、Redis、Web 终端等),简化多容器管理流程。
| curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
- 赋予执行权限并验证
| # 赋予执行权限 chmod +x /usr/local/bin/docker-compose # 验证安装(出现版本信息即正常) docker-compose --version |
三、JumpServer 部署:一键启动所有服务
JumpServer 官方提供了jmsctl.sh脚本,支持一键下载配置文件、拉取镜像并启动服务,极大简化部署流程。
3.1 下载 JumpServer 配置文件
- 创建 JumpServer 安装目录并进入
| mkdir -p /opt/jumpserver && cd /opt/jumpserver |
- 下载官方部署脚本和配置文件
| curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v3.10.1/quick_start.sh | bash |
3.2 启动 JumpServer 服务
- 进入compose目录(脚本会自动生成该目录,包含 Docker Compose 配置文件)
| cd /opt/jumpserver/compose |
- 启动所有服务(首次启动会拉取镜像,耗时取决于网络速度,耐心等待
| ./jmsctl.sh start |
- 验证服务状态(出现Up状态即正常运行)
| ./jmsctl.sh status |
正常输出应包含以下容器(状态均为Up):
-
- jumpserver_core:JumpServer 核心服务
- jumpserver_web:Web 前端服务
- jumpserver_mysql:MySQL 数据库
- jumpserver_redis:Redis 缓存
- jumpserver_guacamole:远程桌面(RDP/VNC)服务
四、初始化配置:访问与基础设置
服务启动后,需通过 Web 界面完成初始化配置,包括管理员密码设置、组织创建、资产添加等。
4.1 访问 JumpServer Web 界面
- 打开浏览器,输入地址:http://服务器IP:80(默认端口为 80,若需修改可编辑/opt/jumpserver/compose/config.yml文件)
- 首次访问会进入 “初始化管理员账号” 页面,设置管理员密码(默认用户名为admin,建议设置复杂密码,如包含大小写字母、数字和特殊符号)
- 密码设置完成后,登录系统,进入 JumpServer 主界面
4.2 基础配置步骤
步骤 1:创建组织(可选,适用于多部门场景)
- 点击左侧菜单【组织管理】→【组织】→【创建】
- 输入组织名称(如 “技术部”“运维部”),点击【提交】
步骤 2:创建系统用户(用于登录被管理资产的账号)
系统用户是 JumpServer 用于登录目标资产的 “桥梁”,需提前在目标资产中创建对应账号。
- 点击左侧菜单【资产管理】→【系统用户】→【创建】
- 选择操作系统类型(如 “Linux”“Windows”)
- 输入系统用户名(如jumpserver,需与目标资产中的账号一致)
- 选择认证方式(推荐 “密码”,输入目标资产中对应账号的密码)
- 点击【提交】
步骤 3:添加被管理资产
以添加 Linux 服务器为例:
- 点击左侧菜单【资产管理】→【资产列表】→【创建】
- 输入资产名称(如 “Linux-Web-01”)
- 输入资产 IP 地址(目标服务器的内网 / 外网 IP,确保堡垒机能 ping 通)
- 选择资产归属组织(如 “技术部”)
- 选择刚才创建的系统用户(如 “Linux-jumpserver”)
- 点击【提交】
步骤 4:验证资产连接
- 点击左侧菜单【Web 终端】
- 在资产列表中找到刚才添加的资产,点击资产名称
- 若连接成功,会进入 Linux 终端界面,可执行ls、pwd等命令测试
五、功能验证与常见问题解决
部署完成后,需验证核心功能是否正常,并了解常见问题的排查方法。
5.1 核心功能验证
- Web 终端连接:如上文所述,确保能正常登录资产并执行命令
- 文件传输:在 Web 终端界面,点击顶部菜单栏【文件】,尝试上传 / 下载文件,验证文件传输功能
- 操作审计:执行一些命令(如touch test.txt),然后点击左侧菜单【审计管理】→【操作日志】,查看是否能记录命令执行记录
- 录像回放:在【审计管理】→【会话记录】中,找到刚才的终端会话,点击【回放】,验证操作录像是否正常生成
5.2 常见问题与解决方案
问题 1:Docker 拉取镜像超时
- 原因:默认 Docker 镜像源为国外,网络不稳定
- 解决方案:配置 Docker 国内镜像源(如阿里云)
| # 创建Docker daemon配置文件 mkdir -p /etc/docker cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } EOF # 重启Docker服务 systemctl daemon-reload && systemctl restart docker |
说明:https://xxxxxx.mirror.aliyuncs.com需替换为自己的阿里云镜像加速器地址(可登录阿里云控制台,在 “容器镜像服务” 中获取)。
问题 2:Web 界面无法访问
- 排查步骤:
- 检查 Docker 服务是否正常运行:systemctl status docker
- 检查 JumpServer 容器是否正常:./jmsctl.sh status(确保所有容器为Up状态)
- 检查服务器端口是否开放:netstat -tuln | grep 80(确保 80 端口被监听)
- 若端口被占用,可修改/opt/jumpserver/compose/config.yml中的HTTP_PORT参数(如改为 8080),然后重启服务:./jmsctl.sh restart
问题 3:资产连接失败
- 排查步骤:
- 检查堡垒机与目标资产的网络连通性:在堡垒机服务器上执行ping 目标资产IP
- 检查目标资产的 SSH 服务是否正常(Linux):telnet 目标资产IP 22
- 检查系统用户的账号密码是否正确(与目标资产中的账号密码一致)
- 检查目标资产是否禁止 root 登录(若系统用户为 root,需确保/etc/ssh/sshd_config中PermitRootLogin设置为yes,并重启 SSH 服务:systemctl restart sshd)
六、生产环境优化建议
若将 JumpServer 用于生产环境,需进行以下优化,提升安全性和稳定性:
- 修改默认端口:将 Web 服务端口(默认 80)和 SSH 端口(默认 2222)修改为非标准端口,降低被扫描风险
- 启用 HTTPS:通过 Nginx 反向代理或直接配置 JumpServer 的 HTTPS 证书,避免明文传输
- 数据备份:定期备份 MySQL 数据库(JumpServer 配置和审计日志存储在 MySQL 中),可使用mysqldump命令或 Docker Compose 的备份脚本
- 权限最小化:为不同运维人员创建不同角色(如 “普通运维”“审计员”),避免过度授权
- 日志存储:若审计日志量较大,可将日志导出到 ELK 等日志分析平台,便于长期存储和查询
总结
本文从环境准备、核心组件安装、JumpServer 部署、初始化配置到功能验证,完整覆盖了 JumpServer 堡垒机的部署流程。通过 Docker 容器化部署,不仅简化了依赖管理,还能快速实现服务的启停和版本升级。在实际应用中,需结合企业的运维场景,进一步优化权限配置和安全策略,让 JumpServer 真正成为企业 IT 运维的 “安全守门人”。
如果在部署过程中遇到其他问题,可参考JumpServer 官方文档或在官方 GitHub 的 Issues 中搜索解决方案,也欢迎在评论区留言交流!
(注:文档部分内容可能由 AI 生成)

JumpServer堡垒机部署指南
2701

被折叠的 条评论
为什么被折叠?



