OpenVPN 启动指令不起作用

OpenVPN 启动指令不起作用

我在运行 CentOS 6.2 的服务器上设置 OpenVPN 时遇到了问题。我之前曾在这台服务器上使用过 OpenVPN,而且它运行正常(虽然那是在 Ubuntu 上,现在我使用的是 CentOS)。我刚刚重新格式化了硬盘,并试图重新启动 OpenVPN。我使用OpenVPN 配置文件中的updown指令来设置我的网桥。由于某种原因,当up脚本运行时,我在尝试执行时收到权限被拒绝错误brctl。这是我的配置文件:

mode server
tls-server

local 192.168.1.93 ##ip of server
port 1194
proto tcp

dev tap0
up "/etc/openvpn/up.sh br0"
down "/etc/openvpn/down.sh br0"

persist-key
persist-tun

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#tls-auth ta.key 0

cipher BF-CBC
comp-lzo

ifconfig-pool-persist ipp.txt
server-bridge 192.168.1.93 255.255.255.0 192.168.1.110 192.168.1.120
push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DOMAIN nyc.rr.com"
max-clients 10

user nobody
group nogroup
keepalive 10 120
status openvpn-status.log
verb 3

脚本如下up.sh

#!/bin/sh

BR=$1
DEV=$2
MTU=$3
/sbin/ifconfig $DEV mtu $MTU promisc up
/usr/sbin/brctl addif $BR $DEV

brctl在本脚本之外运行良好。我可以手动执行它。

我以 root 身份启动 OpenVPN,因此我认为问题中不存在权限问题,这就是为什么我如此困惑。

谢谢你的帮助。

编辑:这是回显的错误:

[root@server openvpn]# /etc/init.d/openvpn start Starting openvpn: /etc/openvpn/up.sh: line 7: /usr/sbin/brctl: Permission denied [FAILED]

答案1

我相信你打中了这个错误

创建文件 openvpnlocal.te:

module openvpnlocal 1.0;
require {
    type openvpn_t;
    type brctl_exec_t;
    class file { read execute open execute_no_trans };
}
#============= openvpn_t ==============
allow openvpn_t brctl_exec_t:file { read execute open execute_no_trans };

然后运行:

checkmodule -M -m -o openvpnlocal.mod openvpnlocal.te
semodule_package -o openvpnlocal.pp -m openvpnlocal.mod
semodule -i openvpnlocal.pp

相关内容