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
答え1
今は確認する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
しかし、SELinuxがFedoraでどのように機能するかについての私の理解は間違っているようです。展開全体に対して 1 つのポリシー パッケージにすべて含まれているようです。
[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