使用批处理脚本进行 OpenVPN tls-verify

使用批处理脚本进行 OpenVPN tls-verify

我想执行一个批处理脚本来验证用户的通用名称是否存在于某个 TXT 文件中,如果是,则授权连接,否则拒绝。我的 server.ovpn 是:

local IPADDRESS
mode server
port 1194
dev tun
dev-node VPNInterface
server 10.1.1.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
comp-lzo
tls-server
tls-auth keys/shared.key 0
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
keepalive 10 60
tls-verify "C:\verify.bat"

我的 verify.bat 脚本是:

@echo off
echo "%1 %2" > C:\log.txt
setlocal enableextensions enabledelayedexpansion
for /f "tokens=*" %%a in (C:\CN_List.txt) do ( 
  set tst=%%a
  set tst=!tst:%2=!
  if not !tst!==%%a ( 
    exit /b 0
  ) else (
    exit /b 1
  )
)

我在 log.txt 中执行了该回显,以查看文件中是否包含证书深度和 X509 通用名称,但什么也没有出现。在 OpenVPN 中,我收到以下错误:

Thu Sep 25 11:26:15 2014 191.177.89.124:54063 WARNING: Failed running command (--tls-verify script): returned error code 1
Thu Sep 25 11:26:15 2014 191.177.89.124:54063 TLS_ERROR: BIO read еls_read_plain text error: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
Thu Sep 25 11:26:15 2014 191.177.89.124:54063 TLS Error: > TLS object -> incoming plaintext read error
Thu Sep 25 11:26:15 2014 191.177.89.124:54063 TLS Error: TLS handshake failed

正如您在第一行看到的,tls-verify 脚本似乎存在一些错误。当找到第二个参数(用户 CN)时,我使用 exit /b 0。有人知道如何正确执行此脚本吗?

答案1

我需要补充一点:

脚本安全 2

在我的 server.ovpn 文件中。

相关内容