Zabbix Jumpserver部署安装

一、网站架构为什么需要跳板机,堡垒机

为了保障服务器组的安全,如nginx负载均衡服务器,web集群应用级服务(tomcat,java,php),还有数据库这种,这些服务器一般是不会让其直接在公网暴露的,所以我们通过vpn技术,让外网无法直接访问到内网,服务器运行在内网中,并且躲在防火墙后面,这样最大程度的保障了安全。那么在企业内网中又是怎么保障服务器安全的。 为了避免非云运维的人员对公司内部的服务器进行错误操作,导致损失,那么我们就需要用到跳板机,即使公司内部人员,需要操作服务器也得经过验证。并且连接上跳板机后,所有的登陆和操作记录都会被记录。

二、跳板机和堡垒机概念

跳板机:

跳板机就是一台服务器而已,运维人员在使用管理服务器的时候,必须先连上跳板机,然后才能去操控内网中的服务器,才能登录到目标设备上进行维护和操作。跳板机他是属于内网堡垒机的范畴,是一种用于单点登陆的主机应用系统。跳板机缺点,仅仅实现服务器登陆的安全,但是没有实现对于运维开发人员行为操控和审计。使用跳板机可能会对服务器进行错误操作,很难定位到操作人。

堡垒机:

结合了跳板机的优点,并且可以记录操作人员和记录,堡垒机能够创建系统账号,该系统账号功能是属于角色区分的作用,但是也无法确认该账号的执行人。

堡垒机的作用:

由于跳板机的不足,企业需要更新,更好,更安全的技术理念去管理服务器的运维操作,需要一种能够满足角色管理,角色授权,信息资源访问控制,操作记录和审计,系统更变和维护控制等等需求,且还能生成服务器资产统计报表等功能的一个it堡垒机。

    1、核心系统运维和安全审计管理

    2、过滤和拦截非打请求访问,恶意攻击,拒绝不合法命令,进行审计口监控,报警和责任追踪

    3、报警,记录,分析,处理

堡垒机模块

在这里插入图片描述

堡垒机的功能

1、单点登陆功能

2、账号管理功能

3、身份认证

4、资源授权

5、访问控制

jumperserver官网

jumpserver官网

三、jumpserver服务器部署

在这里插入图片描述

1、环境准备,关闭防火墙

2、配置yum源,准备好阿里云的yum源

3、安装系统初始化环境

4、修改系统的字符集,改为中文的

5、部署mysql5.6数据库

5.1、官网下载mysql5.6版本

5.2、解压缩数据包

5.3、修改一些mysql的配置文件

5.4、myql进行初始化

5.5、登陆数据库后,创建运行jumpserver所需的用户信息(并更改字符编码为utf8,使其支持中文)

5.6、创建用户(@占位符,%允许用户在任何地方登陆,identified by指定密码)

5.7、给该用户赋予权限

6、部署python3.6

6.1、下载python3.6的源代码

6.2、解压编译python安装包

6.3、配置python3的环境变量

6.4、创建python3的虚拟环境

------注意如果创建虚拟环境时出现这种报错 ------

出错原因

解决方法

6.5、更换pip3的源

6.6、再安装pip3 install virtualenv 模块

6.7、激活虚拟python3.6

7、部署redis数据库

    7.1、安装redis数据库
    7.2、启动验证服务 

8、部署jumpserver服务

8.1、下载jumpserver程序的代码

8.2、解压源码,安装jumpserver需要的依赖软件

8.3、安装运行jumpserver所需的模块

8.4、修改jumpserver配置文件

9、对python程序进行数据库迁移

9.1、首先进入mysql查看一下库

9.2、jumpserver后台程序,数据库迁移命令

------注意如果在进行数据库迁移时出现这种报错------

主要原因

解决办法

再次进行python3 /opt/jumpserver/apps/manage.py makemigrations ,问题解决!!!!

9.3、继续下一步,数据库迁移命令2

9.4、进入mysql验证一下数据库中数据

9.5、启动jumpserver服务

10、部署CoCo/koko组件

10.1、下载koko组件

10.2、解压koko

10.3、启动koko程序

11、安装Guacamole的

11.1、部署Guacamole组件

11.2、安装guacamole组件需要的一些软件包

11.3、安装FFmpeg工具

11.4、编译安装guacamole

11.5、安装java开发环境

11.6、创建运行guacamole所需的文件夹

11.7、下载tomcat工具用于运行java项目

11.8、设置guacamole的运行环境

11.9、启动guacamole服务

11.10、启动tomcat服务

12、lina组件部署

12.1、下载lina组件代码

12.2、解压缩lina包

13、luna组件安装

13.1、下载luna组件

13.2、下载完进行解压

14、安装和修改nginx的配置文件

14.1、安装这里选择手动编译

14.2、配置nginx

15、访问jumpserveer,进行验证

总结:

一、网站架构为什么需要跳板机,堡垒机
为了保障服务器组的安全,如nginx负载均衡服务器,web集群应用级服务(tomcat,java,php),还有数据库这种,这些服务器一般是不会让其直接在公网暴露的,所以我们通过vpn技术,让外网无法直接访问到内网,服务器运行在内网中,并且躲在防火墙后面,这样最大程度的保障了安全。那么在企业内网中又是怎么保障服务器安全的。 为了避免非云运维的人员对公司内部的服务器进行错误操作,导致损失,那么我们就需要用到跳板机,即使公司内部人员,需要操作服务器也得经过验证。并且连接上跳板机后,所有的登陆和操作记录都会被记录。

二、跳板机和堡垒机概念
跳板机:
跳板机就是一台服务器而已,运维人员在使用管理服务器的时候,必须先连上跳板机,然后才能去操控内网中的服务器,才能登录到目标设备上进行维护和操作。跳板机他是属于内网堡垒机的范畴,是一种用于单点登陆的主机应用系统。跳板机缺点,仅仅实现服务器登陆的安全,但是没有实现对于运维开发人员行为操控和审计。使用跳板机可能会对服务器进行错误操作,很难定位到操作人。

堡垒机:
结合了跳板机的优点,并且可以记录操作人员和记录,堡垒机能够创建系统账号,该系统账号功能是属于角色区分的作用,但是也无法确认该账号的执行人。

堡垒机的作用:
由于跳板机的不足,企业需要更新,更好,更安全的技术理念去管理服务器的运维操作,需要一种能够满足角色管理,角色授权,信息资源访问控制,操作记录和审计,系统更变和维护控制等等需求,且还能生成服务器资产统计报表等功能的一个it堡垒机。

    1、核心系统运维和安全审计管理

    2、过滤和拦截非打请求访问,恶意攻击,拒绝不合法命令,进行审计口监控,报警和责任追踪

    3、报警,记录,分析,处理

堡垒机模块

堡垒机的功能
1、单点登陆功能

    2、账号管理功能

    3、身份认证

    4、资源授权

    5、访问控制

jumperserver官网
https://docs.jumpserver.org/zh/master/

三、jumpserver服务器部署
安装前,需要知道:
虚拟机配置:2cpu 4核 4g内存 50g硬盘
预制环境软件
python = 3.6.x
mysql server 版本必须大于5.6
redis数据库 缓存型数据库
1、环境准备,关闭防火墙
[root@jumpserver sbin]# systemctl stop firewalld
[root@jumpserver sbin]# systemctl disable firewalld
[root@jumpserver sbin]# setenforce 0
[root@jumpserver sbin]# vim /etc/selinux/config

2、配置yum源,准备好阿里云的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all

yum makecache ##清楚缓存,重写建立yum仓库

3、安装系统初始化环境
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel gcc zlib zlib-devel

yum -y install git python-pip gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

#git获取jumpserver代码,是在一个全球最大的代码托管平台下载的,github

5、修改系统的字符集,改为中文的
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

export LC_ALL=zh_CN.UTF-8

#临时修改

echo ‘LANG=“zh_CN.UTF-8”’ > /etc/locale.conf #永久修改

ls --help #看到中文就说明配置成功

6、部署mysql5.6数据库
6.1、官网下载mysql5.6版本
wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.49-1.el7.x86_64.rpm-bundle.tar

6.2、解压缩数据包

yum localinstall ./* #自动处理依赖安装

这样就自动安装完成了

6.3、修改一些mysql的配置文件
vim /etc/my.cnf #修改数据库的主配置文件,一般默认就行

6.4、myql进行初始化
cat /root/.mysql_secret #查看数据库初始的密码

mysqladmin -u root -p password #对密码进行修改,我这里改为123456

mysql -u root -p123456 #登陆

6.5、登陆数据库后,创建运行jumpserver所需的用户信息(并更改字符编码为utf8,使其支持中文)
mysql> create database jumpserver default charset ‘utf8’ collate ‘utf8_bin’;
Query OK, 1 row affected (0.00 sec)

6.6、创建用户(@占位符,%允许用户在任何地方登陆,identified by指定密码)
mysql> create user ‘jumpserver’@‘%’ IDENTIFIED BY ‘123456’;
Query OK, 0 rows affected (0.01 sec)

6.7、给该用户赋予权限
mysql> grant all privileges on jumpserver.* to ‘jumpserver’@‘%’ identified by ‘123456’;
Query OK, 0 rows affected (0.00 sec)

刷新一下,让当前配置立即生效

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

到此,mysql部署完毕

7、部署python3.6
7.1、下载python3.6的源代码
wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz

7.2、解压编译python安装包
tar -xvf Python-3.6.10.tgz

cd Python-3.6.10/ #进入源码包

./confiure --prefix=/usr/local/python3 #编译安装包,并指定python3的安装目录

make -j3 && make install #安装

7.3、配置python3的环境变量
echo “PATH=”/usr/local/python3/bin:$PATH"" >> /etc/profile #添加环境

source /etc/profile #刷新一下环境

##随后命令行输入python3.6就能进入了(quit()退出)

7.4、创建python3的虚拟环境
创建虚拟环境是为了应对一台服务区中的多个应用所需的相同版本py,不同模块的场景。

这里的pip3是py3版本中,用来安装第三方库中模块的。如果没有pip3请先安装一下。

pip3 install virtualenv

------注意如果创建虚拟环境时出现这种报错 ------

出错原因
安装虚拟环境工具,但是通常我们在安装python3模块的时候,因为缺少ssl,python3无法使用,解决放法如下。

解决方法
删除编译安装的python3,然后安装openssl工具,然后重新编译安装python3才行。

vim /etc/profile #先将先前配置的环境注释掉

rm -rf /usr/local/python3/ #删除先前安装的python

这样安装的python3就完全删除了

yum install openssl openssl-devel -y

安装完再去编译安装python

./configure --prefix=/usr/local/python3.6

make -j3 && make install

7.5、更换pip3的源
因为默认的pip3源是在国外py官方源,这里我们换成阿里的源仓库

mkdir /root/.pip

touch /root/.pip/pip.conf

vim /root/.pip/pip.conf

#########将下面的内容写入###########

[global]

index-url = https://mirrors.aliyun.com/pypi/simple/

7.6、再安装pip3 install virtualenv 模块
pip3 install virtualenv #安装虚拟工具模块

成功下载了

使用虚拟工具再创建一个python3解释器,用来允许代码

cd /usr/local

virtualenv --python=python3 jmp_venvl

#virtualenv 虚拟化工具 --python指定py版本 jmp_venvl 重命名

创建完成。

这样解释器本体就是:/usr/local/python3.6/bin/python3.6

    虚拟解释器就是:/usr/local/jum_venel/bin/python3

7.7、激活虚拟python3.6
source /usr/local/jum_venel/bin/activate #默认修改环境变量

which 命令可以查看当前软件环境,以证明是否改为虚拟环境。

deactivate #退出当前的虚拟环境

现在又变回原本的环境

8、部署redis数据库
mysql关系型数据库,磁盘型数据库,数据是以文件形式,存储再磁盘上,可以持久化长期存储。

    redis内存型数据库,缓存型数据库,他比mysql速度更快,可以加速用户的速度,使整个web架构性能更加好。

8.1、安装redis数据库
#因为先前已经配置过阿里云的源库,并且这里的redis数据库版本可以不做要求,所以直接yum安装

yum -y install redis

8.2、启动验证服务
systemct start redis

redis-cli #开启服务(默认连接的本地,ip加端口就是一台服务)

然后要验证是否能正常使用我们输入ping

[root@jumpserver jum_venel]# redis-cli
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

当redis数据库返回一个PONG那么就证明可以正常启动,可以使用了

到此redis部署就结束了

9、部署jumpserver服务
一个后台程序,基本上都是需要依赖于数据库才能允许,后台程序再启动的时候,代码就会去连接数据库,保证数据库正确启动,且可以正确连接,否则后台程序是起不来的。

9.1、下载jumpserver程序的代码
wget https://github.com/jumpserver/jumpserver/releases/download/v2.1.0/jumpserver-v2.1.0.tar.gz

9.2、解压源码,安装jumpserver需要的依赖软件
tar -zxvf jumpserver-v2.1.0.tar.gz #解压完成可以给它创建软链接便于查找

ln -s /opt/jumpserver-v2.1.0 jumpserver

安装依赖

yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel

有些软件上面已经安装,为了防止遗漏再装一下

9.3、安装运行jumpserver所需的模块
由于py开发的程序,必须安装该程序使用到的一些模块,才能正确运行

cd /opt/jumpserver/requirements/ #其中requirements.txt里面写的是所需要的py模块

requirements.txt内容

注意:安装jumperserver模块,必须保证在py3的虚拟环境,一定要先激活环境再安装!!

注意:安装jumperserver模块,必须保证在py3的虚拟环境,一定要先激活环境再安装!!

source /usr/local/jum_venel/bin/activate ##激活虚拟环境

pip3 install -r /opt/jumpserver/requirements/requirements.txt

pip3 install -r 一次安装多个模块,安装requirements.txt中的所有包

9.4、修改jumpserver配置文件
/opt/jumpserver #进入源码包,其中的config_example.yml就是他的配置文件

cp config_example.yml config.yml #复制一份并修改文件名

查看理解配置文件中的一些有利信息

egrep -v “#|$” config.yml #提取除了前面带#和空行

(jum_venel) [root@jumpserver jumpserver]# egrep -v “#|$” config.yml
SECRET_KEY: #需要填密钥
BOOTSTRAP_TOKEN: #也是一个密钥
DB_ENGINE: mysql #使用的数据库是什么
DB_HOST: 127.0.0.1 #默认的IP地址
DB_PORT: 3306 #默认端口
DB_USER: jumpserver #默认的用户就是我们在数据库那步创建的user
DB_PASSWORD: #数据库的密码
DB_NAME: jumpserver #数据库用户名
HTTP_BIND_HOST: 0.0.0.0 #jumpserver运行的地址,写的0表示绑定这台机器对内对外所有的IP,如果是在公网的jumpserver会很危险
HTTP_LISTEN_PORT: 8080 #jumpserver后台启动的地址
WS_LISTEN_PORT: 8070 #WEB SOCKET
REDIS_HOST: 127.0.0.1 # 默认redis的IP
REDIS_PORT: 6379 #默认redis的端口
我们先需要生成下面两个密钥

SECRET_KEY:
BOOTSTRAP_TOKEN:

生成SECRET_KEY密钥

if [ “ S E C R E T K E Y " = " " ] ; t h e n S E C R E T K E Y = ‘ c a t / d e v / u r a n d o m ∣ t r − d c A − Z a − z 0 − 9 ∣ h e a d − c 50 ‘ ; e c h o " S E C R E T K E Y = SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50` ; echo "SECRET_KEY= SECRETKEY"=""];thenSECRETKEY=cat/dev/urandomtrdcAZaz09∣headc50‘;echo"SECRETKEY=SECRET_KEY” >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi

生成TOKEN密钥

if [ “ B O O T S T R A P T O K E N " = " " ] ; t h e n B O O T S T R A P T O K E N = ‘ c a t / d e v / u r a n d o m ∣ t r − d c A − Z a − z 0 − 9 ∣ h e a d − c 16 ‘ ; e c h o " B O O T S T R A P T O K E N = BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN= BOOTSTRAPTOKEN"=""];thenBOOTSTRAPTOKEN=cat/dev/urandomtrdcAZaz09∣headc16‘;echo"BOOTSTRAPTOKEN=BOOTSTRAP_TOKEN” >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

vim config.yml #将上面的两个密钥输入

到此配置文件修改完成

10、对python程序进行数据库迁移
jumpserver这个程序由python的web框架django开发而来。必须先进行数据迁移,生成库表的信息,才能运行程序。

10.1、首先进入mysql查看一下库
(jum_venel) [root@jumpserver jumpserver]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.6.49 MySQL Community Server (GPL)

Copyright © 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> show databases; #查看数据库
±-------------------+
| Database |
±-------------------+
| information_schema |
| jumpserver |
| mysql |
| performance_schema |
| test |
±-------------------+
5 rows in set (0.01 sec)

mysql> use jumpserver #进入到jumpserver这库中
Database changed
mysql> show tables; #查看库中的表
Empty set (0.00 sec) #表中无数据

mysql>
10.2、jumpserver后台程序,数据库迁移命令
注意:过程一定要py虚拟环境中进行

cd /opt/jumpserver/apps #进入源码目录中的apps

这个manage.py是py的脚本程序,是py程序后台设置的入口,我们用py3去执行并加上参数

python3 /opt/jumpserver/apps/manage.py makemigrations

------注意如果在进行数据库迁移时出现这种报错------
(jum_venel) [root@jumpserver apps]# python3 manage.py makemigrations
Traceback (most recent call last):
File “manage.py”, line 28, in
execute_from_command_line(sys.argv)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/init.py”, line 381, in execute_from_command_line
utility.execute()
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/init.py”, line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/base.py”, line 323, in run_from_argv
self.execute(*args, **cmd_options)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/base.py”, line 364, in execute
output = self.handle(*args, **options)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/base.py”, line 83, in wrapped
res = handle_func(*args, **kwargs)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/core/management/commands/makemigrations.py”, line 101, in handle
loader.check_consistent_history(connection)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/migrations/loader.py”, line 283, in check_consistent_history
applied = recorder.applied_migrations()
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/migrations/recorder.py”, line 73, in applied_migrations
if self.has_table():
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/migrations/recorder.py”, line 56, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/backends/base/base.py”, line 256, in cursor
return self._cursor()
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/backends/base/base.py”, line 233, in _cursor
self.ensure_connection()
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/backends/base/base.py”, line 217, in ensure_connection
self.connect()
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/backends/base/base.py”, line 195, in connect
self.connection = self.get_new_connection(conn_params)
File “/usr/local/jum_venel/lib/python3.6/site-packages/django/db/backends/mysql/base.py”, line 227, in get_new_connection
return Database.connect(**conn_params)
File “/usr/local/jum_venel/lib/python3.6/site-packages/MySQLdb/init.py”, line 85, in Connect
return Connection(*args, **kwargs)
File “/usr/local/jum_venel/lib/python3.6/site-packages/MySQLdb/connections.py”, line 208, in init
super(Connection, self).init(*args, **kwargs2)
TypeError: connect() argument 3 must be str, not int
注意看【TypeError: connect() argument 3 must be str, not int】最后这句,报的是类型错误,说是要str字符串类型,但是这里是int整型。所以报错了。

主要原因

主要原因还是因为我们先前的config.yml配置文件中,将数据库的密码设置为纯数字123456,纯数字密码为int类型所以不支持.

解决办法
(jum_venel) [root@jumpserver apps]# mysqladmin -ujumpserver -p password
Enter password:
New password:
Confirm new password:

这里重新修改一下数据库jumpserver用户的密码,然后将config.yml数据库密码改一下就行。

再次进行python3 /opt/jumpserver/apps/manage.py makemigrations ,问题解决!!!!
python3 /opt/jumpserver/apps/manage.py makemigrations

10.3、继续下一步,数据库迁移命令2
python3 /opt/jumpserver/apps/manage.py migrate

没有报错就完成了

10.4、进入mysql验证一下数据库中数据

会发现多了很多数据,这时数据迁移就完成了

10.5、启动jumpserver服务
cd /opt/jumpserver

这个jms就是启动文件

/opt/jumpserver/jms start -d #-d表示后台运行

ps -ef | grep 116809 #查看一下工作进程

这就说明程序已经成功运行了;

我们去浏览器验证一下就可以了

这里的画面还是略显粗糙的,这是因为我们最终需要使用到nginx的反向代理才能最终使用这个程序。

11、部署CoCo/koko组件
koko组件实现了SSH Server 和 Web Terminal Server的组件,提高SSH和WebSocket接口,使用Paramiko和Flask开发,可以让我们在线去像xshell一样在网页上去敲命令。他是golang编程语言开发的。和之前的coco组件(py写的)相比,性能更高。

11.1、下载koko组件
wget https://github.com/jumpserver/koko/releases/download/v2.1.0/koko-v2.1.0-linux-amd64.tar.gz

安装完成

11.2、解压koko
tar -zxvf koko-v2.1.0-linux-amd64.tar.gz

cd koko-v2.1.0-linux-amd64/

修改koko配置文件信息

cp config_example.yml config.yml #复制一下配置文件;

vim config.yml

总共修改这两处地方

11.3、启动koko程序
./koko -d #开启服务

这样就开启了,我们也可以查看一下koko的日志,查看一下是否正确开启

12、安装Guacamole的
Apache 跳板机项目,Jumpserver使用其他组件实现RDP功能,Jumpserver并没有修改其他代码而是添加了额外的插件,支持Jumpserver调用。(这里的RDP就是远程桌面协议,通过浏览器就能操作后台服务器)

12.1、部署Guacamole组件
这里我已经准备好了镜像安装包,需要的可以私信我,我发你们。

tar -xvf guacamole-v2.1.0.tar.gz #解压

我们进入解压好的包

里面会有很多的其他包,我们也需要对他们进行解压。

tar -zxvf guacamole-server-1.2.0.tar.gz

tar -zxvf ssh-forward.tar.gz

12.2、安装guacamole组件需要的一些软件包
cd guacamole-server-1.2.0/ #进入源码包

#编译前需要安装依赖环境

yum -y install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaydio-libs-devel openssl-devel libvorbis-devel libwebp-devel

12.3、安装FFmpeg工具
ffmpeg工具是用来处理媒体文件的比如:音频,视频的

yum -y install epel-release

rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

yum -y install ffmpeg ffmpeg-devell

12.4、编译安装guacamole
cd /opt/docker-guacamole-2.1.0/guacamole-server-1.2.0 #进入源码包

./configure --with-init-dir=/etc/init.d #编译

make && make install

这样就安装完成了

12.5、安装java开发环境
yum -y install java-1.8.0-openjdk #安装java开发环境

12.6、创建运行guacamole所需的文件夹
mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record /config/guacamole/drive && \

chown daemon:daemon /config/guacamole/record /config/guacamole/drive && \

cd /config

12.7、下载tomcat工具用于运行java项目
这里我自己有,我就直接拖进去安装了

cd /opt &&
tar -xf apache-tomcat-9.0.65.tar.gz &&
mv apache-tomcat-9.0.65 tomcat9 &&
rm -rf /opt/tomcat9/webapps/* &&
sed -i ‘s/Connector port=“8080”/Connector port=“8081”/g’ /opt/tomcat9/conf/server.xml &&
echo “java.util.logging.ConsoleHandler.encoding = UTF-8” >> /opt/tomcat9/conf/logging.properties &&
ln -sf /opt/docker-guacamole-2.1.0/guacamole-1.0.0.war /opt/tomcat9/webapps/ROOT.war &&
ln -sf /opt/docker-guacamole-2.1.0/guacamole-auth-jumpserver-1.0.0.jar /config/guacamole/extensions/guacamole-auth-jumpserver-1.0.0.jar &&
ln -sf /opt/docker-guacamole-2.1.0/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties
将这些配置输入到命令行,这里的操作主要是

解压tomcat 并为其改名tomcat9

删除tomcat中webapps中的资源文件

更改tomcat默认端口为8081

剩下就是建立软链接

12.8、设置guacamole的运行环境
export JUMPSERVER_SERVER=http://127.0.0.1:8080
echo “export JUMPSERVER_SERVER=http://127.0.0.1:8080” >> ~/.bashrc
export BOOTSTRAP_TOKEN=Ovn181zT7q7a8Die
echo “export B00TSTRAP_TOKEN=Ovn181zT7q7a8Die” >> ~/.bashrc
export JUMPSERVER_KEY_DIR=/config/guacamole/keys
echo “export JUMPSERVER_KEY_DIR=/config/guacamole/keys” >> ~/.bashrc
export GUACAMOLE_HOME=/config/guacamole
echo “export GUACAMOLE_HOME=/config/guacamole” >> ~/.bashrc
export GUACAMOLE_LOG_LEVEL=ERROR
echo “export GUACAMOLE_LOG_LEVEL=ERROR” >> ~/.bashrc
export JUMPSERVER_ENABLE_DRIVE=true
echo “export JUMPSERVER_ENABLE_DRIVE=true” >> ~/.bashrc
参数含义:

JUMPSERVER_SERVER 指core访问的地址

BOOTSTARAP_TOKEN一定要改为自己的,如果忘记就去jumpserver下的config.yml里去找

JUMPSERVER_KEY_DIR 认证成功后key存放目录

GUACAMOLE_HOME 为guacamole.properties配置文件所在目录

GUACAMOLE_LOG_LEVEL 为生成日志等级

JUMPSERVER_ENABLE_DRIVE 为rdp协议挂载共享盘

12.9、启动guacamole服务
/etc/init.d/guacd start #启动服务

12.10、启动tomcat服务
/opt/tomcat9/bin/startup.sh

13、lina组件部署
lina是属于前端模块,负责页面的展现

13.1、下载lina组件代码
wget https://github.com/jumpserver/lina/releases/download/v2.1.0/lina-v2.1.0.tar.gz

13.2、解压缩lina包
tar -zxvf lina-v2.1.0.tar.gz

mv lina-v2.1.0 lina #改个名方便使用

chown -R nginx:nginx lina #改变他的属主属组,让他归nginx管理

14、luna组件安装
luna现在是web terminal 前端、计划前端页面都有该项目提供。jumpserver只提供api,不再负责后台渲染html,他和lina结合可以实现网页上命令行界面的终端。

14.1、下载luna组件
wget https://github.com/jumpserver/luna/releases/download/v2.1.1/luna-v2.1.1.tar.gz

14.2、下载完进行解压
tar -zxvf luna-v2.1.1.tar.gz

mv luna-v2.1.1 luna #改个名

15、安装和修改nginx的配置文件
15.1、安装这里选择手动编译
Nginx编译安装+监控模块vts_IT.cat的博客-CSDN博客

15.2、配置nginx
nginx在处理静态文件和用于对jumpserver后台程序的反向代理就很好用

vim /usr/local/nginx/conf/nginx.conf

整个修改我们只在server块中进行修改,其他默认不变

server {
    listen       80;
    client_max_body_size 100m; #录像和文件上传大小限制
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }
    location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;   #luna路径,如果修改安装目录,此处需要修改
    }
    location /media/ {    #静态文件处理
    add_header Content-Encoding gzip;
    root /opt/jumpserver/data/; #录像位置,如果修改安装目录,此处需要修改

    }
    location /static/ {
    root /opt/jumpserver/data/;
    }
    location /koko/ {  #当我们请求koko,他会通过proxy_pass进行反向代理
    proxy_pass http://localhost:5000;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    access_log off;
    }
    location /guacamole/{
    proxy_pass http://localhost:8081/ ;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    access_log off;
    }
    location /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_pass http://localhost:8070;
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_set_header upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }
    location /api/{
    proxy_pass http://localhost:8080;
    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 /core/ {
    proxy_pass http://localhost:8080;
    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 / {
    rewrite ^/(.*)$ /ui/$1 last;
    }

16、访问jumpserveer,进行验证
访问 http://自己的IP:80

会发现当我们访问80端口,他会自动进行跳转到lina提供给我们的更好的可视化界面

这里的默认用户名和密码都是admin

这就是一个进去后的效果。 能看到这个页面,说明你的jumpserver是部署成功了。

总结:
我们在整个部署的情况中,一定要将编译环境安装完整,安装东西较多要确保自身网络环境通常,安装过程中即使出现网络波动,也不要慌,将未完整下载的文件删除,重新下载即可。

    当我们安装jumpserver时,一定要确保在py3虚拟环境中允许安装,因为我们在部署不同的基于py3的应用可能需要使用不同的py3模块,为了避免冲突使用,所以我们创建不同的py3虚拟环境去避免这种问题。这里我创建的py3环境在 /usr/local/jump_venv1中。

    中间部署配置要仔细,过程相对复杂。常见错误本文都有解释。

原文:(https://blog.csdn.net/qq_57377057/article/details/126526669)

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装部署Zabbix,可以按照以下步骤进行操作: 1. 使用yum包管理器安装Zabbix的相关软件包,包括zabbix-server-mysql、zabbix-get、zabbix-web、zabbix-web-mysql、zabbix-agent和zabbix-sender。这可以通过运行以下命令来完成: ``` yum install -y zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender ``` 2. 下载并安装Zabbix的软件包。可以通过运行以下命令来下载Zabbix的软件包: ``` rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm ``` 3. 配置Zabbix服务器和数据库。按照Zabbix的官方文档提供的指引,配置Zabbix服务器和数据库的相关参数。这些参数包括数据库名称、用户名、密码等。 4. 启动Zabbix服务器和Zabbix代理。可以使用以下命令启动Zabbix服务器和Zabbix代理: ``` systemctl start zabbix-server systemctl start zabbix-agent ``` 5. 配置Zabbix前端。通过访问Zabbix的Web界面,按照Zabbix的官方文档提供的指引,配置Zabbix前端的相关参数。这些参数包括数据库名称、用户名、密码等。 6. 完成安装部署。完成以上步骤后,Zabbix就已经成功安装部署了。您可以通过访问Zabbix的Web界面来开始配置和监控您的网络设备和服务器。 请注意,以上步骤仅为概述,并且可能因操作系统和Zabbix版本而有所不同。建议您参考Zabbix官方文档中提供的具体安装部署指南进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Centos7下zabbix安装部署,设置中文(保姆级图文)【网络工程】](https://blog.csdn.net/u011027547/article/details/123411205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [详解Zabbix安装部署实践](https://download.csdn.net/download/weixin_38517212/12899039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值