2 policy_module(virt, 1.4.0)
4 ########################################
11 ## Allow virt to use serial/parallell communication ports
14 gen_tunable(virt_use_comm, false)
18 ## Allow virt to read fuse files
21 gen_tunable(virt_use_fusefs, false)
25 ## Allow virt to manage nfs files
28 gen_tunable(virt_use_nfs, false)
32 ## Allow virt to manage cifs files
35 gen_tunable(virt_use_samba, false)
39 ## Allow virt to manage device configuration, (pci)
42 gen_tunable(virt_use_sysfs, false)
46 ## Allow virt to use usb devices
49 gen_tunable(virt_use_usb, true)
51 virt_domain_template(svirt)
52 role system_r types svirt_t;
55 files_type(svirt_cache_t)
57 attribute virt_domain;
58 attribute virt_image_type;
61 files_config_file(virt_etc_t)
64 files_type(virt_etc_rw_t)
67 type virt_image_t; # customizable
68 virt_image(virt_image_t)
71 type virt_content_t; # customizable
72 virt_image(virt_content_t)
73 userdom_user_home_content(virt_content_t)
76 logging_log_file(virt_log_t)
79 files_pid_file(virt_var_run_t)
82 files_type(virt_var_lib_t)
86 init_daemon_domain(virtd_t, virtd_exec_t)
87 domain_obj_id_change_exemption(virtd_t)
88 domain_subj_id_change_exemption(virtd_t)
90 type virtd_initrc_exec_t;
91 init_script_file(virtd_initrc_exec_t)
94 init_ranged_daemon_domain(virtd_t, virtd_exec_t, s0 - mcs_systemhigh)
98 init_ranged_daemon_domain(virtd_t, virtd_exec_t, s0 - mls_systemhigh)
101 ########################################
106 allow svirt_t self:udp_socket create_socket_perms;
108 manage_dirs_pattern(svirt_t, svirt_cache_t, svirt_cache_t)
109 manage_files_pattern(svirt_t, svirt_cache_t, svirt_cache_t)
110 files_var_filetrans(svirt_t, svirt_cache_t, { file dir })
112 read_lnk_files_pattern(svirt_t, virt_image_t, virt_image_t)
114 allow svirt_t svirt_image_t:dir search_dir_perms;
115 manage_dirs_pattern(svirt_t, svirt_image_t, svirt_image_t)
116 manage_files_pattern(svirt_t, svirt_image_t, svirt_image_t)
117 fs_hugetlbfs_filetrans(svirt_t, svirt_image_t, file)
119 list_dirs_pattern(svirt_t, virt_content_t, virt_content_t)
120 read_files_pattern(svirt_t, virt_content_t, virt_content_t)
121 dontaudit svirt_t virt_content_t:file write_file_perms;
122 dontaudit svirt_t virt_content_t:dir write;
124 corenet_udp_sendrecv_generic_if(svirt_t)
125 corenet_udp_sendrecv_generic_node(svirt_t)
126 corenet_udp_sendrecv_all_ports(svirt_t)
127 corenet_udp_bind_generic_node(svirt_t)
128 corenet_udp_bind_all_ports(svirt_t)
129 corenet_tcp_bind_all_ports(svirt_t)
130 corenet_tcp_connect_all_ports(svirt_t)
132 dev_list_sysfs(svirt_t)
134 userdom_search_user_home_content(svirt_t)
135 userdom_read_user_home_content_symlinks(svirt_t)
136 userdom_read_all_users_state(svirt_t)
138 tunable_policy(`virt_use_comm',`
139 term_use_unallocated_ttys(svirt_t)
140 dev_rw_printer(svirt_t)
143 tunable_policy(`virt_use_fusefs',`
144 fs_read_fusefs_files(svirt_t)
145 fs_read_fusefs_symlinks(svirt_t)
148 tunable_policy(`virt_use_nfs',`
149 fs_manage_nfs_dirs(svirt_t)
150 fs_manage_nfs_files(svirt_t)
153 tunable_policy(`virt_use_samba',`
154 fs_manage_cifs_dirs(svirt_t)
155 fs_manage_cifs_files(svirt_t)
158 tunable_policy(`virt_use_sysfs',`
159 dev_rw_sysfs(svirt_t)
162 tunable_policy(`virt_use_usb',`
163 dev_rw_usbfs(svirt_t)
164 fs_manage_dos_dirs(svirt_t)
165 fs_manage_dos_files(svirt_t)
169 xen_rw_image_files(svirt_t)
173 xen_rw_image_files(svirt_t)
176 ########################################
181 allow virtd_t self:capability { chown dac_override fowner ipc_lock kill mknod net_admin net_raw setpcap setuid setgid sys_admin sys_nice sys_ptrace };
182 allow virtd_t self:process { getcap getsched setcap sigkill signal signull execmem setexec setfscreate setsched };
184 allow virtd_t self:fifo_file rw_fifo_file_perms;
185 allow virtd_t self:unix_stream_socket create_stream_socket_perms;
186 allow virtd_t self:tcp_socket create_stream_socket_perms;
187 allow virtd_t self:tun_socket create_socket_perms;
188 allow virtd_t self:netlink_kobject_uevent_socket create_socket_perms;
190 manage_dirs_pattern(virtd_t, svirt_cache_t, svirt_cache_t)
191 manage_files_pattern(virtd_t, svirt_cache_t, svirt_cache_t)
193 manage_dirs_pattern(virtd_t, virt_content_t, virt_content_t)
194 manage_files_pattern(virtd_t, virt_content_t, virt_content_t)
196 allow virtd_t virt_domain:process { getattr getsched setsched transition signal signull sigkill };
198 read_files_pattern(virtd_t, virt_etc_t, virt_etc_t)
199 read_lnk_files_pattern(virtd_t, virt_etc_t, virt_etc_t)
201 manage_dirs_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t)
202 manage_files_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t)
203 manage_lnk_files_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t)
204 filetrans_pattern(virtd_t, virt_etc_t, virt_etc_rw_t, dir)
206 manage_files_pattern(virtd_t, virt_image_type, virt_image_type)
207 manage_blk_files_pattern(virtd_t, virt_image_type, virt_image_type)
208 allow virtd_t virt_image_type:file { relabelfrom relabelto };
209 allow virtd_t virt_image_type:blk_file { relabelfrom relabelto };
211 manage_dirs_pattern(virtd_t, virt_log_t, virt_log_t)
212 manage_files_pattern(virtd_t, virt_log_t, virt_log_t)
213 logging_log_filetrans(virtd_t, virt_log_t, { file dir })
215 manage_dirs_pattern(virtd_t, virt_var_lib_t, virt_var_lib_t)
216 manage_files_pattern(virtd_t, virt_var_lib_t, virt_var_lib_t)
217 manage_sock_files_pattern(virtd_t, virt_var_lib_t, virt_var_lib_t)
218 files_var_lib_filetrans(virtd_t, virt_var_lib_t, { file dir })
220 manage_dirs_pattern(virtd_t, virt_var_run_t, virt_var_run_t)
221 manage_files_pattern(virtd_t, virt_var_run_t, virt_var_run_t)
222 manage_sock_files_pattern(virtd_t, virt_var_run_t, virt_var_run_t)
223 files_pid_filetrans(virtd_t, virt_var_run_t, { file dir })
225 kernel_read_system_state(virtd_t)
226 kernel_read_network_state(virtd_t)
227 kernel_rw_net_sysctls(virtd_t)
228 kernel_request_load_module(virtd_t)
229 kernel_search_debugfs(virtd_t)
231 corecmd_exec_bin(virtd_t)
232 corecmd_exec_shell(virtd_t)
234 corenet_all_recvfrom_unlabeled(virtd_t)
235 corenet_all_recvfrom_netlabel(virtd_t)
236 corenet_tcp_sendrecv_generic_if(virtd_t)
237 corenet_tcp_sendrecv_generic_node(virtd_t)
238 corenet_tcp_sendrecv_all_ports(virtd_t)
239 corenet_tcp_bind_generic_node(virtd_t)
240 corenet_tcp_bind_virt_port(virtd_t)
241 corenet_tcp_bind_vnc_port(virtd_t)
242 corenet_tcp_connect_vnc_port(virtd_t)
243 corenet_tcp_connect_soundd_port(virtd_t)
244 corenet_rw_tun_tap_dev(virtd_t)
246 dev_rw_sysfs(virtd_t)
247 dev_read_rand(virtd_t)
249 dev_getattr_all_chr_files(virtd_t)
252 # Init script handling
253 domain_use_interactive_fds(virtd_t)
254 domain_read_all_domains_state(virtd_t)
256 files_read_usr_files(virtd_t)
257 files_read_etc_files(virtd_t)
258 files_read_etc_runtime_files(virtd_t)
259 files_search_all(virtd_t)
260 files_read_kernel_modules(virtd_t)
261 files_read_usr_src_files(virtd_t)
262 files_manage_etc_files(virtd_t)
264 fs_list_auto_mountpoints(virtd_t)
265 fs_getattr_xattr_fs(virtd_t)
266 fs_rw_anon_inodefs_files(virtd_t)
267 fs_list_inotifyfs(virtd_t)
268 fs_manage_cgroup_dirs(virtd_t)
269 fs_rw_cgroup_files(virtd_t)
271 mcs_process_set_categories(virtd_t)
273 storage_manage_fixed_disk(virtd_t)
274 storage_relabel_fixed_disk(virtd_t)
275 storage_raw_write_removable_device(virtd_t)
276 storage_raw_read_removable_device(virtd_t)
278 term_getattr_pty_fs(virtd_t)
279 term_use_generic_ptys(virtd_t)
280 term_use_ptmx(virtd_t)
282 auth_use_nsswitch(virtd_t)
284 miscfiles_read_localization(virtd_t)
285 miscfiles_read_certs(virtd_t)
286 miscfiles_read_hwdata(virtd_t)
288 modutils_read_module_deps(virtd_t)
289 modutils_read_module_config(virtd_t)
290 modutils_manage_module_config(virtd_t)
292 logging_send_syslog_msg(virtd_t)
294 seutil_read_default_contexts(virtd_t)
296 sysnet_domtrans_ifconfig(virtd_t)
297 sysnet_read_config(virtd_t)
299 userdom_getattr_all_users(virtd_t)
300 userdom_list_user_home_content(virtd_t)
301 userdom_read_all_users_state(virtd_t)
302 userdom_read_user_home_content_files(virtd_t)
304 tunable_policy(`virt_use_nfs',`
305 fs_manage_nfs_dirs(virtd_t)
306 fs_manage_nfs_files(virtd_t)
307 fs_read_nfs_symlinks(virtd_t)
310 tunable_policy(`virt_use_samba',`
311 fs_manage_nfs_files(virtd_t)
312 fs_manage_cifs_files(virtd_t)
313 fs_read_cifs_symlinks(virtd_t)
317 brctl_domtrans(virtd_t)
321 dbus_system_bus_client(virtd_t)
324 avahi_dbus_chat(virtd_t)
328 consolekit_dbus_chat(virtd_t)
332 hal_dbus_chat(virtd_t)
337 dnsmasq_domtrans(virtd_t)
338 dnsmasq_signal(virtd_t)
339 dnsmasq_kill(virtd_t)
340 dnsmasq_read_pid_files(virtd_t)
341 dnsmasq_signull(virtd_t)
345 iptables_domtrans(virtd_t)
346 iptables_initrc_domtrans(virtd_t)
348 # Manages /etc/sysconfig/system-config-firewall
349 iptables_manage_config(virtd_t)
353 kerberos_keytab_template(virtd, virtd_t)
357 lvm_domtrans(virtd_t)
361 policykit_dbus_chat(virtd_t)
362 policykit_domtrans_auth(virtd_t)
363 policykit_domtrans_resolve(virtd_t)
364 policykit_read_lib(virtd_t)
368 qemu_domtrans(virtd_t)
369 qemu_read_state(virtd_t)
372 qemu_setsched(virtd_t)
376 sasl_connect(virtd_t)
380 kernel_read_xen_state(virtd_t)
381 kernel_write_xen_state(virtd_t)
383 xen_stream_connect(virtd_t)
384 xen_stream_connect_xenstore(virtd_t)
385 xen_read_image_files(virtd_t)
389 udev_domtrans(virtd_t)
390 udev_read_db(virtd_t)
394 unconfined_domain(virtd_t)
397 ########################################
399 # virtual domains common policy
402 allow virt_domain self:capability { dac_read_search dac_override kill };
403 allow virt_domain self:process { execmem execstack signal getsched signull };
404 allow virt_domain self:fifo_file rw_file_perms;
405 allow virt_domain self:shm create_shm_perms;
406 allow virt_domain self:unix_stream_socket create_stream_socket_perms;
407 allow virt_domain self:unix_dgram_socket { create_socket_perms sendto };
408 allow virt_domain self:tcp_socket create_stream_socket_perms;
410 append_files_pattern(virt_domain, virt_log_t, virt_log_t)
412 append_files_pattern(virt_domain, virt_var_lib_t, virt_var_lib_t)
414 kernel_read_system_state(virt_domain)
416 corecmd_exec_bin(virt_domain)
417 corecmd_exec_shell(virt_domain)
419 corenet_all_recvfrom_unlabeled(virt_domain)
420 corenet_all_recvfrom_netlabel(virt_domain)
421 corenet_tcp_sendrecv_generic_if(virt_domain)
422 corenet_tcp_sendrecv_generic_node(virt_domain)
423 corenet_tcp_sendrecv_all_ports(virt_domain)
424 corenet_tcp_bind_generic_node(virt_domain)
425 corenet_tcp_bind_vnc_port(virt_domain)
426 corenet_rw_tun_tap_dev(virt_domain)
427 corenet_tcp_bind_virt_migration_port(virt_domain)
428 corenet_tcp_connect_virt_migration_port(virt_domain)
430 dev_read_rand(virt_domain)
431 dev_read_sound(virt_domain)
432 dev_read_urand(virt_domain)
433 dev_write_sound(virt_domain)
434 dev_rw_ksm(virt_domain)
435 dev_rw_kvm(virt_domain)
436 dev_rw_qemu(virt_domain)
438 domain_use_interactive_fds(virt_domain)
440 files_read_etc_files(virt_domain)
441 files_read_usr_files(virt_domain)
442 files_read_var_files(virt_domain)
443 files_search_all(virt_domain)
445 fs_getattr_tmpfs(virt_domain)
446 fs_rw_anon_inodefs_files(virt_domain)
447 fs_rw_tmpfs_files(virt_domain)
449 term_use_all_terms(virt_domain)
450 term_getattr_pty_fs(virt_domain)
451 term_use_generic_ptys(virt_domain)
452 term_use_ptmx(virt_domain)
454 auth_use_nsswitch(virt_domain)
456 logging_send_syslog_msg(virt_domain)
458 miscfiles_read_localization(virt_domain)
461 ptchown_domtrans(virt_domain)
465 virt_read_config(virt_domain)
466 virt_read_lib_files(virt_domain)
467 virt_read_content(virt_domain)
468 virt_stream_connect(virt_domain)