Jumpserver介绍:
Jumpserver是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python /Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。
特点:
1)完全开源,GPL授权
2)Python编写,方便二次开发
3)实现了跳板机基本功能,认证、授权、审计
4)集成了Ansible,批量命令等
5)支持WebTerminal
6)Bootstrap编写,界面美观
7)自动收集硬件信息
8)录像回放
9)命令搜索
10)实时监控
11)批量上传下载
Jumpserver组件说明:
Jumpserver:jumpserver的管理后台
Coco:实现ssh server 和web终端的组件,提供ssh和webcocket接口
Luna:是web terminal的前端(用来展示给用户和与用户进行交互)前端页面都是由该项目完成的。
Guacamole: Apache的跳板机项目,使用其组件实现rdp(远程桌面功能)。
安装环境:
系统: CentOS 7
两台Linux服务器
192.168.1.10 上安装 nginx jumpserver服务等其它插件
192.168.1.40 有用户及密码;用来验证web网页登陆
Redis mysql 使用公共服务,不单独安装
安装jumpserver:
1:将系统环境字体设置成中文,因为jumpserver的日志文件里面的内容会包含中文字符,不支持可能会乱码
[root@localhost ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@localhost ~]# export LC_ALL=zh_CN.UTF-8
[root@localhost ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
2:安装Python3(系统 默认Python2版本过低)
需要有网络yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
3安装python的依赖包
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
4:安装好后设置Python3的虚拟运行环境 在/opt目录设置名为py3的虚拟环境
因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为
了不扰乱原来的环境我们来使用 Python 虚拟环境
[root@localhost Python-3.6.1]# cd /opt/
[root@localhost opt]# python3 -m venv py3
[root@localhost opt]# source /opt/py3/bin/activate
(py3) [root@localhost opt]# ls
py3 rh
5:设置自动载入py3虚拟环境的服务(需要插入下载好的autoenv软件包)
下载路径https://github.com/kennethreitz/autoenv.git
(py3) [root@localhost opt]#rz autoenv.zip
(py3) [root@localhost opt]#unzip autoenv.zip
(py3) [root@localhost opt]#echo "source /opt/autoenv/activate.sh" >> /root/.bashrc
(py3) [root@localhost opt]#source /root/.bashrc
6:安装第一个组件jumpserver并且配置:
项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载 zip
包。
下载路径:https://github.com/jumpserver/jumpserver.git
(py3) [root@localhost opt]# rz jumpserver.zip
(py3) [root@localhost opt]# unzip jumpserver.zip
(py3) [root@localhost opt]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
(py3) [root@localhost opt]# cd jumpserver/
(py3) [root@localhost jumpserver]# cd requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt) (大约2分钟)
(py3) [root@localhost requirements]# pip install --upgrade pip
(py3) [root@localhost requirements]# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ (安装如果报错有可能是网络问题,多安装几次)
7:安装mysql,版本必须是5.5以上:
(py3) [root@localhost requirements]# yum -y install mariadb mariadb-devel mariadb-server
(py3) [root@localhost requirements]# systemctl start mariadb
[root@localhost opt]# mysqladmin -u root password 123.com
[root@localhost opt]# mysql -u root -p123.com
MariaDB [(none)]> create database jumpserver default charset 'utf8'; #创建jumpserver库字符集为utf-8
MariaDB [(none)]> grant all on jumpserver.* to [email protected] identified by "123456"; #创建用户jumpserver
MariaDB [(none)]> flush privileges #刷新权限
8:安装redis数据库:
(py3) [root@localhost ~]# rz redis-4.0.14.tar.gz
(py3) [root@localhost ~]# tar zxf redis-4.0.14.tar.gz
(py3) [root@localhost ~]# cd redis-4.0.14/
(py3) [root@localhost redis-4.0.14]# make && make install (安装大约3分钟)
(py3) [root@localhost redis-4.0.14]# cd utils/
(py3) [root@localhost utils]# ./install_server.sh (一直回车下去)
(py3) [root@localhost utils]# /etc/init.d/redis_6379 start
9:修改jumpserver配置文件
(py3) [root@localhost utils]# cd /opt/jumpserver/
(py3) [root@localhost jumpserver]# cp config_example.yml config.yml
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49
(py3) [root@localhost jumpserver]# vim config.yml
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16
(py3) [root@localhost jumpserver]# vim config.yml
配置文件修改内容如下:
SECRET_KEY:
BOOTSTRAP_TOKEN:
DEBUG: false
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: 123456
DB_NAME: jumpserver
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
(py3) [root@localhost jumpserver]# ./jms start all –d (开启大约3分钟)
10:安装coco组件并配置:
(py3) [root@localhost opt]# ls
autoenv autoenv.zip coco.zip jumpserver jumpserver.zip py3 rh
(py3) [root@localhost opt]# unzip coco.zip
(py3) [root@localhost opt]# mv coco-master coco
(py3) [root@localhost opt]# cd coco/
(py3) [root@localhost coco]# echo "source /opt/py3/bin/activate" > /opt/coco/.env
(py3) [root@localhost coco]# cd requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [root@localhost requirements]# pip install -r requirements.txt
(安装大约2分钟)
(py3) [root@localhost requirements]# cd /opt/coco/
(py3) [root@localhost coco]# cp config_example.yml config.yml
(py3) [root@localhost coco]# vim config.yml
修改配置文件内容如下:
BOOTSTRAP_TOKEN: #此加密秘钥与jumpserver16位秘钥相同;
(py3) [root@localhost coco]# ./cocod start –d
11:安装guacamole,这个服务在安装过程比较复杂,采用doacker仓库里面打包好的镜像
安装docker (py3) [root@localhost opt]# rz guacamole.tar
(py3) [root@localhost opt]# yum -y install yum-utils device-mapper-persistent-data lvm2
(py3) [root@localhost opt]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(py3) [root@localhost opt]# yum makecache fast
(py3) [root@localhost opt]# yum -y install docker-ce (安装大约4钟)
(py3) [root@localhost opt]# systemctl enable docker
(py3) [root@localhost opt]# systemctl start docke
使用docker安装Guaacamole
(py3) [root@localhost opt]# docker load --input guacamole.tar
大约安装3分钟
(py3) [root@localhost opt]# docker run --name jms_guacamole -d -p 8081:8080 -v /opt/guacamole/key:/config/gucamole/key -e JUMPSERVER_KEY_DIR=/config/guacamole/key -e JUMPSERVER_SERVER=http://192.168.1.10:8080jumpserver/guacamole:latest
12安装luna解压至opt目录即可:
(py3) [root@localhost opt]# Rz luna.tar.gz
(py3) [root@localhost opt]#tar zxf luna.tar.gz –C /opt
13:安装nginx反向代理;(插入下载好的软件包。解包编译make&&make install)
优化完路径启动nginx。
修改配置文件:
(py3) [root@localhost nginx-1.14.0]# vim /usr/local/nginx/conf/nginx.conf
nginx -t # 确保配置没有问题, 有问题请先解决
nginx -s reload
特殊情况:如果访问网页访问不了,除配置文件出错,或者服务没有开启;
启动coco服务
(py3) [root@localhost jumpserver]# cd /opt/coco-master/
(py3) [root@localhost coco-master]# ./cocod start –d
启动jumpserver服务
cd /opt/jumpserver/
./jms start all -d
网页访问:1.10
服务全部启动后,访问 http://192.168. 1.10,访问 nginx 代理的端口,不要
再通过 8080 端口访问
默认账号: admin 密码: admin
在这里我们要创建一个管理用户:
创建资产:
用web终端进行连接管理
总结:
我们可以通过跳板机在外网上管理内网服务器。