OpenVPN --up 脚本 - “无法执行外部程序”

OpenVPN --up 脚本 - “无法执行外部程序”

在 Google 上搜索了几天,我还是找不到问题的正确答案。在阅读了大量脚本可能性后,我找到了 OpenVPN。

我有一个运行 Debian 7.8 的客户端,带有 OpenVPN 2.2.1 x86_64-linux-gnu。

连接工作正常,一切都很好。但是 - 我需要安装一些 NFS 驱动器,然后才能启动连接(我猜是“启动”)。

但是 - 然后当我尝试启动一个脚本时,遇到了这个错误:

 Tue Jun 23 10:44:55 2015 /usr/share/openvpn/script-to-start.sh tun0 1500 1542 192.168.2.6 192.168.2.5 init
 Tue Jun 23 10:44:55 2015 WARNING: Failed running command (--up/--down): could not execute external program
 Tue Jun 23 10:44:55 2015 Exiting

我在配置文件中添加了以下设置:

script-security 2
up /usr/share/openvpn/script-to-start.sh
down /usr/share/openvpn/script-to-stop.sh

查看完整设置文件在这里

我正在尝试运行的脚本(目前仅用于测试)是:

#/bin/bash

grep vpn /var/log/syslog > /home/USERNAME/test.txt

clear
echo "Good morning, world."

2017年更新:- #/bin/bash 行中缺少“!”标记。不要复制/粘贴上面的行,因为这是问题所在)

我也用“#!/bin/sh”进行了测试,以确保万无一失。毕竟,我测试了权限和所有权:

权限

如您所见,我在“up”和“down”命令之前添加了“script-security 2”。OpenVPN 以 root 身份运行,并由 init.d 脚本启动,但即使我尝试使用完整命令运行它,也会收到相同的错误。

参见以下示例(带有和不带有 sudo):

sudo openvpn --remote SERVERDOMAIN --dev tun1 --ifconfig 192.168.2.2 192.168.2.1 --tls-client --ca /etc/openvpn/easy-rsa/keys/ca.crt --cert /etc/openvpn/easy-rsa/keys/TITLE.crt --key /etc/openvpn/easy-rsa/keys/TITLE.key --reneg-sec 60 --verb 5 --script-security 2 --up /usr/share/openvpn/script-to-start.sh

如果我自己使用 SU 和 Sudo 运行这个小脚本,一切都会顺利进行,不会出现任何问题。

重点是我需要运行此命令来安装几个 NFS 驱动器,但现在我被锁定了。所以我需要一些帮助 - 我在丹麦论坛上尝试过,但没有成功。

sudo mount 192.168.2.1:/media/usb1/sync /home/USERNAME/sync

在线手册没有那么有用 - 现在我需要您的帮助。

答案1

我遇到了同样的问题,幸运的是我找到了解决方案。

以下是我检查过的内容:

  1. 文件夹的权限
  2. openvpn访问脚本的权限
  3. 脚本必须列出所使用的任何命令的完整路径(例如grep,您可以在命令前/bin/grep输入来找到完整路径)which
  4. 改用script-security 2 system

答案2

只是为了澄清一下:我忘记了““(感叹号)。这就能解释一切了。

#!/bin/bash

答案3

我遇到了类似的问题。就我而言,似乎down /etc/openvpn/update-resolv-conf缺少更新 DNS 的权限。它给出以下错误:

error: os x route delete command failed: external program exited with error status: 77

经过仔细搜索,我更新了.ovpn文件中的两行:

# Downgrade privileges after initialization (non-Windows only)
user your_user_name
group your_group_name 
# I write admin here. But I also believe that a lower privilege might also work.

答案4

检查运行 openvp 守护进程的用户名以及chown脚本文件夹或文件。

相关内容