ocserv简介
ocserv是一款开源的Linux SSL VPN服务器,专为需要远程访问VPN的用户管理和控制而设计。它遵循openconnect协议openconnect VPN客户端的对应协议,与思科的AnyConnect SSL VPN兼容。
用户名/密码认证是ocserv提供的认证方式之一,也是比较常用的一种认证方式,但是ocserv用户名/密码认证不支持接管,因此记录用户名/密码的接管认证方法。该处描述接管为当客户端使用密码认证连接到ocserv服务器时,服务器能够获取到用户名/密码,然后服务端可以调用第三方接口进行用户名/密码认证,并返回结果给ocserv。当结果为真时,说明验证成功,否则验证失败。
接管方案
ocserv校验用户名/密码时调用脚本,而不是在内部完成校验
1、指定执行脚本
在ocserv配置文件添加配置选项user-verify-script,指定执行脚本路径
代码修改如下
2、修改ocserv校验密码逻辑
ocserv用户名/密码认证,提供如下方法,其中plain_auth_pass用于校验密码。
修改plain_auth_pass方法,在该方法中执行脚本,代码修改如下:
3、结论
当客户端使用用户名/密码认证时,可以在脚本中校验密码,达到接管验证的效果