90.jumpserver介绍 安装 登录 创建管理用户

家住魔仙堡 提交于 2019-12-04 00:50:07

23.5 jumpserver介绍

23.6 安装jumpserver

23.7 登录jumpserver

23.8 创建管理用户

 

扩展:

jumpserver安装问题 

http://ask.apelearn.com/question/17502

 

 

 

 

 

23.5 jumpserver介绍

 

 

 

1.官网www.jumpserver.org

2.Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理

#jumpserver非常适合运维人员,不管是二次开发。

#国人开发,开源

3.Auth 统一认证

4.CMDB 资产管理

5.统一授权

6.日志审计

7.自动化运维(ansible)

8.最新版v0.4.0,基于python3.6, django 1.11,目前还未开发完成,所以我们接下来将要安装v0.3.2

#如果直接在centos6或7上直接安装最新版,会有一些问题。下一节会讲怎么安装

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

23.6 安装jumpserver

 

 

 

Jumpserver安装(0.4.0)

#因为使用了(docker还未学习)并0.4版本还未完全开发,所以主要学习0.32版本

yum install -y docker //首先安装docker

systemctl enable docker

systemctl start docker //启动docker服务

curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose //安装docker-compose

chmod 755 /usr/local/bin/docker-compose

git clone https://github.com/jumpserver/jumpserver.git //下载jumpserver源码

cd jumpserver

配置docker加速器 http://ask.apelearn.com/question/15126

检查是否有监听8080端口的服务,如果有关闭

screen//进入到一个虚拟终端

docker-compose up //使用docker-compose安装jumpserver

 

 

 

Jumpserver安装(0.3.2)

#不需要安装(借助于)docker

1.官方文档https://github.com/jumpserver/jumpserver/wiki/v0.3.2-%E5%9F%BA%E4%BA%8E-RedHat-%E7%9A%84%E7%B3%BB%E7%BB%9F

2.yum install -y git

3.cd /home //要到一个空间大的目录下面

#jumpserver会占用一定的空间

4.git clone https://github.com/jumpserver/jumpserver.git

#地址为github官方的jumpserver的地址

5.git checkout master

6.cd jumpserver/install

7.python install.py

若你的机器已经安装过mysql,可以先创建jumpserver库以及对应的用户名密码,若没有安装就让它自动安装即可

安装过程中还需要设置一下使用的第三方邮件,建议你去申请一个免费的163邮箱

我的163邮箱smtp.163.com aming_test@163.com 8lFjprwrfEv1c

 

 

实例:(0.32版本)

首先要把不需要的服务停掉

[root@axinlinux-01 ~]# systemctl stop mongdod

[root@axinlinux-01 ~]# systemctl disable mongod

gitlab也需要关闭

[root@axinlinux-01 ~]# yum install git #如果下载的时候比较慢,可以将不相关的repo文件停掉

[root@axinlinux-01 ~]# cd /etc/yum.repos.d/ #怎么停掉呢?cd到/etc/yum.repos.d目录下

[root@axinlinux-01 yum.repos.d]# ls #将不相关的repo文件停掉。就是改个名字

CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo mongo.repo

CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo gitlab_gitlab-ce.repo zabbix.repo

[root@axinlinux-01 yum.repos.d]# mv gitlab_gitlab-ce.repo gitlab_gitlab-ce.repo.bak #这样将不相关的停掉

[root@axinlinux-01 yum.repos.d]# mv mongo.repo mongo.repo.bak

[root@axinlinux-01 yum.repos.d]# mv zabbix.repo zabbix.repo.bak

以下操作是解决一系列问题之后的步骤:

1.cd /opt #建议不要到root或home下,容易出问题

2.https://github.com/jumpserver/jumpserver/tree/0.3.3 到这个地址下,下载zip。因为克隆的话出问题克隆不下来

3.unzip jumpserver-0.3.3.zip #然后解压这个zip

4.cd jumpserver-0.3.3 #cd 进去

5.cd install/ #再cd到install目录下

6.python install.py #执行install.py

注意:

1. 安装过程中要求输入数据库密码时,直接回车就行 2. 完成安装后,请访问web,继续查看后续文档 3. 如果启动失败,请返回上层目录,手动运行./service.sh restart启动 4. 默认账号密码 admin 5Lov@wife

请输入您服务器的IP地址,用户浏览器可以访问 [192.168.208.136]: #回车

是否安装新的MySQL服务器? (y/n) [y]: n #因为之前就安装了mysql,所以就不在安装了

请输入数据库服务器IP [127.0.0.1]: #回车

请输入数据库服务器端口 [3306]: #回车

请输入数据库服务器用户 [jumpserver]: #此时可以在开一个终端,来创建以及授权(点击xshell标签右键>复制ssh渠道。

问题点:但是,阿鑫在做的时候,到下面管理员那一步骤的时候报错了,报错信息如下:

django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE6\\x9C\\xBA\\xE6\\x88\\xBF' for column 'name' at row 1")

问题根源:网上查找同类问题,应该是mysql数据编码的问题,django连接的数据库编码字符集要求utf8,不然报错

解决方法的连接:https://cloud.tencent.com/developer/article/1139768

解决方法:

打开mysql数据库的配置文件

[[email protected] ~]# vim /etc/my.cnf [mysqld] #在mysqld模块下增加以下两个参数 character_set_server=utf8 init_connect='SET NAMES utf8'

[root@localhost ~]# /etc/init.d/mysqld restart

注意:新版MySQL(如:5.5)或MariaDB等,mysqld启动时可能会遇到“[ERROR] /usr/libexec/mysqld: unknown variable ‘default_character_set=utf8’”的错误;就应该在[mysqld]中用 character_set_server=utf8 替换掉 default_character_set=utf8

2.删除原来创建的jumpsrvice问题数据库

create database jumpserver;

3.再打开mysql数据库创建django连接的数据库

[root@localhost ~]# mysql -uxxxx -pxxxxxx mysql> show variables like'character%'; //运行这语句查看一下character_set_database参数是否utf8 mysql> set character_set_database=utf8; //如果不是utf8,运行此语句设置一下 +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/ | +--------------------------+----------------------------------+ mysql> create database jumpservice; //之后就可以正常创建jumpservice数据库了

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

4.[[email protected] install]# python install.py //重新执行命令即可安装成功

另外一种情况,也许是用户名或者库授权有问题,建议删除jumpserver库,重新建立一个新的并授权。

> create database jumpserver; > grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'asd9577';

请输入数据库服务器密码: jump123jump

请输入使用的数据库 [jumpserver]:

连接数据库成功

请输入SMTP地址: smtp.163.com

请输入SMTP端口 [25]:

请输入账户: wangxinlinux@163.com

请输入密码: wangxin789

(535, 'Error: authentication failed')

是否跳过(y/n) [n]? : y

 

请登陆邮箱查收邮件, 然后确认是否继续安装

 

是否继续? (y/n) [y]: y

请输入管理员用户名 [admin]: #回车

请输入管理员密码: [5Lov@wife]: #回车

请再次输入管理员密码: [5Lov@wife]: #回车

Starting jumpserver service: [ 确定 ]

 

安装成功,Web登录请访问http://ip:8000, 祝你使用愉快。

请访问 https://github.com/jumpserver/jumpserver/wiki 查看文档

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

23.7 登录jumpserver

 

Jumpserver使用

1.浏览器输入ip:8000 访问jumpserver

2.默认用户名是admin,密码是5Lov@wife

3.点击用户管理,选择用户,点击Administrator那一行右侧的更新,设置密码

创建用户组 运维

创建用户 aming

点击设置,默认管理用户,该用户为管理员用户,应该有sudo权限,需要在每一台客户机上创建该用户(用户名自定义,jump)

在一台linux机器上生成一个密钥对,用来作为该管理用户的密钥对

把私钥粘贴到默认密钥下面

 

 

实例:

 

 

 

以上:

资产管理::也就是cmdb了。之前说到jumpserver有cmdb的功能。就在这来体现

资产组:比如开发的资产组、测试的资产组、线上的资产组等等

产看资产:资产组里对应的机器,不仅仅有服务器,还有交换机、路由器等等,都可以列到这里面来

查看机房:利用机房去划分

以上:

授权管理:系统用户:系统用户就是我们要设置一个跳板机,跳板机要登录到远程服务器上去,我们把它叫做客户机。那客户机要登录,你首先要有一个用户。这个用户就是系统用户

jumpserver里面有三种用户:第一种就是登录jumpserver的用户

第二种就是登录客户机的用户。也就是上面说的系统用户

第三种在设置里,里有一个默认管理用户。我们要想实现自动化,想批量的到客户机上去执行一些命令,那就要有一个用户去执行。比如我要给客户机创建一个系统用户,也要有一个有权限的管理员用户去做呀。这个用户就叫做管理用户。这个用户平时不用,管理机器的时候才会用。你想想jumpserver要想跟你的机器去通信,做一些事情,那肯定要有一个有权限的用户才行,也是在客户机上创建的,但是要在jumpserver里面去配置一下,比如密钥

授权管理:授权规则:就是那些用户有权限连,哪一组机器或者哪一些机器。去给他划分好严格的权限。比如运维组的可以去连所有的机器。那数据中心的只有数据中心的几台机器,其他的不给权限

以上

日志审计:就是比如我看看你的额登录历史,都有谁登录过。还有执行过的批量命令,上传下载的东西。命令里有一个命令回放的功能

以上

上传下载:上传和下载文件

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

23.8 创建管理用户

 

 

 

在客户机上创建jump用户,并设置sudo权限,把刚刚生成的密钥对里面的公钥放到该客户机的jump用户家目录.ssh/authorized_keys文件里

资产管理,查看资产组,添加资产组(如,dev)

资产管理,查看资产,添加资产,填写各项信息

授权管理,系统用户,添加系统用户,该用户为我们登录所有客户机的用户

授权规则,添加规则,创建授权规则

 

管理用户需要到每一台客户机上去创建,而且也要在jumpserver服务端(界面)设置好这个用户,叫什么,以及对应的密钥(界面上指的是私钥)

如果我们要密钥登录一台机器的话,本机要有一个私钥,对方要有一个公钥。

[root@axinlinux-04 ~]# cd .ssh/ #在本机去生成一个密钥对

[root@axinlinux-04 .ssh]# ls

authorized_keys id_rsa id_rsa.pub known_hosts

[root@axinlinux-04 .ssh]# ssh-keygen -f jump #-f指定密钥对的名字

Generating public/private rsa key pair.

Enter passphrase (empty for no passphrase): #回车

Enter same passphrase again: #回车

Your identification has been saved in jump.

Your public key has been saved in jump.pub.

The key fingerprint is:

SHA256:zwzE4unsryGYSGNjjSfc206E0rdU1lCkrlPxQfm7trM root@axinlinux-04

The key's randomart image is:

+---[RSA 2048]----+

| .o+. |

| .=. |

| .=oo. |

|. = ..++o .. |

| @ * +ooS. . |

|+.*o*o+ = . |

|. o..*+ + . |

| oo.. + |

| .oo. .E+ |

+----[SHA256]-----+

[root@axinlinux-04 .ssh]# ls

authorized_keys id_rsa id_rsa.pub jump jump.pub known_hosts #会有两个文件 jump jump.pub

[root@axinlinux-04 .ssh]# cat jump #需要的是jump(私钥),把它粘贴要界面下位置

管理用户是指客户端上的如root等高权限账号(或拥有NOPASSWD: ALL sudo权限),用来推送新建系统用户。相当于说这个管理用户可以做各种各样的操作

接下来,我们到对应的客户机上去创建这个用户(jump管理用户)

[root@dazuoye02-01 ~]# useradd jump #在这台客户机上,创建jump用户,这个用户作为管理账户。以后每增加一台机器都要增加这个用户

[root@dazuoye02-01 ~]# su - jump #接下来切换到jump用户

[jump@dazuoye02-01 ~]$ mkdir .ssh #创建authorized_keys

[jump@dazuoye02-01 ~]$ vim .ssh/authorized_keys #服务端linux上生成的公钥(jump.pub)粘贴到这个文件里来

[root@axinlinux-04 .ssh]# cat jump.pub #将服务端linux上刚才生成的这个公钥粘贴到上面那个文件里

[jump@dazuoye02-01 ~]$ chmod 700 .ssh/ #修改目录的权限为700

[jump@dazuoye02-01 ~]$ chmod 400 .ssh/authorized_keys #修改文件的权限400

检查selinux和iptables

[root@axinlinux-04 .ssh]# ssh -i jump jump@192.168.208.135 #使用ssh -i来指定使用jump秘钥来登录客户机

The authenticity of host '192.168.208.135 (192.168.208.135)' can't be established.

ECDSA key fingerprint is SHA256:ipSyrFLdSRyMxARq/E/2S09fJSD9dz+R/eSm/baC434.

ECDSA key fingerprint is MD5:60:35:cf:94:59:97:4e:05:ec:3b:ee:25:e3:d6:e2:ea.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.208.135' (ECDSA) to the list of known hosts.

Last login: Sat Dec 1 00:00:16 2018

[jump@dazuoye02-01 ~]$

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!