让 SELinux 与 OpenVPN 良好配合(在 NetworkManager 中)

让 SELinux 与 OpenVPN 良好配合(在 NetworkManager 中)

我一直在尝试使用 OpenVPN 连接到我的工作网络。通过命令行使用它很好:

openvpn user.conf

不过,我还没有费心去正确设置 DNS,这看起来有点麻烦。我更愿意像使用其他 VPN 一样通过网络管理器使用它。问题是这样的:我将 、和user.crt一起存储在 中(这似乎是保存这些东西的合理位置。当我尝试通过 NetworkManager 连接时,它只是告诉我连接失败。检查揭示了原因:SELinux 正在某处强制执行某些策略,阻止读取我的证书。我尝试按照 SELinux 故障排除程序给出的所有说明进行操作,但无济于事。ca.crtuser.key~/.openvpn//var/logs/messagesopenvpn

然后我确实很愚蠢从我的 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 现在可以工作了。

相关内容