openvpn:将客户端证书与特定的 ldap 用户匹配

openvpn:将客户端证书与特定的 ldap 用户匹配

我正在重新配置 openvpn 设置以使其更加安全。

目前它仅使用 ldap 身份验证。我计划将其更改为也需要客户端证书。

我的理解是,只要您拥有有效的客户端证书,那么它是谁的证书并不重要。

有没有办法让它验证证书是否与 ldap 用户匹配?

这样,如果黑客设法获取证书,那么如果没有匹配的 ldap 用户的登录名,证书对他们来说实际上没有任何用处。同样,如果他们破解了 ldap 用户密码,他们将需要一个特定的匹配证书,而不仅仅是任何有效的客户端证书。

在此阶段,我计划使用 easy-rsa 来生成 CA、服务器和客户端证书,因为我知道它有效,并且我知道如何去做。

将 Microsoft AD(我们的 ldap 提供程序)设置为 CA,在这一阶段尝试似乎有点复杂。

答案1

以防万一对其他人有帮助。这是我最终使用的客户端连接脚本...

#!/usr/bin/bash

echo "client-connect: common_name=$common_name, username=$username"

if [ "$common_name" == "$username" ]; then
  echo "Client certificate common_name matches username. Allow connection."
  exit 0
else
  echo "Client certificate common_name does not match username. Reject connection."
  exit 1
fi

common_name和username是openvpn自动提供给脚本的环境变量。

https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/

相关内容