Gentoo Archives: gentoo-commits

From: Sven Vermeulen <swift@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-refpolicy:swift commit in: policy/modules/contrib/
Date: Sat, 10 Oct 2015 12:11:38
Message-Id: 1441537859.b99a22fc6960896dcf82a02e92b1b913732bc774.swift@gentoo
1 commit: b99a22fc6960896dcf82a02e92b1b913732bc774
2 Author: Jason Zaman <jason <AT> perfinion <DOT> com>
3 AuthorDate: Sat Sep 5 14:43:34 2015 +0000
4 Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 6 11:10:59 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=b99a22fc
7
8 virt: Add policy for virtlockd the Virtual machine lock manager
9
10 policy/modules/contrib/virt.fc | 4 +++
11 policy/modules/contrib/virt.te | 56 ++++++++++++++++++++++++++++++++++++++++++
12 2 files changed, 60 insertions(+)
13
14 diff --git a/policy/modules/contrib/virt.fc b/policy/modules/contrib/virt.fc
15 index b38007b..ea197d0 100644
16 --- a/policy/modules/contrib/virt.fc
17 +++ b/policy/modules/contrib/virt.fc
18 @@ -27,6 +27,7 @@ HOME_DIR/VirtualMachines/isos(/.*)? gen_context(system_u:object_r:virt_content_t
19 /usr/sbin/fence_virtd -- gen_context(system_u:object_r:virsh_exec_t,s0)
20 /usr/sbin/libvirt-qmf -- gen_context(system_u:object_r:virt_qmf_exec_t,s0)
21 /usr/sbin/libvirtd -- gen_context(system_u:object_r:virtd_exec_t,s0)
22 +/usr/sbin/virtlockd -- gen_context(system_u:object_r:virtlockd_exec_t,s0)
23
24 /var/cache/libvirt(/.*)? gen_context(system_u:object_r:virt_cache_t,s0-mls_systemhigh)
25
26 @@ -35,6 +36,7 @@ HOME_DIR/VirtualMachines/isos(/.*)? gen_context(system_u:object_r:virt_content_t
27 /var/lib/libvirt/images(/.*)? gen_context(system_u:object_r:virt_image_t,s0)
28 /var/lib/libvirt/isos(/.*)? gen_context(system_u:object_r:virt_content_t,s0)
29 /var/lib/libvirt/qemu(/.*)? gen_context(system_u:object_r:svirt_var_run_t,s0-mls_systemhigh)
30 +/var/lib/libvirt/lockd(/.*)? gen_context(system_u:object_r:virtlockd_var_lib_t,s0)
31
32 /var/log/log(/.*)? gen_context(system_u:object_r:virt_log_t,s0)
33 /var/log/libvirt(/.*)? gen_context(system_u:object_r:virt_log_t,s0)
34 @@ -48,5 +50,7 @@ HOME_DIR/VirtualMachines/isos(/.*)? gen_context(system_u:object_r:virt_content_t
35 /var/run/libvirt/lxc(/.*)? gen_context(system_u:object_r:virtd_lxc_var_run_t,s0)
36 /var/run/libvirt-sandbox(/.*)? gen_context(system_u:object_r:virtd_lxc_var_run_t,s0)
37 /var/run/libvirt/qemu(/.*)? gen_context(system_u:object_r:svirt_var_run_t,s0-mls_systemhigh)
38 +/var/run/libvirt/virtlockd-sock -s gen_context(system_u:object_r:virtlockd_run_t,s0)
39 /var/run/user/[^/]*/libguestfs(/.*)? gen_context(system_u:object_r:virt_home_t,s0)
40 /var/run/vdsm(/.*)? gen_context(system_u:object_r:virt_var_run_t,s0)
41 +/var/run/virtlockd.pid -- gen_context(system_u:object_r:virtlockd_run_t,s0)
42
43 diff --git a/policy/modules/contrib/virt.te b/policy/modules/contrib/virt.te
44 index ec84b5b..5648e9d 100644
45 --- a/policy/modules/contrib/virt.te
46 +++ b/policy/modules/contrib/virt.te
47 @@ -190,6 +190,24 @@ type virsh_t;
48 type virsh_exec_t;
49 init_system_domain(virsh_t, virsh_exec_t)
50
51 +type virtlockd_t;
52 +type virtlockd_exec_t;
53 +init_daemon_domain(virtlockd_t, virtlockd_exec_t)
54 +
55 +type virtlockd_run_t;
56 +files_pid_file(virtlockd_run_t)
57 +
58 +type virtlockd_var_lib_t;
59 +files_type(virtlockd_var_lib_t)
60 +
61 +ifdef(`enable_mcs',`
62 + init_ranged_daemon_domain(virtlockd_t, virtlockd_exec_t, s0 - mcs_systemhigh)
63 +')
64 +
65 +ifdef(`enable_mls',`
66 + init_ranged_daemon_domain(virtlockd_t, virtlockd_exec_t, s0 - mls_systemhigh)
67 +')
68 +
69 ########################################
70 #
71 # Common virt domain local policy
72 @@ -221,6 +239,7 @@ manage_lnk_files_pattern(virt_domain, svirt_var_run_t, svirt_var_run_t)
73 files_pid_filetrans(virt_domain, svirt_var_run_t, { dir file })
74
75 stream_connect_pattern(virt_domain, svirt_var_run_t, svirt_var_run_t, virtd_t)
76 +stream_connect_pattern(virt_domain, virt_var_run_t, virtlockd_run_t, virtlockd_t)
77
78 dontaudit virt_domain virt_tmpfs_type:file { read write };
79
80 @@ -526,6 +545,7 @@ filetrans_pattern(virtd_t, virt_var_run_t, virtd_lxc_var_run_t, dir, "lxc")
81
82 stream_connect_pattern(virtd_t, virtd_lxc_var_run_t, virtd_lxc_var_run_t, virtd_lxc_t)
83 stream_connect_pattern(virtd_t, svirt_var_run_t, svirt_var_run_t, virt_domain)
84 +stream_connect_pattern(virtd_t, virt_var_run_t, virtlockd_run_t, virtlockd_t)
85
86 can_exec(virtd_t, virt_tmp_t)
87
88 @@ -1243,3 +1263,39 @@ manage_files_pattern(virt_leaseshelper_t, virt_var_run_t, virt_var_run_t)
89 files_pid_filetrans(virt_leaseshelper_t, virt_var_run_t, file)
90
91 kernel_dontaudit_read_system_state(virt_leaseshelper_t)
92 +
93 +########################################
94 +#
95 +# Virtlockd local policy
96 +#
97 +
98 +allow virtlockd_t self:capability dac_override;
99 +allow virtlockd_t self:fifo_file rw_fifo_file_perms;
100 +
101 +allow virtlockd_t virt_image_type:dir list_dir_perms;
102 +allow virtlockd_t virt_image_type:file rw_file_perms;
103 +
104 +create_files_pattern(virtlockd_t, virt_log_t, virt_log_t)
105 +
106 +list_dirs_pattern(virtlockd_t, virt_var_lib_t, virt_var_lib_t)
107 +
108 +manage_dirs_pattern(virtlockd_t, { virt_var_lib_t virtlockd_var_lib_t }, virtlockd_var_lib_t)
109 +manage_files_pattern(virtlockd_t, virtlockd_var_lib_t, virtlockd_var_lib_t)
110 +filetrans_pattern(virtlockd_t, virt_var_lib_t, virtlockd_var_lib_t, dir)
111 +
112 +manage_files_pattern(virtlockd_t, virt_var_run_t, virtlockd_run_t)
113 +manage_sock_files_pattern(virtlockd_t, virt_var_run_t, virtlockd_run_t)
114 +filetrans_pattern(virtlockd_t, virt_var_run_t, virtlockd_run_t, sock_file)
115 +files_pid_filetrans(virtlockd_t, virtlockd_run_t, file)
116 +
117 +can_exec(virtlockd_t, virtlockd_exec_t)
118 +
119 +ps_process_pattern(virtlockd_t, virtd_t)
120 +
121 +files_read_etc_files(virtlockd_t)
122 +files_list_var_lib(virtlockd_t)
123 +
124 +miscfiles_read_localization(virtlockd_t)
125 +
126 +virt_append_log(virtlockd_t)
127 +virt_read_config(virtlockd_t)