在 centos 6.4 上设置 openvpn 客户端

在 centos 6.4 上设置 openvpn 客户端

尝试将新的 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

问题似乎出在某些文件的安全上下文上。

您需要采取的步骤如下:

  1. 检查尝试启动服务是否会产生 AVC 拒绝

    # ausearch -m avc -ts today
    

    可能是没有输出。你可以尝试dontaudit暂时禁用规则

    # semodule -DB
    
  2. 检查受影响的文件和/或目录的权限和安全标签

    # ls -lrtZ /path/to/file
    # ls -lrtdZ /path/to/dir
    
  3. 查询当前策略以查看预期的安全标签是什么

    # matchpathcon /path/to/file
    # matchpathcon /path/to/dir
    
  4. 如果当前安全标签与预期安全标签不匹配,则恢复它。请注意,您可以递归恢复目录

    # restorecon -v /path/lo/file
    # restorecon -v -R /path/to/dir
    
  5. 再次尝试启动服务并重复上述步骤(如有必要)

答案2

OpenVPN 配置和证书文件上的 SELinux 上下文不正确。这很可能是因为您将它们移动到位而不是复制它们。

要解决此问题,请恢复其默认安全上下文(即使它们已经具有正确的安全上下文,也可以安全地执行此操作)。此命令将递归修复/etc/openvpn其下的每个文件和目录的安全上下文。

restorecon -r -v /etc/openvpn

相关内容