jumpserver堡垒机搭建Centos7.3

jumpserver堡垒机组件说明:

1、Jumpserver:

现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。

2、Coco:

实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。

3、Luna:

现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。

 部署Jumpserver运行环境

将需要的软件包拷贝到/opt目录下

jumpserver堡垒机搭建Centos7.3_第1张图片

 

关闭防火墙和SElinux安全机制 

[root@liudongyiCentos7 ~]# setenforce 0

[root@liudongyiCentos7 ~]# systemctl stop  firewalld.service
[root@liudongyiCentos7 ~]# systemctl disable firewalld.service

 因为后续的堡垒机是基于中午界面的。所以我们把虚拟机设置成为中文

# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文

[root@liudongyiCentos7 ~]# localedef  -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@liudongyiCentos7 ~]# export LC_ALL=zh_CN.UTF-8
[root@liudongyiCentos7 ~]# echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
[root@liudongyiCentos7 ~]# exit
 

我服务器IP地址为:192.168.241.129

1、安装依赖包

注:安装前,可以开启yum缓存功能,把软件包下载下来,方便后期使用。(缓存下来的安装包在/var/cache/yum/$basearch/$releasever下)

[root@liudongyiCentos7 opt]# vim /etc/yum.conf

jumpserver堡垒机搭建Centos7.3_第2张图片

编译安装所需要的依赖包

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

 

准备 Python3 和 Python 编译安装虚拟环境(因为我们的jumpserver是基于Python, Django开发的开源跳板机系统

步骤如下:

cd /opt

tar xvf Python-3.6.1.tar.xz  && cd Python-3.6.1

 ./configure  &&  make  -j 4 && make install

编译完成以后,我们python用TAB补全可以下看到以下内容


[root@liudongyiCentos7 ~]# cd /opt/
[root@liudongyiCentos7 opt]# python3 -m venv py3  生成一个py3的目录,可以改其他名
[root@liudongyiCentos7 opt]# source /opt/py3/bin/activate  切换成功可以看到在前方看到,py3的标识

# 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行

我们可以查看Python的版本

python -V

安装 Jumpserver 1.0.0

注:在线下载方法:

git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

注:depth用于指定克隆深度,为1即表示只克隆最近一次commit

(py3) [root@liudongyiCentos7 opt]# cd jumpserver/
(py3) [root@liudongyiCentos7 jumpserver]# ls
apps               data  jms      logs       requirements   tmp
config_example.py  docs  LICENSE  README.md  run_server.py  utils
(py3) [root@liudongyiCentos7 jumpserver]# 

使用``符号括住cat rpm_requirements.txt文件,前头加yum install -y 即可,因为文件中包含了,我们所以需的依赖包名

(py3) [root@liudongyiCentos7 jumpserver]# cd requirements/
(py3) [root@liudongyiCentos7 requirements]# ls
deb_requirements.txt  mac_requirements.txt  rpm_requirements.txt
issues.txt            requirements.txt
(py3) [root@liudongyiCentos7 requirements]# cat rpm_requirements.txt 
libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mysql-devel libffi-devel openssh-clients
(py3) [root@liudongyiCentos7 requirements]# yum install -y `cat rpm_requirements.txt`

jumpserver堡垒机搭建Centos7.3_第3张图片

jumpserver堡垒机搭建Centos7.3_第4张图片

(py3) [root@liudongyiCentos7 requirements]# pip -V

查看pip的版本(pip是一个安装库文件的命令)

我们需要进入到我们那会儿上传了一个python-package的包

jumpserver堡垒机搭建Centos7.3_第5张图片

我们进入包的目录都进行pip安装

方法1:(py3) [root@liudongyiCentos7 python-package]# pip install ./*

方法2:在线安装:(py3) [root@xuegod63 ~]#  pip install -r /opt/jumpserver/requirements/requirements.txt 

pip 是一个安装和管理 Python 包的工具,相当于yum命令

 

4.安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

(py3) [root@liudongyiCentos7 python-package]# yum install -y redis

(py3) [root@liudongyiCentos7 python-package]# systemctl enable redis  ;  systemctl start redis 

设置为开机自启动并开启数据库

 

 

5。安装 MySQL

本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置

(py3) [root@liudongyiCentos7 python-package]#  yum  install mariadb mariadb-devel mariadb-server   -y 

(py3) [root@liudongyiCentos7 python-package]# systemctl enable mariadb  ;  systemctl start mariadb

jumpserver堡垒机搭建Centos7.3_第6张图片

创建一个jumpserver的 数据库并且设置它的编码为utf8

然后授权给jumpserver所有库权限并创建一个用户为jumpserver密码设置成123456

(py3) [root@liudongyiCentos7 python-package]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database jumpserver default charset 'utf8';
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye
jumpserver堡垒机搭建Centos7.3_第7张图片

进入到 cd /opt/jumpserver/目录下把config_example.py重命名为config.py并且编辑它

 (py3) [root@liudongyiCentos7 python-package]# cd /opt/jumpserver/
(py3) [root@liudongyiCentos7 jumpserver]# ls
apps               data  jms      logs       requirements   tmp
config_example.py  docs  LICENSE  README.md  run_server.py  utils
(py3) [root@liudongyiCentos7 jumpserver]# cp config_example.py config.py
(py3) [root@liudongyiCentos7 jumpserver]# vim config.py 

我们在这里注意了,千万注意空格,注意python环境

我们ctrl+v进入可视图模式,然后光标移动到#到位置,然后按↓箭头选中我们要删除的#号行,然后按d就可以删除了

jumpserver堡垒机搭建Centos7.3_第8张图片

jumpserver堡垒机搭建Centos7.3_第9张图片

 jumpserver堡垒机搭建Centos7.3_第10张图片

然后我们修改文件内容我们创建的数据库用户是jumpserver密码123456

jumpserver堡垒机搭建Centos7.3_第11张图片

生成数据库表结构和初始化数据

(py3) [root@liudongyiCentos7 utils]# cd /opt/jumpserver/utils/
(py3) [root@liudongyiCentos7 utils]# ls
clean_migrations.sh  export_fake_data.sh  load_fake_data.sh  make_migrations.sh  redis.conf
(py3) [root@liudongyiCentos7 utils]# bash make_migrations.sh 

看到一堆OK说明我们成功的生成了数据库的表结构和初始化数据
jumpserver堡垒机搭建Centos7.3_第12张图片

我们进入到/optjumpserver/目录下可以看到有一个jms的文件,他就是我们的启动服务的文件,我们给它可执行权限

(py3) [root@liudongyiCentos7 python-package]# cd /opt/jumpserver/
(py3) [root@liudongyiCentos7 jumpserver]# ls
apps               config.py  docs  LICENSE  __pycache__  requirements   tmp
config_example.py  data       jms   logs     README.md    run_server.py  utils
(py3) [root@liudongyiCentos7 jumpserver]# chmod +x jms 

启动jumpserver所有服务(如果启动失败的话)
(py3) [root@liudongyiCentos7 jumpserver]# ./jms start all -d 

jumpserver堡垒机搭建Centos7.3_第13张图片

我们去访问一下,看是否能够进行访问 http://192.168.241.139:8080/   用户 : admin 密码: admin

jumpserver堡垒机搭建Centos7.3_第14张图片

jumpserver堡垒机搭建Centos7.3_第15张图片

这里需要使用8080端口来访问页面。后期搭建 nginx 代理,就可以直接使用80端口正常访问了

附上重启的方法

(py3) [root@xuegod63 jumpserver]# ./jms restart -d

点击web终端会出现一下情况

jumpserver堡垒机搭建Centos7.3_第16张图片

安装 Coco组件

(py3) [root@liudongyiCentos7 jumpserver]#  cd /opt/coco  
(py3) [root@liudongyiCentos7 coco]# source /opt/py3/bin/activate
(py3) [root@liudongyiCentos7 coco]# cd /opt/coco/requirements
(py3) [root@liudongyiCentos7 requirements]# yum -y  install $(cat rpm_requirements.txt) 
(py3) [root@liudongyiCentos7 requirements]#  pip install -r requirements.txt 
 #前面已经离线安装过python的包,这里就很快安装成功了,或提示已经安装成功。

注:扩展: pip download -r requirements.txt  #使用download可以下载python包到本地

jumpserver堡垒机搭建Centos7.3_第17张图片

 

(py3) [root@liudongyiCentos7 requirements]# cd /opt/coco
(py3) [root@liudongyiCentos7 coco]# cp conf_example.py conf.py 
(py3) [root@liudongyiCentos7 coco]#  chmod +x cocod 
(py3) [root@liudongyiCentos7 coco]#  ./cocod start -d 
Start coco process
(py3) [root@liudongyiCentos7 coco]# 
jumpserver堡垒机搭建Centos7.3_第18张图片

# 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart  后台运行请添加 -d 参数

 

安装Web-Terminal前端-Luna组件-配置Nginx整合各组件

安装luna组件

Luna概述:Luna现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。

访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译

 解压 Luna

(py3) [root@liudongyiCentos7 coco]# cd /opt/
(py3) [root@liudongyiCentos7 opt]# tar xvf luna.tar.gz 

注:在线下载

#wget https://github.com/jumpserver/luna/releases/download/v1.0.0/luna.tar.gz

 配置 Nginx 整合各组件

安装 Nginx 根据喜好选择安装方式和版本

 (py3) [root@liudongyiCentos7 opt]# yum -y install nginx

(py3) [root@liudongyiCentos7 opt]# vim  vim /etc/nginx/nginx.conf

在38行的地方22dd删除22行从38到57行内容都不要了

jumpserver堡垒机搭建Centos7.3_第19张图片

在38行处插入以下内容

 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/;  
          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;  
      }
  }

jumpserver堡垒机搭建Centos7.3_第20张图片

 

(py3) [root@liudongyiCentos7 conf.d]# nginx -t        //测试一下nginx配置是否有错
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(py3) [root@liudongyiCentos7 conf.d]# systemctl start nginx      //启动nginx服务

现在我们去使用80端口去访问我们的jumpserver服务器(以下说明成功)

jumpserver堡垒机搭建Centos7.3_第21张图片

 

我们点击web终端会看到一个web黑界面

 

jumpserver堡垒机搭建Centos7.3_第22张图片

 jumpserver堡垒机搭建Centos7.3_第23张图片

 然后我们通过终端管理把刚我们刚才发出的web终端请求去接受

 jumpserver堡垒机搭建Centos7.3_第24张图片

 一切默认就好

jumpserver堡垒机搭建Centos7.3_第25张图片

 我们把界面刷新一下会看到在线变绿色

jumpserver堡垒机搭建Centos7.3_第26张图片

 

 我们可以检测一下:看到2222端口已经被监听

(py3) [root@liudongyiCentos7 conf.d]# netstat -anput | grep 2222

 

[root@liudongyiCentos7 utils]# ssh -p 2222 [email protected]

jumpserver堡垒机搭建Centos7.3_第27张图片

到此连接成功!

 

jumpserver平台系统初始化

 系统基本设置

这里要写成自己真实的URL地址,不然后期用户访问不了。http://192.168.241.139

 

jumpserver堡垒机搭建Centos7.3_第28张图片

点击提交然后可以进行测试

jumpserver堡垒机搭建Centos7.3_第29张图片

 使用jumpserver 管理王者荣耀数万台游戏服务器

 用户管理

1、添加用户组。

用户名即 Jumpserver 登录账号。用户组是用于资产授权,当某个资产对一个用户组授权后,这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。

点击用户管理 —> 查看用户组 —> 添加用户组

jumpserver堡垒机搭建Centos7.3_第30张图片

添加新的小组 —> 王者荣耀-华北区运维部门

jumpserver堡垒机搭建Centos7.3_第31张图片

查看刚才添加的组

jumpserver堡垒机搭建Centos7.3_第32张图片

添加用户

点击用户管理 —> 用户列表 —> 创建用户

其中,名称是真实姓名,用户名即 Jumpserver 登录账号。

jumpserver堡垒机搭建Centos7.3_第33张图片

jumpserver堡垒机搭建Centos7.3_第34张图片

查看添加的用户 

jumpserver堡垒机搭建Centos7.3_第35张图片

这个需要用户自己生成SSH 密钥,方便后期登录:我在自己的另一台linux上,使用mk用户生成自己的ssh密钥。

(py3) [root@liudongyiCentos7 jumpserver]# useradd ldy
(py3) [root@liudongyiCentos7 jumpserver]# echo 123456 | passwd --stdin ldy
更改用户 ldy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
(py3) [root@liudongyiCentos7 jumpserver]# su ldy
(py3) [ldy@liudongyiCentos7 jumpserver]$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ldy/.ssh/id_rsa): 
Created directory '/home/ldy/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ldy/.ssh/id_rsa.
Your public key has been saved in /home/ldy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:5g4xIVNc50CtfjNTNgDesjocIqtIiGN8UipAZp3Uo8M [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|   ....o=o.      |
|  o .+.. =o      |
| +.o+ o o.o.     |
|+  E o ..o  +    |
|. ..o +.S  o .   |
|= oo o B. =      |
|=*..  = .. +     |
|=oo    +         |
|o       .        |
+----[SHA256]-----+
(py3) [ldy@liudongyiCentos7 jumpserver]$ 
(py3) [ldy@liudongyiCentos7 jumpserver]$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc5rGIRorznP3VxhGFEgXyd7VCmInxQUYeQKSs/BEMkoBB+rSWGqdQjtu4AAMzZqSWcDghyPW+ErjzDGBI3jaMTKGPubBfGDj4nRIxeruPqn0YBPAuBXZfwCDnDhAvj1luL0kQBQRwou14gtU/4DBq/azIEV3fsW2n17nVzLJtlanYF+jZxhCFUYuuVGMtmCFpr1GLu+PHmKwkUitKunWEx8sq4pKwKVwwnyUYdiYNFn84AnbZGStF36jQKQr0ApihHEacAoQVg2kH51MfRUAJ6cEW43Uk6ORb6JAjCmOHaSO29L2yhB0JGh4N68Sh3ajlI8fQ7qQzj52h04znHZBB [email protected]
jumpserver堡垒机搭建Centos7.3_第36张图片

编辑资产树添加节点

节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。

jumpserver堡垒机搭建Centos7.3_第37张图片

jumpserver堡垒机搭建Centos7.3_第38张图片

改成节点名字为:王者荣耀-华北区-服务器

 

创建管理用户

Jumpserver里各个用户的说明:jumpserver堡垒机搭建Centos7.3_第39张图片

管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。

jumpserver堡垒机搭建Centos7.3_第40张图片

王者荣耀-华北区-服务器管理用户-root     密码是: 123456

jumpserver堡垒机搭建Centos7.3_第41张图片

前提,你的王者荣耀-华北区-服务器节点中所有的服务器root用户密码都是:123456

这样就可以使用此root用户管理服务器。

创建系统用户

系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户, Jumpserver使用系统用户登录资产。

系统用户的 Sudo 栏填写允许当前系统用户免sudo密码执行的程序路径,如默认的/sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不需要输入当前系统用户的密码,执行其他的命令任然需要密码,以此来达到权限控制的目的。

# 此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。

系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。

Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。

jumpserver堡垒机搭建Centos7.3_第42张图片

增加一个:检查服务器运行状态的用户: user 权限: /sbin/ifconfig,/usr/bin/top,/usr/bin/free

jumpserver堡垒机搭建Centos7.3_第43张图片

 

 

 创建资产

点击页面左侧的“资产管理”菜单下的“资产列表”按钮,查看当前所有的资产列表。

点击页面左上角的“创建资产”按钮,进入资产创建页面,填写资产信息。

IP 地址和管理用户要确保正确,确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示,可不填,Jumpserver 连接资产使用的是 IP 信息。

jumpserver堡垒机搭建Centos7.3_第44张图片

开启虚拟机centldy7 一会把这台机器当成资源添加平台中。

-王者荣耀-服务器  192.168.241.149

jumpserver堡垒机搭建Centos7.3_第45张图片

如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。(看管理员用户的密码和用户名是否和我们自己虚拟机中的用户是否一样)

jumpserver堡垒机搭建Centos7.3_第46张图片

我们在149的服务器上可以看到已经建立了一个系统用户

 

用户使用资产

登录 Jumpserver

创建授权规则的时候,选择了用户组,所以这里需要登录所选用户组下面的用户才能看见相应的资产。

使用无痕浏览器,再打开一个窗口,进行登录:

jumpserver堡垒机搭建Centos7.3_第47张图片

jumpserver堡垒机搭建Centos7.3_第48张图片

 jumpserver堡垒机搭建Centos7.3_第49张图片

 jumpserver堡垒机搭建Centos7.3_第50张图片

jumpserver堡垒机搭建Centos7.3_第51张图片

 查看历史会话并回放视频

jumpserver堡垒机搭建Centos7.3_第52张图片

jumpserver堡垒机搭建Centos7.3_第53张图片

jumpserver堡垒机搭建Centos7.3_第54张图片

更多内容,可以参数官方手册:http://docs.jumpserver.org/zh/docs/step_by_step.html

 

Jumpserver堡垒机概述-部署Jumpserver运行环境

安装Coco组件

 安装Web-Terminal前端-Luna组件-配置Nginx整合各组件

jumpserver平台系统初始化

使用jumpserver 管理王者荣耀数万台游戏服务器

开机以后把nginx服务启动了,redis,mariadb,然后在py3虚拟环境启动./jms start all -d

[root@liudongyiCentos7 ~]# systemctl restart mariadb 
[root@liudongyiCentos7 ~]# systemctl restart redis
 

[root@liudongyiCentos7 ~]# source /opt/jumpserver/

(py3) [root@liudongyiCentos7 coco]# systemctl restart nginx  ;

(py3) [root@liudongyiCentos7 jumpserver]# ./jms start all -d
 

(py3) [root@liudongyiCentos7 coco]# ipatbles -F

(py3) [root@liudongyiCentos7 jumpserver]# cd /opt/coco/

(py3) [root@liudongyiCentos7 coco]# ./cocod start -d
 

 

你可能感兴趣的:(linux运维)