jumpserver部署(Centos7环境)
一、jumpserver概要
Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal
解决方案,交互界面美观、用户体验好
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制
组件说明:
Jumpserver
现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API
Coco
实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发
Luna
现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等
二、环境准备
环境:
角色 | IP |
---|---|
jumpserver | 192.168.2.5 |
web server(资产) | 192.168.2.6 |
步骤:
①关闭防火墙以及selinux
1 | [root@localhost ~]# sed -i '/SELINUX/s/enforcing/disabled/g' /etc/sysconfig/selinux |
②修改字符集否则可能报 input/output error的问题,因为日志里打印了中文
1 | [root@localhost ~]# `localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8` |
③准备python3和python虚拟环境
1 | [root@localhost ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git |
④建立环境
1 | [root@localhost Python-3.6.1]# cd /opt/ |
看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行**
(py3) [root@localhost py3]
⑤自动载入虚拟环境
1 | (py3) [root@localhost opt]# git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv |
三、安装jumpserver
步骤:
①下载Clone项目
1 | (py3) [root@localhost ~]# cd /opt/ |
②安装依赖
1 | (py3) [root@localhost jumpserver]# cd requirements/ |
③安装redis
Jumpserver 使用 Redis 做 cache 和 celery broke(python分布式调度模块)
1 | (py3) [root@localhost ~]# yum -y install redis |
④安装Mysql
1 | (py3) [root@localhost ~]# yum -y install `mariadb*` |
⑤为jumpserver授权
1 | (py3) [root@localhost ~]# mysql |
⑥修改jumpserver配置文件
1 | (py3) [root@localhost ~]# cd /opt/jumpserver/ |
1 | ...... #将参数下pass去掉添加 |
⑦生成数据库表结构和初始化数据文件
1 | (py3) [root@localhost jumpserver]# cd /opt/jumpserver/utils/ |
⑧运行jumpserver
1 | (py3) [root@localhost utils]# cd /opt/jumpserver/ |
如果运行到后台添加-d选项
如果报错,关闭后再次运行
如果不报错,请使用浏览器访问http://192.168.2.5:8080。默认账号admin,密码admin
四、安装ssh server和websocket server:Coco
步骤:
①下载Clone项目(新开一个终端,别忘了载入虚拟环境)
1 | [root@localhost ~]# cd /opt/ |
②安装依赖
1 | (py3) [root@localhost coco]# cd /opt/coco/requirements/ |
③查看配置文件并且运行coco
1 | (py3) [root@localhost requirements]# cd /opt/coco/ |
提示信息终端没有许可,去到http://192.168.2.5:8080/terminal/terminal
进行许可
五、安装web terminal 前端:Luna
(开启新终端)Luna已改为纯前端,需要Nginx代理来访问
1 | [root@localhost ~]# cd /opt/ |
六、配置Nginx整合各组件
步骤:
①下载源码安装
1 | [root@localhost opt]# useradd -s /sbin/nologin www |
②修改配置文件
1 | http { |
1 | [root@localhost conf]# `nginx -t #确认无误后启动` |
③确保服务无误,开始使用jumpserver
1 | [root@localhost conf]# cd /opt/jumpserver/ |
1 | (py3) [root@localhost jumpserver]# cd ../coco/ |
访问http://192.168.2.5
默认账户admin密码admin
七、测试连接
通过server资产机或是客户端 macOS 或 Linux ,登录语法如下
1 | $ ssh -p2222 admin@192.168.2.5 |
密码: admin
如果登录客户端是 Windows ,Xshell Terminal 登录语法如下
1 | $ ssh admin@192.168.2.5 2222 |
密码: admin
如果能登陆代表部署成功
sftp默认上传的位置在资产的 /tmp 目录下
特别鸣谢jumpserver的开源使用,本文翻至官网文档
http://docs.jumpserver.org/zh…