1. CentOS 7.5 环境准备与基础配置
在开始部署JumpServer之前,我们需要确保CentOS 7.5系统已经做好充分准备。以下是详细的准备工作:
1.1 系统版本确认与更新
首先确认系统版本是否为CentOS 7.5或兼容版本:
cat /etc/redhat-release uname -r如果系统版本低于7.5,建议先进行升级。执行系统更新:
yum update -y注意:生产环境中建议在非业务高峰期进行系统更新,并提前做好备份。
1.2 关闭SELinux和防火墙
JumpServer需要特定的网络访问权限,建议临时关闭安全限制:
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld1.3 安装基础工具包
安装后续部署所需的工具集:
yum install -y wget curl tar gettext iptables vim net-tools lrzsz tree这些工具将用于文件传输、压缩解压、网络配置等操作。
1.4 系统参数优化
对于生产环境,建议调整以下内核参数:
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf echo "fs.file-max = 65535" >> /etc/sysctl.conf sysctl -p这些优化可以减少TCP连接回收时间,提高系统文件描述符上限。
2. JumpServer安装包获取与解压
2.1 下载最新稳定版JumpServer
官方推荐使用v2.28.6稳定版本:
cd /opt wget https://github.com/jumpserver/installer/releases/download/v2.28.6/jumpserver-installer-v2.28.6.tar.gz提示:如果下载速度慢,可以使用国内镜像源:
wget https://demo.jumpserver.org/download/installer/v2.28.6/jumpserver-installer-v2.28.6.tar.gz
2.2 解压安装包
tar -xf jumpserver-installer-v2.28.6.tar.gz mv jumpserver-installer-v2.28.6 jumpserver解压后的目录结构如下:
jumpserver ├── compose/ # Docker compose文件 ├── config-example.txt # 配置文件模板 ├── jmsctl.sh # 主控制脚本 ├── scripts/ # 安装脚本 └── utils/ # 工具脚本2.3 目录权限设置
确保安装目录有正确权限:
chown -R root:root jumpserver chmod -R 755 jumpserver3. Docker环境安装与配置
JumpServer使用Docker容器化部署,需要先安装Docker环境。
3.1 自动安装Docker
JumpServer提供了自动安装脚本:
cd /opt/jumpserver bash scripts/2_install_docker.sh安装完成后验证Docker版本:
docker --version docker-compose --version3.2 Docker镜像加速配置
为加快镜像下载速度,建议配置国内镜像源:
mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF systemctl restart docker3.3 Docker存储驱动优化
对于生产环境,建议使用overlay2存储驱动:
echo '{"storage-driver": "overlay2"}' > /etc/docker/daemon.json systemctl restart docker4. JumpServer核心配置
4.1 初始化配置文件
复制示例配置文件并生成随机密钥:
cp config-example.txt config/config.txt生成安全的SECRET_KEY和BOOTSTRAP_TOKEN:
SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 50 | head -n 1) BOOTSTRAP_TOKEN=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 1) sed -i "s/SECRET_KEY=/SECRET_KEY=$SECRET_KEY/g" config/config.txt sed -i "s/BOOTSTRAP_TOKEN=/BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN/g" config/config.txt4.2 数据库配置
JumpServer支持使用内置或外置数据库。对于生产环境,建议使用外置MySQL:
sed -i 's/DB_HOST=mysql/DB_HOST=your_mysql_host/g' config/config.txt sed -i 's/DB_PORT=3306/DB_PORT=your_mysql_port/g' config/config.txt sed -i 's/DB_USER=root/DB_USER=your_mysql_user/g' config/config.txt sed -i 's/DB_PASSWORD=/DB_PASSWORD=your_mysql_password/g' config/config.txt4.3 网络端口配置
默认HTTP端口为80,SSH端口为2222,可按需修改:
sed -i 's/HTTP_PORT=80/HTTP_PORT=8080/g' config/config.txt sed -i 's/SSH_PORT=2222/SSH_PORT=22222/g' config/config.txt5. JumpServer安装与启动
5.1 执行安装脚本
./jmsctl.sh install安装过程会:
- 检查配置文件
- 安装Docker组件
- 拉取所需镜像
- 初始化数据库
- 配置持久化存储
5.2 启动JumpServer
./jmsctl.sh start启动后检查服务状态:
./jmsctl.sh status正常应该看到8个容器运行:
- jms_core:核心服务
- jms_web:Web界面
- jms_koko:SSH连接代理
- jms_lion:RDP连接代理
- jms_magnus:数据库网关
- jms_celery:异步任务
- jms_mysql:数据库
- jms_redis:缓存
5.3 防火墙配置
如果系统启用了防火墙,需要开放相应端口:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload6. 初始访问与安全配置
6.1 首次登录
访问http://服务器IP:80,使用默认账号:
- 用户名:admin
- 密码:admin
首次登录会强制修改密码。
6.2 管理员账户安全
建议立即:
- 修改默认admin密码
- 启用多因素认证(MFA)
- 创建具有管理员权限的备用账户
6.3 系统配置检查
进入"系统设置"检查:
- 基本设置:站点URL、时区等
- 安全设置:密码策略、登录限制等
- 邮件设置:配置SMTP用于通知
7. JumpServer日常维护
7.1 常用管理命令
# 启动服务 ./jmsctl.sh start # 停止服务 ./jmsctl.sh stop # 重启服务 ./jmsctl.sh restart # 备份数据库 ./jmsctl.sh backup_db # 查看日志 ./jmsctl.sh tail core7.2 数据备份策略
建议定期备份:
- 数据库:使用内置备份命令
- 配置文件:/opt/jumpserver/config
- 持久化数据:/data/jumpserver
可以设置cron任务自动备份:
0 2 * * * /opt/jumpserver/jmsctl.sh backup_db7.3 版本升级
小版本升级:
./jmsctl.sh upgrade大版本升级建议:
- 查看官方升级文档
- 先备份数据和配置
- 在测试环境验证
- 生产环境低峰期执行
8. 常见问题排查
8.1 服务启动失败
检查步骤:
- 查看日志:
./jmsctl.sh tail - 检查端口冲突:
netstat -tunlp - 检查Docker状态:
systemctl status docker
8.2 无法连接资产
可能原因:
- 网络不通
- 凭据错误
- 代理服务未正常运行
检查方法:
- 测试网络连通性
- 检查koko/lion服务状态
- 查看会话日志
8.3 性能优化建议
对于大规模部署:
- 分离数据库和Redis
- 增加Core节点
- 配置负载均衡
- 优化MySQL参数
我在实际部署中发现,JumpServer对内存需求较高,建议生产环境至少配置8GB内存。特别是当并发会话数多时,需要适当调整Redis和MySQL的内存配置。另外,定期清理过期的会话记录和日志可以显著提升性能。