23.5 jumpserver介绍python
23.6 安装jumpservermysql
23.7 登陆jumpserverlinux
23.8 建立管理用户git
扩展:github
jumpserver安装问题 web
http://ask.apelearn.com/question/17502sql
23.5 jumpserver介绍docker
1.官网www.jumpserver.orgshell
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 ~]$