开源堡垒机_jumpserver

前介

1、jumperver介绍

​ Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。

​ 特点:

​ 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载

2、jumpserver 2.0安装

​ Centos 6.5 x86_64 关闭 iptables,关闭 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。

3、安装依赖包

yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python-pip MySQL-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

4、下载jmpserver

cd /opt Git clone https://github.com/jumpserver/jumpserver.git

注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可

jumpserver下载地址:

https://github.com/jumpserver/jumpserver

https://github.com/jumpserver/jumpserver/release

jumpserver官网指导文档

https://jumpserver.readthedocs.io/zh/master/

1.PNG

5、执行快速安装脚本

cd /opt/jumpserver/install
pip install -r requirement.txt

2.PNG

查看安装的包 pip freeze

python install.py 输入jumpserver的地址,默认为:”192.168.1.200”,回车即可。 是否安装MySQL:选择”y”进行安装

3.PNG

MySQL 启动后会要求用户输入 邮件服务器及账户(后期用来发送用户名、ssh pass、web pass、ssh key)

163邮箱用授权密码,而不是登入密码 ,切记 。

4.PNG

输入smtp信息之后发现报错了,是python的pycrypto模块问题,需要卸载重装: pip uninstall pycrypto easy_install pycrypto

5.PNG

6.PNG

7.PNG

8.PNG

安装之后继续 python install.py 进行安装,并且输入 web管理员用户名和管理员密码,ok

9.PNG

10.PNG

运行 crontab,定期处理失效连接,定期更新资产信息 cd /opt/jumpserver python manage.py crontab add

11.PNG

注:

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

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

3)如果 ./service.sh start 启动失败 cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py

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

6、更新代码

cd /opt/jumpserver 
git pull

Linux中的环境搭建到这一步就结束,下一步就是web页面的操作


操作

一、jumpserver架构图

jumpserver架构图.png

主要难理解的三个用户概念:

  1. 用户: 指上图中的运维老大或运维小弟,用来通过公网登录jumpserver的
  2. 管理用户: 用于管理资产的用户,一般为root或sudo配置的无密码登录用户
  3. 系统用户: 登录资产时使用的用户, 为了安全不直接使用root用户,而是使用普通用户(通过root授予相应的权限)

4A标准

  • auth
  • authorized
  • audit
  • account

二、jumpserver部署

直接参考官方网站,简单暴力(但需要网速较好,因为要下载大量的软件包,python模块与docker镜像等)

https://jumpserver.readthedocs.io/zh/master/

安装完成后,使用浏览器访问http://IP就可以了

jumpserver登录主页.png

部署问题:

除了官方文档上的问题解决外,还有一个坑

因为软件包随着时间的不同,可能版本会有变化,如果在安装python模块时出现下面的问题,请解决,否则即使能部署成功,但后面的功能也会受影响

解决思路:

(py3) [root@vm5 ~]# pip install urllib3==1.22
(py3) [root@vm5 ~]# pip install future==0.16.0

pip安装错误图.png

(py3) [root@vm5 ~]# pip install jms-storage==0.0.22

注意: pip install会自动卸载原版本,安装你指定的版本.但也有可能会出现新的报错。总之全解决,直到没有报错才继续。

三、邮箱授权

admin(运维老大)创建个用户(运维小弟),还要帮你创建密码?

不好意思,我小弟太多管不过来,而且我是管理员,不屑于知道你密码。

那你就配置个邮箱吧,发邮件链接给你自己改。

邮件授权.png

邮件授权2.png

邮件授权3.png

邮件授权4.png

邮件授权5.png

四、jumpserver系统设置

1.png

jumpserver1.png

jumpserver2.png

jumpserver3.png

五、创建jumpserver普通用户

创建用户1.png

NdskUP.png

创建用户3.png

NdsVC8.png

张三登录自己的邮箱自行设置密码

NdsZ8S.png

Nds35V.png

NdsJ8U.png

NdsY2F.png

NdsdbR.png

Ndsy8O.png

六、创建管理用户

Ndsvaq.png
NdsxI0.png
NdsjZn.png

七、创建系统用户

NdyFsJ.png

NdyiM4.png

NdykL9.png

NdyCzF.png

八、创建资产

Ndyhy4.png

Ndy4OJ.png

8

NdyWSU.png

九、创建授权规则

Nd6Ckt.png

Nd6PtP.png

Nd6S0A.png

Nd6pTI.png

十、连接测试

10.1 命令连接进行管理

连接测试1.png

连接测试2.png

连接测试3.png

为了安全,建议配置nginx 反向代理 jumpserver

log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host';
server {
listen 8080 ssl;
listen 80;
deny all;
server_name jumpserver.xxxx.com;
index index.html index.htm index.PHP;
ssl_certificate ssl/xxxx.com.crt;
ssl_certificate_key ssl/xxxx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if ( $scheme = http ) {
rewrite ^(.*)$ https://$host:8090$request_uri? permanent;
}
location / {
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://10.43.12.31:8090;
}
location ^~ /ws/ {
proxy_pass http://10.43.12.31:8090/ws/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
access_log /data0/logs/jumpserver.log jumpserver;
error_log /data0/logs/jumpserver_error.log debug;
}

10.2 登录web进行管理

用户登录连接测试.png

用户登录执行命令.png

点击web终端就会跳到web管理终端

web终端登录.png

点击文件管理就会跳到文件管理界面

文件管理.png

十一、管理员查看信息

admin管理员可以进行会话的管理与查看, 命令历史记录,录像的回放等功能

连接会话查看.png

连接会话查看2.png

连接会话查看3.png

更多功能请自行挖掘,觉得功能还不够,请自行二次开发.

posted on 2020-06-24 18:14  九酒馆  阅读(3146)  评论(0编辑  收藏  举报

导航