2019独角兽企业重金招聘Python工程师标准>>>
23.5 jumpserver介绍
开源堡垒机jumpserver介绍:
- 官网www.jumpserver.org
- Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理
- Auth 统一认证
- CMDB 资产管理
- 统一授权
- 日志审计
- 自动化运维(ansible)
- 最新版v0.4.0,基于python3.6, django 1.11,目前还未开发完成,所以我们接下来将要安装v0.3.2
23.6 安装jumpserver
Jumpserver安装(0.4.0)
- 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)
- 官方文档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
- yum install -y git
- cd /home //要到一个空间大的目录下面
- git clone https://github.com/jumpserver/jumpserver.git
- git checkout master
- cd jumpserver/install
- python install.py
- 若你的机器已经安装过mysql,可以先创建jumpserver库以及对应的用户名密码,若没有安装就让它自动安装即可
- 安装过程中还需要设置一下使用的第三方邮件,建议你去申请一个免费的163邮箱
- 我的163邮箱smtp.163.com [email protected] 8lFjprwrfEv1c
##在安装之前,建议先停用掉不必要的服务:
[root@Dasoncheng ~]# netstat -lntp
[root@Dasoncheng ~]# systemctl stop gitlab-runsvdir.service
[root@Dasoncheng ~]# systemctl disable gitlab-runsvdir.service
[root@Dasoncheng ~]# systemctl stop mongod
[root@Dasoncheng ~]# systemctl disable mongod
[root@Dasoncheng ~]# cd /home ##需要空间大一点的地方;
[root@Dasoncheng ~]# git clone https://github.com/jumpserver/jumpserver.git
[root@Dasoncheng home]# cd jumpserver/
[root@Dasoncheng jumpserver]# git branch
##我们克隆的jumpserver是dev分支下,我们需要切换到master分支下!
##dev是正在开发的版本,
* dev
[root@Dasoncheng jumpserver]# git checkout master
Branch master set up to track remote branch master from origin.
Switched to a new branch 'master'
[root@Dasoncheng jumpserver]# git branch
dev
* master
[root@Dasoncheng jumpserver]# cd install/ ##切换到master之后,里面的文件也不一样了;
[root@Dasoncheng install]# ls
developer_doc.txt functions install.py next.py
docker initial_data.yaml install.pyc requirements.txt
[root@Dasoncheng install]# python install.py ##安装,这个类似于批量的shell脚本;
……
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
开始关闭防火墙和selinux
setenforce: SELinux is disabled
请输入您服务器的IP地址,用户浏览器可以访问 [192.168.60.11]:
是否安装新的MySQL服务器? (y/n) [y]: n
请输入数据库服务器IP [127.0.0.1]:
请输入数据库服务器端口 [3306]:
请输入数据库服务器用户 [jumpserver]:
请输入数据库服务器密码: p@ssw0rd
请输入使用的数据库 [jumpserver]:
连接数据库成功
请输入SMTP地址: smtp.163.com
请输入SMTP端口 [25]:
请输入账户: [email protected]
请输入密码: gcz584201314
Connection unexpectedly closed: timed out
是否跳过(y/n) [n]? : y
请登陆邮箱查收邮件, 然后确认是否继续安装
是否继续? (y/n) [y]: y
开始写入配置文件
开始安装Jumpserver ...
开始更新jumpserver
……
请输入管理员用户名 [admin]:
请输入管理员密码: [5Lov@wife]:
请再次输入管理员密码: [5Lov@wife]:
Starting jumpserver service: [ OK ]
安装成功,Web登录请访问http://ip:8000, 祝你使用愉快。
请访问 https://github.com/jumpserver/jumpserver/wiki 查看文档
[root@Dasoncheng install]# tail /home/jumpserver/jumpserver.conf
##这个就是配置文档,一些参数都可以在这里面修改;
email_host = smtp.163.com
email_port = 25
email_host_user = [email protected]
email_host_password = gcz584201314
email_use_tls = False
email_use_ssl = False
**小技巧:如何停用yum其他扩展源? **
[root@Dasoncheng ~]# cd /etc/yum.repos.d/
[root@Dasoncheng yum.repos.d]# ll
-rw-r--r--. 1 root root 410 Sep 14 2016 zabbix.repo
[root@Dasoncheng yum.repos.d]# mv zabbix.repo zabbix.repo.bak
##修改拓展源就可以了!
为什么我们要安装jumpserver0.3.2版本的呢?而不是最新0.4的呢?
0.4版本的Python用的是3.版本系列的,centos7自带的是2.7.5系列的;(可以rpm -qa查看)
0.4的需要安装docker 而且新版本功能还不够完善,故:安装0.3系列;
23.7 登录jumpserver
Jumpserver使用:
- 浏览器输入ip:8000 访问jumpserver
- 默认用户名是admin,密码是5Lov@wife
- 点击用户管理,选择用户,点击Administrator那一行右侧的更新,设置密码
- 创建用户组 运维
- 创建用户 aming
- 点击设置,默认管理用户,该用户为管理员用户,应该有sudo权限,需要在每一台客户机上创建该用户(用户名自定义,jump)
- 在一台linux机器上生成一个密钥对,用来作为该管理用户的密钥对
- 把私钥粘贴到默认密钥下面
- 在客户机上创建jump用户,并设置sudo权限,把刚刚生成的密钥对里面的公钥放到该客户机的jump用户家目录.ssh/authorized_keys文件里
- 资产管理,查看资产组,添加资产组(如,dev)
- 资产管理,查看资产,添加资产,填写各项信息
- 授权管理,系统用户,添加系统用户,该用户为我们登录所有客户机的用户
- 授权规则,添加规则,创建授权规则
**用户管理:**登录jumpserver页面的用户管理。
**资产管理:**相当于cmdb的功能,对设备资产进行分类管理。
授权管理:
sudo:
系统用户:jumpserver里面关于3种用户:
- 登录jumpserver的用户;(在用户管理)
- 登录客户机的用户;(即系统用户 在授权管理)
- 默认管理用户;(管理机器的时候用到--权限较高 在设置里面管理)
授权规则:规定哪些用户/用户组 有权限连某个或者某个组的机器;
日志审计:
包括但不限于:登录历史,命令历史 批量执行历史,文件上传下载历史;
上传下载:
文件上传下载历史;
小提示:主要功能是_用户登录_和_日志审计_;
23.8 创建管理用户
Jumpserver里面的用户:
- jumpserver用户用来登录jumpserver(web界面、ssh登录)
- 管理用户用来自动创建客户机上的系统用户、批量执行命令等操作
- 客户机上的系统用户,用来通过jumpserver去登录每一台客户机的用户
**生成密钥:**每台客户机都需要这样一个账户。
[root@Dasoncheng .ssh]# ll
total 8
-rw-r--r--. 1 root root 406 Sep 25 07:18 authorized_keys
-rw-r--r-- 1 root root 350 Oct 19 10:28 known_hosts
[root@Dasoncheng .ssh]# ssh-keygen -f jump
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:
9a:2c:77:58:a3:c9:3e:04:08:1a:ea:20:0b:ea:a8:39 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
|o |
|oo . |
|* . . |
|*. . S |
|o. o.B . |
|o ..X . |
|Eo +.. |
|+. .. |
+-----------------+
[root@Dasoncheng .ssh]# ll
total 16
-rw-r--r--. 1 root root 406 Sep 25 07:18 authorized_keys
-rw------- 1 root root 1679 Nov 6 14:24 jump
-rw-r--r-- 1 root root 408 Nov 6 14:24 jump.pub
-rw-r--r-- 1 root root 350 Oct 19 10:28 known_hosts
客户机创建管理用户:
[root@localhost ~]# useradd jump
[root@localhost ~]# su - jump
[jump@localhost ~]$ mkdir .ssh
[jump@localhost ~]$ vim .ssh/authorized_keys
[jump@localhost ~]$ cat .ssh/authorized_keys ##将创建的jump公钥内容复制如下:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7zyHpTYb401E/osFrJzwRAY+X1nCx3rk2zCWhRMO+o1b+TvmEzn9raVpmTMzm4YB38KePueWVV5JpOVFURlmBZmX08zXJXqK3scHwg1ZpxI17mZqzdxWF7AI3cpM4pnaDoiCUT8OrHDZL0uLSC+LBMIwRiccxyM2IyVeMv9LWlvodZVJNKaLEKP/gbZ6dK2NAPyu/lA7nhGtz0lFZcWsPGxBmDu34f6Sjt099zmYlxgr8TD/3uuQYIrpCuA7dKPXGY7UjvyiTh+jjuu3Az24K5vHEebDx4/qg2o4bzUUbPf/wY6tFMg5R4xBbvdnvxG5omlhwP65Co4a2Nb8CpZvj [email protected]
[jump@localhost ~]$ chmod 700 .ssh/
[jump@localhost ~]$ chmod 400 .ssh/authorized_keys
##设置sudo权限(不用root密码,所有权限)
[root@localhost ~]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jump ALL=(ALL) NOPASSWD:ALL
##使用60.11密钥登录测试:
[jump@localhost ~]$ ssh --help
unknown option -- -
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
[root@Dasoncheng .ssh]# ssh -i jump [email protected]
Last login: Mon Nov 6 14:38:28 2017
##登录成功;
##在这里管理用户也就创建成功了;
问题:Linux系统如何生成密钥对呢?
ssh-keygen -f jump
参数:-f 指定密钥名 创建后会多两个文件,一个为公钥 一个私钥;