![使用批处理脚本进行 OpenVPN tls-verify](https://linux22.com/image/642469/%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC%E8%BF%9B%E8%A1%8C%20OpenVPN%20tls-verify.png)
我想执行一个批处理脚本来验证用户的通用名称是否存在于某个 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 文件中。