openvpn 在状态日志中显示用户名(无需身份验证)

openvpn 在状态日志中显示用户名(无需身份验证)

我做了一些研究,似乎需要更多时间,而问题(看似)简单,可能需要遵循一些简单的确切步骤。

情况:openvpn 服务器正在使用证书进行身份验证。我将让多个客户端使用同一证书进行连接(选项已启用)。

问题:当它发生时,我只会在状态日志中看到许多类似的记录行,无法识别谁是谁。

问题:我可以在客户端配置中添加“选项用户名”——我应该在服务器和客户端中执行哪些步骤,以便客户端指示的用户名显示在状态日志中的“用户 ID”字段中,以便我可以区分连接?

这似乎没那么简单,因为据我所知,要使用户名“有效”,openvpn 服务器必须对其进行身份验证 - 这意味着服务器必须有用户和密码列表(我可以有空密码吗?),我可能无法设置任意用户名。而且这个用户名/密码必须是证书身份验证的补充,而不是代替...

编辑:

客户端 -第一行包含用户名,第二行包含auth-user-pass <filename>密码<filename>

服务器端 -auth-user-pass-verify <script> <options>脚本必须返回 0 以表示身份验证成功

编辑:

openvpn 在日志中不断说

daemon.err openvpn(login)[8992]: Options error: Unrecognized option or missing or extra parameter(s) in /etc/openvpn/login.conf:1: mylogin (2.5.3)

其中 login.conf 仅包含两行

mylogin
mypassword

因此由于某种原因,在互联网上找到的建议不起作用:(

编辑:

WTF 登录文件不应该命名为 .conf,因为 openvpn 认为它是它的配置文件!随便命名(.txt),但不要命名为 .conf!

解决方案:

服务器端:

  1. 添加到服务器配置
auth-user-pass-verify /etc/openvpn/verify.sh via-file
username-as-common-name
script-security 2
  1. 在服务器上创建/etc/openvpn/verify.sh以下内容:
#!/bin/sh

exit 0
  1. 授予/etc/openvpn/verify.sh权限 0777

客户端:

  1. --auth-user-pass /etc/openvpn/login.txt在启动 openvpn 的命令行中添加
  2. 创建/etc/openvpn/login.txt并输入以下内容
username123
password456
  1. /etc/openvpn/login.txt授予openvpn 访问的权限。

最后你将在服务器上的状态文件中看到

CLIENT_LIST,username123,<ip:port>,<ip>,,...,...,<date>,<unixtime>,username123,0,0

相关内容