堡垒机
一、什么是堡垒机
堡垒机(Bastionhost),即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且只能严格按守卫的分配进入指定的建筑,且每个建筑物还有自己的权限访问控制,不同级别的人可以到建筑物里不同楼层的访问级别也是不一样的。还有就是,每个进入城堡的人的所有行为和足迹都会被严格的监控和纪录下来,一旦发生犯罪事件,城堡管理人员就可以通过这些监控纪录来追踪责任人。 目前比较优秀的开源软件是jumpserver,认证、授权、审计、自动化、资产管理,适合中小型公司或服务器不多的情况。商业的堡垒机Citrix XenApp、齐治包括一些云机构提供的堡垒机这里不做记录
二、为什么会诞生堡垒机
随着企事业单位IT系统的不断发展,网络规模和设备数量迅速扩大,日趋复杂的IT系统与不同背景的运维人员的行为给信息系统安全带来较大风险。
1.多个用户使用同一个账号。这种情况主要出现在同一工作组中,由于工作需要,同时系统管理账号,因此只能多用户共享同一账号。如果发生安全事故,不仅难以定位账号的实际使用者和责任人,而且无法对账号的使用范围进行有效控制,存在较大安全风险和隐患。
2.一个用户使用多个账号。一个维护人员使用多个账号是较为普遍的情况,用户需要记忆多套口令同时在多套主机系统、网络设备之间切换,降低工作效率,增加工作复杂度。如下图所示:
3. 缺少统一的权限管理平台,权限管理日趋繁重和无序;而且维护人员的权限大多是粗放管理,无法基于最小权限分配原则的用户权限管理,难以实现更细粒度的命令级权限控制,系统安全性无法充分保证。
4. 无法制定统一的访问审计策略,审计粒度粗。各网络设备、主机系统、数据库是分别单独审计记录访问行为,由于没有统一审计策略,并且各系统自身审计日志内容深浅不一,难以及时通过系统自身审计发现违规操作行为和追查取证。
5. 传统的网络安全审计系统无法对维护人员经常使用的SSH、RDP等加密、图形操作协议进行内容审计。
三、堡垒机的核心功能
1.登录功能
支持对X11、linux、unix、数据库、网络设备、安全设备等一系列授权账号进行密码的自动化周期更改,简化密码管理,让使用者无需记忆众多系统密码,即可实现自动登录目标设备,便捷安全。
2.账号管理
设备支持统一账户管理策略,能够实现对所有服务器、网络设备、安全设备等账号进行集中管理,完成对账号整个生命周期的监控,并且可以对设备进行特殊角色设置如:审计巡检员、运维操作员、设备管理员等自定义设置,以满足审计需求
3.身份认证
设备提供统一的认证接口,对用户进行认证,支持身份认证模式包括 动态口令、静态密码、硬件key 、生物特征等多种认证方式,设备具有灵活的定制接口,可以与其他第三方认证服务器之间结合;安全的认证模式,有效提高了认证的安全性和可靠性。
4.资源授权
设备提供基于用户、目标设备、时间、协议类型IP、行为等要素实现细粒度的操作授权,最大限度保护用户资源的安全
5.访问控制
设备支持对不同用户进行不同策略的制定,细粒度的访问控制能够最大限度的保护用户资源的安全,严防非法、越权访问事件的发生。
6.操作审计
设备能够对字符串、图形、文件传输、数据库等全程操作行为审计;通过设备录像方式实时监控运维人员对操作系统、安全设备、网络设备、数据库等进行的各种操作,对违规行为进行事中控制。对终端指令信息能够进行精确搜索,进行录像精确定位。
跳板机
跳板机就是一台服务器,开发或运维在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。
跳板机: 只有跳转登录功能.
如果跳板机提供了以下几条,叫做审计系统或者堡垒机.
1. 记录用户操作
2. 实现了权限管理.
3. 监控网络环境
4. 集中报警
堡垒机要想成功起到他的作用,只靠堡垒机本身是不够的,,还需要一系列的安全对用户进行限制的配合,堡垒机从部署上,网络要达到以下条件.
1. 所有人包括运维、开发等任何需要访问业务系统的人员,只能通过堡垒机访问业务系统.
1> 挥手所有对业务系统的访问权限,做到了除堡垒机管理人员,没有人知道业务系统任何机器的登录密码.
2> 网络上限制所有人员只能通过堡垒机的跳转才能访问业务系统.
2. 确保除了堡垒机管理员之外,所有其他人对堡垒机本身无任何操作权限,只有一个登录跳转功能.
3. 确保用户的操作记录不能被用户自己以任何方式获取并篡改.
Jumpserver
Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为亏联网企业提供了认证,授权,审计,自动化运维等功能,基于ssh协议来管理,客户端无需安装agent。
Jumpserver的功能特点
1. 完全开源,GPL授权
2. Python编写,容易二开
3. 实现了跳板机基本功能,身份认证、访问控制、授权、审计、批量操作等。
4. 集成了Ansible,批量命令等
5. 支持WebTerminal
6. Bootstrap编写,界面美观
7. 自动收集硬件信息
8. 录像回放
9. 命令搜索
10. 实时监控
11. 批量上传下载
四、Jumpserver的安装与部署
1.安装虚拟机
使用系统:CentOS 7
四核4g内存的硬盘最好40个g,因为堡垒机需要内存大一点
2. 安装Jumpserver
①脚本在线安装
网络稳定时建议使用这种方法,不稳定时请用安装包下载
输入命令:
# 默认会安装到 /opt/jumpserver-installer-v2.26.1 目录
# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.26.1/quick_start.sh | bash
# cd /opt/jumpserver-installer-v2.26.1
②离线安装
在官网下载tar.gz包进行安装,安装文件(百度网盘>我的资源>安装包>堡垒机开源jumpserver>jumpserver-offline-installer-v2.26.1-amd64-93.tar)
将安装包上传到/opt目录下,使用命令:
# cd /opt
# tar -xf jumpserver-offline-installer-v2.23.2-amd64-26.tar.gz
# cd jumpserver-offline-installer-v2.23.2-amd64-26
# 安装
# ./jmsctl.sh install
# 启动
# ./jmsctl.sh star