05-jumpserver部署手册¶
可以实现什么¶
精确记录操作命令
支持批量文件上传下载
支持批量命令执行(Ansible完成)
支持Web Terminal连接主机
支持Web端批量命令执行
支持录像回放
支持硬件信息如cpu,内存等抓取
支持资产Excel导入导出
支持资产批量更改
支持系统用户的批量推送(Ansible实现)
支持用户,主机,用户组,主机组,系统用户混合细颗粒授权
支持sudo管理
支持命令统计和命令搜索
支持上传下载文件审计
支持终止用户连接
作为运维人员来怎么用它¶
相关名词解释¶
用户管理¶
- 用户组
多个用户可以组合成用户组,为了方便进行授权,可以将一个部门或几个用户组建成用户组,在授权中使用组授权,该组中的用户拥有所有授权的主机权限
- 用户
用户是授权和登陆的主体,将来为每个员工建立一个账户,用来登录跳板机,将资产授权给该用户,查看用户登陆记录命令历史等
资产管理¶
- 资产组
主机组 同用户组,是资产组成的集合,为了方便授权
- 资产
资产通常是我们的服务器、网络设备等,将资产授权给用户,用户则会有权限登录资产,执行命令等
管理账户¶
添加资产时需要添加一个管理账户,该账户是该资产上已有的有管理权限的用户,如root,或者有 NOPASSWD: ALL sudo权限的用户,该管理账户用来向资产推送系统用户,为系统用户添加sudo,获取资产的一些硬件信息
授权管理¶
- 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在线),可以监控用户的命令执行,强制结束用户登录
实时监控 实时监控用户的操作
登录历史 查看以往用户的登录历史,可以查看用户登陆操作的命令,可以回放用户执行命令的录像
命令记录 查看用户批量执行命令的历史,包含执行命令的主机,执行的命令,执行的结果
上传下载 查看用户上传下载文件的记录
快速安装-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
注释:
-
安装过程中要求输入数据库密码时,直接回车就行
-
完成安装后,请访问web,继续查看后续文档
-
如果启动失败,请返回上层目录,手动运行./service.sh restart启动
-
默认账号密码 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使用教程¶
创建用户¶
添加资产¶
之前导出去的模板
添加主机组¶
添加sudo授权¶
添加系统用户¶
推送系统用户
添加授权规则¶
登录方式¶
打开之前的邮件
Hi, man
您的用户名: man
您的权限: 普通用户
您的web登录密码: DOgf7_b4bTM0qUEI
您的ssh密钥文件密码: _rtj64q2WtIQ28C7
密钥下载地址: http://10.0.194.73/juser/key/down/?uuid=f329400f5f494b65a0b872081260af47
说明: 请登陆跳板机后台下载密钥, 然后使用密钥登陆跳板机!
web登录¶
Xshell登录¶
下载登录秘钥
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.