Python 实现运维 堡垒机 / 跳板机 系统

发布于 2024-12-08 07:02:09 字数 3122 浏览 12 评论 0

相信各位对堡垒机(跳板机) 不陌生,为了保证服务器安全,前面加个堡垒机,所有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

绝不放开

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文