【堡垒机】堡垒机的介绍

本文介绍了堡垒机的概念、设计原理、功能模块、价值以及常见部署方式,强调了其在权限控制、审计追踪和运维安全中的重要性,同时提到了开源解决方案JumpServer的使用和安装步骤。
摘要由CSDN通过智能技术生成

目前,常用的堡垒机有收费和开源两类。
收费的有行云管家、纽盾堡垒机;
开源的有jumpserver;
这几种各有各的优缺点,如何选择,大家可以根据实际场景来判断

什么是堡垒机

堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。

用一句话来说,堡垒机就是用来后控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事溯源)

堡垒机很多时候也叫运维审计系统,它的核心是可控及审计。可控是指权限可控、行为可控。权限可控,比如某个工程师要离职或要转岗了。如果没有一个统一的权限管理入口,是一场梦魇。行为可控,比如我们需要集中禁用某个危险命令,如果没有一个统一入口,操作的难度可想而知。

在特定的网络下,监控和记录运维人员对网络内设备的操作行为,便于集中管理和处理报警,定位原因和责任人

堡垒机的由来

堡垒机是从跳板机(也叫前置机)的概念演变过来的。早在2000年左右,一些中大型企业为了能对运维人员的远程登录进行集中管理,会在机房部署一台跳板机。跳板机其实就是一台unix/windows操作系统的服务器,所有运维人员都需要先远程登录跳板机,然后再从跳板机登录其他服务器中进行运维操作。

但跳板机并没有实现对运维人员操作行为的控制和审计,使用跳板机过程中还是会有误操作、违规操作导致的操作事故,一旦出现操作事故很难快速定位原因和责任人。此外,跳板机存在严重的安全风险,一旦跳板机系统被攻入,则将后端资源风险完全暴露无遗。同时,对于个别资源(如telnet)可以通过跳板机来完成一定的内控,但是对于更多更特殊的资源(ftp、rdp等)来讲就显得力不从心了。

人们逐渐认识到跳板机的不足,进而需要更新、更好的安全技术理念来实现运维操作管理。需要一种能满足角色管理与授权审批、信息资源访问控制、操作记录和审计、系统变更和维护控制要求,并生成一些统计报表配合管理规范来不断提升IT内控的合规性的产品。在这些理念的指导下,2005年前后,堡垒机开始以一个独立的产品形态被广泛部署,有效地降低了运维操作风险,使得运维操作管理变得更简单、更安全。

堡垒机的设计理念

堡垒机主要是有4A理念:即认证(Authen)、授权(Authorize)、账号(Account)、审计(Audit)

堡垒机的目标

堡垒机的建设目标可以概括为5个W,主要是为了降低运维风险

审计:你做了什么?(What)
授权:你能做哪些?(Which)
账号:你要去哪?(Where)
认证:你是谁?(Who)
来源:访问时间?(When)

谁,什么时间,有能力,去哪里,做什么

堡垒机的价值

  1. 集中管理
  2. 集中权限分配
  3. 统一认证
  4. 集中审计
  5. 数据安全
  6. 运维高效
  7. 运维合规
  8. 风险管控

堡垒机的原理

常见堡垒机的主要功能模块

1、运维平台

  • RDP/VNC运维;SSH/Telnet运维;SFTP/FTP运维;数据库运维;Web系统运维;远程应用运维;

2、管理平台

  • 三权分立;身份鉴别;主机管理;密码托管;运维监控;电子工单;

3、自动化平台

  • 自动改密;自动运维;自动收集;自动授权;自动备份;自动告警;

4、控制平台

  • IP防火墙;命令防火墙;访问控制;传输控制;会话阻断;运维审批;

5、审计平台

  • 命令记录;文字记录;SQL记录;文件保存;全文检索;审计报表;
说明:三权分立
三权的理解:配置,授权,审计
三员的理解:系统管理员,安全保密管理员,安全审计员
三员之三权:废除超级管理员;三员是三角色并非三人;安全保密管理员与审计员必须非同一个人

堡垒机的身份认证

堡垒机主要就是为了做统一运维入口,所以登录堡垒机必须支持灵活的身份认证方式,比如:

1、本地认证

本地账号密码认证,一般支持强密码策略

2、远程认证

一般可支持第三方AD/LDAP/Radius认证

3、双因子认证

UsbKey、动态令牌、短信网关、手机APP令牌等

4、第三方认证系统

OAuth2.0、CAS等

堡垒机常见的运维方式

B/S运维:通过浏览器运维
C/S运维:通过客户端软件运维,比如Xshell,CRT等
H5运维:直接在网页上可以打开远程桌面,进行运维。无需安装本地运维工具,只要有浏览器就可以对常用协议进行运维操作,支持ssh、telnet、rlogin、rdp、vnc协议
网关运维:采用SSH网关方式,实现代理直接登录目标主机,适用于运维自动化场景

堡垒机的其他常见功能

文件传输:一般都是登录堡垒机,通过堡垒机中转。使用RDP/SFTP/FTP/SCP/RZ/SZ等传输协议传输。
细粒度控制:可以对访问用户、命令、传输等进行精细化控制。
支持开放的API

堡垒机的部署方式

1、单机部署

堡垒机主要都是旁路部署,旁挂在交换机旁边,只要能访问所有设备即可

部署特点:

  • 旁路部署,逻辑串联
  • 不影响现有网络结构

2、HA高可用部署

旁路部署两台堡垒机,中间有心跳线连接,同步数据。对外提供一个虚拟IP。

部署特点:

  • 两台硬件堡垒机,一主一备/提供VIP
  • 当主机出现故障时,备机自动接管服务

3、异地同步部署

通过在多个数据中心部署多台堡垒机。堡垒机之间进行配置信息自动同步。

部署特点:

  • 多地部署,异地配置自动同步
  • 运维人员访问当地的堡垒机进行管理
  • 不受网络/带宽影响,同时祈祷灾备目的

4、集群部署(分布式部署)

当需要管理的设备数量很多时,可以将n多台堡垒机进行集群部署。其中两台堡垒机一主一备,其他n-2台堡垒机作为集群节点,给主机上传同步数据,整个集群对外提供一个虚拟IP地址。

部署特点:

  • 两台硬件堡垒机,一主一备、提供VIP
  • 当主机出现故障时,备机自动接管服务

jumpserver 

为了保证服务器安全,加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有身份认证,授权,访问控制,审计等功能。

Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。

在公司中,分配人员服务器权限也是相当方便,如:来一个新人,在Jumpserver分配Jumpserver账号即可,人员离职,在Jumpserver删掉人员账号即可。无需担心人员离职留下后门,当然前提是检查防火墙,只允许Jumpserver服务器有其他服务器的ssh的权限。

目前市面上已经有很多jumpserver产品提供使用,这里就介绍最广泛的一款。
官方网址:https://www.jumpserver.org/

堡垒机/跳板机JumpServer的搭建

参考官方部署文档:https://docs.jumpserver.org/zh/master/install/setup_by_fast/

环境准备
systemctl stop firewalld
systemctl enable firewalld
setenfoce 0
#关掉SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

#yum -y update
yum -y install -y wget curl tar gettext iptables

JumpServer 需要使用 MySQL 或 MariaDB 存储数据,使用 Redis 缓存数据,
支持 数据库 SSL 连接 和 Redis SSL 连接

安装数据库并建库

安装MySQL/MariaDB 数据库;我这里是已经装好MySQL了,开始创建jumpserver数据库

mysql -uroot -p123
create database jumpserver default charset 'utf8';
show databases;
show create database jumpserver;

三种安装方式

一键安装

虚拟机如果无法直接下载的话,可以先通过浏览器下载 quick_start.sh 脚本文件到本机,再导入虚拟机

cd /opt
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.28.8/quick_start.sh | bash

标准部署(本次实验用的这个
cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.28.8/jumpserver-installer-v2.28.8.tar.gz
ls

下载离线安装包

上面两种方式都不行的话就只能用这个了

 离线部署安装包下载地址:
  https://community.fit2cloud.com/#/products/jumpserver/downloads
# tar -xf jumpserver-offline-installer-v3.4.1-amd64.tar.gz
# cd jumpserver-offline-installer-v3.4.1-amd64/
# ls
cn-quick_start.sh  compose  config-example.txt  config_init  jmsctl.sh  LICENSE  locale  quick_start.sh  README.md  scripts  static.env  utils

 解压

tar -zxvf jumpserver-installer-v2.28.8.tar.gz
cd jumpserver-installer-v2.28.8/
ls

# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt

# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/

## Docker 镜像配置
# 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速
DOCKER_IMAGE_MIRROR=1

## 安装配置
# JumpServer 数据库持久化目录, 默认情况下录像(jumpserver/core/data/media/replay)、任务日志都在此目录
# 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录
VOLUME_DIR=/opt/jumpserver
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, 如果使用外置数据库, 请输入正确的 MySQL 信息,, 内置 MySQL 系统会自动处理
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, 如果使用外置数据库, 请输入正确的 Redis 信息,, 内置 Redis 系统会自动处理

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

# JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改
DOCKER_SUBNET=192.168.250.0/24

## IPV6 设置, 容器是否开启 ipv6 nat, USE_IPV6=1 表示开启, 为 0 的情况下 DOCKER_SUBNET_IPV6 定义不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64

## 访问配置
HTTP_PORT=80
SSH_PORT=2222
RDP_PORT=3389
MAGNUS_PORTS=30000-30100

## HTTPS 配置, 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key

## Nginx 文件上传大小
CLIENT_MAX_BODY_SIZE=4096m

## Task 配置, 是否启动 jms_celery 容器, 单节点必须开启
USE_TASK=1

# Core 配置, Session 定义, SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期, SESSION_EXPIRE_AT_BROWSER_CLOSE=True 表示关闭浏览器即 session 过期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=True

# Koko Lion XRDP 组件配置
CORE_HOST=http://core:8080
JUMPSERVER_ENABLE_FONT_SMOOTHING=True

## 终端使用宿主 HOSTNAME 标识
SERVER_HOSTNAME=${HOSTNAME}

# 额外的配置
CURRENT_VERSION=

安装

# 安装
./jmsctl.sh install
提示的默认选项–直接回车

报错

重启容器,查看dokcer ps 会显示还在重启,再次初始化安装

安装完成后配置文件 /opt/jumpserver/config/config.txt

启动

# 启动
./jmsctl.sh start

社区版下载

环境准备

虚拟机剩余磁盘空间最好大一些(10)

systemctl stop firewalld
setenforce 0

下载安装包

浏览器访问:JumpServer - 开源堡垒机 - 官网

点击【免费下载】

点击【社区版下载】

点击【其他版本】,选择你要安装的版本,下载

点击【下载】下面的图标进行下载;会提示你注册账户,注册一下再下载

将下载好的安装包导入虚拟机中
cd /opt/
解压
tar xf jumpserver-offline-installer-v2.28.8-amd64-7.tar.gz
ls

安装

cd jumpserver-offline-installer-v2.28.8-amd64-7
#安装
./jmsctl.sh install

#安装过程中遇到y/n直接回车(选择默认值)即可

启动

cd jumpserver-offline-installer-v2.28.8-amd64-7/
./jmsctl.sh start

浏览器访问

http://192.168.67.30

 默认用户: admin 默认密码: admin

登录之后会提示密码太简单,让你修改密码 

【重置密码】输入新的密码

然后再次登录就可以了

  

  

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值