CentOS下搭建Jumpserver堡垒机
什么是堡垒机?
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。
用一句话来说,堡垒机就是用来后控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事溯源)
堡垒机很多时候也叫运维审计系统,它的核心是可控及审计。可控是指权限可控、行为可控。权限可控,比如某个工程师要离职或要转岗了。如果没有一个统一的权限管理入口,是一场梦魇。行为可控,比如我们需要集中禁用某个危险命令,如果没有一个统一入口,操作的难度可想而知。
堡垒机的设计理念
堡垒机主要是有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堡垒机相关推荐
- 虚拟机通过jumpserver登录服务器,搭建 JumpServer 堡垒机管理数万台游戏服务器
原标题:搭建 JumpServer 堡垒机管理数万台游戏服务器 1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境 1.1跳板机概述 跳板机就是一台服务器,开发或运维人员在维护 ...
- 【JumpServer-初识篇】一键搭建JumpServer堡垒机、对接server服务器主机
大家好,我是无名小歌. 欢迎加入云社区 今天分享JumpServer堡垒机,带领大家搭建以及使用JumpServer连接我们的后端server服务器. 这里安装的版本v2.22.2,采用的是离线部署J ...
- 案例研究丨神策数据在多项目、多网络场景下使用JumpServer堡垒机
神策数据(Sensors Data),全称为神策网络科技(北京)有限公司,是国内专业的大数据分析和营销科技服务提供商,为企业提供神策营销云.神策分析云.神策数据根基平台三大产品方案,并通过全渠道的数据 ...
- 搭建 JumpServer 堡垒机管理数万台游戏服务器
文章目录 1 Jumpserver 堡垒机概述-部署 Jumpserver 运行环境 1.1跳板机概述 1.2Jumpserver 实验拓扑图 1.3初始化系统环境 1.4安装 jumpserver ...
- 基于Docker搭建Jumpserver堡垒机操作实践
一.背景 笔者最近想起此前公司使用过的堡垒机系统,觉得用的很方便,而现在的公司并没有搭建此类系统,想着以后说不定可以用上:而且最近也有点时间,因此来了搭建堡垒机系统的兴趣,在搭建过程中参考了比较多的文 ...
- Linux 搭建 JumpServer 堡垒机
跳板机概述 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作. 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...
- 搭建jumpserver堡垒机
(1).跳板机和堡垒机概述 跳板机属于内控堡垒机范畴,是一种用于单点登陆的主机应用系统.跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维 ...
- jumpserver 堡垒机环境搭建(图文详解)
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编写,容易 ...
- jumpserver堡垒机 (资源)
23.5 jumpserver介绍 • 官网www.jumpserver.org • 跳板机概述: 跳板机就是一台服务器,开发戒运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标 设备迚 ...
最新文章
- MyBatis 切换不同的类型数据库方案
- Rails5 Controller Document
- Twitter的分布式自增ID算法snowflake (Java版)
- 什么是RPA 现在都有哪些产品
- java原生方法,Java Servlet原生调用方法过程简化
- python写选择排序_如何快速掌握python选择排序算法?
- [学习笔记]c#Primer中文版-类设计、static成员、const和readonly数据成员
- 抖音测试快递服务“音尊达” 已接入中通、圆通等,可送货上门
- 超过32位java_在java中存储和使用超过32位的数字!
- java 8 foreach获取索引
- 如何使用UDP进行跨网段广播
- 01.redis初识
- 在线MAC地址查询和在线随机生成MAC地址
- 同态滤波(光照不均)
- sql casewhen
- 八爪鱼爬取网页数据案例+图解
- python操作word
- 弘辽科技:拼多多里有top是什么意思?如何提高排名?
- html战旗游戏,战棋页游-策略类战棋网页游戏推荐
- 方法重写的两同两小一大原则
热门文章
- 教你快速运行谷歌EfficientDet目标检测
- 用计算机软件绘制思维导图和手绘思维导图,手绘思维导图与计算机思维导图的对比...
- java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!
- linux查看编译器命令,关于驱动与编译器版本的查询命令
- 2019 outlook 数据迁移_清华开源迁移学习算法库
- 分享一本有关数据结构的书籍(Python版)
- baidu google 下拉框 的简单实现
- 3GPP定义的IMSnbsp;ECT业务与Conf…
- 项目中遇到的所有ECharts图表集合
- 中台之上(十三):探讨支持组装式开发的业务架构设计方法