什么是堡垒机?

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

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

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

堡垒机的设计理念

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

堡垒机的目标

堡垒机的建设目标可以概括为5W,主要是为了降低运维风险。具体如下:

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

堡垒机的价值

  • 集中管理
  • 集中权限分配
  • 统一认证
  • 集中审计
  • 数据安全
  • 运维高效
  • 运维合规
  • 风险管控

堡垒机的原理

目前常见堡垒机的主要功能分为以下几个模块:

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。这几种各有各的优缺点,如何选择,大家可以根据实际场景来判断。

什么是Jumpserver

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

特点:

  • 完全开源,GPL授权
  • Python编写,容易再次开发
  • 实现了跳板机基本功能,认证、授权、审计
  • 集成了Ansible,批量命令等
  • 支持WebTerminal
  • Bootstrap编写,界面美观
  • 自动收集硬件信息
  • 录像回放
  • 命令搜索
  • 实时监控
  • 批量上传下载

Jumpserver3.0安装

相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机!

Centos 6.5 x86_64 关闭 iptables,关闭 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。

一、安装依赖包

yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python-pip MySQL-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

二、下载 jumpserver

cd /opt
Git clone https://github.com/jumpserver/jumpserver.git

注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可

三、执行快速安装脚本

cd /opt/jumpserver/install
pip install -r requirement.txt


查看安装的包 pip freeze

python install.py 输入jumpserver的地址,默认为:”192.168.1.200”,回车即可。 是否安装MySQL:选择”y”进行安装

MySQL 启动后会要求用户输入 邮件服务器及账户(后期用来发送用户名、ssh pass、web pass、ssh key)

163邮箱用授权密码,而不是登入密码 ,切记 。

输入smtp信息之后发现报错了,是python的pycrypto模块问题,需要卸载重装: pip uninstall pycrypto easy_install pycrypto

安装之后继续 python install.py 进行安装,并且输入 web管理员用户名和管理员密码,ok

运行 crontab,定期处理失效连接,定期更新资产信息 cd /opt/jumpserver python manage.py crontab add

注: 1)根据提示输入相关信息,完成安装,安装完成后,请访问web,继续查看后续文档 2)如果启动失败,请返回上层目录,手动运行 ./service.sh start 启动 3)如果 ./service.sh start 启动失败 cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py 4)如果启动失败,可能是由于80端口和3000端口已经被占用,或者数据库账号密码不对,请检查

五、Web登录

http://192.168.1.200

注意: 在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 1)后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能 2)后端服务器如果开启了selinux,请安装libselinux-python

六、更新代码

cd /opt/jumpserver git pull

环境搭建到这一步就结束啦~

下面开始要仔细看咯

一、用户管理

1)添加用户

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

输入要添加的用户名,姓名,权限,Mail,并且发送邮件 —> 保存

查看添加的用户

查看用户邮件 邮件中包含了用户名,权限,web密码,ssh 密钥密码,以及密钥下载地址。

2)添加用户组

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

添加新的小组 —> 运维小组

查看刚才添加的组

二、资产管理

1)添加资产组

点击资产管理 —> 查看资产组 —> 添加主机组

输入组名称,并且输入描述组用途

2)添加资产

点击资产管理 —> 查看资产 —> 添加资产

输入主机名,主机IP,管理用户名(管理员用户,主机中必须存在的哦~ 可以是root),端口,资产组 —> 提交保存

3)添加机房

点击资产管理 —> 查看机房 —> 添加机房

输入机房名称,其他的可以选填 —> 保存

三、权限管理

1)sudo

点击权限管理 —> sudo —> 添加别名

输入别名,系统命令,备注 —> 点击保存

2)添加系统用户

点击授权管理 —> 系统用户 —> 添加系统用户

输入用户名,密码,管理的sudo及备注 —> 单击保存

创建好系统之后,单击推送,将用户名、密码、sudo的信息推送到服务器。

选择系统用户,资产组 —> 单击保存

推送成功

3)授权规则

点击授权管理 —> 授权规则 —> 添加规则

输入授权名称,用户/用户组,资产/资产组,系统用户,备注 —> 单击保存

四、登录
这时候创建已经完成,下一步用户”hongxue”通过web和密钥登录堡垒机 192.168.1.200,并实现跳转到服务器 192.168.1.210

1)通过web登录 可以看到用户ID,用户名,权限,key,最后登录,用户组,授权主机数,以及主机信息。

单击查看主机 —> 连接

连接成功,可以对该主机进行操作。

2)通过ssh登录

通过邮件中收到的地址,下载key

点击工具 —> 用户密钥管理者

单击导入 —> 输入用户名,密码

连接 jumpserver 堡垒机 192.168.1.200,输入密钥密码进行登录

登录成功!! 从授权的列表中连接到服务器 192.168.1.210

为了安全,建议配置nginx 反向代理 jumpserver。

log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host';server {listen       8080 ssl;listen       80;
deny all;server_name jumpserver.xxxx.com;index index.html index.htm index.php;ssl_certificate      ssl/xxxx.com.crt;ssl_certificate_key  ssl/xxxx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;if ( $scheme = http ) {rewrite ^(.*)$ https://$host:8090$request_uri? permanent;}location / {proxy_set_header Connection "";proxy_http_version 1.1;proxy_pass      http://10.43.12.31:8090;}location ^~ /ws/ {proxy_pass http://10.43.12.31:8090/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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";}access_log  /data0/logs/jumpserver.log jumpserver;error_log  /data0/logs/jumpserver_error.log debug;
}



参考链接:
什么是堡垒机?为什么需要堡垒机? :https://mp.weixin.qq.com/s/WNG8o3XyBe04_SYmfN67dQ

CentOS下搭建Jumpserver堡垒机相关推荐

  1. 虚拟机通过jumpserver登录服务器,搭建 JumpServer 堡垒机管理数万台游戏服务器

    原标题:搭建 JumpServer 堡垒机管理数万台游戏服务器 1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境 1.1跳板机概述 跳板机就是一台服务器,开发或运维人员在维护 ...

  2. 【JumpServer-初识篇】一键搭建JumpServer堡垒机、对接server服务器主机

    大家好,我是无名小歌. 欢迎加入云社区 今天分享JumpServer堡垒机,带领大家搭建以及使用JumpServer连接我们的后端server服务器. 这里安装的版本v2.22.2,采用的是离线部署J ...

  3. 案例研究丨神策数据在多项目、多网络场景下使用JumpServer堡垒机

    神策数据(Sensors Data),全称为神策网络科技(北京)有限公司,是国内专业的大数据分析和营销科技服务提供商,为企业提供神策营销云.神策分析云.神策数据根基平台三大产品方案,并通过全渠道的数据 ...

  4. 搭建 JumpServer 堡垒机管理数万台游戏服务器

    文章目录 1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境 1.1跳板机概述 1.2Jumpserver 实验拓扑图 1.3初始化系统环境 1.4安装 jumpserver ...

  5. 基于Docker搭建Jumpserver堡垒机操作实践

    一.背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文 ...

  6. Linux 搭建 JumpServer 堡垒机

    跳板机概述 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作. 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...

  7. 搭建jumpserver堡垒机

    (1).跳板机和堡垒机概述 跳板机属于内控堡垒机范畴,是一种用于单点登陆的主机应用系统.跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维 ...

  8. jumpserver 堡垒机环境搭建(图文详解)

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编写,容易 ...

  9. jumpserver堡垒机 (资源)

    23.5 jumpserver介绍 • 官网www.jumpserver.org • 跳板机概述: 跳板机就是一台服务器,开发戒运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标 设备迚 ...

最新文章

  1. MyBatis 切换不同的类型数据库方案
  2. Rails5 Controller Document
  3. Twitter的分布式自增ID算法snowflake (Java版)
  4. 什么是RPA 现在都有哪些产品
  5. java原生方法,Java Servlet原生调用方法过程简化
  6. python写选择排序_如何快速掌握python选择排序算法?
  7. [学习笔记]c#Primer中文版-类设计、static成员、const和readonly数据成员
  8. 抖音测试快递服务“音尊达” 已接入中通、圆通等,可送货上门
  9. 超过32位java_在java中存储和使用超过32位的数字!
  10. java 8 foreach获取索引
  11. 如何使用UDP进行跨网段广播
  12. 01.redis初识
  13. 在线MAC地址查询和在线随机生成MAC地址
  14. 同态滤波(光照不均)
  15. sql casewhen
  16. 八爪鱼爬取网页数据案例+图解
  17. python操作word
  18. 弘辽科技:拼多多里有top是什么意思?如何提高排名?
  19. html战旗游戏,战棋页游-策略类战棋网页游戏推荐
  20. 方法重写的两同两小一大原则

热门文章

  1. 教你快速运行谷歌EfficientDet目标检测
  2. 用计算机软件绘制思维导图和手绘思维导图,手绘思维导图与计算机思维导图的对比...
  3. java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
  4. linux查看编译器命令,关于驱动与编译器版本的查询命令
  5. 2019 outlook 数据迁移_清华开源迁移学习算法库
  6. 分享一本有关数据结构的书籍(Python版)
  7. baidu google 下拉框 的简单实现
  8. 3GPP定义的IMSnbsp;ECT业务与Conf…
  9. 项目中遇到的所有ECharts图表集合
  10. 中台之上(十三):探讨支持组装式开发的业务架构设计方法