尝试将新的 CentOS 6.4 客户端加入到现有的 OpenVPN 网络。正在运行服务 openvpn 启动给出错误:
Options error: In [CMD-LINE]:1: Error opening configuration file: client.conf
Use --help for more information
如果我使用
bash -vx service openvpn start
服务启动成功。
如果我从脚本运行命令行,init.d
服务将成功启动。
如果这个过程要在重启时起作用,它就不会像需要的那样启动。
我正在SELinux
使用执行模式,但我没有看到任何消息/var/log/secure
或/var/log/messages
表明SELinux
正在参与其中。
有什么建议吗?
答案1
问题似乎出在某些文件的安全上下文上。
您需要采取的步骤如下:
检查尝试启动服务是否会产生 AVC 拒绝
# ausearch -m avc -ts today
可能是没有输出。你可以尝试
dontaudit
暂时禁用规则# semodule -DB
检查受影响的文件和/或目录的权限和安全标签
# ls -lrtZ /path/to/file # ls -lrtdZ /path/to/dir
查询当前策略以查看预期的安全标签是什么
# matchpathcon /path/to/file # matchpathcon /path/to/dir
如果当前安全标签与预期安全标签不匹配,则恢复它。请注意,您可以递归恢复目录
# restorecon -v /path/lo/file # restorecon -v -R /path/to/dir
再次尝试启动服务并重复上述步骤(如有必要)
答案2
OpenVPN 配置和证书文件上的 SELinux 上下文不正确。这很可能是因为您将它们移动到位而不是复制它们。
要解决此问题,请恢复其默认安全上下文(即使它们已经具有正确的安全上下文,也可以安全地执行此操作)。此命令将递归修复/etc/openvpn
其下的每个文件和目录的安全上下文。
restorecon -r -v /etc/openvpn