跳转至

05-jumpserver部署手册

可以实现什么

精确记录操作命令 
支持批量文件上传下载 
支持批量命令执行(Ansible完成) 
支持Web Terminal连接主机 
支持Web端批量命令执行 
支持录像回放  
支持硬件信息如cpu,内存等抓取 
支持资产Excel导入导出 
支持资产批量更改  
支持系统用户的批量推送(Ansible实现)  
支持用户,主机,用户组,主机组,系统用户混合细颗粒授权 
支持sudo管理  
支持命令统计和命令搜索 
支持上传下载文件审计 
支持终止用户连接 

作为运维人员来怎么用它

image-20211027105512913

相关名词解释

用户管理

  1. 用户组

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

  1. 用户

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

资产管理

  1. 资产组

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

  1. 资产

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

管理账户

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

授权管理

  1. sudo

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

  1. 系统用户

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

  1. 推送系统用户

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

  1. 授权规则

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

日志审计

在线 查看当前在线的用户(非web在线),可以监控用户的命令执行,强制结束用户登录
实时监控 实时监控用户的操作
登录历史 查看以往用户的登录历史,可以查看用户登陆操作的命令,可以回放用户执行命令的录像
命令记录 查看用户批量执行命令的历史,包含执行命令的主机,执行的命令,执行的结果
上传下载 查看用户上传下载文件的记录

快速安装-docker版本(推荐)

配置公网yum仓库

rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum repolist

下载相关软件包

yum -y install wget vim
cd /opt/
wget -c https://gitee.com/chriscentos/jumpserver/attach_files/926609/download/jumpserver-installer-v2.16.3.tar.gz
wget -c https://gitee.com/chriscentos/jumpserver/attach_files/926608/download/quick_start.sh
tar xf jumpserver-installer-v2.16.3.tar.gz 

修改脚本

vim quick_start.sh

Version=v2.16.3

将以下内容注释
function main(){
  prepare_install
#  get_installer

开启运行脚本进行安装

sh quick_start.sh 

脚本允许结果如下

[root@linux-node76 opt]# sh quick_start.sh 
quick_start.sh: line 63: sedi: command not found


       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                   Version:  v2.16.3  

1. Check Configuration File
Path to Configuration file: /opt/jumpserver/config
/opt/jumpserver/config/config.txt  [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt   [ √ ]
/opt/jumpserver/config/nginx/cert/server.key   [ √ ]
complete

2. Backup Configuration File
Back up to /opt/jumpserver/config/backup/config.txt.2022-01-13_16-20-42
complete

>>> Install and Configure Docker
1. Install Docker
Starting to download Docker engine ...

2. Configure Docker
Do you need custom docker root dir, will use the default directory /var/lib/docker? (y/n)  (default n):  回车
complete

3. Start Docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
complete

快速安装-常规部署

yum源

配置指定的YUM源分别为(阿里云YUM源,与epel YUM源)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum repolist

网络

检查您的服务器是否可以访问外网

[root@m01 ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121: icmp_seq=1 ttl=128 time=23.0 ms

安装依赖

安装相关依赖软件包

[root@m01 ~]# yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel     安装依赖的软件包

[root@m01 ~]# rpm -q git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-deve

让PIP源使用国内镜像

提升下载速度和安装成功率。

*永久修改*

Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)

阿里云的源配置方式

mkdir ~/.pip/ -p
vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

豆瓣的源配置方式

mkdir ~/.pip/ -p
vim ~/.pip/pip.conf
 [global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

安装git

yum -y install git

克隆jumpserver

cd /opt
git clone https://github.com/jumpserver/jumpserver.git
git checkout 0.3.3

注:不要安装在/root、/home 等目录下,以免权限问题

执行安装脚本

cd jumpserver/install
python install.py

注释:

  1. 安装过程中要求输入数据库密码时,直接回车就行

  2. 完成安装后,请访问web,继续查看后续文档

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

  4. 默认账号密码 admin 5Lov@wife

配置跳板机

当我们安装完成jumpserver以后需要对其进行初始化的设置

[root@m01 install]# python install.py
开始关闭防火墙和selinux
setenforce: SELinux is disabled
请输入您服务器的IP地址,用户浏览器可以访问 [10.0.0.61]:     回车默认即可
是否安装新的MySQL服务器? (y/n) [y]: y        如果没有安装MySQL服务器需要进行安装
以下就需要下载安装MySQL数据库,此过程省略……………………………………………….
Starting mysqld:                                           [  OK  ]
连接数据库成功
请输入SMTP地址: stmp.163.com
请输入SMTP端口 [25]: 
请输入账户: 15811204091@163.com
请输入密码:*************
[Errno -2] Name or service not known
是否跳过(y/n) [n]? : y
请登陆邮箱查收邮件, 然后确认是否继续安装
是否继续? (y/n) [y]: y
开始写入配置文件
开始安装Jumpserver ...
开始更新jumpserver
请输入管理员用户名 [admin]: admin        设置登录账户
请输入管理员密码: [5Lov@wife]: admin        设置登录密码
请再次输入管理员密码: [5Lov@wife]: admin
安装成功,请访问web, 祝你使用愉快。
请访问 https://github.com/jumpserver/jumpserver/wiki 查看文档

到了这里我们的jump-server服务器就安装完成啦!

*提示注意:*

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

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

3)如果./service.sh start启动失败

请进入jumpserver目录,手动运行

python manage. erver 0.0.0.0:80

python run_websocket.pypy runs

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

登录后台

通过在浏览器输入http://10.0.0.61:8000/login/地址访问jump-server后台

jumpserver使用教程

创建用户

image-20211027110253658

image-20211027110300624

image-20211027110306725

添加资产

image-20211027110353672

image-20211027110359965

之前导出去的模板

image-20211027110410515

image-20211027110415500

image-20211027110420634

image-20211027110425523

添加主机组

image-20211027110438364

image-20211027110443348

添加sudo授权

image-20211027110455868

image-20211027110500444

添加系统用户

image-20211027110515481

image-20211027110525456

推送系统用户

image-20211027110558368

image-20211027110605125

image-20211027110611501

添加授权规则

image-20211027110627970

登录方式

打开之前的邮件

Hi, man
        您的用户名: man
        您的权限: 普通用户
        您的web登录密码: DOgf7_b4bTM0qUEI
        您的ssh密钥文件密码: _rtj64q2WtIQ28C7
        密钥下载地址: http://10.0.194.73/juser/key/down/?uuid=f329400f5f494b65a0b872081260af47
        说明: 请登陆跳板机后台下载密钥, 然后使用密钥登陆跳板机!

web登录

image-20211027110726326

image-20211027110732309

image-20211027110738165

Xshell登录

下载登录秘钥

image-20211027110944200

image-20211027110951840

image-20211027111116405

image-20211027111123217

image-20211027111130519

jumpserver密码重置

# 管理密码忘记了或者重置管理员密码
$ source /opt/py3/bin/activate
$ cd /opt/jumpserver/apps
$ python manage.py changepassword  <user_name>

# 新建超级用户的命令如下命令
$ python manage.py createsuperuser --username=user --email=user@domain.com
在打算重置 admin 的时候,竟然发现根本就不存在这个用户(尴尬),最后新建了一个超级用户解决。
(py3) [root@V2 apps]# python manage.py changepassword admin
2018-08-28 14:43:36 [signals_handler DEBUG] Receive django ready signal
2018-08-28 14:43:36 [signals_handler DEBUG]   - fresh all settings
CommandError: user 'admin' does not exist
(py3) [root@V2 apps]# 
(py3) [root@V2 apps]# python manage.py createsuperuser --username=UserName--email=Email@Email.com
2018-08-28 14:44:40 [signals_handler DEBUG] Receive django ready signal
2018-08-28 14:44:40 [signals_handler DEBUG]   - fresh all settings
Password: 
Password (again): 
Superuser created successfully.