当前位置:   article > 正文

jumpserver堡垒机

jumpserver堡垒机

类似于openvpn

不同在于:

  • openvpn没有控制的功能,也没有监控的功能
  • jumpserver不仅能连接到内网,具有openvpn核心功能外,
    • 还有控制功能,当通过jumpserver进入内网要想访问哪台主机是可以控制的,进行逻辑上的隔离
    • 有监控功能
    • 且还能控制访问的人能否执行哪些命令

可以在openvpn后面指向jumpserver,双重保护

https://jumpserver.org/

运维安全审计4A规范:

  • 身份鉴别
  • 授权控制
  • 账号管理
  • 安全审计

1、jumpserver组成

1.1、五大组件

可以分布式安装也可在一台主机安装

  • Lina

    前端UI项目,实现web页面展示,主要使用Vue, Element UI完成

  • Core

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

  • Coco/Koko

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

    Koko是Go版本的coco,重构了coco的SSH/SFTP服务和Web Terminal服务。

  • Luna

    现在是Web Terminal前端,计划前端页面都由该项目提供,Jumpserver 只提供API,不再负责后台渲染htmI等。主要使用Angular CLI完成,web控制台

  • Lion

    Lion使用了Apache软件基金会的开源项目Guacamole, JumpServer使用Golang和Vue重构了Guacamole实现RDPNNC协议跳板机功能。

2、安装jumpserver

单机部署,硬件环境需更改内存,建议8G

基于容器docker安装部署jumpserver

安装docker,没有要求的话按照阿里云的方法复制粘贴安装即可

docker内置有nginx

https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b1167f0tR
  • 1

2.1、准备数据库

##mysql
#启动docker前先准备数据库配置文件
[root@rocky8 ~]#mkdir -p /etc/mysql/mysql.conf.d/
[root@rocky8 ~]#mkdir -p /etc/mysql/conf.d/
[root@rocky8 ~]#vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0 
character-set-server=utf8         #添加此行,指定字符集
[root@rocky8 ~]#vim /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8        #添加此行,指定字符集


#启动docker
docker run -d -p 3306:3306 --name mysql --restart always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=jumpserver  \
-e MYSQL_USER=jumpserver      \
-e MYSQL_PASSWORD=123456       \
-v /data/mysql:/var/lib/mysql   \
-v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf  \
-v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf   mysql:5.7.30

##redis
[root@rocky8 ~]#docker run -d -p 6379:6379 --name reids --restart always redis:5.0.9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

docker指令

docker ps       #查看容器中正在运行的软件的信息
docker images   #查看所安装的软件mysql的情况
docker logs -f jms_all   #可以查看安装jumpserver成功的显示日志信息
  • 1
  • 2
  • 3

2.2、部署jumpserver

#执行官方脚本生成随机私钥,后续该私钥视为唯一
[root@centos8 ~]#cat key.sh
#!/bin/bash
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=$SECRET_KEY;
else
  echo SECRET_KEY=$SECRET_KEY;
fi
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=$BOOTSTRAP_TOKEN;
else
  echo BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN;
fi

#查看私钥
[root@centos8 ~]#tail -n2 .bashrc
SECRET_KEY=hysjeaoleZISBTaNznz51HCYhm9YxPFERsykE6I8l73BzW17nS
BOOTSTRAP_TOKEN=8gxGTQUb2fhczzEb


#运行容器docker安装jumpserver
[root@centos8 ~]#docker run --name jms_all -d \
  -v /opt/jumpserver/core/data:/opt/jumpserver/data \
  -v /opt/jumpserver/koko/data:/opt/koko/data \
  -v /opt/jumpserver/lion/data:/opt/lion/data \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=hysjeaoleZISBTaNznz51HCYhm9YxPFERsykE6I8l73BzW17nS \     #将生成的随机私钥加入此行
  -e BOOTSTRAP_TOKEN=8gxGTQUb2fhczzEb \      #同上行
  -e LOG_LEVEL=ERROR \
  -e DB_HOST=10.0.0.200 \     #不支持写127.0.0.1,写成本机ip
  -e DB_PORT=3306 \
  -e DB_USER=jumpserver \
  -e DB_PASSWORD=123456 \     #如前面数据库准备redis没设置密码,此项可设置为空''
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=10.0.0.200 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD='' \
  --privileged=true \
  jumpserver/jms_all:2.19.1     #不指定版本号的话默认安装最新版本
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

2.3、登录jumpserver

可直接ip登录,会进入登录验证页面,默认首次登录账号密码都是admin,登录后会进入更改密码页面,最少六位,使用新密码再次登录

远程ssh也可以连接ssh -p 2222 admin@10.0.0.200,

3、jumpserver管理

大部分操作都是在web页面进行,非常傻瓜式,因此仅进行步骤说明

3.1、创建jumpserver用户和组

在web页面创建

3.1.1、登录用户账号
  • 系统管理员:admin
  • 普通用户:xiaoming
  • 系统审计员:辅助管理用,仅审计、监控,也可当做普通用户用,需自行切换
3.1.2、管理用户账号

可以让jumpserver连接到后端服务器进行一些初始化的工作,对后端后端服务器具有管理权限的系统账号,特权用户

  • 通常是后端服务器的root或者是具备root权限的超级用户
  • 用于推送或者是创建系统用户
  • 用于获取被管理的硬件资产信息
  • 实际上是后端服务器的root账号
3.1.3、系统用户账号

给登录用户账号使用ssh连接后端服务器时对应的系统账号,即系统中的普通用户

3.2、创建后端资产管理

将后端服务器添加进jumpserver,

将系统用户账号关联到相对应资产,可直接添加节点集群,需提前分类

授权规则,谁连哪台主机,资产授权

内部可以ssh连接,注意密码保护

3.3、管理数据库

搭建数据库软件,创建所需管理的数据库,账号,授权,属于应用软件,添加应用即可

当前仅支持mysql

3.4、命令过滤

可以限制谁对哪台主机可以做什么,不可以做什么,但是可以脚本绕过规则

3.5、批量导入导出资产

通过csv表格格式进行批量导入,记得推送系统用户

4、第九周作业

nginx高级应用
tomcat常见应用
tomcat简单应用
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/745682
推荐阅读
  

闽ICP备14008679号