Python 实现运维 堡垒机 / 跳板机 系统
相信各位对堡垒机(跳板机) 不陌生,为了保证服务器安全,前面加个堡垒机,所有 ssh 连接都通过堡垒机来完成,堡垒机也需要有身份认证,授权,访问控制,审计等功能,笔者用 Python 基本实现了上述功能。
架构
后端主要技术是 LDAP,配置了 LDAP 集中认证服务器, 所有服务器的认证都是由 ldap 完成的,我的做法是每个用户一个密码,把密码加密放到了数据库中,当用户输入 ip 从跳板机登陆服务器的时候,跳板机系统取 出密码,并解密,通过 pexpect 模块将密码发送过去,来完成登录的。
登录界面和方法
用户登录跳板机,用的是秘钥认证,登录跳板机后会自动执行跳板机的系统
输入完整 IP 或者部分 IP 可以完成登录,如果输入的部分 ip 匹配的 ip 不是唯一,会有提示,没有权限的会提示没有权限
输入 P/p 可以查看自己拥有权限的服务器 ip
输入 E/E 可以在几台服务器上执行同样的命令,IP 直接以逗号分隔
日志记录
日志记录用的是 pexpect 自带的日志记录,记录的日志既保存了命令又保存了命令的输出,也不小心讲发送的密码记录(不满意),pexpect 模块处理 有些难做,我的想法是将日志每天再处理一遍,将密码等去掉,日志保存在 logs 目录下面,文件名是 ip_日期_用户名 ps:用的 chinaren 登录的,提示窗口却是 baidutest,这是由于我个人原因导致的。
访问控制和授权
访问控制和授权是由一套 web 来实现的
管理员界面
主页:
查看用户:
添加用户:
主机列表:
添加主机:
权限列表:
添加权限:
后面的 pptp 和 openvpn 添加是我根据需要添加的,可以去掉
用户登录界面:
更改登录密码:
修改 key 密码:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论