一、jumpserver介绍

官网www.jumpserver.org

Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业。

高效,用户、资产、权限、审计,管理。

Auth 统一认证

CMDB 资产管理

统一授权

日志审计

自动化运维(ansible)

v1.4.4,基于python3.6, django 1.11,目前还未开发完成,所以接下来将要安装v1.4.4 。

二、安装jumpserver

安装(1.4.4)

首先进入GitHub,左上角搜索jumpserver,搜出来了:

jumpserver/jumpserver

Jumpserver是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统。

点击进入,选择标签,可以看到最新版本到了v1.4.10,往下看,可以看到安装及使用指南,点击step by step安装文档→一站式、分布式安装文档→一体化部署文档(基于CentOS 7)→在线安装文档。

我这里使用的是centos7,先yum update -y将centos升级到最新版本。

内存至少2G,不然跑不起来,MySQL高于5.6;

放行80、8080、2222端口,或者关掉firewalld:

# firewall-cmd --zone=public --add-port=80/tcp --permanent

# firewall-cmd --zone=public --add-port=2222/tcp --permanent

# firewall-cmd --zone=public --add-port=8080/tcp --permanent

不让它开机启动;把seLinux关闭。

# 修改字符集:

# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

# export LC_ALL=zh_CN.UTF-8

# echo $LC_ALLzh_CN.UTF-8

# cat /etc/locale.conf    //查看字符集是否为UTF-8

LANG="zh_CN.UTF-8"

1、准备Python3和虚拟环境

# 编译或者yum安装都可以, 版本要求参考环境要求,centos默认自带的Python是2.7,所以需要额外安装一个Python3.6。

安装Python3.6、Redis、MySQL# yum update -y 将系统升级到最新,update不行就用yum upgrade -y

# cat /etc/redhat-release   //此时最新版7.7

CentOS Linux release 7.7.1908 (Core)

# yum install -y wget epel-release gcc git

# yum install -y python36 python36-devel

# yum install -y redis

# systemctl enable redis

# systemctl start redis

# yum install -y mariadb mariadb-devel mariadb-server

# systemctl enable mariadb

# systemctl start mariadb

# mysql -uroot

> create database jumpserver default charset 'utf8';

> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'weakpassword';

> flush privileges;

> quit

2、创建py3虚拟环境# cd /opt/

# python3.6 -m venv /opt/py3

3、载入py3的虚拟环境# 每次操作 jumpserver 都需要使用下面的命令载入 py3 虚拟环境

# source /opt/py3/bin/activate

# 部分系统可能会提示 source: not found , 可以使用 "." 代替 "source"

(py3) [[email protected]]#       //载入以后会有一个py3的前缀

4、获取jumpserver代码$ cd /opt

$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git

# 如果没有安装 git 请先安装

# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env  //进入jumpserver目录时自动载入py3虚拟环境。

5、安装依赖包$ cd /opt/jumpserver/requirements

$ yum install -y $(cat rpm_requirements.txt)

安装Python库依赖:

$ pip install --upgrade pip setuptools   //把setup工具升级

$ pip install -r requirements.txt

# 确保已经载入 py3 虚拟环境, 中间如果遇到报错一般是依赖包没装全, 可以通过 搜索引擎 解决

pip命令类似于系统里的yum

6、修改配置文件$ cd /opt/jumpserver

$ cp config_example.yml config.yml

$ vim config.yml

# 注意 SECRET_KEY 和 BOOTSTRAP_TOKEN 不能使用纯数字字符串

定义SECRET_KEY,不能为空。使用这条命令生成随机字符串:

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo

到命令行输出后再复制粘贴进去。

定义BOOTSTRAP_TOKEN,不能为空。使用这条命令生成随机字符串:

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16;echo

# MySQL or postgres setting like:

# 使用Mysql作为数据库

DB_ENGINE: mysql

DB_HOST: 127.0.0.1

DB_PORT: 3306

DB_USER: jumpserver

DB_PASSWORD: waakpassword  //定义密码

DB_NAME: jumpserver

#将Redis下面三行的#号去掉

# Use Redis as broker for celery and web socket

# Redis配置

REDIS_HOST: 127.0.0.1

REDIS_PORT: 6379

REDIS_PASSWORD:

REDIS_DB_CELERY: 3

REDIS_DB_CACHE: 4

7、生成数据库表结构和初始化数据# cd /opt/jumpserver/utils

# sh make_migrations.sh

8、运行jumpserver$ cd /opt/jumpserver

$ ./jms start -d   #加-d 参数在后台运行 ./jms start -d,不然在前台会输出很多东西。

使用方式:./jms start|stop|status|restart

# netstat -lntp |grep 8080

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      27161/python3.6

#如果想让它开机启动,把这一条命令加到/etc/rc.local里去。

# vim /etc/rc.local

source /opt/py3/bin/activate; cd /opt/jumpserver; ./jms start -d &> /dev/null

此时可以到浏览器访问本机的IP:8080端口,可以看到jumpserver的登录页面。如果看不到页面,可能是firewalld没放行,线上机器想办法把端口放行。默认账号和密码:admin。

9、部署koko组件$ cd /opt

# 访问 https://github.com/jumpserver/koko/releases 下载对应 release 包并解压到 /opt目录

$ wget https://github.com/jumpserver/koko/releases/download/1.5.3/koko-master-Linux-amd64.tar.gz

$ tar xf koko-master-Linux-amd64.tar.gz

$ chown -R root:root kokodir

$ cd kokodir

$ cp config_example.yml config.yml

$ vim config.yml

# BOOTSTRAP_TOKEN 需要从 jumpserver/config.yml 里面获取, 保证一致

$ ./koko -d  # 一定要加-d让它在后台运行,运行后可以netstat -lntp查看到端口2222和5000起来了。

10、安装luna组件$ cd /opt

$ wget https://github.com/jumpserver/luna/releases/download/1.5.3/luna.tar.gz

$ tar xf luna.tar.gz

$ chown -R root:root luna

11、配置Nginx整合各组件$ yum install -y nginx

$ vim /etc/nginx/nginx.conf

...原内容

include /etc/nginx/conf.d/*.conf;

#注释掉整个server{}

#    server {

#        listen       80 default_server;

#        listen       [::]:80 default_server;

#        server_name  _;

#        root         /usr/share/nginx/html;

#        # Load configuration files for the default server block.

#        include /etc/nginx/default.d/*.conf;

#

#        location / {

#        }

#        error_page 404 /404.html;

#            location = /40x.html {

#        }

#        error_page 500 502 503 504 /50x.html;

#            location = /50x.html {

#        }

#    }

...$ rm -rf /etc/nginx/conf.d/default.conf

$ vim /etc/nginx/conf.d/jumpserver.conf

server {

listen 80;

client_max_body_size 100m;  # 录像及文件上传大小限制

location /luna/ {

try_files $uri / /index.html;

alias /opt/luna/;  # luna 路径, 如果修改安装目录, 此处需要修改

}

location /media/ {

add_header Content-Encoding gzip;

root /opt/jumpserver/data/;  # 录像位置, 如果修改安装目录, 此处需要修改

}

location /static/ {

root /opt/jumpserver/data/;  # 静态资源, 如果修改安装目录, 此处需要修改

}

location /koko/ {

proxy_pass       http://localhost:5000;

proxy_buffering off;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

access_log off;

}

location /guacamole/ {

proxy_pass       http://localhost:8081/;

proxy_buffering off;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection $http_connection;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

access_log off;

}

location /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_pass http://localhost:8070;

proxy_http_version 1.1;

proxy_buffering off;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

location / {

proxy_pass http://localhost:8080;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}$ nginx -t    # 确保配置没有问题, 有问题请先解决

$ systemctl start nginx

$ systemctl enable nginx

# 测试连接

[email protected]

密码admin,如果能登录代表部署成功,web界面如不能登录,换个浏览器试试。

三、登录jumpserver

1、更改密码

web界面admin登录→个人信息→更改密码

更改密码后重新登录。

2、密码登录

新建一个会话,主机名定义好IP,端口2222,用户名密码定义好,登录即可直接进入jumpserver。

3、密钥登录

# cat .ssh/authorized_keys

把authorized_keys的公钥放到web界面中个人信息的ssh密钥里,提交。

再到命令行下就可以通过密钥登录了。

jumpserver linux图形界面,二、jumpserver介绍、安装jumpserver、登录jumpserver相关推荐

  1. 普通用户不能登录linux图形界面,只有root用户可以登录到图形界面

    普通用户不能登录linux图形界面,只有root用户可以登录到图形界面(普通用户,用户名和密码输入正确,点击登录,2秒后又返回到了登录界面,即不能登录.)这个问题的解决办法如下: /tmp这个目录的权 ...

  2. linux图形界面介绍

    从Ubuntu 11.04后,UNITY就作为默认界面来推广.如果用户需要体验GNOME 3,还需要用户自己安装.一般的评价都是GNOME 3界面在体验上要优于UNITY.         UNITY ...

  3. Windows11通过wsl2安装linux图形界面

    观前提示:需提前使用wsl安装好ubuntu. 如果没安装,可以参考方法一前面提到的教程. 文章目录 前言 方法一:使用WSL2安装WSLg(推荐,飞快) 方法二:使用WSL安装图形桌面xfce4 前 ...

  4. linux图形桌面 卸载,图解Linux图形界面的安装与卸载

    虽然课课家建议大家学习Linux时最好在文字界面下操作的,但难不免有时需要进入到图形界面,可系统在安装时,并没有安装图形界面包.故此,今天我们来学习下Linux图形界面的安装卸载.注意:以下操作前提需 ...

  5. linux图形界面鼠标变成小手_扔掉鼠标,用键盘控制一切~

    如今大家使用计算机,必不可少地需要鼠标和键盘.鼠标的存在极大地方便了用户在使用个人计算机的过程中的操作,特别是windows操作系统. 但是当以linux作为个人操作系统的时候,肯定会意识到一定情况下 ...

  6. linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)

    LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,本文以比较易于理解的方式来解释X,X11,XFREE,WM,KDE,GNO ...

  7. linux 图形界面 x x11 gnome xorg kde 之间的关系

    LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,本文以比较易于理解的方式来解释X,X11,XFREE,WM,KDE,GNO ...

  8. [转帖]linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:lin ...

  9. linux图形界面编程基本知识

    很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理 解的方式说明一下X,X11,XFREE,WM,KDE,G ...

最新文章

  1. Springboot文件上传 百度ocr文字识别提取
  2. Ubuntu16.04使用的问题和解决方案集锦
  3. java 屏蔽地域性访问_javaweb利用filter拦截未授权请求
  4. 三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11
  5. 修改linux用户时间设置,Linux用户和组的操作(九) 修改用户账号密码时间参数 chage...
  6. 拖动同级别元素显示辅助线,辅助对齐,吸附.
  7. jq输出html 单引号引号转义符,javascript - 由于JSON中的单引号转义,jQuery.parseJSON抛出“无效的JSON”错误...
  8. FJNU 1196 汪老司机(DP or 建图+最短路)
  9. 《Effective Java 3rd》读书笔记——类和接口
  10. 设计模式(十八):责任链模式
  11. python抓取网站内容_python抓取网站内容详细
  12. 图像scale与相机参数_Blender 的相机参数解析
  13. 杂谈随感-3:不同的角色,不同的价值体现
  14. 2012-2013年薪水涨幅最高的十五个IT职位
  15. 为什么docker的端口映射需要开启ip转发功能?
  16. java多态性表现在哪两个方面_Java的多态性主要表现在______、______和______三个方面。...
  17. 类和对象4:类、类对象、实例对象
  18. IT开发工程师的五个等级,你现在几级?
  19. Java 中各种DTO,POJO 等的概念
  20. JavaBeans技术的应用

热门文章

  1. VRML---第一章(基本概念、语法)
  2. 记Oracle DG Gap解决方案
  3. Android安卓开发知识库汇总
  4. FTP协议解析之Wireshark报文分析
  5. C / C++ 中的计时函数: clock()
  6. 8 款浏览器兼容性测试工具介绍,需要的赶紧点赞收藏吧
  7. 【Shell】shell编程条件测试if,for,case,select,while
  8. C# SolidWorks 二次开发 API ---草图中文字读取与修改
  9. 数学建模还原纸片matlab程序,碎纸片的拼接复原问题大学生数学建模全国一等奖论文.doc...
  10. Dev-C++下载安装和配置