手动部署jumpserver堡垒机(完整过程+常见错误)

Posted IT.cat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动部署jumpserver堡垒机(完整过程+常见错误)相关的知识,希望对你有一定的参考价值。

目录

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

二、跳板机和堡垒机概念

跳板机:

堡垒机:

堡垒机的作用:

堡垒机模块

堡垒机的功能

jumperserver官网

三、jumpserver服务器部署

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

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

3、安装系统初始化环境

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

         6、部署mysql5.6数据库

        6.1、官网下载mysql5.6版本

        6.2、解压缩数据包

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

        6.4、myql进行初始化

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

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

        6.7、给该用户赋予权限

         7、部署python3.6

        7.1、下载python3.6的源代码

        7.2、解压编译python安装包

        7.3、配置python3的环境变量

        7.4、创建python3的虚拟环境

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

出错原因

解决方法

        7.5、更换pip3的源

        7.6、再安装pip3 install virtualenv 模块

        7.7、激活虚拟python3.6

         8、部署redis数据库

        8.1、安装redis数据库

        8.2、启动验证服务 

         9、部署jumpserver服务

        9.1、下载jumpserver程序的代码

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

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

        9.4、修改jumpserver配置文件

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

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

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

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

主要原因

解决办法

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

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

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

        10.5、启动jumpserver服务

         11、部署CoCo/koko组件

        11.1、下载koko组件

        11.2、解压koko

        11.3、启动koko程序

         12、安装Guacamole的

        12.1、部署Guacamole组件

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

        12.3、安装FFmpeg工具

        12.4、编译安装guacamole

        12.5、安装java开发环境

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

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

        12.8、设置guacamole的运行环境

        12.9、启动guacamole服务

        12.10、启动tomcat服务 

         13、lina组件部署

        13.1、下载lina组件代码

        13.2、解压缩lina包

         14、luna组件安装

        14.1、下载luna组件

        14.2、下载完进行解压

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

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

        15.2、配置nginx

         16、访问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 [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50` ; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi

 生成TOKEN密钥

if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$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 (c) 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 <module>
    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

linux Jumpserver跳板机 /堡垒机详细部署

 

关于跳板机/堡垒机的介绍:

跳板机的定义:

跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作:

技术图片

跳板机缺点:

没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、远规
操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;

堡垒机的定义

堡垒机,即在一个特定的网络环境下,为了保障网络和数据丌受来自外部和内部用户的***和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活劢,以便集中报警、及时处理及审计定责。

总结:

总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能

Jumpserver 概述:

Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为亏联网企业提供了认证,授权,审计,自动化运维等功能。

Jumpserver的功能:

1、用户组/用户 :添加组方便迚行授权,用户是授权和登陆的主体.
2、资产组/资产/IDC : 主机信息简洁完整,用户自定义备注登录,支持自劢获取主页硬件信息.
3、Sudo/系统用户/授权规则 :支持 sudo 授权,系统用户用亍登陆客户端,授权是将用户、资产和系统用户关联起来.
4、在线/登录历叱/命令记录/上传下载 : 在线实时监控用户操作,统计和录像回放用户操作内容,阻断控制,详细记录上传下载.
5、上传/下载 : 支持文件上传下载,实现 rzsz 方式.
6、默认设置 : 默认管理用户 设置包括用户密码密钥,默认信息为了方便添加资产而设计.

搭建 jumpserver跳板机

安装网络yum源

[root@linfan ~]# cd /etc/yum.repos.d/
[root@linfan yum.repos.d]# curl -o 163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@linfan yum.repos.d]# sed -i s/\\$releasever/7/g /etc/yum.repos.d/163.repo
[root@linfan yum.repos.d]# sed -i s/enabled=0/enabled=1/g /etc/yum.repos.d/163.repo
[root@linfan yum.repos.d]# yum -y install epel-release
[root@linfan yum.repos.d]# yum clean all

安装python

安装依赖包

[root@linfan ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel   

编译安装pyhton-3.6.1

[root@linfan ~]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@linfan ~]# tar xvf Python-3.6.1.tar.xz  && cd Python-3.6.1
[root@linfan Python-3.6.1]# ./configure && make && make install

安装git

[root@linfan ~]#  yum -y install git  

下载jumpserver

[root@linfan ~]# cd /usr/local
[root@linfan local]#  git clone https://github.com/jumpserver/jumpserver.g

注意:此方式下载安装 还需要手动安装myslq数据库等,比较麻烦
我直接这有一个包下载后,后续都是脚本执行,建议使用此包,下载到本地 然后上传到服务器即可
百度网盘下载:

 

压缩

[root@linfan local]# unzip jumpserver-rpm.zip  

分支 master 设置为跟踪来自 origin 的进程分支 master。
切换到一个新分支 ‘master‘

[root@linfan local]# cd jumpserver-rpm/jumpserver
[root@linfan jumpserver]#  git checkout master 

执行安装脚本

[root@linfan jumpserver]# cd install/
//静静等待脚本执行
[root@linfan install]#  python install.py
请务必先查看wiki https://github.com/jumpserver/jumpserver/wiki
开始安装epel源
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirrors.yun-idc.com
Package epel-release-7-11.noarch already installed and latest version
Nothing to do
开始安装依赖包
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirrors.yun-idc.com 
...
...
开始关闭防火墙和selinux
setenforce: SELinux is disabled

请输入您服务器的IP地址,用户浏览器可以访问 [103.75.x.x]: 103.75.x.x     //在此输入你的IP
是否安装新的MySQL服务器? (y/n) [y]: y  //如果没有安装mysql输入y 已安装 输入 n 默认是y
开始安装设置mysql (请手动设置mysql安全)
默认用户名: jumpserver 默认密码: 5Lov@wife //数据库默认用户名: jumpserver 默认密码: 5Lov@wife
...
...
连接数据库成功

请输入SMTP地址: smtp.163.com
请输入SMTP端口 [25]: 25
请输入账户: frank_pazzn@163.com
请输入密码: *******   ###这里输入你的密码

        请登陆邮箱查收邮件, 然后确认是否继续安装

是否继续? (y/n) [y]: y   
开始写入配置文件
开始安装Jumpserver ...
开始更新jumpserver
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table django_content_type
Creating table django_session
Creating table setting
Creating table juser_usergroup
Creating table juser_user_group
Creating table juser_user_groups
Creating table juser_user_user_permissions
Creating table juser_user
Creating table juser_admingroup
Creating table juser_document
Creating table jasset_assetgroup
Creating table jasset_idc
Creating table jasset_asset_group
Creating table jasset_asset
Creating table jasset_assetrecord
Creating table jasset_assetalias
Creating table jperm_permlog
Creating table jperm_permsudo
Creating table jperm_permrole_sudo
Creating table jperm_permrole
Creating table jperm_permrule_asset_group
Creating table jperm_permrule_role
Creating table jperm_permrule_asset
Creating table jperm_permrule_user_group
Creating table jperm_permrule_user
Creating table jperm_permrule
Creating table jperm_permpush
Creating table jlog_log
Creating table jlog_alert
Creating table jlog_ttylog
Creating table jlog_execlog
Creating table jlog_filelog
Creating table jlog_termlog_user
Creating table jlog_termlog
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
//设置管理员用户名和密码
请输入管理员用户名 [admin]: admin
请输入管理员密码: [5Lov@wife]: sztx@2018
请再次输入管理员密码: [5Lov@wife]: sztx@2018
Starting jumpserver service:                               [  OK  ]

安装成功,Web登录请访问http://ip:8000, 祝你使用愉快。
请访问 https://github.com/jumpserver/jumpserver/wiki 查看文档  

技术图片

已收到邮箱

技术图片

web端配置

在浏览器输入103.75.x.x:8000

技术图片

输入方才设置的管理员用户名和密码

技术图片

创建用户组
用户组,顾名思义,给用户分组。用户组信息很有用,在分配资产权限的时候,针对的某个用户组下的所有用户,可以为一个用户分配多个用户组。
点击页面左侧“用户管理”菜单下的”用户组“,进入用户组列表页面。

技术图片

创建用户并配置该用户接收信息的邮箱

技术图片

登录邮箱查看
可根据邮箱提示登录跳板机后台下载密钥即可

技术图片

 

以上是关于手动部署jumpserver堡垒机(完整过程+常见错误)的主要内容,如果未能解决你的问题,请参考以下文章

linux Jumpserver跳板机 /堡垒机详细部署

linux Jumpserver跳板机 /堡垒机详细部署

JumpServer堡垒机Linux部署

堡垒机-jumpserver

容器(22)--Docker下jumpserver跳板机 /堡垒机详细部署

操作指南|在Kubernetes集群上快速部署JumpServer开源堡垒机