Fedora
嘗試執行 OpenVPN 時出現 SELinux 重新標記問題
我正在嘗試在 Fedora 19 下使用 selinux(selinux-policy-targeted)在強制模式下執行 OpenVPN,但我遇到了一個 AVC,我不完全確定如何處理。
從命令行以 root 身份啟動 OpenVPN 可以正常工作,但通過 systemd (
systemctl start openvpn@vpcbridge
,如果/etc/openvpn/vpcbridge.conf
存在) 啟動它會導致:ERROR: Cannot ioctl TUNSETIFF tap0: Permission denied (errno=13)
並在
/var/log/audit
:type=AVC msg=audit(1376412420.435:60): avc: denied { relabelfrom } for pid=720 comm="openvpn" scontext=system_u:system_r:openvpn_t:s0 tcontext=system_u:system_r:ifconfig_t:s0 tclass=tun_socket
作為參考,這裡是 OpenVPN 配置:
port 1194 user openvpn dev tap0 proto udp secret vpcbridge.key keepalive 10 120 persist-tun persist-key
如果我執行
audit2allow
,我會得到一個如下所示的模組文件:module openvpn 1.0; require { type openvpn_t; type ifconfig_t; class tun_socket relabelfrom; } #============= openvpn_t ============== allow openvpn_t ifconfig_t:tun_socket relabelfrom;
但是載入會產生錯誤:
# semodule -i openvpn.pp libsepol.print_missing_requirements: openvpn's global requirements were not met: type/attribute openvpn_t (No such file or directory). libsemanage.semanage_link_sandbox: Link packages failed (No such file or directory). semodule: Failed!
我不確定如何處理這個錯誤。
更新:根據要求,輸出
seinfo -t ...
:# seinfo -t | grep openvpn openvpn_tmp_t openvpn_unconfined_script_exec_t openvpn_status_t openvpn_etc_rw_t openvpn_var_lib_t openvpn_var_run_t openvpn_port_t openvpn_server_packet_t openvpn_etc_t openvpn_initrc_exec_t openvpn_var_log_t openvpn_unconfined_script_t openvpn_exec_t openvpn_t openvpn_client_packet_t
我現在沒有要檢查的 Fedora 系統,但現在我在稍後讀到“openvpn”這個名字似乎有點通用。OpenVPN 軟體包本身可能有一個名為 的模組,用於在安裝時添加的類型資訊。如果你給模組一個不同的名字,這還會發生嗎?喜歡
openvpn-tun
還是什麼?我不是 100% 確定細節(這基本上只是一個瘋狂的猜測),但如果兩個模組具有相同的名稱,它似乎會產生衝突。特別是如果一個模組依賴於另一個模組中的資訊。
編輯:
終於到家了。看起來有一個具有該名稱的本機 SELinux 模組:
[root@localhost test]# cat /etc/fedora-release Fedora release 18 (Spherical Cow) [root@localhost test]# semodule -l | grep openvpn openvpn 1.11.0
但看起來我對 Fedora 上的 SELinux 的工作方式是錯誤的。看起來這一切都包含在整個發行版的單一政策包中:
[root@localhost modules]# pwd /etc/selinux/targeted/modules/active/modules [root@localhost modules]# ls -lh openvpn.pp -rw-r--r--. 1 root root 12K Jun 27 08:59 openvpn.pp [root@localhost modules]# rpm -qf $PWD/openvpn.pp selinux-policy-targeted-3.11.1-98.fc18.noarch