由于公司办公网络不受我们管控,我们日常又需要远程拨入办公网络进行工作的需求,我们就选择了 OpenVPN 拨入公司网络的方案,为每位开发同事分发一个密钥文件,考虑后期维护的便
由于公司办公网络不受我们管控,我们日常又需要远程拨入办公网络进行工作的需求,我们就选择了 OpenVPN 拨入公司网络的方案,为每位开发同事分发一个密钥文件,考虑后期维护的便捷性,计划改为 OpenVPN + MySQL + PAM 的验证方式,并利用 Django 开发一个页面来对 VPN 账户的日常维护,例如创建账户后自动发送邮件、删除账户、账户登录审计等
OpenVPN + MySQL + PAM 架构的搭建与配置,这里就不再说明了,网上的配置文档特别的多,但是有一点要说明的是:我测试用的 OpenVPN 版本为 2.4.8 和 2.4.12 依然还有模块的验证错误问题,还需要 openvpn-2.0.9 编译后的 openvpn-auth-pam.so 模块文件才能用
Django 主要是利用 pymysql 调用 MySQL 数据库的 OpenVPN 的表信息进行操作,结果返回给前端的请求的 Ajax 然后进行展示,具体的代码因为还没完全写好,而且比较烂暂时先不码在这了...
Django 开发的管理页面的 demo 如下:
当前 OpenVPN 页面功能设计的是:创建账户按钮、密码重置按钮、删除账户按钮,在其下方的两个表格显示的分别是:当前 OpenVPN 账号列表信息和 最近 OpenVPN 用户拨入信息。
当前的手动创建的账号以邮箱为准,创建成功后,对应邮箱会收到账号和密码信息,创建账户成功后,页面的账户列表内容信息会自动刷新并显示刚新创建的账户,后续会继续完善相关功能,例如创建的时候密码自动生成;删除的时候自动列出当前已存在的账户等。