jumpserver 堡垒机环境搭建(图文详解)

本文介绍如何部署Jumpserver堡垒机系统,包括环境准备、安装步骤、用户与资产管理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。

特点:

完全开源,GPL授权 
Python编写,容易再次开发 
实现了跳板机基本功能,认证、授权、审计 
集成了Ansible,批量命令等 
支持WebTerminal 
Bootstrap编写,界面美观 
自动收集硬件信息 
录像回放 
命令搜索 
实时监控 
批量上传下载


jumpserver 3.0 安装

相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机!

环境: 
Centos 6.5 x86_64 
关闭 iptables,关闭 selinux 
jumpserver:192.168.1.200 
clients:192.168.1.210 
ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。

一、安装依赖包 
yum -y install epel-release 
yum clean all && yum makecache 
yum -y update 
yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

二、下载 jumpserver 
cd /opt 
git clone https://github.com/jumpserver/jumpserver.git 
注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可

这里写图片描述

三、执行快速安装脚本 
cd /opt/jumpserver/install

pip install -r requirement.txt

这里写图片描述

查看安装的包 
pip freeze

python install.py 
输入jumpserver的地址,默认为:”192.168.1.200”,回车即可。 
是否安装MySQL:选择”y”进行安装

这里写图片描述

MySQL 启动后会要求用户输入 邮件服务器及账户(后期用来发送用户名、ssh pass、web pass、ssh key)

163邮箱用授权密码,而不是登入密码 ,切记 。

这里写图片描述

输入smtp信息之后发现报错了,是python的pycrypto模块问题,需要卸载重装: 
pip uninstall pycrypto 
easy_install pycrypto

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

安装之后继续 python install.py 进行安装,并且输入 web管理员用户名和管理员密码,ok

这里写图片描述

这里写图片描述

运行 crontab,定期处理失效连接,定期更新资产信息 
cd /opt/jumpserver 
python manage.py crontab add

这里写图片描述

注: 
1)根据提示输入相关信息,完成安装,安装完成后,请访问web,继续查看后续文档 
2)如果启动失败,请返回上层目录,手动运行 ./service.sh start 启动 
3)如果 ./service.sh start 启动失败 
cd /opt/jumpserver 
python manage.py runserver 0.0.0.0:80 
python run_websocket.py 
4)如果启动失败,可能是由于80端口和3000端口已经被占用,或者数据库账号密码不对,请检查

五、Web登录 
http://192.168.1.200

这里写图片描述

注意: 
在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 
1)后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能 
2)后端服务器如果开启了selinux,请安装libselinux-python

六、更新代码 
cd /opt/jumpserver 
git pull

环境搭建到这一步就结束啦~

一、用户管理

1)添加用户

点击用户管理 —> 查看用户 —> 添加用户

这里写图片描述

输入要添加的用户名,姓名,权限,Mail,并且发送邮件 —> 保存

这里写图片描述

查看添加的用户

这里写图片描述

查看用户邮件 
邮件中包含了用户名,权限,web密码,ssh 密钥密码,以及密钥下载地址。

这里写图片描述


2)添加用户组

点击用户管理 —> 查看用户组 —> 添加用户组

这里写图片描述


添加新的小组 —> 运维小组

这里写图片描述


查看刚才添加的组

这里写图片描述


二、资产管理

1)添加资产组

点击资产管理 —> 查看资产组 —> 添加主机组

这里写图片描述

输入组名称,并且输入描述组用途

这里写图片描述


2)添加资产

点击资产管理 —> 查看资产 —> 添加资产

这里写图片描述

输入主机名,主机IP,管理用户名(管理员用户,主机中必须存在的哦~ 可以是root),端口,资产组 —> 提交保存

这里写图片描述


3)添加机房

点击资产管理 —> 查看机房 —> 添加机房

这里写图片描述

输入机房名称,其他的可以选填 —> 保存

这里写图片描述


三、权限管理

1)sudo

点击权限管理 —> sudo —> 添加别名

这里写图片描述

输入别名,系统命令,备注 —> 点击保存

这里写图片描述


2)添加系统用户

点击授权管理 —> 系统用户 —> 添加系统用户

这里写图片描述

输入用户名,密码,管理的sudo及备注 —> 单击保存

这里写图片描述

创建好系统之后,单击推送,将用户名、密码、sudo的信息推送到服务器。

这里写图片描述

选择系统用户,资产组 —> 单击保存

这里写图片描述

推送成功

这里写图片描述


3)授权规则

点击授权管理 —> 授权规则 —> 添加规则

这里写图片描述

输入授权名称,用户/用户组,资产/资产组,系统用户,备注 —> 单击保存

这里写图片描述


四、登录

这时候创建已经完成,下一步用户”hongxue”通过web和密钥登录堡垒机 192.168.1.200,并实现跳转到服务器 192.168.1.210

1)通过web登录 
可以看到用户ID,用户名,权限,key,最后登录,用户组,授权主机数,以及主机信息。

这里写图片描述

单击查看主机 —> 连接

这里写图片描述

连接成功,可以对该主机进行操作。

这里写图片描述


2)通过ssh登录

通过邮件中收到的地址,下载key

这里写图片描述

点击工具 —> 用户密钥管理者

这里写图片描述

单击导入 —> 输入用户名,密码

这里写图片描述

连接 jumpserver 堡垒机 192.168.1.200,输入密钥密码进行登录

这里写图片描述

登录成功!! 从授权的列表中连接到服务器 192.168.1.210

这里写图片描述


!!为了安全,建议配置nginx 反向代理 jumpserver

log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host';


server {
        listen       8080 ssl;
        listen       80;
deny all;
        server_name jumpserver.xxxx.com;
        index index.html index.htm index.php;




        ssl_certificate      ssl/xxxx.com.crt;
        ssl_certificate_key  ssl/xxxx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;


if ( $scheme = http ) {
   rewrite ^(.*)$ https://$host:8090$request_uri? permanent;
  }


location / {
    proxy_set_header Connection "";
    proxy_http_version 1.1;
    proxy_pass      http://10.43.12.31:8090;
 }


location ^~ /ws/ {
proxy_pass http://10.43.12.31:8090/ws/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
  }
          


        
        access_log  /data0/logs/jumpserver.log jumpserver;
        error_log  /data0/logs/jumpserver_error.log debug;
}


部署JumpServer堡垒机可以分为几个关键步骤,包括环境准备、安装依赖组件、配置数据库、部署核心服务以及访问和使用。以下是详细的部署指南: ### 1. 系统要求与环境准备 在开始部署之前,请确保满足以下系统要求: - **操作系统**:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04 LTS。 - **硬件配置**:建议至少 4 核 CPU、8GB 内存、100GB 磁盘空间(根据资产管理数量可适当调整)。 - **软件依赖**: - Python 3.6+ - MariaDB 或 MySQL - Redis - Nginx 或 Apache 作为反向代理 - Docker(如果采用容器化部署) - Kubernetes(如需部署在 K8s 集群中) 需要安装并启动如下服务: ```bash # 安装Python3及pip sudo yum install -y python3 python3-pip # CentOS/RHEL sudo apt-get install -y python3 python3-pip # Ubuntu ``` 还需安装并配置数据库和缓存服务: ```bash # 安装MariaDB或MySQL sudo yum install -y mariadb-server # CentOS/RHEL sudo apt-get install -y mysql-server # Ubuntu # 启动数据库服务 sudo systemctl start mariadb sudo systemctl enable mariadb # 初始化数据库 mysql_secure_installation ``` Redis 的安装与启动命令如下: ```bash sudo yum install -y redis # CentOS/RHEL sudo apt-get install -y redis # Ubuntu sudo systemctl start redis sudo systemctl enable redis ``` ### 2. 安装 JumpServer JumpServer 支持多种部署方式,包括直接安装、Docker 安装以及 Kubernetes 安装。 #### 2.1 直接安装方式(适用于普通服务器) 克隆官方仓库并进入目录: ```bash git clone https://github.com/jumpserver/installer.git cd installer ``` 运行安装脚本: ```bash ./jmsctl.sh install ``` 该脚本会自动下载并安装 JumpServer 及其依赖项,包括 Django、Nginx、Guacamole 等组件。 #### 2.2 使用 Docker 安装 构建镜像并运行容器: ```bash docker-compose up -d ``` 确保 `docker-compose.yml` 文件已正确配置数据库、Redis 地址等参数。 #### 2.3 在 Kubernetes 上部署 将 JumpServer 部署到 Kubernetes 需要准备 Helm Chart 或编写 Deployment 和 Service YAML 文件。可以通过以下命令部署: ```bash kubectl apply -f jumpserver-deployment.yaml kubectl apply -f jumpserver-service.yaml ``` 确保配置文件中包含了数据库连接信息、Redis 地址等必要参数。 ### 3. 数据库初始化与配置 JumpServer 默认使用 SQLite 数据库,但生产环境中建议使用 MariaDB 或 MySQL。 编辑配置文件 `config.yml`,设置数据库连接: ```yaml DATABASES: default: ENGINE: django.db.backends.mysql NAME: jumpserver USER: root PASSWORD: your_password HOST: 127.0.0.1 PORT: 3306 ``` 创建数据库并授权用户: ```sql CREATE DATABASE jumpserver; GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpuser'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` 执行数据库迁移: ```bash python3 manage.py migrate ``` ### 4. 启动服务 启动 JumpServer 核心服务: ```bash ./jmsctl.sh start ``` 确保所有服务正常运行: ```bash ./jmsctl.sh status ``` ### 5. 访问 JumpServer 服务启动后,通过浏览器访问 JumpServer 的 Web 界面,默认地址为: ``` http://<your_server_ip>:80 ``` 不要使用 8080 端口进行访问。默认登录账号为 `admin/admin` [^2]。 ### 6. 使用指南 JumpServer 提供了资产管理和运维审计功能,符合 4A 规范(认证 Authentication、授权 Authorization、账号 Accounting、审计 Auditing)[^3]。 - **资产管理**:添加主机、数据库、网络设备等资源。 - **用户管理**:创建组织、用户组、用户权限等。 - **会话审计**:查看操作日志、录像回放等。 - **命令过滤**:设置敏感命令拦截规则。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值