我有一个使用证书和 LDAP 身份验证的 OpenVPN 服务器。
问题在于,一个用户可以共享他的证书,而其他有效的 LDAP 用户可以使用此证书。
题
如何确保 Bob 的证书只能与 LDAP 用户“bob”一起使用?
根据这篇文章,common_name用户不能伪造。
将此添加到 openvpn server.conf
script-security 2
# untrusted state
auth-user-pass-verify /etc/openvpn/scripts/check_cn_on_connect.sh via-env
Run Code Online (Sandbox Code Playgroud)
/etc/openvpn/scripts/check_cn_on_connect.sh 包含
#!/bin/bash
# username and common_name must be the same to allow access.
# users are not allowed to share their cert
if [ $username != $common_name ]; then
echo "$(date +%Y%m%d-%H%M%S) DENIED username=$username cert=$common_name" >> /var/log/openvpn-access.log
exit 1
fi
echo "$(date +%Y%m%d-%H%M%S) GRANTED username=$username cert=$common_name" >> /var/log/openvpn-access.log
exit 0
Run Code Online (Sandbox Code Playgroud)
更新
这适用于 OpenVPN 2.1.4。在 2.2.0 中,他们添加了许多您可以通过 看到的新变量env >> /tmp/env,其中一个新变量是证书指纹/序列号。
| 归档时间: |
|
| 查看次数: |
9605 次 |
| 最近记录: |