需求
所有的用户操作日志要保留在数据库中
每个用户登录堡垒机后,只需要选择具体要访问的设置,就连接上了,不需要再输入目标机器的访问密码
允许用户对不同的目标设备有不同的访问权限,例:
对10.0.2.34 有mysql 用户的权限
对192.168.3.22 有root用户的权限
对172.33.24.55 没任何权限
分组管理,即可以对设置进行分组,允许用户访问某组机器,但对组里的不同机器依然有不同的访问权限
目录结构
堡垒机
├ bin # 执行文件目录
| └ fortress.py # 执行程序
├ conf # 配置文件目录
| ├ action_registers.py # 存储动作参数与对应执行函数的映射关系
| └ setting.py # 配置文件,目前主要保存mysql数据库连接参数
├ modules # 程序核心代码位置
| ├ actions.py # 执行程序入口及相关函数
| ├ common_filters.py # 存储一些内部使用的数据库查找类函数
| ├ db_conn.py # 数据库连接引擎
| ├ interactive.py # ssh连接时的交互逻辑
| ├ models.py # 数据库表结构的orm映射
| ├ ssh_login.py # ssh连接模块
| ├ utils.py # 内部使用的工具函数汇总
| └ views.py # 执行程序时的各动作参数对应的函数
└ share # 测试用数据
代码
fortress.py
action_registers.py
settings.py
actions.py
common_filters.py
db_conn.py
interactive.py
models.py
ssh_login.py
utils.py
views.py