项目实战:运维堡垒机开发

前景介绍

到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机的IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的功能属性中的其中一项而已,下面我就给大家介绍一下堡垒机的重要性,以帮助大家参考自己公司的业务是否需要部署堡垒机。

堡垒机有一下两个至关重要功能:

权限管理

当你公司的服务器越来越多后,需要操作这些服务器的人就肯定不只是一个运维人员,同时也可能包括多个开发人员,那么这么多的人操作业务系统,如果全下分配不当就会存在很大的安全风险,举几个场景例子:

1.设想你们公司有300台linux服务器,A开发人员需要登录其中5台WEB服务器查看日志或进行问题追踪等事务,同时对另外10台hadoop服务器拥有root权限,在有300台服务器规模的网络中,按常理来讲你是已经使用了ldap权限统一认证的,你如何使这个开发人员只能以普通用户的身份登录5台web服务器,并且同时允许他以管理员的身份登录另外10台hadoop服务器呢?并且同时把其他剩下的200多台服务器没有访问权限。

2.目前据我了解,很多公司的运维团队为了方面,整个运维团队的运维人员还是共享同一套root密码,这样内部信任机制虽然使大家的工作方便了,但同时存在着极大的安全隐患,很多情况下,一个运维人员只需要管理固定数量的服务器,毕竟公司分为不同的业务线,不同的运维人员管理的业务线也不同,但如果共享一套root密码,其实就等于无限放大了每个运维人员的权限,也就是说,如果某个运维人员想干坏事的话,他可以在几分钟内把整个公司的业务停转,甚至数据都给删除掉。为了降低风险,于是有人想到,把不同业务线的root密码改掉就ok了么,也就是每个业务线的运维人员只知道自己的密码,这当然是最简单有效的方式,但问题是如果你同时用了ldap,这样做又比较麻烦,即使你设置了root不通过ldap认证,那新问题就是,每次有运维人员离职,他所在的业务线的密码都需要重新改一次。

其实上面的问题,我觉得可以很简单的通过堡垒机来实现,收回所有人员的直接登录服务器的权限,所有的登录动作都通过堡垒机授权,运维人员或开发人员不知道远程服务器的密码,这些远程机器的用户信息都绑定在了堡垒机上,堡垒机用户只能看到他能用什么权限访问哪些远程服务器。

在回收了运维或开发人员直接登录远程服务器的权限后,其实就等于你们公司生产系统的所有认证过程都通过堡垒机来完成了,堡垒机等于成了你们生产系统的SSO(single sign on)模块了。你只需要在堡垒机上添加几条规则就能实现以下权限控制了:

  1. 允许A开发人员通过普通用户登录5台web服务器,通过root权限登录10台hadoop服务器,但对其余的服务器无任务访问权限

  2. 多个运维人员可以共享一个root账户,但是依然能分辨出分别是谁在哪些服务器上操作了哪些命令,因为堡垒机账户是每个人独有的,也就是说虽然所有运维人员共享了一同一个远程root账户,但由于他们用的堡垒账户都是自己独有的,因此依然可以通过堡垒机控制每个运维人员访问不同的机器。

审计管理

审计管理其实很简单,就是把用户的所有操作都纪录下来,以备日后的审计或者事故后的追责。在纪录用户操作的过程中有一个问题要注意,就是这个纪录对于操作用户来讲是不可见的,什么意思?就是指,无论用户愿不愿意,他的操作都会被纪录下来,并且,他自己如果不想操作被纪录下来,或想删除已纪录的内容,这些都是他做不到的,这就要求操作日志对用户来讲是不可见和不可访问的,通过堡垒机就可以很好的实现。

堡垒机架构

堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且只能严格按守卫的分配进入指定的建筑,且每个建筑物还有自己的权限访问控制,不同级别的人可以到建筑物里不同楼层的访问级别也是不一样的。还有就是,每个进入城堡的人的所有行为和足迹都会被严格的监控和纪录下来,一旦发生犯罪事件,城堡管理人员就可以通过这些监控纪录来追踪责任人。

堡垒要想成功完全记到他的作用,只靠堡垒机本身是不够的, 还需要一系列安全上对用户进行限制的配合,堡垒机部署上后,同时要确保你的网络达到以下条件:

  • 所有人包括运维、开发等任何需要访问业务系统的人员,只能通过堡垒机访问业务系统

    • 回收所有对业务系统的访问权限,做到除了堡垒机管理人员,没有人知道业务系统任何机器的登录密码
    • 网络上限制所有人员只能通过堡垒机的跳转才能访问业务系统
  • 确保除了堡垒机管理员之外,所有其它人对堡垒机本身无任何操作权限,只有一个登录跳转功能
  • 确保用户的操作纪录不能被用户自己以任何方式获取到并篡改  

堡垒机功能实现需求

业务需求:

  1. 兼顾业务安全目标与用户体验,堡垒机部署后,不应使用户访问业务系统的访问变的复杂,否则工作将很难推进,因为没人喜欢改变现状,尤其是改变后生活变得更艰难
  2. 保证堡垒机稳定安全运行, 没有100%的把握,不要上线任何新系统,即使有100%把握,也要做好最坏的打算,想好故障预案

功能需求:

  1. 所有的用户操作日志要保留在数据库中
  2. 每个用户登录堡垒机后,只需要选择具体要访问的设置,就连接上了,不需要再输入目标机器的访问密码
  3. 允许用户对不同的目标设备有不同的访问权限,例:
    1. 对10.0.2.34 有mysql 用户的权限
    2. 对192.168.3.22 有root用户的权限
    3. 对172.33.24.55 没任何权限
  4. 分组管理,即可以对设置进行分组,允许用户访问某组机器,但对组里的不同机器依然有不同的访问权限 

设计表结构:

实现思路:

堡垒机执行流程:

  1. 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码)
  2. 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表
  3. 用户选择服务器,并自动登陆
  4. 执行操作并同时将用户操作记录

转载于:https://www.cnblogs.com/chaishao/p/6029402.html

python基础(十三)相关推荐

  1. python 项目管理_【Python基础(十三)】文件的操作(II)

    上一节内容自我感觉略显仓促,似乎并没有完全地把文件操作讲清楚,所以今天想再补充一些知识,力争能更好地完善这一部分的内容. 我们继续解释文件对象所提供的方法.文件的读取主要使用file.read(siz ...

  2. Python基础学习笔记(十三)异常

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...

  3. 怎样用python自动化办公_会python基础,如何学习自动化办公?

    Python 自动化,爽爽的解决 本课程完全让你摒弃重复率高,机械操作的劳动,解放双手,自动化办公,比如Excel表的各种计算,合并,比对,尤其是跨表,大量数据的,连Excel打开都费劲的,Pytho ...

  4. python基础语法 第0关print-重庆酉阳高校邦数据科学通识课【Python基础语法】答案...

    重庆酉阳高校邦数据科学通识课[Python基础语法]答案it8p 重庆酉阳高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学 ...

  5. python基础个人总结

    1.Python的可变与不可变 不可变类型:数字.字符.元组(一旦改变,变量所指向的地址发生变化)可变类型:列表.字典.集合(在地址块内部进行修改,变量指向的地址不发生变化) 2.装饰器: def f ...

  6. python基础系统学习整理,自学者可以参考的不二笔记

    前言 博主自己的python学习整理笔记,基础部分的笔记,当然一定还存在很多不足与纰漏,希望各位可以评论区建议让博主来更新 必备理论概念: 计算机基础概念 python基础概念 编辑器与pip安装与基 ...

  7. python基础以及面向对象

    python基础 python基础 第一单元 Python解释器和IDE的安装和初步使用 **一.昨日知识点回顾** **二.本单元知识点概述** (Ⅰ)指定教材 (Ⅱ)知识点概述 (Ⅲ)教学时长 * ...

  8. Python基础(类与对象)

    Python基础(类与对象) 一.编程的两大思想 面向过程和面向对象 面向过程 面向对象 区别 事物比较简单,可以用线性的思维去解决 事物比较复杂,使用简单的线性思维无法解决 共同点:面向对象和面向过 ...

  9. 全站最全面的Python 基础入门必备知识大全,学完即就业!【建议收藏仔细学习】

    前言: Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚!!最近一段时间越来越多的知友们在私信我,希望我出一期python基础入门的内容,肝了N ...

  10. 黑马传智python基础班课程_fb238 17年_传智黑马Python

    fb238 17年_传智黑马Python 文件大小:7.39GB  文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...

最新文章

  1. xmake入门,构建项目原来可以如此简单
  2. 下列那个语句在python中是非法的_下列哪个语句在Python中是非法的()A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD...
  3. 2018华为软件精英挑战赛总结
  4. 深度学习(10)-- Capsules Networks(CapsNet)
  5. 区间DP初探 P1880 [NOI1995]石子合并
  6. 信息学奥赛一本通 1009:带余除法 | OpenJudge NOI 1.3 04
  7. reflect动画_3DSMAX制作超时空未来动画场景-3D建模场景模型教程
  8. 每周.NET前沿技术文章摘要(2017-05-10)
  9. 优酷路由宝刷梅林_【荒野无灯Padavan固件】优酷路由宝L1内存卡扩展SWAP缓存+v2瑞设置详解...
  10. lg按键手机java游戏_03 对于j2me(JAVA手机)的怀念——jar游戏软件合集(824MB)
  11. 华为硬件工程师社招机考题库_华为硬件工程师笔试题
  12. python父亲节祝福_2020年精选优美的父亲节祝福语28条
  13. 自定义异常 extends Exception
  14. 【Android Gradle 插件】build.gradle 中的 android 配置 ( 配置项 | compileSdkVersion 配置 | buildToolsVersion 配置 )
  15. 图片太大怎么压缩变小?压缩有技巧
  16. linux中lockf的例子,小何讲Linux: 文件锁及其实例
  17. html图片自动滚动播放器,jQuery+css实现图片滚动效果(附源码)
  18. AFNetworking源码简单分析
  19. 【散列】杜鹃散列详情与C++实现代码
  20. windows蓝屏错误代码查询

热门文章

  1. c/c++面试试题(二)
  2. Java 结构体之 JavaStruct 使用教程三 JavaStruct 数组进阶
  3. 前端学习(3007):vue+element今日头条管理--消息提示
  4. [vue] vue给组件绑定自定义事件无效怎么解决?
  5. 前端学习(2706):重读vue电商网站26之JSON格式的配置文件
  6. 工作191:loading不声明
  7. 前端学习(1730):前端系列javascript之发布窗口布局上
  8. 第九十七期:新版Kite:实时补全代码,Python之父都发声力挺!
  9. spring mvc学习(8):springmvc常用注解代码
  10. lwip+freeRTOS 故障容错 客户端主动发起连接