我一直在尝试使用 OpenVPN 连接到我的工作网络。通过命令行使用它很好:
openvpn user.conf
不过,我还没有费心去正确设置 DNS,这看起来有点麻烦。我更愿意像使用其他 VPN 一样通过网络管理器使用它。问题是这样的:我将 、和user.crt
一起存储在 中(这似乎是保存这些东西的合理位置。当我尝试通过 NetworkManager 连接时,它只是告诉我连接失败。检查揭示了原因:SELinux 正在某处强制执行某些策略,阻止读取我的证书。我尝试按照 SELinux 故障排除程序给出的所有说明进行操作,但无济于事。ca.crt
user.key
~/.openvpn/
/var/logs/messages
openvpn
然后我确实很愚蠢从我的 SELinux 配置中删除了 openvpn 策略(使用 Fedora 存储库提供的 SELinux 管理 GUI)。各种问题都出现了(它甚至不再允许绑定命名端口)。
问题非常紧急,所以我最终只是禁用了会话的 SELinux(这样一切都正常了)。但我必须在某个时候再次将其重新打开,所以我的问题是:
我怎样才能首先在 SELinux 中恢复 openvpn 的原始策略文件,然后再授予 openvpn 对我的主目录中的证书的访问权限?
我也尝试过 SE Policy Generator 工具,但显然无济于事(它卡在了我为策略命名的对话框中)。
答案1
要恢复 OpenVPN 策略模块,只需在终端上运行以下命令root
:
semodule -i /usr/share/selinux/targeted/openvpn.pp.bz2
如果由于某种原因该文件丢失(不太可能,但我不确定system-config-selinux
具体是什么原因),请重新安装 SELinux 策略包并重试:
yum reinstall selinux-policy-targeted
最后,为了允许 OpenVPN 从您的主目录读取文件,请运行以下命令:
setsebool -P openvpn_enable_homedirs 1
您还可以openvpn_enable_homedirs
在列表中设置SELinux 布尔值在图形管理工具中。
答案2
刚刚在 Fedora 18 中遇到类似问题
看这里https://bugzilla.redhat.com/show_bug.cgi?id=555785
将证书放在正确的位置(从 Fedora 的角度来看)~/.pki 并制作
restorecon -R -v ~/.pki
一定
Openvpn 现在可以工作了。