一站式部署Jumpserver
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,博文大纲:一、Jumpserver简介二、安装Jumpserver准备环境三、配置Python 3环境四、安装Jumpserver五、安装mariadb、redis并配置jumpserver六、安装c
千家信息网最后更新 2025年01月23日一站式部署Jumpserver
博文大纲:
一、Jumpserver简介
二、安装Jumpserver准备环境
三、配置Python 3环境
四、安装Jumpserver
五、安装mariadb、redis并配置jumpserver
六、安装coco组件并配置
七、安装guacamole及luna
八、安装nginx
九、客户端访问测试
一、Jumpserver简介
Jumpserver是全球首款完全开源的堡垒机,使用GNU GPL v2.0开源协议,是符合4A的专业运维审计系统。
Jumpserver 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
Jumpserver 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。
Jumpserver的特点:
- 完全开源;
- Python编写,易于二次开发;
- 实现跳板机的基本功能、认证、授权、审计;
- 集成了Ansiable,实现批量操作命令等;
- 支持web终端;
- Bootstrap编写,界面美观;
- 自动收集硬件信息;
- 录像回放、命令搜索、实时监控;
二、安装Jumpserver准备环境
下载所需软件包
(1)安装环境要求
- 硬件配置:2个CPU核心、4G内存、50G硬盘(最低);
- 操作系统:Linux 发行版 x86_64;
- python环境3.6.x以上;
- 数据库:msyq或者mariadb,l版本必须是5.6以上;
- Redis;
(2)Jumpserver的相关组件
- Jumpserver:管理后台,管理员可以通过Web页面进行资产管理、用户管理、资产授权等操作;用户可以通过Web页面进行资产登录、文件管理等操作;
- koko:提供SSH Server 和 Web Terminal Server 。用户可以使用自己的账户通过 SSH 或者 Web Terminal 访问 SSH 协议和 Telnet 协议资产;
- Luna:提供Web Terminal Server前端页面,用户使用Web Termina方式登录所需组件;
- Guacamole:为 RDP 协议和 VNC 协议资产组件, 用户可以通过 Web Terminal 来连接 RDP 协议和 VNC 协议资产(常用于windows服务器);
(3)相关组件端口、配置文件说明
如图:
- Jumpserver默认Web端口为8080/tcp、默认WS端口为8070/tcp;配置文件为jumpserver/config.yml;
- koko默认SSH端口为2222/tcp、默认为Web Terninal端口为5000/tcp;配置文件为koko/config.yml;
- Guacamole默认端口为 8081/tcp; 配置文件为/config/tomcat9/conf/server.xml
- Nginx默认端口为 80/tcp;
- Redis默认端口为 6379/tcp;
- Mysql/mariadb默认端口为 3306/tcp;
(4)使系统支持中文环境
[root@jumpserver ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8[root@jumpserver ~]# export LC_ALL=zh_CN.UTF-8[root@jumpserver ~]# echo 'LC_ALL=zh_CN.UTF-8' > /etc/locale.conf
三、配置Python 3环境
[root@jumpserver ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git//下载所需依赖[root@jumpserver ~]# tar xf Python-3.6.1.tar.xz -C /usr/src[root@jumpserver ~]# cd /usr/src/Python-3.6.1/[root@jumpserver Python-3.6.1]# ./configure && make && make install//编译安装python 3环境[root@jumpserver Python-3.6.1]# cd /opt[root@jumpserver opt]# python3 -m venv py3[root@jumpserver opt]# source /opt/py3/bin/activate(py3) [root@jumpserver opt]# //出现这样的字符表示在python 3虚拟环境成功(py3) [root@jumpserver opt]# unzip autoenv.zip (py3) [root@jumpserver opt]# echo "source /opt/autoenv/activate.sh" >> /root/.bashrc (py3) [root@jumpserver opt]# source /root/.bashrc//使用autoenv设置为自动载入python 3的虚拟环境
四、安装Jumpserver
(py3) [root@jumpserver opt]# unzip jumpserver.zip (py3) [root@jumpserver opt]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env(py3) [root@jumpserver opt]# cd jumpserver/autoenv:autoenv: WARNING:autoenv: This is the first time you are about to source /opt/jumpserver/.env:autoenv:autoenv: --- (begin contents) ---------------------------------------autoenv: source /opt/py3/bin/activate$autoenv:autoenv: --- (end contents) -----------------------------------------autoenv:autoenv: Are you sure you want to allow this? (y/N) y //输入"y"表示自动载入python3环境(py3) [root@jumpserver jumpserver]# cd requirements/(py3) [root@jumpserver requirements]# yum -y install $(cat rpm_requirements.txt)//安装所需依赖(py3) [root@jumpserver requirements]# pip install --upgrade pip(py3) [root@jumpserver requirements]# pip install wheel(py3) [root@jumpserver requirements]# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple///安装python所需依赖
五、安装mariadb、redis并配置jumpserver
安装mariadb
(py3) [root@jumpserver requirements]# yum -y install mariadb mariadb-devel mariadb-server (py3) [root@jumpserver requirements]# systemctl start mariadb(py3) [root@jumpserver requirements]# mysqladmin -u root password 123.com(py3) [root@jumpserver requirements]# mysql -u root -p123.comMariaDB [(none)]> create database jumpserver default charset 'utf8' ;MariaDB [(none)]> grant all on jumpserver.* to jumpserver@127.0.0.1 identified by '123.com';MariaDB [(none)]> flush privileges;(py3) [root@jumpserver requirements]# ss -lnt | grep 3306LISTEN 0 50 *:3306 *:*
安装redis
(py3) [root@jumpserver requirements]# yum -y install redis(py3) [root@jumpserver requirements]# systemctl start redis(py3) [root@jumpserver requirements]# ss -lnt | grep 6379LISTEN 0 128 127.0.0.1:6379 *:*
配置jumpserver
(py3) [root@jumpserver ~]# cd /opt/jumpserver/(py3) [root@jumpserver jumpserver]# cp config_example.yml config.yml #生成秘钥令牌(py3) [root@jumpserver jumpserver]# SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`(py3) [root@jumpserver jumpserver]# echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc(py3) [root@jumpserver jumpserver]# BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`(py3) [root@jumpserver jumpserver]# echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc(py3) [root@jumpserver jumpserver]# sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml(py3) [root@jumpserver jumpserver]# sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml(py3) [root@jumpserver jumpserver]# sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml(py3) [root@jumpserver jumpserver]# sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml(py3) [root@jumpserver jumpserver]# sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: False/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml (py3) [root@jumpserver jumpserver]# sed -i "s/DB_PASSWORD: /DB_PASSWORD: 123.com/g" /opt/jumpserver/config.yml(py3) [root@jumpserver jumpserver]# echo -e "\033[31m 你的SECRET_KEY是 $SECRET_KEY \033[0m" 你的SECRET_KEY是 UmIWcyEGJN6JfCbCYnthtlK7z4wQ8HwlEL2DagdBxPJjWWRdSN (py3) [root@jumpserver jumpserver]# echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m" 你的BOOTSTRAP_TOKEN是 qFs86ALWXpamrBaH (py3) [root@jumpserver jumpserver]# egrep -v '^$|^#' config.yml SECRET_KEY: UmIWcyEGJN6JfCbCYnthtlK7z4wQ8HwlEL2DagdBxPJjWWRdSNBOOTSTRAP_TOKEN: qFs86ALWXpamrBaHDEBUG: falseLOG_LEVEL: ERRORDB_ENGINE: mysqlDB_HOST: 127.0.0.1DB_PORT: 3306DB_USER: jumpserverDB_PASSWORD: 123.comDB_NAME: jumpserverHTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080REDIS_HOST: 127.0.0.1REDIS_PORT: 6379(py3) [root@jumpserver jumpserver]# ./jms start all -d(py3) [root@jumpserver jumpserver]# ss -lnt | grep 8080LISTEN 0 128 *:8080 *:*
六、安装coco组件并配置
(py3) [root@jumpserver opt]# unzip coco.zip (py3) [root@jumpserver opt]# cd coco(py3) [root@jumpserver coco]# echo "source /opt/py3/bin/activate" > /opt/coco/.env(py3) [root@jumpserver coco]# cd requirements/autoenv:autoenv: WARNING:autoenv: This is the first time you are about to source /opt/coco/.env:autoenv:autoenv: --- (begin contents) ---------------------------------------autoenv: source /opt/py3/bin/activate$autoenv:autoenv: --- (end contents) -----------------------------------------autoenv:autoenv: Are you sure you want to allow this? (y/N) y(py3) [root@jumpserver requirements]# yum -y install $(cat rpm_requirements.txt)(py3) [root@jumpserver requirements]# pip install -r requirements.txt(py3) [root@jumpserver requirements]# cd ..(py3) [root@jumpserver coco]# cp config_example.yml config.yml (py3) [root@jumpserver coco]# echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m" 你的BOOTSTRAP_TOKEN是 qFs86ALWXpamrBaH (py3) [root@jumpserver coco]# sed -i "s/BOOTSTRAP_TOKEN: /BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" config.yml(py3) [root@jumpserver coco]# sed -i "s/# LOG_LEVEL: INFO/LOG_LEVEL: ERROR/g" config.yml (py3) [root@jumpserver coco]# egrep -v '^$|^#' config.yml CORE_HOST: http://127.0.0.1:8080BOOTSTRAP_TOKEN: qFs86ALWXpamrBaH//注意保证16个随机字符保证与jumpserver配置文件中的16个随机字符保证一致LOG_LEVEL: ERROR(py3) [root@jumpserver coco]# ./cocod start -d(py3) [root@jumpserver coco]# ss -lnt | grep 2222LISTEN 0 5 *:2222 *:*
七、安装guacamole及luna
(py3) [root@jumpserver ~]# yum install -y yum-utils device-mapper-persistent-data lvm2(py3) [root@jumpserver ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(py3) [root@jumpserver ~]# yum makecache fast(py3) [root@jumpserver ~]# yum -y install docker-ce(py3) [root@jumpserver ~]# systemctl start docker(py3) [root@jumpserver ~]# docker load < guacamole.tar (py3) [root@jumpserver ~]# docker run --name jms_guacamole -d \ -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key \ -e JUMPSERVER_KEY_DIR=/config/guacamole/key \ -e JUMPSERVER_SERVER=http://192.168.1.10:8080 \ jumpserver/guacamole:latest(py3) [root@jumpserver ~]# ss -lnt | grep 8081LISTEN 0 128 :::8081 :::* (py3) [root@jumpserver ~]# tar zxf luna.tar.gz -C /opt
八、安装nginx
(py3) [root@jumpserver ~]# tar zxf nginx-1.2.4.tar.gz -C /usr/src(py3) [root@jumpserver ~]# cd /usr/src/nginx-1.2.4/(py3) [root@jumpserver nginx-1.2.4]# ./configure && make && make install(py3) [root@jumpserver nginx-1.2.4]# ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/(py3) [root@jumpserver nginx-1.2.4]# cd /usr/local/nginx/conf/(py3) [root@jumpserver conf]# cp nginx.conf nginx.conf.bak(py3) [root@jumpserver conf]# mv /root/nginx.conf .mv:是否覆盖"./nginx.conf"? y(py3) [root@jumpserver conf]# nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful(py3) [root@jumpserver conf]# nginx(py3) [root@jumpserver conf]# ss -lnt | grep -w 80LISTEN 0 128 *:80 *:*
九、客户端访问测试
如图:
(1)创建普通用户
此用户用于登录Jumpserver web页面的用户,创建过程如下:
(2)创建管理用户
此用户主要用于管理后端资源,创建方法如下:
(3)创建系统用户
此用户主要用于登录后端资产,创建方法如下:
(4)创建后端资产
实验环境,所以就开启一台虚拟机192.168.1.1作为测试(web页面的客户端与后端资产肯定不在同一网段,因为用户是通过公网登录到jumpserver才可以对后端服务器进行操作的)!
(5)创建授权规则
(6)连接后端资产
最后,虽然写文档花费了不少时间,但是还是建议大家参考Jumpserver官方文档
------------本文到此结束,感谢阅读--------------
用户
配置
环境
资产
端口
管理
文件
组件
登录
页面
系统
支持
可以通过
字符
客户
客户端
保证
测试
美观
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
鼎信诺前段取数找不到数据库
网络安全协调局 副局长
看数据库表结构
网络安全检测装置e4180
互联网与科技产业融合
服务器生存游戏我的世界中国版
网络安全的第二个是
艾尔登法环服务器停止
网络技术在其他哪些领域有用
网络安全工程师职业升职
用什么软件开发客户端
sql数据库备份bak文件
周大福网络安全
世界知识大词典数据库
软考 网络安全管理员
大学数据库教材清华
中成药处方数据库肾系
从容科技 互联网保修
中国网安网络安全事业部
农行服务器异常码500
平度app软件开发服务公司
国家网络安全先进个人广西
SQL数据库表达式
骑砍战团联机无法连接服务器
java数据库编程要点
网络安全为人民服务的案例
笨马网络技术销售
科技部中国主要科技指标数据库
联盟手游各服务器人数
win服务器如何防护