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


虽然jumpserver-0.4.0(基于python3)已经出来了,但按照官方安装文档还是有些坑需要踩,所以还是线上还是考虑部署jumpserver-0.3.2


安装环境,centos6.9 minimal安装,关闭selinux,iptables,配置好base源和EPEL源

setenforce 0
/etc/init.d/iptables stop
mv /etc/yum.repos.d/CentOS-Base.repo{,_org}
wget -P /etc/yum.repos.d/ http://mirrors.163.com/.help/CentOS6-Base-163.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo


下载: jumpserver-0.3.2.zip
链接: https://pan.baidu.com/s/1eStOE4a 密码: fach

cd /opt
rz (上传安装包)
unzip -q jumpserver-0.3.2.zip
cd jumpserver-0.3.2/install/
python install.py
该脚本交互内容如下: 
开始安装依赖包,依赖pip包
请输入您服务器的IP地址,用户浏览器可以访问 [192.168.1.91]: 192.168.1.91
是否安装新的MySQL服务器? (y/n) [y]: y
MySQL默认用户名: jumpserver 默认密码: 5Lov@wife
设置邮箱:
请输入SMTP地址: smtp.def.com
请输入SMTP端口 [25]: 25
请输入账户: abc@def.com
请输入密码: abcpass
如果公司内部有邮箱,可以添.如果是实验环境的话,可以使用qq邮箱或者163邮箱开启POP3/SMTP服务即可.
在邮箱-设置里面开通. 详情可参考网上攻略

设置web登陆账号密码:
请输入管理员用户名 [admin]: admin
请输入管理员密码: [5Lov@wife]: admin    (建议加大密码复杂度)
请再次输入管理员密码: [5Lov@wife]: admin
(直接回车则使用[]括号中的默认用户和密码)


完成后,jumpserver会自动运行起来,python_web监听8000端口
1. 如果启动失败或者运行过程中自动退出,请返回jumpserver-0.3.2目录,手动运行脚本 python run_server.py 或 ./service.sh restart启动
2.如果./service.sh start启动失败
   python manage.py runserver 0.0.0.0:8000
   python run_websocket.py
   如果启动失败,可能是由于 80端口和3000端口已经被占用,或者数据库账号密码不对,请检查



安装过程报错及解决:
_mysql_exceptions.Warning: Incorrect string value: '\xE6\x9C\xBA\xE6\x88\xBF' for column 'name' at row 1
在[mysqld]下配置:
default-character-set=utf8
init_connect='SET NAMES utf8'
然后重启数据库,删库重建

jumpserver开源堡垒机/跳板机使用

在讲操作之前,首先应该讲一下jumpserver的工作原理,理解了原理才理解后面的操作:
堡垒机登陆的原理: 用户1通过ssh登陆堡垒机,堡垒机再ssh登陆后端服务器
这其中涉及到三个角色: ①第一次ssh的用户1, ②后端服务器, ③第二次ssh的用户2
这时候你可能会想,第一次ssh到堡垒机的用户和第二次ssh到线上服务器的用户,难道不一样的吗?确实,他们两者是不同的.我们举个例子:一个公司有100个开发人员,10个运维人员, 那么这100个开发人员登陆到堡垒机应该是使用100个账户. 如果登陆线上服务器和登陆堡垒机的用户一样, 那么就需要在线上服务器上创建100个用户并分别做授权, 这就太麻烦了. 所以其实这100个开发人员从堡垒机登陆线上服务器只需要共用同一个账户即可.同样道理,这10个运维人员在堡垒机上也是使用同一个账户登录线上服务器. 而我们只需要对线上的开发,运维两个账户做授权管理即可.
ee20b5afdcc8032bb8d823fc4d4de8e8.png


浏览器访问 http://server_ip:8000  可以看到左侧栏的项目如下

仪表盘: jumpserver使用的统计数据展示页
用户管理: 管理第一次ssh的用户
资产管理: 管理后端服务器
授权管理: 管理第二次ssh的用户
日志审计: 可以查看每个用户登陆情况和线上操作记录
上传下载: 可以在后端主机和本地做文件传输
设置: 设置后端主机的通用超户(uid=0的用户或拥有NOPASSWD: ALL sudo权限)
访问官网: 访问http://www.jumpserver.org/

接下来主要讲解①第一次ssh的用户1, ②后端服务器, ③第二次ssh的用户2

用户管理包括用户组管理和用户管理

用户组, 是用户的容器, 例如可以创建数据组,开发组, 网络组,运维组
用户, 比如创建路人甲属于开发组,炮灰乙属于数据组,流氓丙属于网络组, 土匪丁属于运维组
创建用户时, "用户名"不能使用汉字, "姓名"可以使用汉字, 设置属于哪个"用户组", 设置普通用户还是超级用户, 邮箱地址(必须要填正确), 用户名的密码和密钥信息都会发送到该邮箱


资产管理包括资产组,资产,和机房

资产组: 就是主机分组, 比如有10台是大数据开发人员的, 有10台式支付平台开发人员的, 有10台是用于数据库的, 那么我们就可以设置三个资产组, 主要划分依据是使用人员
资产: 就是具体的主机了, 在添加主机的时候, 要填写主机名,ip地址,超户及其密码(或密钥的私钥), 这个超级用户可以用来创建第二次ssh到线上的登陆账户和相关授权等操作.
机房: 这个也是主机的一种分组类型而已


授权管理
sudo: 就是创建sudo规则, 可以用来关联第二次ssh登陆的系统用户, 比如开发人员的sudo和运维人员的sudo规则肯定是不一样的
系统用户: 创建第二次ssh登陆的系统用户. 设置的内容有用户名称,密码/密钥私钥(可自动生成), 关联sudo规则. 比如开发人员使用developer, 运维人员使用operator, jumpserver会登陆到线上服务器创建这两个用户, 这个操作就是"推送"
授权规则: 授权哪些用户可以登陆哪些服务器, 比如大数据的开发人员只能登陆大数据的服务器, 支付平台的开发人员只能登陆开发平台的服务器, 并且设置第二次ssh登陆的系统用户.


日志审计

可以查看每个用户登陆过哪些服务器,登陆方式,执行过的命令甚至录屏回放