Python 堡垒机介绍

时间:2023-11-23 10:29:26
堡垒机说明
  由于运维行业流动性很高,也为了防止有人在服务中残留后门,照成安全隐患,在这里我们使用堡垒机保证服务器管理安全。
我们知道运维人员在登陆服务时需要登陆用户,从客户端到服务端的过程中堡垒机,将成为一个跳板的角色。堡垒机内有一个独立的管理员,专门为运维人员创建用户,其他创建用户并不能直接访问堡垒机,对于其他用户来说,堡垒机是透明的。运维人员可以通过这些用户到达指定服务端,这个用户在服务中的所有操作都会被详细记录,上传的文件会在堡垒机中审计,这样如果系统出现问题,就可以通过堡垒机来锁定具体是哪个用户照成的。
  堡垒机功能实现:堡垒机是通过重新封装了SSH来实现的。
  
需求:
  • 1.权限可控
  • 2.用户行为审计
普通跳板机:
  • (外网)客户端登陆--> (外网,专网)跳板机(公共账户)--> 服务器(专网)
堡垒机跳板:
  • 堡垒机用户登陆 客户端--> 登陆堡垒机,记录登陆用户,记录登陆用户,记录使用命令--> 登陆服务器
主流堡垒机:
不开源
  • 齐治 堡垒机 ((修改源生ssh)360投资)
开源(不好用)
  • jumpserver (python 开源不稳定(不适合生产环境))
  • creazyeye (python 开源不稳定(不适合生产环境))
集中式认证:
  • ldap允许认证( 域 )
  • 优点:建立一个用户,管理多台机器。
  • 缺点:登陆所有机器,不安全。
  • 使用环境:局域网多台机器。

审计管理

  审计管理其实很简单,就是把用户的所有操作都纪录下来,以备日后的审计或者事故后的追责。在纪录用户操作的过程中有一个问题要注意,就是这个纪录对于操作用户来讲是不可见的,什么意思?就是指,无论用户愿不愿意,他的操作都会被纪录下来,并且,他自己如果不想操作被纪录下来,或想删除已纪录的内容,这些都是他做不到的,这就要求操作日志对用户来讲是不可见和不可访问的,通过堡垒机就可以很好的实现。
堡垒机架构 
  堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且只能严格按守卫的分配进入指定的建筑,且每个建筑物还有自己的权限访问控制,不同级别的人可以到建筑物里不同楼层的访问级别也是不一样的。还有就是,每个进入城堡的人的所有行为和足迹都会被严格的监控和纪录下来,一旦发生犯罪事件,城堡管理人员就可以通过这些监控纪录来追踪责任人。
Python 堡垒机介绍
堡垒要想成功完全记到他的作用,只靠堡垒机本身是不够的, 还需要一系列安全上对用户进行限制的配合,堡垒机部署上后,同时要确保你的网络达到以下条件:
  • 所有人包括运维、开发等任何需要访问业务系统的人员,只能通过堡垒机访问业务系统
  • 回收所有对业务系统的访问权限,做到除了堡垒机管理人员,没有人知道业务系统任何机器的登录密码
  • 网络上限制所有人员只能通过堡垒机的跳转才能访问业务系统
  • 确保除了堡垒机管理员之外,所有其它人对堡垒机本身无任何操作权限,只有一个登录跳转功能
  • 确保用户的操作纪录不能被用户自己以任何方式获取到并篡改  

堡垒机功能实现需求

业务需求:
  1. 兼顾业务安全目标与用户体验,堡垒机部署后,不应使用户访问业务系统的访问变的复杂,否则工作将很难推进,因为没人喜欢改变现状,尤其是改变后生活变得更艰难
  1. 保证堡垒机稳定安全运行, 没有100%的把握,不要上线任何新系统,即使有100%把握,也要做好最坏的打算,想好故障预案
功能需求:
  1. 所有的用户操作日志要保留在数据库中
  2. 每个用户登录堡垒机后,只需要选择具体要访问的设置,就连接上了,不需要再输入目标机器的访问密码
  3. 允许用户对不同的目标设备有不同的访问权限,例:
    1. 对10.0.2.34 有mysql 用户的权限
    2. 对192.168.3.22 有root用户的权限
    3. 对172.33.24.55 没任何权限
    1. 分组管理,即可以对设置进行分组,允许用户访问某组机器,但对组里的不同机器依然有不同的访问权限
    设计表结构:

    Python 堡垒机介绍