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