OpenVPN duplicate-cn:如何区分客户端

OpenVPN duplicate-cn:如何区分客户端

我有一个 OpenVPN 设置,其中整个客户端类别(嵌入式设备)共享相同的客户端证书。

但是,它们可以通过主机名(无论如何都是从硬件 ID 派生出来的)来区分 - 我希望能够在服务器端区分它们,无论是通过为它们分配不同的 IP 地址(我知道那里的所有主机名),还是通过为它们分配我控制范围内的区域中的不同动态 DNS 条目。

两种选择都可以 - 但是我如何将这些信息从客户端传输到脚本服务器端?

答案1

OpenVPN 似乎不提供除通用名称之外的任何客户端信息,因此没有很好的方法来实现这一点。不过,除了证书身份验证之外,您还可以使用用户名/密码身份验证,并且每个设备的用户名都是唯一的。

在服务器配置中:

auth-user-pass-verify /etc/openvpn/auth-accept.sh via-env
auth-user-pass-optional
username-as-common-name

不要设置client-cert-not-required——真正的身份验证仍将使用证书进行。auth-accept.sh是一个始终指示身份验证成功的虚拟脚本:

#!/bin/sh
exit 0

然后应配置客户端以提供用户名/密码认证(以及证书认证):

auth-user-pass /etc/openvpn/devicename

devicename然后包含每个设备的唯一用户名和一个虚拟密码:

device001
password

相关内容