简介:本文提供JumpServer堡垒机离线安装的完整指南,涵盖环境准备、依赖安装、配置优化等全流程,适合无外网环境的企业用户快速部署。
在金融、政府、能源等高度敏感行业,企业服务器通常处于完全隔离的内网环境。外网安装JumpServer时可能面临以下风险:
某大型银行案例显示,通过离线安装方式将部署周期从3天缩短至8小时,同时完全规避了网络攻击风险。本教程将详细演示如何在无外网环境下完成JumpServer的全量部署。
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核以上 |
| 内存 | 8GB | 16GB+ |
| 磁盘空间 | 40GB(系统盘) | 100GB+(数据盘) |
| 网络带宽 | 100Mbps | 千兆以太网 |
系统优化:
# 关闭SELinux(CentOS)sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0# 配置最大文件打开数echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.conf
需要提前下载的依赖包清单(以CentOS为例):
mariadb-10.5.x.rpmredis-6.2.x.rpmpython3.8.tar.gznginx-1.20.x.rpmjumpserver-core-2.20.x.tar.gzcoco-2.20.x.tar.gzluna-2.20.x.tar.gz
建议使用yumdownloader工具批量下载:
yum install yum-utils -yyumdownloader --resolve mariadb-server redis python38 nginx
# 安装数据库rpm -ivh mariadb-10.5*.rpmsystemctl enable --now mariadb# 安全初始化mysql_secure_installation# 执行过程中设置root密码,移除匿名用户等# 创建JumpServer专用数据库mysql -uroot -p <<EOFCREATE DATABASE jumpserver DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'jumpserver'@'localhost' IDENTIFIED BY 'StrongPassword123!';GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'localhost';FLUSH PRIVILEGES;EOF
# 安装Redisrpm -ivh redis-6.2*.rpm# 修改配置文件sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/' /etc/redis.confsed -i 's/^protected-mode yes/protected-mode no/' /etc/redis.conf# 启动服务systemctl enable --now redis
# 安装开发工具链yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget# 编译安装Python 3.8tar zxf Python-3.8.12.tar.gzcd Python-3.8.12./configure --enable-optimizationsmake -j$(nproc)make altinstall# 验证安装python3.8 -V
# 解压核心包tar zxf jumpserver-core-2.20.x.tar.gz -C /optcd /opt/jumpserver# 安装Python依赖pip3.8 install -r requirements.txt# 生成配置文件cp config_example.yml config.ymlvim config.yml# 关键配置项:# SECRET_KEY: 随机生成32位字符串# BOOTSTRAP_TOKEN: 部署令牌# DB_ENGINE: mysql# DB_HOST: 127.0.0.1# DB_PORT: 3306# DB_USER: jumpserver# DB_PASSWORD: 上文设置的密码# REDIS_HOST: 127.0.0.1# REDIS_PORT: 6379
cd /opt/jumpserverpython3.8 manage.py makemigrationspython3.8 manage.py migratepython3.8 manage.py createsuperuser # 创建管理员账户
# 使用gunicorn启动(生产环境推荐)gunicorn -w 4 -b 0.0.0.0:8080 jumpserver.wsgi:application# 或使用开发模式(测试用)python3.8 manage.py runserver 0.0.0.0:8080
# 解压安装包tar zxf coco-2.20.x.tar.gz -C /optcd /opt/coco# 修改配置cp configs_example.yml configs.ymlvim configs.yml# 关键配置:# CORE_HOST: http://127.0.0.1:8080# BOOTSTRAP_TOKEN: 与核心组件一致# LOG_LEVEL: INFO# 启动服务./coco
# 解压静态资源tar zxf luna-2.20.x.tar.gz -C /opt# 配置Nginx反向代理vim /etc/nginx/conf.d/jumpserver.conf# 示例配置:server {listen 80;server_name _;location / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}location /luna/ {alias /opt/luna/;try_files $uri $uri/ /luna/index.html;}}# 重启Nginxsystemctl restart nginx
当出现python-xxx版本冲突时:
# 使用虚拟环境隔离python3.8 -m venv /opt/jumpserver_venvsource /opt/jumpserver_venv/bin/activatepip install -r requirements.txt
自签名证书配置示例:
# 生成自签名证书openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/nginx/ssl/nginx.key \-out /etc/nginx/ssl/nginx.crt \-subj "/CN=jumpserver.example.com"# 修改Nginx配置server {listen 443 ssl;ssl_certificate /etc/nginx/ssl/nginx.crt;ssl_certificate_key /etc/nginx/ssl/nginx.key;# ...其他配置}
数据库优化:
-- 调整InnoDB缓冲池大小SET GLOBAL innodb_buffer_pool_size=2G;-- 优化慢查询SET GLOBAL long_query_time=2;
maxmemory 4gbmaxmemory-policy allkeys-lru
服务状态检查:
netstat -tulnp | grep -E "8080|2222"# 应看到JumpServer核心服务监听8080,Coco监听2222
Web访问测试:
https://服务器IPSSH连接测试:
ssh -p 2222 admin@服务器IP# 应看到JumpServer的连接欢迎信息
mysqldump -ujumpserver -p jumpserver > jumpserver_backup.sql
python3.8 manage.py migrate
关键日志路径:
/opt/jumpserver/logs/jumpserver.log/opt/coco/logs/coco.log/var/log/nginx/error.log
每日全量备份:
# 数据库备份0 2 * * * mysqldump -ujumpserver -p jumpserver | gzip > /backup/jumpserver_$(date +\%Y\%m\%d).sql.gz# 配置文件备份0 3 * * * tar zcf /backup/config_backup_$(date +\%Y\%m\%d).tar.gz /opt/jumpserver/config.yml /opt/coco/configs.yml
本教程完整覆盖了JumpServer在离线环境下的部署全流程,通过分步骤的详细说明和实际配置示例,帮助用户在没有外网访问权限的情况下完成专业级堡垒机的搭建。实际部署中建议先在测试环境验证所有步骤,再应用到生产环境。对于超大规模部署(500+节点),建议采用分布式架构部署多个Coco节点以提升并发处理能力。