JumpServer堡垒机离线安装全攻略:从零到一的保姆级教程

作者:da吃一鲸8862025.10.14 01:32浏览量:1

简介:本文提供JumpServer堡垒机离线安装的完整指南,涵盖环境准备、依赖安装、配置优化等全流程,适合无外网环境的企业用户快速部署。

JumpServer堡垒机离线安装全攻略:从零到一的保姆级教程

一、为什么需要离线安装JumpServer?

在金融、政府、能源等高度敏感行业,企业服务器通常处于完全隔离的内网环境。外网安装JumpServer时可能面临以下风险:

  1. 安全风险:直接连接外网下载依赖包可能引入恶意代码
  2. 合规风险:部分行业禁止使用外网资源部署核心系统
  3. 效率风险:外网下载速度不稳定,大文件传输耗时过长

某大型银行案例显示,通过离线安装方式将部署周期从3天缩短至8小时,同时完全规避了网络攻击风险。本教程将详细演示如何在无外网环境下完成JumpServer的全量部署。

二、离线安装前的环境准备

1. 硬件配置要求

组件 最低配置 推荐配置
CPU 4核 8核以上
内存 8GB 16GB+
磁盘空间 40GB(系统盘) 100GB+(数据盘)
网络带宽 100Mbps 千兆以太网

2. 操作系统选择

  • 推荐系统:CentOS 7.9/8.5、Ubuntu 20.04 LTS
  • 系统优化

    1. # 关闭SELinux(CentOS)
    2. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    3. setenforce 0
    4. # 配置最大文件打开数
    5. echo "* soft nofile 65535" >> /etc/security/limits.conf
    6. echo "* hard nofile 65535" >> /etc/security/limits.conf

3. 依赖包准备

需要提前下载的依赖包清单(以CentOS为例):

  1. mariadb-10.5.x.rpm
  2. redis-6.2.x.rpm
  3. python3.8.tar.gz
  4. nginx-1.20.x.rpm
  5. jumpserver-core-2.20.x.tar.gz
  6. coco-2.20.x.tar.gz
  7. luna-2.20.x.tar.gz

建议使用yumdownloader工具批量下载:

  1. yum install yum-utils -y
  2. yumdownloader --resolve mariadb-server redis python38 nginx

三、核心组件安装流程

1. 数据库部署(MariaDB)

  1. # 安装数据库
  2. rpm -ivh mariadb-10.5*.rpm
  3. systemctl enable --now mariadb
  4. # 安全初始化
  5. mysql_secure_installation
  6. # 执行过程中设置root密码,移除匿名用户等
  7. # 创建JumpServer专用数据库
  8. mysql -uroot -p <<EOF
  9. CREATE DATABASE jumpserver DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  10. CREATE USER 'jumpserver'@'localhost' IDENTIFIED BY 'StrongPassword123!';
  11. GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'localhost';
  12. FLUSH PRIVILEGES;
  13. EOF

2. Redis缓存部署

  1. # 安装Redis
  2. rpm -ivh redis-6.2*.rpm
  3. # 修改配置文件
  4. sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' /etc/redis.conf
  5. sed -i 's/^protected-mode yes/protected-mode no/' /etc/redis.conf
  6. # 启动服务
  7. systemctl enable --now redis

3. Python环境构建

  1. # 安装开发工具链
  2. yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget
  3. # 编译安装Python 3.8
  4. tar zxf Python-3.8.12.tar.gz
  5. cd Python-3.8.12
  6. ./configure --enable-optimizations
  7. make -j$(nproc)
  8. make altinstall
  9. # 验证安装
  10. python3.8 -V

四、JumpServer核心服务安装

1. 核心组件部署

  1. # 解压核心包
  2. tar zxf jumpserver-core-2.20.x.tar.gz -C /opt
  3. cd /opt/jumpserver
  4. # 安装Python依赖
  5. pip3.8 install -r requirements.txt
  6. # 生成配置文件
  7. cp config_example.yml config.yml
  8. vim config.yml
  9. # 关键配置项:
  10. # SECRET_KEY: 随机生成32位字符串
  11. # BOOTSTRAP_TOKEN: 部署令牌
  12. # DB_ENGINE: mysql
  13. # DB_HOST: 127.0.0.1
  14. # DB_PORT: 3306
  15. # DB_USER: jumpserver
  16. # DB_PASSWORD: 上文设置的密码
  17. # REDIS_HOST: 127.0.0.1
  18. # REDIS_PORT: 6379

2. 初始化数据库

  1. cd /opt/jumpserver
  2. python3.8 manage.py makemigrations
  3. python3.8 manage.py migrate
  4. python3.8 manage.py createsuperuser # 创建管理员账户

3. 启动服务

  1. # 使用gunicorn启动(生产环境推荐)
  2. gunicorn -w 4 -b 0.0.0.0:8080 jumpserver.wsgi:application
  3. # 或使用开发模式(测试用)
  4. python3.8 manage.py runserver 0.0.0.0:8080

五、连接组件部署

1. Coco组件安装(SSH/RDP代理)

  1. # 解压安装包
  2. tar zxf coco-2.20.x.tar.gz -C /opt
  3. cd /opt/coco
  4. # 修改配置
  5. cp configs_example.yml configs.yml
  6. vim configs.yml
  7. # 关键配置:
  8. # CORE_HOST: http://127.0.0.1:8080
  9. # BOOTSTRAP_TOKEN: 与核心组件一致
  10. # LOG_LEVEL: INFO
  11. # 启动服务
  12. ./coco

2. Luna界面部署(Web终端)

  1. # 解压静态资源
  2. tar zxf luna-2.20.x.tar.gz -C /opt
  3. # 配置Nginx反向代理
  4. vim /etc/nginx/conf.d/jumpserver.conf
  5. # 示例配置:
  6. server {
  7. listen 80;
  8. server_name _;
  9. location / {
  10. proxy_pass http://127.0.0.1:8080;
  11. proxy_set_header Host $host;
  12. proxy_set_header X-Real-IP $remote_addr;
  13. }
  14. location /luna/ {
  15. alias /opt/luna/;
  16. try_files $uri $uri/ /luna/index.html;
  17. }
  18. }
  19. # 重启Nginx
  20. systemctl restart nginx

六、离线环境下的常见问题解决方案

1. 依赖冲突处理

当出现python-xxx版本冲突时:

  1. # 使用虚拟环境隔离
  2. python3.8 -m venv /opt/jumpserver_venv
  3. source /opt/jumpserver_venv/bin/activate
  4. pip install -r requirements.txt

2. 证书问题解决

自签名证书配置示例:

  1. # 生成自签名证书
  2. openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  3. -keyout /etc/nginx/ssl/nginx.key \
  4. -out /etc/nginx/ssl/nginx.crt \
  5. -subj "/CN=jumpserver.example.com"
  6. # 修改Nginx配置
  7. server {
  8. listen 443 ssl;
  9. ssl_certificate /etc/nginx/ssl/nginx.crt;
  10. ssl_certificate_key /etc/nginx/ssl/nginx.key;
  11. # ...其他配置
  12. }

3. 性能调优建议

  • 数据库优化

    1. -- 调整InnoDB缓冲池大小
    2. SET GLOBAL innodb_buffer_pool_size=2G;
    3. -- 优化慢查询
    4. SET GLOBAL long_query_time=2;
  • Redis配置
    1. maxmemory 4gb
    2. maxmemory-policy allkeys-lru

七、验证部署结果

  1. 服务状态检查

    1. netstat -tulnp | grep -E "8080|2222"
    2. # 应看到JumpServer核心服务监听8080,Coco监听2222
  2. Web访问测试

    • 浏览器访问https://服务器IP
    • 输入创建的superuser账号密码
    • 验证资产、用户、会话管理功能
  3. SSH连接测试

    1. ssh -p 2222 admin@服务器IP
    2. # 应看到JumpServer的连接欢迎信息

八、维护与升级指南

1. 版本升级流程

  1. 备份当前数据库:
    1. mysqldump -ujumpserver -p jumpserver > jumpserver_backup.sql
  2. 停止所有服务
  3. 替换新版本程序包
  4. 执行数据库迁移:
    1. python3.8 manage.py migrate
  5. 重启服务

2. 日志分析方法

关键日志路径:

  1. /opt/jumpserver/logs/jumpserver.log
  2. /opt/coco/logs/coco.log
  3. /var/log/nginx/error.log

3. 备份策略建议

  • 每日全量备份

    1. # 数据库备份
    2. 0 2 * * * mysqldump -ujumpserver -p jumpserver | gzip > /backup/jumpserver_$(date +\%Y\%m\%d).sql.gz
    3. # 配置文件备份
    4. 0 3 * * * tar zcf /backup/config_backup_$(date +\%Y\%m\%d).tar.gz /opt/jumpserver/config.yml /opt/coco/configs.yml

本教程完整覆盖了JumpServer在离线环境下的部署全流程,通过分步骤的详细说明和实际配置示例,帮助用户在没有外网访问权限的情况下完成专业级堡垒机的搭建。实际部署中建议先在测试环境验证所有步骤,再应用到生产环境。对于超大规模部署(500+节点),建议采用分布式架构部署多个Coco节点以提升并发处理能力。