本文介绍了如何配置OpenVPN服务器以使用Telegram bot启用双重身份验证,当连接时它将发送确认消息。
OpenVPN是著名的免费开放源VPN服务器,广泛用于组织员工对组织内部资源的安全访问。
作为连接到VPN服务器的身份验证,通常使用密钥和用户登录名/密码的组合。同时,存储在客户端上的密码会将整个密码集变成一个不能提供适当安全级别的因素。攻击者获得对客户端计算机的访问权限,也获得对VPN服务器的访问权限。从运行Windows的计算机进行连接时尤其如此。
使用第二个因素99%可以减少非法访问的风险,并且不会使用户的连接过程复杂化。
立即进行预订,对于实现,您将需要连接第三方身份验证服务器multifactor.ru,在其中您可以根据需要使用免费费率。
工作原理
- OpenVPN使用openvpn-plugin-auth-pam插件进行身份验证
- 该插件检查服务器上的用户密码,并通过RADIUS协议在Multifactor服务中请求第二个因素
- 多因素通过Telegram机器人将消息发送给具有访问确认的用户
- 用户在电报聊天中确认访问请求并连接到VPN
安装OpenVPN服务器
Internet上有很多文章描述了安装和配置OpenVPN的过程,因此我们将不再重复。如果需要帮助,文章末尾有几个指向培训材料的链接。
多因素设定
转到Multifactor管理系统,转到“资源”部分,然后创建一个新的VPN。
创建后,将为您提供两个参数:NAS-IDentifier和Shared Secret,它们是后续配置所必需的。

"", "All users" " ", VPN .
"VPN users", Telegram , VPN.

"" , VPN, "VPN users" . VPN .

OpenVPN
/etc/openvpn/server.conf PAM
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
/usr/lib/openvpn/plugins/ /usr/lib64/openvpn/plugins/ .
pam_radius_auth
$ sudo yum install pam_radius
/etc/pam_radius.conf RADIUS
radius.multifactor.ru shared_secret 40
:
- radius.multifactor.ru —
- shared_secret — VPN
- 40 —
( )
service-type openvpn
$ sudo vi /etc/pam.d/openvpn
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-auth
PAM pam_radius_auth :
- skip_passwd — RADIUS ( ).
- client_id — [NAS-Identifier] VPN .
.
, .
OpenVPN
$ sudo systemctl restart openvpn@server
auth-user-pass
OpenVPN, , . Telegram

, .
, OpenVPN .
-
, :
- 在具有OpenVPN的服务器上,有一个用户设置了密码
- 通过UDP端口1812从服务器访问地址radius.multifactor.ru
- 正确指定了NAS-Identifier和Shared Secret参数
- 多因素系统的用户具有相同的登录名,并有权访问VPN用户组
- 用户通过电报配置的身份验证方法
如果您以前尚未配置OpenVPN,请阅读详细的文章。
该指令是通过CentOS 7上的示例进行的。