gpt4 book ai didi

linux - OpenVPN密码认证

转载 作者:可可西里 更新时间:2023-11-01 09:34:42 25 4
gpt4 key购买 nike

我正在尝试将 openvpn windows 客户端连接到运行在 ubuntu 上的 openvpn 服务器。 VPN 在使用“仅证书”身份验证时工作正常,.但是当尝试使用下面的脚本进行身份验证时,客户端出现以下错误:

Mon Jan 21 14:59:07 2013 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Mon Jan 21 14:59:07 2013 AUTH: Received AUTH_FAILED control message
Mon Jan 21 14:59:07 2013 TCP/UDP: Closing socket
Mon Jan 21 14:59:07 2013 SIGTERM[soft,auth-failure] received, process exiting

vpn_user.sh 是可执行文件,可通过 server.conf 文件访问。

感谢任何帮助。


这是验证脚本:

#!/bin/sh
#vpn_user.sh

ALLOWED_USER="user1"

ALLOWED_PASS="password1"
echo "$username"
echo "$password"

if ["$username"=="$ALLOWED_USER"] && ["$password"=="$ALLOWED_PASS"]
then exit 0
fi

exit 1

服务器配置:

#server.conf
port 1194
proto udp
dev tap0

client-cert-not-required
auth-user-pass-verify vpn_user.sh via-env
script-security 3
username-as-common-name
tmp-dir /dev/shm

ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 3

客户端配置

client
dev tap
proto udp
remote 10.xx.xx.xx 1194
auth-user-pass
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
dh dh1024.pem
comp-lzo
verb 3

最佳答案

<强>1。您输入的脚本在 if 行中缺少空格,它应该是:

if [ "$username"== "$ALLOWED_USER"] && [ "$password"== "$ALLOWED_PASS"]

脚本执行时会出现什么?以下是我的测试示例:

# username=user1 password=password1 ./vpn_user.sh && echo "authentication OK" || echo "Authentication failed"
user1
password1
authentication OK

# username=user1 password=wrong-pass ./vpn_user.sh && echo "authentication OK" || echo "Authentication failed"**
user1
wrong-pass
Authentication failed

<强>2。还要检查您的 server.conf。您可能需要输入脚本的完整路径

这是重要的部分:

auth-user-pass-verify /full/path/to/vpn_user.sh via-env
script-security 3

<强>3。 Chroot 执行可能会造成困难。

如果您在 chroot 下运行 openvpn - 那么您的脚本需要在 chroot 进程下可见,还需要提供脚本的 shell 以及任何所需的库。在这种情况下,您需要 chroot 并在 chroot 下测试脚本的执行。

这可能很棘手,对我来说一个快速的解决方案是编写自己的小程序并编译(静态 - 不需要外部库)。

确切的说明、源代码、编译说明等 - 应该仍然可用:

http://openbsdsupport.org/openvpn-on-openbsd.html

甚至更好 - 尝试直接转到相关部分:

http://openbsdsupport.org/openvpn-on-openbsd.html#AuthenticationVariant1simple

<强>4。 Openvpn 客户端还需要配置为使用密码身份验证。

验证客户端配置中的选项 client-config.ovpn

password auth-user-pass

关于linux - OpenVPN密码认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com