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

堡垒机连接Redis后查询指令 linux堡垒机_docker

3安装python的依赖包

 yum  -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release  git

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_02

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/

堡垒机连接Redis后查询指令 linux堡垒机_nginx_03

(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/   (安装如果报错有可能是网络问题,多安装几次)

堡垒机连接Redis后查询指令 linux堡垒机_nginx_04

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 jumpserver@127.0.0.1 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

堡垒机连接Redis后查询指令 linux堡垒机_docker_05

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

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_06

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_07

(py3) [root@localhost jumpserver]#  cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16

堡垒机连接Redis后查询指令 linux堡垒机_linux_08

堡垒机连接Redis后查询指令 linux堡垒机_nginx_09

(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

堡垒机连接Redis后查询指令 linux堡垒机_docker_10

(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/

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_11

(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)

(py3) [root@localhost requirements]# pip install -r requirements.txt

(安装大约2分钟)

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_12

(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位秘钥相同;

堡垒机连接Redis后查询指令 linux堡垒机_docker_13

(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

堡垒机连接Redis后查询指令 linux堡垒机_docker_14

(py3) [root@localhost opt]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_15

(py3) [root@localhost opt]# yum makecache fast

堡垒机连接Redis后查询指令 linux堡垒机_linux_16

(py3) [root@localhost opt]# yum -y install docker-ce   (安装大约4钟)

堡垒机连接Redis后查询指令 linux堡垒机_linux_17

(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分钟

堡垒机连接Redis后查询指令 linux堡垒机_linux_18

(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

堡垒机连接Redis后查询指令 linux堡垒机_nginx_19

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

堡垒机连接Redis后查询指令 linux堡垒机_docker_20

堡垒机连接Redis后查询指令 linux堡垒机_docker_21

堡垒机连接Redis后查询指令 linux堡垒机_linux_22

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

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_23

在这里我们要创建一个管理用户:

堡垒机连接Redis后查询指令 linux堡垒机_docker_24

堡垒机连接Redis后查询指令 linux堡垒机_linux_25

堡垒机连接Redis后查询指令 linux堡垒机_docker_26

创建资产:

堡垒机连接Redis后查询指令 linux堡垒机_docker_27

堡垒机连接Redis后查询指令 linux堡垒机_堡垒机连接Redis后查询指令_28

堡垒机连接Redis后查询指令 linux堡垒机_linux_29

用web终端进行连接管理

堡垒机连接Redis后查询指令 linux堡垒机_docker_30

堡垒机连接Redis后查询指令 linux堡垒机_nginx_31

总结:

我们可以通过跳板机在外网上管理内网服务器。