配置 OpenVPN 客户端在授权失败后继续尝试

配置 OpenVPN 客户端在授权失败后继续尝试

今晚我刚刚成功切断了与大约 20 台服务器的 OpenVPN 连接。我正在试验脚本client-connect,某个时候其中一个脚本返回了一个非零响应。这个非零响应触发了,最终导致AUTH: Received AUTH_FAILED control messageOpenVPN客户端退出。有​​没有办法保护自己免受这种情况的影响?服务器或客户端有任何配置吗?syslogSIGTERM[soft,auth-failure] received, process exiting

答案1

保护自己免受此问题影响的最简单方法是将 openvpn 客户端包装在可重新启动它的 while 循环中。查看 openvpn 讨论列表,似乎这是一个设计决定,因为身份验证失败可能需要手动干预,而客户端反复重试在许多情况下会锁定用户(根据 SOX/PCI 兼容安全预防措施)。不清楚您的操作系统配置是什么,在 OS X 中,launchd 会负责重新生成它。

答案2

我一直断断续续地看到同样的问题。多项式的答案似乎是正确的——我确信这是网络/连接错误,而不是身份验证。

使用以下脚本启动 OpenVPN 已经为我解决了这个问题,尽管您可能需要根据本地设置进行调整:

#!/bin/bash

maxAttempts=10
waitTime=5
device=tap0

attempts=1
while true; do
    /etc/init.d/openvpn restart
    sleep $waitTime

    vpnIp=$( ip addr show dev $device | grep 'inet ' | cut -d ' ' -f 6 | cut -d '/' -f 1 )

    if [ ! -x $vpnIp ]; then
        break
    fi

    attempts=$((attempts+1))
    if [ $attempts -gt $maxAttempts ]; then
        break
    fi
done

相关内容