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) |