Centos

OpenVPN up 指令不起作用

  • June 6, 2012

我在執行 CentOS 6.2 的伺服器上設置 OpenVPN 時遇到問題。我之前在這台伺服器上使用過 OpenVPN,它可以工作(雖然那是在 Ubuntu 上,但現在我使用的是 CentOS)。我剛剛重新格式化了硬碟,並試圖讓 OpenVPN 重新啟動並執行。我在我的 OpenVPN 配置文件中使用upanddown指令來設置我的網橋。出於某種原因,當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]

我相信你遇到了這個錯誤

創建文件 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

引用自:https://serverfault.com/questions/395537