Jumpserver 3.0 全新改版 更轻、更快、更便捷

           Jumpserver Wiki

 

 Jumpserver 3.0 全新改版 更轻、更快、更便捷

 

 

                作者:广宏伟 

            官网地址:http://www.jumpserver.org/

                Github地址https://github.com/ibuler/jumpserver/wiki

                    文档统计者:火拳Ace





一、概述

Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能

首页

Jumpserver 3.0 全新改版 更轻、更快、更便捷

 

WebTerminal:

Jumpserver 3.0 全新改版 更轻、更快、更便捷 

Web批量执行命令

Jumpserver 3.0 全新改版 更轻、更快、更便捷

录像回放

Jumpserver 3.0 全新改版 更轻、更快、更便捷

跳转和批量命令

Jumpserver 3.0 全新改版 更轻、更快、更便捷 

命令统计

Jumpserver 3.0 全新改版 更轻、更快、更便捷

 

 

 

 

 

特点:

 

l 完全真开源,GPL授权

l Python编写,容易再次开发

l 实现了跳板机基本功能,认证、授权、审计

l 集成了Ansible,批量命令等

l 支持WebTerminal

l Bootstrap编写,界面美观

l 自动收集硬件信息

l 录像回放

l 命令搜索

l 实时监控

l 批量上传下载

二、快速安装

快速安装

 

建议使用 centos 6 mini环境快速安装,安装过一些软件后,其中可能会安装一些不兼容的python库,如pycrypto, django, 会影响快速安装

环境

 

CentOS 6.x x86_64 mini

iptables stop

selinux disable

开始

 

1. 安装依赖rpm

 

Yum源可以使用阿里的,本人测试阿里没有问题,在Centos 6.6上。

(详情:http://mirrors.aliyun.com/help/centos

 

yum -y install epel-release

 

yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz

2. 下载jumpserver

 

cd /opt

 

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

3. 执行快速安装脚本

 

cd jumpserver/install && pip install -r requirements.txt

 

python install.py

根据提示输入相关信息,完成安装,完成安装后,请访问web,继续查看后续文档

 

如果启动失败,请返回上层目录,手动运行 ./service.sh restart启动

 

*默认账号密码 admin 5Lov@wife

 

注意

 

1. 后端服务器需要有python环境才能使用推送用户,批量命令等功能

2. 后端服务器如果开启了selinux,请安装 libselinux-python

 

三、名词解释

 

用户 用户是授权和登陆的主体,将来为每个员工建立一个账户,用来登录跳板机, 将资产授权给该用户,查看用户登陆记录命令历史等

 

用户组 多个用户可以组合成用户组,为了方便进行授权,可以将一个部门或几个用户 组建成用户组,在授权中使用组授权,该组中的用户拥有所有授权的主机权限

 

资产 资产通常是我们的服务器、网络设备等,将资产授权给用户,用户则会有权限登 录资产,执行命令等

 

管理账户 添加资产时需要添加一个管理账户,该账户是该资产上已有的有管理权限的用户, 如root,或者有 NOPASSWD: ALL sudo权限的用户,该管理账户用来向资产推送系统用户, 为系统用户添加sudo,获取资产的一些硬件信息

 

资产组 同用户组,是资产组成的集合,为了方便授权

 

机房 又称IDC,不解释

 

Sudo 这里的sudo其实是Linux中的sudo命令别名,一个sudo别名包含多个命令, 系统用户关联sudo就代表该系统用户有权限sudo执行这些命令

 

系统用户 系统用户是服务器上建立的一些真实存在的可以ssh登陆的用户,如 dev, sa, dba等,系统用户可使用jumpserver推送到服务器上,也可以利用自己公司 的工具进行推送,授权时将用户、资产、系统用户关联起来则表明用户有权限登陆该资产的 这个系统用户 如:用户 小明 以 dev 系统用户登录 172.16.1.1资产简单理解就是 将某个资产上的某个系统用户映射给这个用户登录

 

推送系统用户 添加完系统用户,需要推送,推送操作是使用ansible,把添加的系统 用户和系统用户管理的sudo,推送到资产上,具体体现是在资产上useradd该系统用户, ,设置它的key,然后设置它的sudo,为了让用户可以登录它

 

授权规则 授权规则是将 资产 系统用户 和 用户 关联起来,用来完成授权。 这样用户就可以以某个系统用户账号登陆资产。大家对这好像不是很理解,其实也是对系统用户, 用户这里没有搞清楚。我们可以把用户当做虚拟的用户,而系统用户是真实再服务器上存在的用户, 系统用户可以使用jumpserver推送,也可以自己手动建立,但是推送的过程一定要有,哪怕是模拟 推送(不选择秘钥和密码推送,如网络设备),因为添加授权规则会检查推送记录。为了简化理解, 我们暂时 以 用户 资产 系统用户 来理解,暂时不考虑组,添加这样的规则意思是 授权 用户 在这个资产上 以这个系统用户来登陆系统用户是一组具有通用性,具有sudo的用户, 不同的用户授权不同的 系统用户,比如 dba可能有用数据库的sudo权限

 

日志审计

 

在线 查看当前在线的用户(web在线),可以监控用户的命令执行,强制结束用户 登录。

实时监控 实时监控用户的操作

 

登录历史 查看以往用户的登录历史,可以查看用户登陆操作的命令,可以回放用户 执行命令的录像

 

命令记录 查看用户批量执行命令的历史,包含执行命令的主机,执行的命令,执行的结果

上传下载 查看用户上传下载文件的记录

默认设置 默认设置里可以设置 默认管理账号信息,包括账号密码密钥,默认信息为了方便添加资产 而设计,添加资产时如果选择使用默认管理账号,则会使用这里设置的信息,端口是资产的ssh端口,添加 资产时,默认会使用该端口

 

四、快速开始

1. 添加用户

 

用户管理 – 查看用户 – 添加用户 填写基本信息,完成用户添加

 

用户添加完成后,根据提示记住用户账号密码,换个浏览器登录下载key

ssh登录jumpserver测试

2. 添加资产

 

资产管理 – 查看资产 – 添加资产 填写基本信息,完成资产添加

 

3. 添加sudo

 

授权管理 – Sudo – 添加别名 输入别名名称和命令,完成sudo添加

 

4. 添加系统用户

 

授权管理 – 系统用户 – 添加 输入基本信息,完成系统用户添加

 

5. 推送系统用户

 

授权管理 – 推送 – 选择需要推送的资产或资产组完成推送

 

推送只支持服务器,使用密钥是指用户从跳板机跳转时使用key,反之使用密码,

授权时会检查推送记录,如果没有推送过则无法完成系统用户在该资产上的授权。

如果资产时网络设备,请不要选择密码和秘钥,模拟一下推送,目的是为了生成

推送记录。

6. 添加授权规则

 

授权管理 – 授权规则 – 添加规则 选择刚才添加的用户,资产,系统用户完成授权

 

7. 测试登录

 

用户下载key 登录跳板机,会自动运行connect.py,根据提示登录服务器

 

用户登陆web 查看授权的主机,点击后面的链接,测试是否可以登录服务器

 

8. 监控和结束会话

 

日志审计 – 在线 查看当前登录的用户登录情况,点击监控查看用户执行的命令, 点击阻断,结束用户的会话

 

9. 查看历史记录

 

日志审计 – 登录历史 查看登录历史,点击统计查看命令历史,点击回放查看录像

 

10. 执行命令

 

测试命令的执行,命令记录查看 批量执行命令的日志

 

11. 上传下载

 

测试文件的上传下载,日志审计 – 上传下载 查看上传下载记录

五、更新Log

更新Log

 

— 登录脚本 

 

1.1 精确记录执行命令

 

1.2 新增文件上传下载

 

1.3 更改为输入ID登陆主机

 

1.4 增加主机搜索

 

1.5 执行命令使用ansible执行

 

1.6 优化脚本

 

— web管理 

 

1.7 增加web terminal

 

1.8 增加web端批量命令执行

 

1.9 增加录像回放

 

1.10 资产增加硬件信息抓取

 

1.11 资产增加Excel导出和导入

 

1.12 资产增加批量更改

 

1.13 废弃了LDAP支持,改为在主机上授权系统用户(系统用户为一些通用用户,如dev,dba)

 

1.14 授权改为以授权规则为中心

 

1.15 添加系统用户推送

 

1.16 更改sudo管理

 

1.17 增加执行命令日志审计

 

1.18 增加文件上传命令审计

 

1.19 增加web端历史命令搜索

 

1.20 取消权限申请

 

1.21 取消部门管理员

 

1.22 取消资产别名

 

1.23 授权细颗粒化

 

六、FAQs

查看日志

 

tail -f logs/jumpserver.log

里面包含了详细的日志,包含了账号和密码,一切完成后,请将 jumpserver.conf中的log改为 warning

 

推送系统用户失败

 

在系统用户列表,点击系统用户名称,查看系统用户详情,把鼠标放到失败按钮上,会看到失败的原因,通常是因为 管理账号添加的不对(见管理账号名称解释),或服务器没有安装sudo(推送系统用户时,会推送sudo设置)

 

邮件发送失败

 

如果出现mail,smtp等错误通常都是由于发送邮件导致的,请尝试不同提供商的邮件设置

 

service启动失败

 

请进入jumpserver目录,手动运行

 

python manage.py runserver 0.0.0.0:80

 

python run_websocket.py

如果启动失败,可能是由于 80端口和3000端口已经被占用,或者数据库账号密码不对,请检查

 

监控,websocket, web命令执行失败

 

他们会像运行的websocket服务发起请求, 可能是websocket没有启动,可能是Jumpserver.conf中 websocket的地址不正确,务必保证设置的地址用户可以访问到(映射或防火墙等), service.sh先关掉服务器,手动运行(见 3), 查看websocketconsole输出

 

Crypto,HAVE_DECL_MPZ_POWM_SEC等错误

 

很常见的错误,通常是由 pycrypto的版本问题,请卸载重新安装

 

pip uninstall pycrypto

 

rm -rf /usr/lib64/python2.6/site-packages/Crypto/

 

pip install pycrypto

用户,系统用户,管理用户对比

 

为了简单的描述这个问题,我们举例来说明, 用户 小明(公司员工), 系统用户 dev(后端服务器上存在的账号), 授权时将 系统用户dev在某台服务器授权给小明时,这是小明登陆后面的服务器,其实是登陆了服务器上的dev用户类似 [xiaoming@localhost ~]$ ssh dev@somehost 。管理账号是为了帮助大家推送系统用户用的,在jumpserver上新建系统用户并推送,其实相当于 ssh 管理账户@somehost -e 'useradd 系统账号', 当然,我们是用ansible完成这样的操作


原创文章,作者:Ace,如若转载,请注明出处:http://www.178linux.com/10724

(10)
AceAce
上一篇 2016-01-05
下一篇 2016-01-05

相关推荐

  • vncserver安装配置小结

      安装VNC Server 端:        1. yum install  tigervnc-server         //RHEL6: vnc server的包名          yum &nbs…

    Linux干货 2016-03-09
  • xen虚拟机实时迁移

    前言:  xen虚拟机提供了一种类似于heartbeat高可用方案,在保证也不中断的业务情况下实现虚拟机迁移技术。在保证虚拟机上的服务正常的情况下将运行中的Domain迁移到其他机器上,实现xen虚拟机的高可用。 一、实验准备:  (1)各个测试机之间时间要同步  (2)node3提供iscsi网络共享存储  (4)n…

    Linux干货 2015-08-27
  • 精解局域网访问及共享(三)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/155109    上一节中的2种情况都是默认的简单共享,下面我们着重分析一下高级共享方式下的各种访问情况。毕竟这种方式用的很普遍,而且在权限…

    Linux干货 2015-03-25
  • iptables:iptables工具详解

    之前的博客聊了关于iptables防火墙工作原理的相关介绍, 本片将详细介绍iptables的使用。 一、 iptables 查看链表,创建链表,类命令     1. iptables [-t table] -N chain : 创建一条自定义规则的链      #&n…

    Linux干货 2015-08-06
  • 浅谈编译kernel+busybox构建拥有远程ssh登录和web功能最小linux系统(二)

    忘了介绍本文的源码的版本了 dropbear-2013.58.tar.bz2    busybox-1.21.1.tar.bz2 linux-3.13.6.tar.xz  nginx-1.4.7 基于上文,我们还差group文件没有写 root@mysql etc]# vi group  …

    Linux干货 2015-09-22
  • Linux bash编程基础语法总结

    前言 在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西——bash编程,即shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于Windows中的批处理文件。本文带来的是bash编程的基础语法…

    Linux干货 2015-04-04