环境准备工作
主机 | IP地址 |
---|---|
jumpserver 服务器端 | 192.168.1.100 |
被管理端 | 192.168.1.10 |
关闭防火墙以及selinux
[root@jumpserver ~]# systemctl stop firewalld
[root@jumpserver ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@jumpserver ~]# vim /etc/selinux/config
......
SELINUX=disabled
......
[root@jumpserver ~]# setenforce 0
查看当前系统的字符集是什么。如果为英文需修改为中文
[root@jumpserver ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
因为我这里是中文,所有就不做更改了
修改为中文的方法:
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
下载Python3.*版本的源码包以及jumpserver所需的组件包
Python 的下载地址:
https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
jumpserver的下载地址:
https://github.com/jumpserver/jumpserver
安装Python3
在安装之前,我们先解决相关依赖关系
[root@jumpserver ~]# yum -y install sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release unzip
[root@jumpserver /]# tar -xf Python-3.6.1.tar.xz //解压我们下载好的源码包
[root@jumpserver /]# cd Python-3.6.1/
[root@jumpserver Python-3.6.1]# ./configure && make -j 2 && make install
[root@jumpserver Python-3.6.1]# echo $?
0
虚拟化Python环境(虚拟化后在前面会多出一个(py3)的标志)
[root@jumpserver ~]# python3.6 -m venv /opt/py3
[root@jumpserver ~]# source /opt/py3/bin/activate
(py3) [root@jumpserver ~]#
(py3) [root@jumpserver ~]# python -V //查看版本号
Python 3.6.1
真实机Python的版本还是原来哪一个,上面那个只是我们虚拟化出来的
[root@jumpserver ~]# python -V
Python 2.7.5
安装jumpserver
解压我们下载好的源码包
(py3) [root@jumpserver /]# unzip jumpserver-package.zip
(py3) [root@jumpserver jumpserver-package]# ls //然后里面会有这一些目录
coco jumpserver luna.tar.gz python-package
其中coco 、jumpserver、luna是jumpserver的三大组件
(py3) [root@jumpserver jumpserver-package]# mv coco/ /opt/ //移动这三大组件到/opt/目录下
(py3) [root@jumpserver jumpserver-package]# mv jumpserver/ /opt/
(py3) [root@jumpserver jumpserver-package]# mv luna.tar.gz /opt/
(py3) [root@jumpserver ~]# cd /opt/jumpserver/requirements/ //进入这个目录
(py3) [root@jumpserver requirements]# ls
deb_requirements.txt issues.txt mac_requirements.txt requirements.txt rpm_requirements.txt
这个目录下会有很多文件
(py3) [root@jumpserver requirements]# yum install -y $(cat rpm_requirements.txt) //使用这个下载文件中包含的依赖包
(py3) [root@jumpserver requirements]# pip install --upgrade pip //更新pip的版本,不然后面安装依赖库关系会出现警号信息(也可以忽略这一步)
(py3) [root@jumpserver requirements]# pip install -r requirements.txt //安装相关依赖库 会受网速的影响
如果在执行上面一步的时候,出现了报错,那就重新执行,多执行几遍就可以了
(py3) [root@localhost requirements]# yum -y install redis //安装Redis服务器
(py3) [root@localhost requirements]# systemctl start redis && systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.
(py3) [root@localhost requirements]# yum -y install mariadb mariadb-devel mariadb-server //安装mariadb数据库
(py3) [root@localhost requirements]# systemctl start mariadb
(py3) [root@localhost requirements]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
(py3) [root@localhost ~]# mysql //登录数据库 无密码
MariaDB [(none)]> create database jumpserver default charset 'utf8';
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
(py3) [root@localhost ~]# cd /opt/jumpserver/ //进入jumpserver目录
(py3) [root@localhost jumpserver]# cp config_example.py config.py //生成配置文件
(py3) [root@localhost jumpserver]# vim config.py //编辑配置文件 修改如下内容即可 主要用户名和密码一定要正确
38 DB_ENGINE = 'mysql'
39 DB_HOST = '127.0.0.1'
40 DB_PORT = 3306
41 DB_USER = 'jumpserver'
42 DB_PASSWORD = '123'
43 DB_NAME = 'jumpserver'
(py3) [root@localhost jumpserver]# cd utils/ //进入这个吗ul
(py3) [root@localhost utils]# bash make_migrations.sh //初始化数据库操作
(py3) [root@localhost utils]# cd .. //返回一级目录
(py3) [root@localhost jumpserver]# chmod a+x jms //赋权
(py3) [root@localhost jumpserver]# ./jms start all -d 开启jumpserver服务器 -d 表示后台运行
注:如果第一次启动失败,那就在启动一次就可以了
浏览器访问jumpserver验证
输入:IP地址:8080 即可访问 输入用户名 admin 密码admin 即可登录
安装coco以及Luna组件
安装coco组件
(py3) [root@localhost jumpserver]# cd .. //回到opt目录下
(py3) [root@localhost opt]# cd coco/requirements/ //进入这个目录
(py3) [root@localhost requirements]# yum install -y $(cat rpm_requirements.txt) //下载文件中包含的依赖包
(py3) [root@localhost requirements]# pip install -r requirements.txt //下载相关依赖库 如果出错了,多执行几遍即可
(py3) [root@localhost requirements]# cd .. //返回上一级目录
(py3) [root@localhost coco]# cp conf_example.py conf.py //生成配置文件
(py3) [root@localhost coco]# chmod a+x cocod //赋权
(py3) [root@localhost coco]# ./cocod start -d //启动操作
Start coco process
安装Luna组件(这个组件只需要解压即可,不需要进行任何操作)
(py3) [root@localhost coco]# cd .. //返回opt目录下
(py3) [root@localhost opt]# ls
coco jumpserver luna.tar.gz py3 rh
(py3) [root@localhost opt]# tar -xf luna.tar.gz //解压操作
Nginx整合
(py3) [root@localhost ~]# yum install -y nginx //下载Nginx服务器
如果这个下载不了Nginx,那么我们需要配置yum源
(py3) [root@localhost ~]# wget http://mirrors.aliyun.com/repo/epel-7.repo
(py3) [root@localhost ~]# vim /etc/nginx/nginx.conf
定位到文中的38行 任何按键盘上的20 dd 往下删除原来server存在的代码,然后复制下面这个进行修改
server {
listen 80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}
location /static/ {
root /opt/jumpserver/data/;
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; #将localhost换为本地的IP地址
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass http://localhost:8080; #将localhost换为本地的IP地址
}
}
(py3) [root@localhost ~]# nginx -t //检测配置文件是否正常
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(py3) [root@localhost ~]# systemctl start nginx //启动Nginx服务器
(py3) [root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
浏览器输入IP地址访问测试
coco组件的注册
会话管理----终端管理----接受
点击更新后出现如下界面
之后出现绿色就代表成功了
如果在注册的时候一直为红色,我们可以先去服务器上使用以下命令查看对应端口是否开启
(py3) [root@localhost keys]# netstat -lnupt | grep 2222 //如果该端口没有运行 执行以下操作
1.先删除会话管理---终端管理---点击删除
2.然后进入服务器上进行如下操作
(py3) [root@localhost ~]# cd /opt/coco/
(py3) [root@localhost coco]# ./cocod stop -d //关闭服务
(py3) [root@localhost coco]# ./cocod start -d //在来开启即可
(py3) [root@localhost coco]# netstat -lnupt | grep 2222 //查看端口
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 23637/python3
再次去注册即可
使用ssh通过2222端口连接测试
(py3) [root@localhost ~]# ssh -p2222 admin@192.168.1.100 //登录测试
admin@192.168.1.100's password:
Administrator, 欢迎使用Jumpserver开源跳板机系统
1) 输入 ID 直接登录 或 输入部分 IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP, 主机名 or 备注 搜索. 如: /ip
3) 输入 P/p 显示您有权限的主机.
4) 输入 G/g 显示您有权限的主机组.
5) 输入 G/g + 组ID 显示该组下主机. 如: g1
6) 输入 H/h 帮助.
0) 输入 Q/q 退出.
Opt>
jumpserver平台初始化
系统设置—基本设置
开启QQ邮箱SMTP功能并获取授权码
系统设置—邮件设置
QQ邮箱查看验证结果
以上提交以后,需要去重启jumpserver服务器
(py3) [root@localhost ~]# /opt/jumpserver/jms stop -d
Stop service: gunicorn
Stop service: celery
Stop service: beat
(py3) [root@localhost ~]# /opt/jumpserver/jms start -d
创建jumpserver登录用户以及用户组
用户管理—用户组
点击创建用户组后,出现如下画面
点击用户管理—用户列表
点击创建用户出现如下画面
修改创建用户Jack的密码
然后点击发送密码邮件
QQ邮箱上验证
点击上图的链接进行密码更改
使用Jack用户登录测试
第一次登录会要求把一些信息补全
然后点击next
ssh公钥生成
(py3) [root@localhost ~]# useradd Jack //创建Jack用户
(py3) [root@localhost ~]# echo "123" | passwd --stdin Jack //生成Jack的密码
更改用户 Jack 的密码 。
passwd:所有的身份验证令牌已经成功更新。
(py3) [root@localhost ~]# su - Jack //切换到Jack用户下
[Jack@localhost ~]$ ssh-keygen //生成秘钥
[Jack@localhost ~]$ cat .ssh/id_rsa.pub //查看家目录下的这个文件
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDpPmzIy4Y1RetczBIprAM6f4Tgm37iRVVvTa8ItNNUOxKZ3XHM4f/v47f3+37Uc66AWtupUbmlGEW2kOSHy/9FR4Xj3Pjm8BDT3FmOy6QBc8HkVUvOINYHfMcWbQ78ih7qhdLBWJ0m5/FaxjI6vlgLOB0NulslXHmT6DpX3VkGe7PlmghNf2IEqGv4l9YafBpnlHUQ7VskilWkCowJQnXU3OhiE3GxVQs0XdAtLH7b92A2mwS+Plv8ElpWRipmsjpcfU3wjFUuEkn9ae0DzzGAEmlJlUFZSiXrZ8e3IZCBhqiAwTC4/W5mmwmgIF5vWguyKxTU1hQjavaXbvLavkNT Jack@localhost.localdomain
复制以上内容到如下的文本框中
创建资产节点、管理用户、系统用户
资产管理—资产列表—右击ROOT选择新建节点
然后右击节点,点击重命名
创建管理用户(主要用于连接)
点击创建管理用 户按钮
注:用户名为root 密码必须和资产服务器root密码一致,否则可能导致连接不上资产服务器
创建系统用户(登录资产的用户)
点击创建系统用户
创建普通的系统用户 普通的系统用户只拥有一些可以操作的权限
创建message用户(这个用户拥有所有操作的权限)
创建资产
资产管理—资产列表—王者荣耀西南区服务器—创建资产
点击创建资产按钮后,进行如下操作
注:我们这里需要新开一台Linux系统来充当资产
连接成功后是如下的样子的
测试硬件信息以及是否能够连接
测试硬件信息
测试是否连接
创建授权规则
创建这个授权规则需要用到我们之前创建的jumpserver登录用户
点击创建授权规则
192.168.1.10服务器上查看是否创建用我们制定的系统用户
[root@localhost ~]# tail -5 /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
admin-root:x:1000:1000::/home/admin-root:/bin/bash
如上所示,admin-root 就是我们创建的系统用户管理员
[root@localhost ~]# visudo //查看admin-root 拥有的权限
*在最后一行*
admin-root ALL=(ALL) NOPASSWD: /sbin/,/bin/
jumpserver用户登录测试
注销当前的administrator 用户
然后我们点击会话管理----web终端 之后会弹出一个界面出来
选择对应资产服务器,之后就会显示以系统用户登录的字符界面了
我们输入几个命令来测试一下
然后我们使用远程软件FinalShell来登录
用户使用jumpserver创建的登录用户来进行登录(就是管理组当中的用户) 端口号为2222
登录之后的界面是这样子的
我们输入p来查看权限
然后我们输入主机的名称 就是hostname那一栏的内容
然后就切换到了我们系统用户的登录界面了
查看历史会话记录
历史会话记录(会有视频回放功能)
至此,jumpserver整个环境搭建就到此结束了,如有错误,请指出改正