安装了 Fedora 20 64 位后,我遇到了 OpenVPN 和 SELinux 冲突的老问题。显然 SELinux 阻止openvpn
启动。
OpenVPN已设置通过网络连接我有三个文件:
- 用户证书为:
cer.pem
- CA证书为:
ca.pem
- 私钥为:
key.pem
一些解决方案说我应该将证书文件移入~/.cert
然后运行:
$ sudo restorecon -R -v ~/.cert
然后 SELinux 将允许访问证书。
但是,在启动之前openvpn
,我已将这些证书保存在 Documents/certificates 文件夹中。当然,当我执行时:
$ mv ~/Documents/certificates/cer.pem ~/.cert
该文件将被移动到“~/.cert
网络连接”,并且在“网络连接”中将没有证书。
我尝试使用cp
代替,mv
但这没有帮助,而且我仍然遇到这个老冲突问题。
答案1
SELinux 不允许openvpn
可执行文件访问文件系统上特定位置的文件。处理这些问题最好的朋友是使用 SELinux 疑难解答 GUI。
$ sealert -b
然后,您需要按照建议将必要的上下文添加到您的文件系统中以安抚 SELinux。
笔记:在上面的示例中,我选择了第二个选项,并将运行命令semanage
并按restorecon
描述修复我的问题。您需要对您的openvpn
问题执行相同的操作。它应该与我在屏幕截图中显示的内容相同。
为了解决这个问题,我运行了以下命令:
$ sudo semanage fcontext -a -t home_cert_t /home/slm/somedom.com.ca.crt
$ sudo restorecon -R -v /home/slm/somedom.com.ca.crt