Python自动化开发学习13-堡垒机开发
堡垒机介绍很多人觉得,堡垒机就是跳板机,这是不全面的。跳板功能只是堡垒机所具备的功能的其中一项。堡垒机还有以下两个至关重要的功能:
[*]权限管理 : 用户使用堡垒机账号登录堡垒机系统。不需要知道别的主机的账号和密码,都是由堡垒机系统管理的。用户可以登录的主机和每台主机上所拥有的权限也是由堡垒机系统管理的。
[*]审计管理 : 用户的所有操作都是在堡垒机上执行的,所以都会被记录保存。其实对于操作的结果(就是屏幕上打印的结果),如果需要也是可以记录保存的。不过一般不那么做,而且数据量也会有点大。
开源堡垒机项目
号称没有好的开源项目,因为底层的SSH还是通过paramiko模块的长链接的ssh实现的。但是这个和原生的ssh比还是不太稳定,不太好用。不适合生产环境。要好用还是得去改原生的ssh,但是我们不会,我们只会改python。总之这章就是实现一个堡垒机的功能,真要做个好用的以后再说吧。
比较有名的大概是这个:jumpserver - 开源跳板机
paramiko模块的长连接
虽然上面说了,用这个模块不稳定,但是我们也没办法,毕竟只会这个。
paramiko之前已经学习过了,不过当时用的都是短连接。即:连接一次,执行一条命令,返回结果,断开。这里我们要用长连接。
长连接的代码在demos文件夹下的demo.py这个文件里,另外还要用到interactive.py这个文件。安装模块的时候不安装这个demos文件夹,所以我们去github上下下来:
https://github.com/paramiko/paramiko/tree/master/demos
利用demo.py程序,我们可以进行ssh的长连接。下面的开发都是基于这个程序为基础,在这个程序的基础上,修改该程序的源码添加上记录用户输入的代码,并写入数据库。于是审计管理便实现了。
堡垒机构架
任何人只能通过堡垒机登录设备,堡垒机可以链接管理所有的设备:
页:
[1]