当前位置:首页 > 工具 > 正文内容

Jumpserver堡垒机部署与使用详解

访客 工具 2026年7月18日 1

跳板机与堡垒机的基本概念

跳板机是一种用于集中访问内部资源的中间服务器,运维人员需先登录跳板机,再通过其连接目标设备。虽然实现了初步的访问集中化,但缺乏行为审计和权限控制机制,一旦跳板机被攻破,整个内网将暴露于风险之中。

相比之下,堡垒机不仅提供访问入口,还集成了身份认证、权限管理、操作审计等功能。它能够记录所有用户的操作行为,支持命令级审计和会话回放,显著提升了运维安全性和可追溯性,是现代企业IT安全管理的重要组成部分。

Jumpserver 简介

Jumpserver 是一款开源的自动化运维与安全审计平台,采用 Python Django 框架开发,支持多用户、多权限模型。作为国产化程度高、文档完善的堡垒机解决方案,广泛应用于中大型企业的 IT 运维场景。

系统由三大核心组件构成:

  • Jumpserver:主服务模块,负责用户管理、资产授权、日志审计等核心功能,提供 RESTful API 接口。
  • Coco:SSH 和 Web 终端服务组件,基于 Paramiko 实现 SSH 协议支持,处理终端会话请求。
  • Luna:前端界面项目,提供 Web Terminal 的静态资源,与后端完全解耦,便于前后端独立部署与升级。

实验环境准备

本示例使用以下两台主机:

  • youxi1(192.168.1.6):部署 Jumpserver、Coco 和 Luna 组件
  • youxi2(192.168.1.7):作为被管理的目标服务器

所需安装包可通过以下地址获取:

部署 Jumpserver 主服务

为确保中文日志正常显示,首先设置系统语言环境:

localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf

安装编译依赖库:

yum -y install sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release unzip

编译安装 Python 3.6:

tar xf Python-3.6.1.tar.xz
cd Python-3.6.1
./configure && make -j2 && make install

创建虚拟环境以隔离 Python 版本:

python3.6 -m venv /opt/py3
source /opt/py3/bin/activate

进入虚拟环境后,开始部署 Jumpserver:

cd /opt
unzip jumpserver-master.zip
cd jumpserver/requirements/
yum -y install $(cat rpm_requirements.txt)
pip install --upgrade pip
pip install -r requirements.txt

安装并启动 Redis 与 MariaDB:

yum -y install redis mariadb-server mariadb-devel
systemctl start redis mariadb
systemctl enable redis mariadb

配置数据库:

mysql -e "CREATE DATABASE jumpserver DEFAULT CHARACTER SET utf8;"
mysql -e "GRANT ALL ON jumpserver.* TO 'jumpserver'@'127.0.0.1' IDENTIFIED BY '123456';"

生成配置文件并修改数据库连接信息:

cd ..
cp config_example.py config.py
vim config.py

修改如下内容:

DB_ENGINE = 'mysql'
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'jumpserver'
DB_PASSWORD = '123456'
DB_NAME = 'jumpserver'

初始化数据库结构:

cd utils/
bash make_migrations.sh

启动服务:

cd ..
chmod +x jms
./jms start all -d

开放防火墙端口:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

部署 Coco 组件

解压并进入 Coco 目录:

cd /opt
unzip coco-master.zip
cd coco/requirements/
yum -y install $(cat rpm_requirements.txt)
pip install -r requirements.txt

生成配置并启动:

cd ..
cp conf_example.py conf.py
chmod +x cocod
./cocod start -d

开放所需端口:

firewall-cmd --permanent --add-port={2222,5000}/tcp
firewall-cmd --reload

部署 Luna 前端

Luna 无需安装或运行,仅需解压即可:

cd /opt
unzip luna-master.zip

整合 Nginx 实现统一入口

安装 Nginx 并配置反向代理:

yum -y install nginx

编辑 /etc/nginx/nginx.conf,在 server 块中添加以下 location 配置:

listen 80;
location /luna/ {
    alias /opt/luna/;
    try_files $uri /index.html;
}
location /media/ {
    root /opt/jumpserver/data/;
}
location /static/ {
    root /opt/jumpserver/data/;
}
location /socket.io/ {
    proxy_pass http://localhost:5000/socket.io/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
location / {
    proxy_pass http://localhost:8080;
}

测试并启动 Nginx:

nginx -t
systemctl start nginx
systemctl enable nginx

开放 HTTP 端口:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

注册终端并验证连接

登录 Jumpserver Web 控制台(默认账号密码均为 admin),进入"会话管理 → 终端管理",接受 Coco 注册请求。状态变为绿色表示注册成功。

通过 SSH 测试连接:

ssh -p2222 admin@192.168.1.6

若出现欢迎界面及操作提示,则说明服务正常。

系统初始化配置

在"系统设置"中更新站点 URL 和邮件 SMTP 设置,以便发送账户激活通知。

日常使用流程

  1. 创建用户:在"用户管理"中添加普通用户,填写姓名、用户名和邮箱,系统将自动发送激活链接。
  2. 创建用户组:用于批量分配权限。
  3. 构建资产树:在"资产管理"中右键节点创建组织结构,便于分类管理。
  4. 配置管理用户:指拥有 sudo 权限的 root 类账户,用于推送系统用户和收集硬件信息。
  5. 创建系统用户:即实际登录目标主机的账户(如 web、dba),支持自动推送(需 Ansible 支持)。
  6. 添加资产:绑定 IP、管理用户和所属节点。
  7. 设置授权规则:通过"权限管理"将用户组、节点、系统用户三者关联,实现细粒度授权。

用户操作与审计

普通用户可通过网页或 SSH(端口 2222)登录 Jumpserver,输入 p 查看可访问主机列表,并直接输入主机名进行连接。

所有操作命令均会被记录,在"命令记录"页面可查看执行详情;历史会话支持视频回放,便于事后审计与问题追溯。

相关文章

Trojan服务器搭建与配置

一、整体架构(先对齐认知)Clash Meta (PC / iOS / Android)        ↓ TLS   Trojan Server (443)        ↓     InternetTrojan 的核心是: TLS + HTTPS 流量伪装 看起来像正常网站 非常适合...

Tailscale 的详细用法

Tailscale 是一种基于 WireGuard 协议 的 零配置 VPN(虚拟私有网络)服务,让设备之间能够 安全、加密地直接连接,就像它们在同一个本地网络一样。它的核心特点是 简单、安全、跨平台。Tailscale 非常适合 没有公网 IP、两台电脑不在同一局域网 的场景。 简单来说,Tailscale 是什么?Tailscale 是一款让你的各种设备(电脑、服务器、手机...

Clash Tun 模式 导致 爱快(iKuai SD-Wan)内网域名无法访问

一、Clash  DNS 配置dns:  enable: true  listen: 0.0.0.0:53  ipv6: true  enhanced-mode: redir-host  nameserver:    - 223.5.5.5    - 223.6.6.6iKuai 内网域名 ...

深入解析Node.js运行环境与异步I/O架构

深入解析Node.js运行环境与异步I/O架构

核心定义与价值Node.js本质上是一个JavaScript运行环境,而非编程语言或应用框架。它赋予了JavaScript脱离浏览器在服务端、命令行工具及网络应用中执行的能力。其核心意义在于:用单一语言打通前后端开发壁垒。基于事件驱动与非阻塞I/O的架构特性,Node.js在处理API网关、实时通信及微服务等I/O密集型场景时表现卓越,已成为现代后端工程的主流选择。浏览器沙箱限制1995年Java...

ADO.NET SQL参数化查询的最佳实践

在 ADO.NET 中执行 SQL 查询时,参数化查询是一种关键的安全措施和性能优化手段。它通过将 SQL 命令和用户提供的数据分开处理,有效防止了 SQL 注入攻击,并有助于数据库缓存执行计划。下面总结了几种常用的参数化查询方式。 1. 使用 SqlParameter 对象(推荐) 这是最推荐的参数化查询方式。通过显式创建 SqlParameter 对象,您可以精确控制参数的类...

基于ELK的日志集中化分析系统搭建

构建统一日志管理平台的必要性 在分布式架构中,各服务节点独立运行,日志分散存储于不同主机。传统通过命令行工具如grep、awk逐个检索日志的方式,在数据量庞大时效率极低,难以实现快速定位问题。为提升运维效率,需建立集中式日志处理体系,具备日志采集、传输、存储、分析与告警能力。 ELK技术栈核心组件解析 Elasticsearch:分布式搜索引擎,支持全文检索、实时数据分析和高可用集群部署,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。