diff --git a/policy-rawhide-base.patch b/policy-rawhide-base.patch index 0d7ca0b6..8268e423 100644 --- a/policy-rawhide-base.patch +++ b/policy-rawhide-base.patch @@ -18395,10 +18395,10 @@ index 3a45a3e..7499f24 100644 +allow logadm_t self:capability { dac_override dac_read_search kill sys_nice }; logging_admin(logadm_t, logadm_r) diff --git a/policy/modules/roles/secadm.te b/policy/modules/roles/secadm.te -index da11120..d67bcca 100644 +index da11120..621ec5a 100644 --- a/policy/modules/roles/secadm.te +++ b/policy/modules/roles/secadm.te -@@ -7,8 +7,10 @@ policy_module(secadm, 2.4.0) +@@ -7,8 +7,11 @@ policy_module(secadm, 2.4.0) role secadm_r; @@ -18408,10 +18408,24 @@ index da11120..d67bcca 100644 +userdom_security_admin(secadm_t, secadm_r) +userdom_inherit_append_admin_home_files(secadm_t) +userdom_read_admin_home_files(secadm_t) ++userdom_manage_tmp_role(secadm_r, secadm_t) ######################################## # -@@ -30,8 +32,7 @@ mls_file_upgrade(secadm_t) +@@ -17,9 +20,12 @@ userdom_security_admin_template(secadm_t, secadm_r) + + allow secadm_t self:capability { dac_read_search dac_override }; + ++kernel_read_system_state(secadm_t) ++ + corecmd_exec_shell(secadm_t) + + dev_relabel_all_dev_nodes(secadm_t) ++dev_read_urand(secadm_t) + + domain_obj_id_change_exemption(secadm_t) + +@@ -30,8 +36,7 @@ mls_file_upgrade(secadm_t) mls_file_downgrade(secadm_t) auth_role(secadm_r, secadm_t) @@ -20469,7 +20483,7 @@ index 3835596..fbca2be 100644 ######################################## ## diff --git a/policy/modules/roles/unprivuser.te b/policy/modules/roles/unprivuser.te -index 6d77e81..8332fca 100644 +index 6d77e81..c8df034 100644 --- a/policy/modules/roles/unprivuser.te +++ b/policy/modules/roles/unprivuser.te @@ -1,5 +1,12 @@ @@ -20621,22 +20635,15 @@ index 6d77e81..8332fca 100644 optional_policy(` su_role_template(user, user_r, user_t) ') -@@ -153,6 +251,10 @@ ifndef(`distro_redhat',` - userhelper_role_template(user, user_r, user_t) - ') - -+ optional_policy(` -+ vmtools_run_helper(user_t, user_r) -+ ') -+ - optional_policy(` - vmware_role(user_r, user_t) - ') -@@ -161,3 +263,15 @@ ifndef(`distro_redhat',` +@@ -161,3 +259,19 @@ ifndef(`distro_redhat',` wireshark_role(user_r, user_t) ') ') + ++optional_policy(` ++ vmtools_run_helper(user_t, user_r) ++') ++ + +optional_policy(` + virt_transition_svirt(user_t, user_r) @@ -39706,10 +39713,10 @@ index 0000000..8bca1d7 +') diff --git a/policy/modules/system/systemd.te b/policy/modules/system/systemd.te new file mode 100644 -index 0000000..ca13b14 +index 0000000..898464f --- /dev/null +++ b/policy/modules/system/systemd.te -@@ -0,0 +1,680 @@ +@@ -0,0 +1,679 @@ +policy_module(systemd, 1.0.0) + +####################################### @@ -40389,7 +40396,6 @@ index 0000000..ca13b14 + +read_files_pattern(systemd_domain, systemd_home_t, systemd_home_t) +read_lnk_files_pattern(systemd_domain, systemd_home_t, systemd_home_t) -+ diff --git a/policy/modules/system/udev.fc b/policy/modules/system/udev.fc index f41857e..49fd32e 100644 --- a/policy/modules/system/udev.fc @@ -46842,7 +46848,7 @@ index e79d545..101086d 100644 ') diff --git a/policy/support/obj_perm_sets.spt b/policy/support/obj_perm_sets.spt -index 6e91317..64e135a 100644 +index 6e91317..018d0a6 100644 --- a/policy/support/obj_perm_sets.spt +++ b/policy/support/obj_perm_sets.spt @@ -28,8 +28,7 @@ define(`devfile_class_set', `{ chr_file blk_file }') @@ -46952,7 +46958,7 @@ index 6e91317..64e135a 100644 +# +# Service +# -+define(`manage_service_perms', `{ start stop status reload } ') ++define(`manage_service_perms', `{ start stop status reload enable disable } ') diff --git a/policy/users b/policy/users index c4ebc7e..30d6d7a 100644 --- a/policy/users diff --git a/policy-rawhide-contrib.patch b/policy-rawhide-contrib.patch index 3f9cc30a..2c2a5408 100644 --- a/policy-rawhide-contrib.patch +++ b/policy-rawhide-contrib.patch @@ -1,8 +1,8 @@ diff --git a/abrt.fc b/abrt.fc -index 1a93dc5..40dda9e 100644 +index 1a93dc5..2eebc19 100644 --- a/abrt.fc +++ b/abrt.fc -@@ -1,31 +1,41 @@ +@@ -1,31 +1,43 @@ -/etc/abrt(/.*)? gen_context(system_u:object_r:abrt_etc_t,s0) -/etc/rc\.d/init\.d/abrt -- gen_context(system_u:object_r:abrt_initrc_exec_t,s0) +/etc/abrt(/.*)? gen_context(system_u:object_r:abrt_etc_t,s0) @@ -50,12 +50,14 @@ index 1a93dc5..40dda9e 100644 +/var/spool/abrt(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) +/var/spool/abrt-retrace(/.*)? gen_context(system_u:object_r:abrt_retrace_spool_t,s0) +/var/spool/retrace-server(/.*)? gen_context(system_u:object_r:abrt_retrace_spool_t,s0) ++/var/spool/debug(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) ++/var/spool/rhsm/debug(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) -/var/cache/abrt(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) -/var/cache/abrt-di(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) -/var/cache/abrt-retrace(/.*)? gen_context(system_u:object_r:abrt_retrace_cache_t,s0) -/var/cache/retrace-server(/.*)? gen_context(system_u:object_r:abrt_retrace_cache_t,s0) -+/var/tmp/abrt(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) ++/var/tmp/abrt(/.*)? gen_context(system_u:object_r:abrt_var_cache_t,s0) -/var/log/abrt-logger.* -- gen_context(system_u:object_r:abrt_var_log_t,s0) @@ -2377,7 +2379,7 @@ index 14a61b7..21bbf36 100644 +') + diff --git a/anaconda.te b/anaconda.te -index aa44abf..13ba56c 100644 +index aa44abf..ae0e58f 100644 --- a/anaconda.te +++ b/anaconda.te @@ -4,6 +4,10 @@ gen_require(` @@ -2417,7 +2419,7 @@ index aa44abf..13ba56c 100644 optional_policy(` rpm_domtrans(anaconda_t) -@@ -53,3 +66,32 @@ optional_policy(` +@@ -53,3 +66,34 @@ optional_policy(` optional_policy(` unconfined_domain_noaudit(anaconda_t) ') @@ -2429,6 +2431,8 @@ index aa44abf..13ba56c 100644 + +allow install_t self:capability2 mac_admin; + ++systemd_dbus_chat_localed(install_t) ++ +tunable_policy(`deny_ptrace',`',` + domain_ptrace_all_domains(install_t) +') @@ -8600,10 +8604,10 @@ index c3fd7b1..e189593 100644 - -miscfiles_read_localization(bcfg2_t) diff --git a/bind.fc b/bind.fc -index 2b9a3a1..ab80059 100644 +index 2b9a3a1..f755e6b 100644 --- a/bind.fc +++ b/bind.fc -@@ -1,54 +1,74 @@ +@@ -1,54 +1,75 @@ -/etc/rc\.d/init\.d/named -- gen_context(system_u:object_r:named_initrc_exec_t,s0) -/etc/rc\.d/init\.d/unbound -- gen_context(system_u:object_r:named_initrc_exec_t,s0) +/etc/rc\.d/init\.d/named -- gen_context(system_u:object_r:named_initrc_exec_t,s0) @@ -8704,6 +8708,7 @@ index 2b9a3a1..ab80059 100644 -/var/named/chroot/var/named/slaves(/.*)? gen_context(system_u:object_r:named_cache_t,s0) -/var/named/chroot/var/named/data(/.*)? gen_context(system_u:object_r:named_cache_t,s0) +/var/named/chroot/var/run/named.* gen_context(system_u:object_r:named_var_run_t,s0) ++/var/named/chroot/run/named.* gen_context(system_u:object_r:named_var_run_t,s0) +/var/named/chroot/var/tmp(/.*)? gen_context(system_u:object_r:named_cache_t,s0) +/var/named/chroot/var/named(/.*)? gen_context(system_u:object_r:named_zone_t,s0) +/var/named/chroot/var/named/slaves(/.*)? gen_context(system_u:object_r:named_cache_t,s0) @@ -12859,7 +12864,7 @@ index cc4e7cb..f348d27 100644 domain_system_change_exemption($1) role_transition $2 cmirrord_initrc_exec_t system_r; diff --git a/cmirrord.te b/cmirrord.te -index bbdd396..fddf8f4 100644 +index bbdd396..8328b95 100644 --- a/cmirrord.te +++ b/cmirrord.te @@ -23,7 +23,7 @@ files_pid_file(cmirrord_var_run_t) @@ -12871,13 +12876,14 @@ index bbdd396..fddf8f4 100644 dontaudit cmirrord_t self:capability sys_tty_config; allow cmirrord_t self:process { setfscreate signal }; allow cmirrord_t self:fifo_file rw_fifo_file_perms; -@@ -42,16 +42,17 @@ files_pid_filetrans(cmirrord_t, cmirrord_var_run_t, file) +@@ -42,16 +42,18 @@ files_pid_filetrans(cmirrord_t, cmirrord_var_run_t, file) domain_use_interactive_fds(cmirrord_t) domain_obj_id_change_exemption(cmirrord_t) -files_read_etc_files(cmirrord_t) - storage_create_fixed_disk_dev(cmirrord_t) ++storage_raw_read_fixed_disk(cmirrord_t) +storage_rw_inherited_fixed_disk_dev(cmirrord_t) seutil_read_file_contexts(cmirrord_t) @@ -23268,10 +23274,10 @@ index 0000000..fd679a1 +/var/lib/docker/.*/config\.env gen_context(system_u:object_r:docker_share_t,s0) diff --git a/docker.if b/docker.if new file mode 100644 -index 0000000..89401fe +index 0000000..4ca46bc --- /dev/null +++ b/docker.if -@@ -0,0 +1,324 @@ +@@ -0,0 +1,325 @@ + +## The open-source application container engine. + @@ -23387,6 +23393,7 @@ index 0000000..89401fe + + files_search_var_lib($1) + manage_files_pattern($1, docker_var_lib_t, docker_var_lib_t) ++ manage_lnk_files_pattern($1, docker_var_lib_t, docker_var_lib_t) +') + +######################################## @@ -23598,10 +23605,10 @@ index 0000000..89401fe +') diff --git a/docker.te b/docker.te new file mode 100644 -index 0000000..ea0f2d3 +index 0000000..d30d730 --- /dev/null +++ b/docker.te -@@ -0,0 +1,260 @@ +@@ -0,0 +1,263 @@ +policy_module(docker, 1.0.0) + +######################################## @@ -23739,6 +23746,7 @@ index 0000000..ea0f2d3 +files_read_etc_files(docker_t) + +fs_read_cgroup_files(docker_t) ++fs_read_tmpfs_symlinks(docker_t) + +storage_raw_rw_fixed_disk(docker_t) + @@ -23815,6 +23823,7 @@ index 0000000..ea0f2d3 +fs_manage_cgroup_files(docker_t) +fs_relabelfrom_xattr_fs(docker_t) +fs_relabelfrom_tmpfs(docker_t) ++fs_read_tmpfs_symlinks(docker_t) + +term_use_generic_ptys(docker_t) +term_use_ptmx(docker_t) @@ -23825,6 +23834,7 @@ index 0000000..ea0f2d3 +modutils_domtrans_insmod(docker_t) + +userdom_stream_connect(docker_t) ++userdom_search_user_home_content(docker_t) + +optional_policy(` + dbus_system_bus_client(docker_t) @@ -37641,7 +37651,7 @@ index 19777b8..55d1556 100644 + ') +') diff --git a/ktalk.te b/ktalk.te -index c5548c5..bb979b1 100644 +index c5548c5..1356fcb 100644 --- a/ktalk.te +++ b/ktalk.te @@ -13,6 +13,9 @@ inetd_udp_service_domain(ktalkd_t, ktalkd_exec_t) @@ -37654,7 +37664,7 @@ index c5548c5..bb979b1 100644 type ktalkd_tmp_t; files_tmp_file(ktalkd_tmp_t) -@@ -50,12 +53,11 @@ dev_read_urand(ktalkd_t) +@@ -50,7 +53,8 @@ dev_read_urand(ktalkd_t) fs_getattr_xattr_fs(ktalkd_t) @@ -37664,11 +37674,13 @@ index c5548c5..bb979b1 100644 auth_use_nsswitch(ktalkd_t) - init_read_utmp(ktalkd_t) +@@ -58,4 +62,5 @@ init_read_utmp(ktalkd_t) logging_send_syslog_msg(ktalkd_t) -- + -miscfiles_read_localization(ktalkd_t) ++userdom_use_user_ptys(ktalkd_t) ++userdom_use_user_ttys(ktalkd_t) diff --git a/kudzu.if b/kudzu.if index 5297064..6ba8108 100644 --- a/kudzu.if @@ -50545,7 +50557,7 @@ index 86dc29d..1cd0d0e 100644 + logging_log_filetrans($1, NetworkManager_var_lib_t, file, "wpa_supplicant.log") ') diff --git a/networkmanager.te b/networkmanager.te -index 55f2009..bb85ae6 100644 +index 55f2009..ed9adbc 100644 --- a/networkmanager.te +++ b/networkmanager.te @@ -9,15 +9,18 @@ type NetworkManager_t; @@ -50841,7 +50853,7 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -257,11 +299,14 @@ optional_policy(` +@@ -257,15 +299,19 @@ optional_policy(` ') optional_policy(` @@ -50858,7 +50870,12 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -274,10 +319,17 @@ optional_policy(` + netutils_exec_ping(NetworkManager_t) ++ netutils_exec(NetworkManager_t) + ') + + optional_policy(` +@@ -274,10 +320,17 @@ optional_policy(` nscd_signull(NetworkManager_t) nscd_kill(NetworkManager_t) nscd_initrc_domtrans(NetworkManager_t) @@ -50876,7 +50893,7 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -289,6 +341,7 @@ optional_policy(` +@@ -289,6 +342,7 @@ optional_policy(` ') optional_policy(` @@ -50884,7 +50901,7 @@ index 55f2009..bb85ae6 100644 policykit_domtrans_auth(NetworkManager_t) policykit_read_lib(NetworkManager_t) policykit_read_reload(NetworkManager_t) -@@ -296,7 +349,7 @@ optional_policy(` +@@ -296,7 +350,7 @@ optional_policy(` ') optional_policy(` @@ -50893,7 +50910,7 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -307,6 +360,7 @@ optional_policy(` +@@ -307,6 +361,7 @@ optional_policy(` ppp_signal(NetworkManager_t) ppp_signull(NetworkManager_t) ppp_read_config(NetworkManager_t) @@ -50901,7 +50918,7 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -320,14 +374,20 @@ optional_policy(` +@@ -320,14 +375,20 @@ optional_policy(` ') optional_policy(` @@ -50927,7 +50944,7 @@ index 55f2009..bb85ae6 100644 ') optional_policy(` -@@ -357,6 +417,4 @@ rw_sock_files_pattern(wpa_cli_t, NetworkManager_var_run_t, NetworkManager_var_ru +@@ -357,6 +418,4 @@ rw_sock_files_pattern(wpa_cli_t, NetworkManager_var_run_t, NetworkManager_var_ru init_dontaudit_use_fds(wpa_cli_t) init_use_script_ptys(wpa_cli_t) @@ -58967,7 +58984,7 @@ index bf59ef7..0ec51d4 100644 + manage_dirs_pattern($1, passenger_tmp_t, passenger_tmp_t) ') diff --git a/passenger.te b/passenger.te -index 08ec33b..24ce7e8 100644 +index 08ec33b..12f6357 100644 --- a/passenger.te +++ b/passenger.te @@ -14,6 +14,9 @@ role system_r types passenger_t; @@ -59059,7 +59076,7 @@ index 08ec33b..24ce7e8 100644 +') + +optional_policy(` -+ puppet_domtrans_master(passenger_t) ++ puppet_domtrans(passenger_t) + puppet_manage_lib(passenger_t) puppet_read_config(passenger_t) - puppet_append_log_files(passenger_t) @@ -61403,10 +61420,10 @@ index 0000000..798efb6 +') diff --git a/pki.te b/pki.te new file mode 100644 -index 0000000..e8c6156 +index 0000000..b7dfce7 --- /dev/null +++ b/pki.te -@@ -0,0 +1,273 @@ +@@ -0,0 +1,274 @@ +policy_module(pki,10.0.11) + +######################################## @@ -61481,6 +61498,7 @@ index 0000000..e8c6156 +# + +allow pki_tomcat_t self:capability { setuid chown setgid fowner audit_write dac_override sys_nice fsetid}; ++dontaudit pki_tomcat_t self:capability net_admin; +allow pki_tomcat_t self:process { signal setsched signull execmem }; + +allow pki_tomcat_t self:netlink_audit_socket { nlmsg_relay create }; @@ -68776,23 +68794,29 @@ index 6643b49..1d2470f 100644 optional_policy(` diff --git a/puppet.fc b/puppet.fc -index d68e26d..8d566fb 100644 +index d68e26d..98ad443 100644 --- a/puppet.fc +++ b/puppet.fc -@@ -1,7 +1,7 @@ +@@ -1,18 +1,13 @@ -/etc/puppet(/.*)? gen_context(system_u:object_r:puppet_etc_t,s0) +/etc/puppet(/.*)? gen_context(system_u:object_r:puppet_etc_t,s0) - /etc/rc\.d/init\.d/puppet -- gen_context(system_u:object_r:puppet_initrc_exec_t,s0) +-/etc/rc\.d/init\.d/puppet -- gen_context(system_u:object_r:puppet_initrc_exec_t,s0) -/etc/rc\.d/init\.d/puppetmaster -- gen_context(system_u:object_r:puppetmaster_initrc_exec_t,s0) -+/etc/rc\.d/init\.d/puppetmaster -- gen_context(system_u:object_r:puppetmaster_initrc_exec_t,s0) ++/usr/lib/systemd/system/puppet.* -- gen_context(system_u:object_r:puppet_unit_file_t,s0) ++/usr/lib/systemd/system/puppetmaster.* -- gen_context(system_u:object_r:puppet_unit_file_t,s0) /usr/bin/puppetca -- gen_context(system_u:object_r:puppetca_exec_t,s0) - /usr/bin/puppetd -- gen_context(system_u:object_r:puppet_exec_t,s0) -@@ -11,8 +11,6 @@ - /usr/sbin/puppetd -- gen_context(system_u:object_r:puppet_exec_t,s0) - /usr/sbin/puppetmasterd -- gen_context(system_u:object_r:puppetmaster_exec_t,s0) +-/usr/bin/puppetd -- gen_context(system_u:object_r:puppet_exec_t,s0) +-/usr/bin/puppetmasterd -- gen_context(system_u:object_r:puppetmaster_exec_t,s0) ++/usr/bin/puppet -- gen_context(system_u:object_r:puppet_exec_t,s0) ++/usr/bin/start-puppet-agent -- gen_context(system_u:object_r:puppet_exec_t,s0) ++/usr/bin/start-puppet-master -- gen_context(system_u:object_r:puppet_exec_t,s0) +-/usr/sbin/puppetca -- gen_context(system_u:object_r:puppetca_exec_t,s0) +-/usr/sbin/puppetd -- gen_context(system_u:object_r:puppet_exec_t,s0) +-/usr/sbin/puppetmasterd -- gen_context(system_u:object_r:puppetmaster_exec_t,s0) +- -/var/lib/puppet(/.*)? gen_context(system_u:object_r:puppet_var_lib_t,s0) - -/var/log/puppet(/.*)? gen_context(system_u:object_r:puppet_log_t,s0) @@ -68802,10 +68826,10 @@ index d68e26d..8d566fb 100644 +/var/log/puppet(/.*)? gen_context(system_u:object_r:puppet_log_t,s0) +/var/run/puppet(/.*)? gen_context(system_u:object_r:puppet_var_run_t,s0) diff --git a/puppet.if b/puppet.if -index 7cb8b1f..9422c90 100644 +index 7cb8b1f..6357588 100644 --- a/puppet.if +++ b/puppet.if -@@ -1,4 +1,32 @@ +@@ -1,4 +1,50 @@ -## Configuration management system. +## Puppet client daemon +## @@ -68817,29 +68841,47 @@ index 7cb8b1f..9422c90 100644 +##

+##
+ -+######################################## ++####################################### +## -+## Execute puppet_master in the puppet_master -+## domain. ++## Execute puppet_master in the puppet_master ++## domain. +## +## +## -+## Domain allowed to transition. ++## Domain allowed to transition. +## +## +# +interface(`puppet_domtrans_master',` -+ gen_require(` -+ type puppetmaster_t, puppetmaster_exec_t; -+ ') ++ gen_require(` ++ type puppetmaster_t, puppetmaster_exec_t; ++ ') ++ refpolicywarn(`$0($*) has been deprecated.') ++') + -+ corecmd_search_bin($1) -+ domtrans_pattern($1, puppetmaster_exec_t, puppetmaster_t) ++######################################## ++## ++## Execute puppet in the puppet ++## domain. ++## ++## ++## ++## Domain allowed to transition. ++## ++## ++# ++interface(`puppet_domtrans',` ++ gen_require(` ++ type puppet_t, puppet_exec_t; ++ ') ++ ++ corecmd_search_bin($1) ++ domtrans_pattern($1, puppet_exec_t, puppet_t) +') ######################################## ## -@@ -40,16 +68,19 @@ interface(`puppet_domtrans_puppetca',` +@@ -40,16 +86,19 @@ interface(`puppet_domtrans_puppetca',` # interface(`puppet_run_puppetca',` gen_require(` @@ -68863,7 +68905,7 @@ index 7cb8b1f..9422c90 100644 ## ## ## -@@ -57,15 +88,13 @@ interface(`puppet_run_puppetca',` +@@ -57,15 +106,13 @@ interface(`puppet_run_puppetca',` ## ## # @@ -68883,7 +68925,7 @@ index 7cb8b1f..9422c90 100644 ') ################################################ -@@ -78,158 +107,164 @@ interface(`puppet_read_config',` +@@ -78,158 +125,164 @@ interface(`puppet_read_config',` ##
## # @@ -69057,15 +69099,15 @@ index 7cb8b1f..9422c90 100644 -## -## Domain allowed access. -## -+## -+## Domain allowed access. -+## - ## +-## -## -## -## Role allowed access. -## --## ++## ++## Domain allowed access. ++## + ## -## # -interface(`puppet_admin',` @@ -69075,14 +69117,14 @@ index 7cb8b1f..9422c90 100644 - type puppet_var_run_t, puppetmaster_tmp_t; - type puppet_t, puppetca_t, puppetmaster_t; - ') -- -- allow $1 { puppet_t puppetca_t puppetmaster_t }:process { ptrace signal_perms }; -- ps_process_pattern($1, { puppet_t puppetca_t puppetmaster_t }) +interface(`puppet_manage_log',` + gen_require(` + type puppet_log_t; + ') +- allow $1 { puppet_t puppetca_t puppetmaster_t }:process { ptrace signal_perms }; +- ps_process_pattern($1, { puppet_t puppetca_t puppetmaster_t }) +- - init_labeled_script_domtrans($1, { puppet_initrc_exec_t puppetmaster_initrc_exec_t }) - domain_system_change_exemption($1) - role_transition $2 { puppet_initrc_exec_t puppetmaster_initrc_exec_t } system_r; @@ -69143,10 +69185,10 @@ index 7cb8b1f..9422c90 100644 + allow $1 puppet_var_run_t:dir search_dir_perms; ') diff --git a/puppet.te b/puppet.te -index 618dcfe..f81c59f 100644 +index 618dcfe..ca66457 100644 --- a/puppet.te +++ b/puppet.te -@@ -6,15 +6,19 @@ policy_module(puppet, 1.4.0) +@@ -6,25 +6,31 @@ policy_module(puppet, 1.4.0) # ## @@ -69168,11 +69210,25 @@ index 618dcfe..f81c59f 100644 +## Allow Puppet master to use connect to MySQL and PostgreSQL database +##

+##
-+gen_tunable(puppetmaster_use_db, false) ++gen_tunable(puppet_use_db, false) type puppet_t; type puppet_exec_t; -@@ -37,12 +41,11 @@ files_type(puppet_var_lib_t) + init_daemon_domain(puppet_t, puppet_exec_t) + ++typealias puppet_t alias puppetmaster_t; ++ + type puppet_etc_t; + files_config_file(puppet_etc_t) + +-type puppet_initrc_exec_t; +-init_script_file(puppet_initrc_exec_t) ++type puppet_unit_file_t; ++systemd_unit_file(puppet_unit_file_t) + + type puppet_log_t; + logging_log_file(puppet_log_t) +@@ -37,52 +43,37 @@ files_type(puppet_var_lib_t) type puppet_var_run_t; files_pid_file(puppet_var_run_t) @@ -69182,12 +69238,18 @@ index 618dcfe..f81c59f 100644 type puppetca_exec_t; application_domain(puppetca_t, puppetca_exec_t) -role puppetca_roles types puppetca_t; +- +-type puppetmaster_t; +-type puppetmaster_exec_t; +-init_daemon_domain(puppetmaster_t, puppetmaster_exec_t) +- +-type puppetmaster_initrc_exec_t; +-init_script_file(puppetmaster_initrc_exec_t) +- +-type puppetmaster_tmp_t; +-files_tmp_file(puppetmaster_tmp_t) +role system_r types puppetca_t; - type puppetmaster_t; - type puppetmaster_exec_t; -@@ -56,33 +59,29 @@ files_tmp_file(puppetmaster_tmp_t) - ######################################## # -# Local policy @@ -69228,7 +69290,7 @@ index 618dcfe..f81c59f 100644 logging_log_filetrans(puppet_t, puppet_log_t, { file dir }) manage_dirs_pattern(puppet_t, puppet_tmp_t, puppet_tmp_t) -@@ -91,43 +90,37 @@ files_tmp_filetrans(puppet_t, puppet_tmp_t, { file dir }) +@@ -91,43 +82,38 @@ files_tmp_filetrans(puppet_t, puppet_tmp_t, { file dir }) kernel_dontaudit_search_sysctl(puppet_t) kernel_dontaudit_search_kernel_sysctl(puppet_t) @@ -69262,6 +69324,7 @@ index 618dcfe..f81c59f 100644 -domain_interactive_fd(puppet_t) domain_read_all_domains_state(puppet_t) +domain_interactive_fd(puppet_t) ++domain_named_filetrans(puppet_t) files_manage_config_files(puppet_t) files_manage_config_dirs(puppet_t) @@ -69278,7 +69341,7 @@ index 618dcfe..f81c59f 100644 selinux_set_all_booleans(puppet_t) selinux_set_generic_booleans(puppet_t) selinux_validate_context(puppet_t) -@@ -135,6 +128,8 @@ selinux_validate_context(puppet_t) +@@ -135,6 +121,8 @@ selinux_validate_context(puppet_t) term_dontaudit_getattr_unallocated_ttys(puppet_t) term_dontaudit_getattr_all_ttys(puppet_t) @@ -69287,7 +69350,7 @@ index 618dcfe..f81c59f 100644 init_all_labeled_script_domtrans(puppet_t) init_domtrans_script(puppet_t) init_read_utmp(puppet_t) -@@ -143,18 +138,19 @@ init_signull_script(puppet_t) +@@ -143,18 +131,31 @@ init_signull_script(puppet_t) logging_send_syslog_msg(puppet_t) miscfiles_read_hwdata(puppet_t) @@ -69309,86 +69372,31 @@ index 618dcfe..f81c59f 100644 tunable_policy(`puppet_manage_all_files',` - files_manage_non_auth_files(puppet_t) + files_manage_non_security_files(puppet_t) ++') ++ ++optional_policy(` ++ tunable_policy(`puppet_use_db',` ++ mysql_stream_connect(puppet_t) ++ ') ++') ++ ++optional_policy(` ++ tunable_policy(`puppet_use_db',` ++ postgresql_stream_connect(puppet_t) ++ ') ') optional_policy(` -@@ -196,21 +192,86 @@ optional_policy(` +@@ -196,21 +197,19 @@ optional_policy(` ') optional_policy(` - usermanage_domtrans_groupadd(puppet_t) - usermanage_domtrans_useradd(puppet_t) -+ auth_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ alsa_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ bootloader_filetrans_config(puppet_t) -+') -+ -+optional_policy(` -+ devicekit_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ dnsmasq_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ kerberos_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ libs_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ miscfiles_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ mta_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ modules_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ networkmanager_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ nx_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ postfix_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` + openshift_initrc_domtrans(puppet_t) -+') -+ -+optional_policy(` -+ quota_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ sysnet_filetrans_named_content(puppet_t) -+') -+ -+optional_policy(` -+ virt_filetrans_home_content(puppet_t) -+') -+ -+optional_policy(` -+ ssh_filetrans_admin_home_content(puppet_t) ') ++ ######################################## # -# Ca local policy @@ -69405,7 +69413,7 @@ index 618dcfe..f81c59f 100644 allow puppetca_t puppet_var_lib_t:dir list_dir_perms; manage_files_pattern(puppetca_t, puppet_var_lib_t, puppet_var_lib_t) -@@ -221,6 +282,7 @@ allow puppetca_t puppet_log_t:dir search_dir_perms; +@@ -221,6 +220,7 @@ allow puppetca_t puppet_log_t:dir search_dir_perms; allow puppetca_t puppet_var_run_t:dir search_dir_perms; kernel_read_system_state(puppetca_t) @@ -69413,7 +69421,7 @@ index 618dcfe..f81c59f 100644 kernel_read_kernel_sysctls(puppetca_t) corecmd_exec_bin(puppetca_t) -@@ -229,15 +291,12 @@ corecmd_exec_shell(puppetca_t) +@@ -229,15 +229,12 @@ corecmd_exec_shell(puppetca_t) dev_read_urand(puppetca_t) dev_search_sysfs(puppetca_t) @@ -69429,148 +69437,107 @@ index 618dcfe..f81c59f 100644 miscfiles_read_generic_certs(puppetca_t) seutil_read_file_contexts(puppetca_t) -@@ -246,38 +305,47 @@ optional_policy(` +@@ -246,99 +243,7 @@ optional_policy(` hostname_exec(puppetca_t) ') -+optional_policy(` -+ mta_sendmail_access_check(puppetca_t) -+') -+ -+ - ######################################## - # +-######################################## +-# -# Master local policy -+# Pupper master personal policy - # - - allow puppetmaster_t self:capability { dac_read_search dac_override setuid setgid fowner chown fsetid sys_tty_config }; - allow puppetmaster_t self:process { signal_perms getsched setsched }; - allow puppetmaster_t self:fifo_file rw_fifo_file_perms; +-# +- +-allow puppetmaster_t self:capability { dac_read_search dac_override setuid setgid fowner chown fsetid sys_tty_config }; +-allow puppetmaster_t self:process { signal_perms getsched setsched }; +-allow puppetmaster_t self:fifo_file rw_fifo_file_perms; -allow puppetmaster_t self:netlink_route_socket nlmsg_write; -+allow puppetmaster_t self:netlink_route_socket create_netlink_socket_perms; - allow puppetmaster_t self:socket create; +-allow puppetmaster_t self:socket create; -allow puppetmaster_t self:tcp_socket { accept listen }; -+allow puppetmaster_t self:tcp_socket create_stream_socket_perms; -+allow puppetmaster_t self:udp_socket create_socket_perms; - +- -allow puppetmaster_t puppet_etc_t:dir list_dir_perms; -allow puppetmaster_t puppet_etc_t:file read_file_perms; -allow puppetmaster_t puppet_etc_t:lnk_file read_lnk_file_perms; -+list_dirs_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t) -+read_files_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t) - +- -allow puppetmaster_t puppet_log_t:dir setattr_dir_perms; -append_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t) -create_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t) -setattr_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t) -+allow puppetmaster_t puppet_log_t:dir { rw_dir_perms setattr_dir_perms }; -+allow puppetmaster_t puppet_log_t:file { rw_file_perms create_file_perms setattr_file_perms }; - logging_log_filetrans(puppetmaster_t, puppet_log_t, { file dir }) -+allow puppetmaster_t puppet_log_t:file relabel_file_perms; - +-logging_log_filetrans(puppetmaster_t, puppet_log_t, { file dir }) +- -allow puppetmaster_t puppet_var_lib_t:dir { manage_dir_perms relabel_dir_perms }; -allow puppetmaster_t puppet_var_lib_t:file { manage_file_perms relabel_file_perms }; -+manage_dirs_pattern(puppetmaster_t, puppet_var_lib_t, puppet_var_lib_t) -+manage_files_pattern(puppetmaster_t, puppet_var_lib_t, puppet_var_lib_t) -+allow puppetmaster_t puppet_var_lib_t:dir relabel_dir_perms; -+allow puppetmaster_t puppet_var_lib_t:file relabel_file_perms; - +- -allow puppetmaster_t puppet_var_run_t:dir { create_dir_perms setattr_dir_perms relabel_dir_perms }; -allow puppetmaster_t puppet_var_run_t:file manage_file_perms; -+setattr_dirs_pattern(puppetmaster_t, puppet_var_run_t, puppet_var_run_t) -+create_dirs_pattern(puppetmaster_t, puppet_var_run_t, puppet_var_run_t) -+manage_files_pattern(puppetmaster_t, puppet_var_run_t, puppet_var_run_t) - files_pid_filetrans(puppetmaster_t, puppet_var_run_t, { file dir }) -+allow puppetmaster_t puppet_var_run_t:dir relabel_dir_perms; - +-files_pid_filetrans(puppetmaster_t, puppet_var_run_t, { file dir }) +- -allow puppetmaster_t puppetmaster_tmp_t:dir { manage_dir_perms relabel_dir_perms }; -allow puppetmaster_t puppetmaster_tmp_t:file manage_file_perms; -+manage_dirs_pattern(puppetmaster_t, puppetmaster_tmp_t, puppetmaster_tmp_t) -+manage_files_pattern(puppetmaster_t, puppetmaster_tmp_t, puppetmaster_tmp_t) - files_tmp_filetrans(puppetmaster_t, puppetmaster_tmp_t, { file dir }) -+allow puppetmaster_t puppet_tmp_t:dir relabel_dir_perms; - - kernel_dontaudit_search_kernel_sysctl(puppetmaster_t) - kernel_read_network_state(puppetmaster_t) -@@ -289,23 +357,24 @@ corecmd_exec_bin(puppetmaster_t) - corecmd_exec_shell(puppetmaster_t) - - corenet_all_recvfrom_netlabel(puppetmaster_t) +-files_tmp_filetrans(puppetmaster_t, puppetmaster_tmp_t, { file dir }) +- +-kernel_dontaudit_search_kernel_sysctl(puppetmaster_t) +-kernel_read_network_state(puppetmaster_t) +-kernel_read_system_state(puppetmaster_t) +-kernel_read_crypto_sysctls(puppetmaster_t) +-kernel_read_kernel_sysctls(puppetmaster_t) +- +-corecmd_exec_bin(puppetmaster_t) +-corecmd_exec_shell(puppetmaster_t) +- +-corenet_all_recvfrom_netlabel(puppetmaster_t) -corenet_all_recvfrom_unlabeled(puppetmaster_t) - corenet_tcp_sendrecv_generic_if(puppetmaster_t) - corenet_tcp_sendrecv_generic_node(puppetmaster_t) - corenet_tcp_bind_generic_node(puppetmaster_t) +-corenet_tcp_sendrecv_generic_if(puppetmaster_t) +-corenet_tcp_sendrecv_generic_node(puppetmaster_t) +-corenet_tcp_bind_generic_node(puppetmaster_t) - -corenet_sendrecv_puppet_server_packets(puppetmaster_t) - corenet_tcp_bind_puppet_port(puppetmaster_t) +-corenet_tcp_bind_puppet_port(puppetmaster_t) -corenet_tcp_sendrecv_puppet_port(puppetmaster_t) -+corenet_sendrecv_puppet_server_packets(puppetmaster_t) -+corenet_tcp_connect_ntop_port(puppetmaster_t) -+ -+# This needs investigation. Puppermasterd is confirmed to bind udp sockets to random high ports. -+corenet_udp_bind_generic_node(puppetmaster_t) -+corenet_udp_bind_generic_port(puppetmaster_t) - - dev_read_rand(puppetmaster_t) - dev_read_urand(puppetmaster_t) - dev_search_sysfs(puppetmaster_t) - +- +-dev_read_rand(puppetmaster_t) +-dev_read_urand(puppetmaster_t) +-dev_search_sysfs(puppetmaster_t) +- -domain_obj_id_change_exemption(puppetmaster_t) - domain_read_all_domains_state(puppetmaster_t) -+domain_obj_id_change_exemption(puppetmaster_t) - +-domain_read_all_domains_state(puppetmaster_t) +- -files_read_usr_files(puppetmaster_t) - - selinux_validate_context(puppetmaster_t) - -@@ -314,26 +383,31 @@ auth_use_nsswitch(puppetmaster_t) - logging_send_syslog_msg(puppetmaster_t) - - miscfiles_read_generic_certs(puppetmaster_t) +- +-selinux_validate_context(puppetmaster_t) +- +-auth_use_nsswitch(puppetmaster_t) +- +-logging_send_syslog_msg(puppetmaster_t) +- +-miscfiles_read_generic_certs(puppetmaster_t) -miscfiles_read_localization(puppetmaster_t) - - seutil_read_file_contexts(puppetmaster_t) - - sysnet_run_ifconfig(puppetmaster_t, system_r) - -+mta_send_mail(puppetmaster_t) -+ - optional_policy(` +- +-seutil_read_file_contexts(puppetmaster_t) +- +-sysnet_run_ifconfig(puppetmaster_t, system_r) +- +-optional_policy(` - hostname_exec(puppetmaster_t) -+ tunable_policy(`puppetmaster_use_db',` -+ mysql_stream_connect(puppetmaster_t) -+ ') - ') - +-') +- optional_policy(` - mta_send_mail(puppetmaster_t) -+ tunable_policy(`puppetmaster_use_db',` -+ postgresql_stream_connect(puppetmaster_t) -+ ') ++ mta_sendmail_access_check(puppetca_t) ') - optional_policy(` +-optional_policy(` - mysql_stream_connect(puppetmaster_t) -+ systemd_dbus_chat_timedated(puppetmaster_t) - ') - - optional_policy(` +-') +- +-optional_policy(` - postgresql_stream_connect(puppetmaster_t) -+ hostname_exec(puppetmaster_t) - ') - - optional_policy(` -@@ -342,3 +416,9 @@ optional_policy(` - rpm_exec(puppetmaster_t) - rpm_read_db(puppetmaster_t) - ') -+ -+optional_policy(` -+ usermanage_access_check_groupadd(puppetmaster_t) -+ usermanage_access_check_passwd(puppetmaster_t) -+ usermanage_access_check_useradd(puppetmaster_t) -+') +-') +- +-optional_policy(` +- files_read_usr_symlinks(puppetmaster_t) +- +- rpm_exec(puppetmaster_t) +- rpm_read_db(puppetmaster_t) +-') diff --git a/pwauth.fc b/pwauth.fc index 7e7b444..e2f8687 100644 --- a/pwauth.fc @@ -75718,10 +75685,10 @@ index c8a1e16..2d409bf 100644 xen_domtrans_xm(rgmanager_t) ') diff --git a/rhcs.fc b/rhcs.fc -index 47de2d6..a7e8263 100644 +index 47de2d6..5ad36aa 100644 --- a/rhcs.fc +++ b/rhcs.fc -@@ -1,31 +1,86 @@ +@@ -1,31 +1,88 @@ -/etc/rc\.d/init\.d/dlm -- gen_context(system_u:object_r:dlm_controld_initrc_exec_t,s0) -/etc/rc\.d/init\.d/foghorn -- gen_context(system_u:object_r:foghorn_initrc_exec_t,s0) +/usr/sbin/dlm_controld -- gen_context(system_u:object_r:dlm_controld_exec_t,s0) @@ -75780,6 +75747,8 @@ index 47de2d6..a7e8263 100644 +/var/run/gfs_controld\.pid -- gen_context(system_u:object_r:gfs_controld_var_run_t,s0) +/var/run/groupd\.pid -- gen_context(system_u:object_r:groupd_var_run_t,s0) +/var/run/haproxy\.pid -- gen_context(system_u:object_r:haproxy_var_run_t,s0) ++/var/run/haproxy\.stat.* -- gen_context(system_u:object_r:haproxy_var_run_t,s0) ++/var/run/haproxy\.sock.* -- gen_context(system_u:object_r:haproxy_var_run_t,s0) +/var/run/qdiskd\.pid -- gen_context(system_u:object_r:qdiskd_var_run_t,s0) + +# cluster administrative domains file spec @@ -76594,7 +76563,7 @@ index c8bdea2..1337d42 100644 + allow $1 cluster_unit_file_t:service all_service_perms; ') diff --git a/rhcs.te b/rhcs.te -index 6cf79c4..8980ac4 100644 +index 6cf79c4..ec50831 100644 --- a/rhcs.te +++ b/rhcs.te @@ -20,6 +20,35 @@ gen_tunable(fenced_can_network_connect, false) @@ -77078,7 +77047,7 @@ index 6cf79c4..8980ac4 100644 optional_policy(` lvm_exec(gfs_controld_t) dev_rw_lvm_control(gfs_controld_t) -@@ -275,10 +580,50 @@ domtrans_pattern(groupd_t, fenced_exec_t, fenced_t) +@@ -275,10 +580,53 @@ domtrans_pattern(groupd_t, fenced_exec_t, fenced_t) dev_list_sysfs(groupd_t) @@ -77094,13 +77063,14 @@ index 6cf79c4..8980ac4 100644 +# + +# bug in haproxy and process vs pid owner -+allow haproxy_t self:capability dac_override; ++allow haproxy_t self:capability { dac_override kill }; + +allow haproxy_t self:capability { chown setgid setuid sys_chroot sys_resource }; +allow haproxy_t self:process { fork setrlimit signal_perms }; +allow haproxy_t self:fifo_file rw_fifo_file_perms; +allow haproxy_t self:unix_stream_socket create_stream_socket_perms; -+allow haproxy_t self:tcp_socket { accept listen }; ++allow haproxy_t self:tcp_socket create_stream_socket_perms; ++allow haproxy_t self: udp_socket create_socket_perms; + +manage_dirs_pattern(haproxy_t, haproxy_var_lib_t, haproxy_var_lib_t) +manage_files_pattern(haproxy_t, haproxy_var_lib_t, haproxy_var_lib_t) @@ -77108,6 +77078,8 @@ index 6cf79c4..8980ac4 100644 +manage_sock_files_pattern(haproxy_t, haproxy_var_lib_t, haproxy_var_lib_t) +files_var_lib_filetrans(haproxy_t, haproxy_var_lib_t, { dir file lnk_file }) + ++corenet_sendrecv_unlabeled_packets(haproxy_t) ++ +corenet_tcp_connect_commplex_link_port(haproxy_t) +corenet_tcp_connect_commplex_main_port(haproxy_t) +corenet_tcp_bind_commplex_main_port(haproxy_t) @@ -77131,7 +77103,7 @@ index 6cf79c4..8980ac4 100644 ###################################### # # qdiskd local policy -@@ -321,6 +666,8 @@ storage_raw_write_fixed_disk(qdiskd_t) +@@ -321,6 +669,8 @@ storage_raw_write_fixed_disk(qdiskd_t) auth_use_nsswitch(qdiskd_t) @@ -81809,10 +81781,10 @@ index 0000000..0ec3302 +') diff --git a/rtas.te b/rtas.te new file mode 100644 -index 0000000..52a39f8 +index 0000000..9a5164c --- /dev/null +++ b/rtas.te -@@ -0,0 +1,62 @@ +@@ -0,0 +1,95 @@ +policy_module(rtas, 1.0.0) + +######################################## @@ -81836,13 +81808,19 @@ index 0000000..52a39f8 +type rtas_errd_unit_file_t; +systemd_unit_file(rtas_errd_unit_file_t) + ++type rtas_errd_tmp_t; ++files_tmp_file(rtas_errd_tmp_t) ++ ++type rtas_errd_tmpfs_t; ++files_tmpfs_file(rtas_errd_tmpfs_t) ++ +######################################## +# +# rtas_errd local policy +# + -+allow rtas_errd_t self:capability { chown sys_admin }; -+allow rtas_errd_t self:process fork; ++allow rtas_errd_t self:capability { net_admin chown sys_admin }; ++allow rtas_errd_t self:process { fork signull }; +allow rtas_errd_t self:fifo_file rw_fifo_file_perms; +allow rtas_errd_t self:unix_stream_socket create_stream_socket_perms; + @@ -81860,7 +81838,19 @@ index 0000000..52a39f8 +manage_lnk_files_pattern(rtas_errd_t, rtas_errd_var_run_t, rtas_errd_var_run_t) +files_pid_filetrans(rtas_errd_t, rtas_errd_var_run_t, { dir file lnk_file }) + ++manage_files_pattern(rtas_errd_t, rtas_errd_tmp_t, rtas_errd_tmp_t) ++manage_dirs_pattern(rtas_errd_t, rtas_errd_tmp_t, rtas_errd_tmp_t) ++files_tmp_filetrans(rtas_errd_t, rtas_errd_tmp_t, { file dir }) ++ ++manage_files_pattern(rtas_errd_t, rtas_errd_tmpfs_t, rtas_errd_tmpfs_t) ++manage_dirs_pattern(rtas_errd_t, rtas_errd_tmpfs_t, rtas_errd_tmpfs_t) ++fs_tmpfs_filetrans(rtas_errd_t, rtas_errd_tmpfs_t, { file dir }) ++ ++kernel_read_all_sysctls(rtas_errd_t) +kernel_read_system_state(rtas_errd_t) ++kernel_read_network_state(rtas_errd_t) ++ ++domain_read_all_domains_state(rtas_errd_t) + +auth_use_nsswitch(rtas_errd_t) + @@ -81870,11 +81860,26 @@ index 0000000..52a39f8 +dev_read_urand(rtas_errd_t) +dev_read_raw_memory(rtas_errd_t) +dev_write_raw_memory(rtas_errd_t) ++dev_read_sysfs(rtas_errd_t) ++dev_rw_nvram(rtas_errd_t) + +files_manage_system_db_files(rtas_errd_t) + ++logging_send_syslog_msg(rtas_errd_t) +logging_read_generic_logs(rtas_errd_t) + ++optional_policy(` ++ hostname_exec(rtas_errd_t) ++') ++ ++optional_policy(` ++ rpm_exec(rtas_errd_t) ++ rpm_dontaudit_manage_db(rtas_errd_t) ++') ++ ++optional_policy(` ++ unconfined_domain(rtas_errd_t) ++') diff --git a/rtkit.if b/rtkit.if index e904ec4..e0dd20e 100644 --- a/rtkit.if @@ -85849,7 +85854,7 @@ index 98c9e0a..d4aa009 100644 files_search_pids($1) admin_pattern($1, sblim_var_run_t) diff --git a/sblim.te b/sblim.te -index 299756b..453eb03 100644 +index 299756b..4c33d02 100644 --- a/sblim.te +++ b/sblim.te @@ -7,13 +7,11 @@ policy_module(sblim, 1.1.0) @@ -85982,7 +85987,7 @@ index 299756b..453eb03 100644 + +auth_use_nsswitch(sblim_sfcbd_t) + -+corenet_tcp_bind_pegasus_https_port(sblim_sfcbd_t) ++corenet_tcp_bind_pegasus_http_port(sblim_sfcbd_t) +corenet_tcp_connect_pegasus_http_port(sblim_sfcbd_t) + +dev_read_rand(sblim_sfcbd_t) @@ -89158,7 +89163,7 @@ index 7a9cc9d..86cbca9 100644 init_labeled_script_domtrans($1, snmpd_initrc_exec_t) domain_system_change_exemption($1) diff --git a/snmp.te b/snmp.te -index 9dcaeb8..2537e6c 100644 +index 9dcaeb8..490a046 100644 --- a/snmp.te +++ b/snmp.te @@ -27,14 +27,16 @@ files_type(snmpd_var_lib_t) @@ -89214,7 +89219,14 @@ index 9dcaeb8..2537e6c 100644 files_read_etc_runtime_files(snmpd_t) files_search_home(snmpd_t) -@@ -112,10 +112,12 @@ auth_use_nsswitch(snmpd_t) +@@ -107,15 +107,19 @@ fs_search_auto_mountpoints(snmpd_t) + storage_dontaudit_read_fixed_disk(snmpd_t) + storage_dontaudit_read_removable_device(snmpd_t) + storage_dontaudit_write_removable_device(snmpd_t) ++storage_getattr_fixed_disk_dev(snmpd_t) ++storage_getattr_removable_dev(snmpd_t) + + auth_use_nsswitch(snmpd_t) init_read_utmp(snmpd_t) init_dontaudit_write_utmp(snmpd_t) @@ -89228,7 +89240,7 @@ index 9dcaeb8..2537e6c 100644 seutil_dontaudit_search_config(snmpd_t) -@@ -131,7 +133,11 @@ optional_policy(` +@@ -131,7 +135,11 @@ optional_policy(` ') optional_policy(` @@ -89241,7 +89253,7 @@ index 9dcaeb8..2537e6c 100644 ') optional_policy(` -@@ -140,6 +146,7 @@ optional_policy(` +@@ -140,6 +148,7 @@ optional_policy(` optional_policy(` mta_read_config(snmpd_t) @@ -97878,7 +97890,7 @@ index a4f20bc..6351bcb 100644 +/var/log/qemu-ga\.log.* -- gen_context(system_u:object_r:virt_qemu_ga_log_t,s0) +/var/log/qemu-ga(/.*)? gen_context(system_u:object_r:virt_qemu_ga_log_t,s0) diff --git a/virt.if b/virt.if -index facdee8..f2c0191 100644 +index facdee8..88dcafb 100644 --- a/virt.if +++ b/virt.if @@ -1,120 +1,51 @@ @@ -99400,7 +99412,7 @@ index facdee8..f2c0191 100644 ## ## ## -@@ -1053,37 +1102,131 @@ interface(`virt_rw_all_image_chr_files',` +@@ -1053,37 +1102,133 @@ interface(`virt_rw_all_image_chr_files',` ## ## # @@ -99424,7 +99436,7 @@ index facdee8..f2c0191 100644 ## -## +## - ## ++## +## Prefix for the domain. +## +## @@ -99441,6 +99453,8 @@ index facdee8..f2c0191 100644 + mcs_constrained($1_t) + role system_r types $1_t; + ++ logging_send_syslog_msg($1_t) ++ + kernel_read_system_state($1_t) +') + @@ -99449,7 +99463,7 @@ index facdee8..f2c0191 100644 +## Make the specified type usable as a lxc domain +## +## -+## + ## +## Type to be used as a lxc domain +## +## @@ -99546,7 +99560,7 @@ index facdee8..f2c0191 100644 ## ## ## -@@ -1091,36 +1234,54 @@ interface(`virt_manage_virt_cache',` +@@ -1091,36 +1236,54 @@ interface(`virt_manage_virt_cache',` ## ## # @@ -99620,7 +99634,7 @@ index facdee8..f2c0191 100644 ## ## ## -@@ -1136,50 +1297,36 @@ interface(`virt_manage_images',` +@@ -1136,50 +1299,36 @@ interface(`virt_manage_images',` # interface(`virt_admin',` gen_require(` @@ -99693,10 +99707,10 @@ index facdee8..f2c0191 100644 + virt_stream_connect($1) ') diff --git a/virt.te b/virt.te -index f03dcf5..fb96958 100644 +index f03dcf5..fe84861 100644 --- a/virt.te +++ b/virt.te -@@ -1,150 +1,197 @@ +@@ -1,150 +1,212 @@ -policy_module(virt, 1.7.4) +policy_module(virt, 1.5.0) @@ -99834,23 +99848,37 @@ index f03dcf5..fb96958 100644 -attribute virt_image_type; -attribute virt_tmp_type; -attribute virt_tmpfs_type; -- --attribute svirt_lxc_domain; +## +##

+## Allow confined virtual guests to use usb devices +##

+##
+gen_tunable(virt_use_usb, true) ++ ++## ++##

++## Allow sandbox containers to manage nfs files ++##

++##
++gen_tunable(virt_sandbox_use_nfs, false) ++ ++## ++##

++## Allow sandbox containers to manage samba/cifs files ++##

++##
++gen_tunable(virt_sandbox_use_samba, false) --attribute_role virt_domain_roles; --roleattribute system_r virt_domain_roles; +-attribute svirt_lxc_domain; +## +##

+## Allow sandbox containers to send audit messages + +-attribute_role virt_domain_roles; +-roleattribute system_r virt_domain_roles; +##

+##
-+gen_tunable(virt_sandbox_use_audit, false) ++gen_tunable(virt_sandbox_use_audit, true) -attribute_role virt_bridgehelper_roles; -roleattribute system_r virt_bridgehelper_roles; @@ -99877,10 +99905,10 @@ index f03dcf5..fb96958 100644 + +virt_domain_template(svirt_tcg) +role system_r types svirt_tcg_t; -+ -+type qemu_exec_t, virt_file_type; -type virt_cache_t alias svirt_cache_t; ++type qemu_exec_t, virt_file_type; ++ +type virt_cache_t alias svirt_cache_t, virt_file_type; files_type(virt_cache_t) @@ -99965,7 +99993,7 @@ index f03dcf5..fb96958 100644 ifdef(`enable_mcs',` init_ranged_daemon_domain(virtd_t, virtd_exec_t, s0 - mcs_systemhigh) ') -@@ -153,299 +200,132 @@ ifdef(`enable_mls',` +@@ -153,299 +215,132 @@ ifdef(`enable_mls',` init_ranged_daemon_domain(virtd_t, virtd_exec_t, s0 - mls_systemhigh) ') @@ -100228,16 +100256,16 @@ index f03dcf5..fb96958 100644 -manage_sock_files_pattern(svirt_t, svirt_home_t, svirt_home_t) - -filetrans_pattern(svirt_t, virt_home_t, svirt_home_t, dir, "qemu") -- ++# it was a part of auth_use_nsswitch ++allow svirt_t self:netlink_route_socket r_netlink_socket_perms; + -stream_connect_pattern(svirt_t, svirt_home_t, svirt_home_t, virtd_t) - -corenet_udp_sendrecv_generic_if(svirt_t) -corenet_udp_sendrecv_generic_node(svirt_t) -corenet_udp_sendrecv_all_ports(svirt_t) -corenet_udp_bind_generic_node(svirt_t) -+# it was a part of auth_use_nsswitch -+allow svirt_t self:netlink_route_socket r_netlink_socket_perms; - +- -corenet_all_recvfrom_unlabeled(svirt_t) -corenet_all_recvfrom_netlabel(svirt_t) -corenet_tcp_sendrecv_generic_if(svirt_t) @@ -100340,7 +100368,7 @@ index f03dcf5..fb96958 100644 read_files_pattern(virtd_t, virt_etc_t, virt_etc_t) read_lnk_files_pattern(virtd_t, virt_etc_t, virt_etc_t) -@@ -455,42 +335,29 @@ manage_files_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t) +@@ -455,42 +350,29 @@ manage_files_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t) manage_lnk_files_pattern(virtd_t, virt_etc_rw_t, virt_etc_rw_t) filetrans_pattern(virtd_t, virt_etc_t, virt_etc_rw_t, dir) @@ -100387,7 +100415,7 @@ index f03dcf5..fb96958 100644 logging_log_filetrans(virtd_t, virt_log_t, { file dir }) manage_dirs_pattern(virtd_t, virt_var_lib_t, virt_var_lib_t) -@@ -503,23 +370,20 @@ manage_files_pattern(virtd_t, virt_var_run_t, virt_var_run_t) +@@ -503,23 +385,20 @@ manage_files_pattern(virtd_t, virt_var_run_t, virt_var_run_t) manage_sock_files_pattern(virtd_t, virt_var_run_t, virt_var_run_t) files_pid_filetrans(virtd_t, virt_var_run_t, { file dir }) @@ -100418,7 +100446,7 @@ index f03dcf5..fb96958 100644 corecmd_exec_bin(virtd_t) corecmd_exec_shell(virtd_t) -@@ -527,24 +391,16 @@ corecmd_exec_shell(virtd_t) +@@ -527,24 +406,16 @@ corecmd_exec_shell(virtd_t) corenet_all_recvfrom_netlabel(virtd_t) corenet_tcp_sendrecv_generic_if(virtd_t) corenet_tcp_sendrecv_generic_node(virtd_t) @@ -100446,7 +100474,7 @@ index f03dcf5..fb96958 100644 dev_rw_sysfs(virtd_t) dev_read_urand(virtd_t) dev_read_rand(virtd_t) -@@ -555,22 +411,27 @@ dev_rw_vhost(virtd_t) +@@ -555,22 +426,27 @@ dev_rw_vhost(virtd_t) dev_setattr_generic_usb_dev(virtd_t) dev_relabel_generic_usb_dev(virtd_t) @@ -100479,7 +100507,7 @@ index f03dcf5..fb96958 100644 fs_rw_anon_inodefs_files(virtd_t) fs_list_inotifyfs(virtd_t) fs_manage_cgroup_dirs(virtd_t) -@@ -601,15 +462,18 @@ term_use_ptmx(virtd_t) +@@ -601,15 +477,18 @@ term_use_ptmx(virtd_t) auth_use_nsswitch(virtd_t) @@ -100499,7 +100527,7 @@ index f03dcf5..fb96958 100644 selinux_validate_context(virtd_t) -@@ -620,18 +484,26 @@ seutil_read_file_contexts(virtd_t) +@@ -620,18 +499,26 @@ seutil_read_file_contexts(virtd_t) sysnet_signull_ifconfig(virtd_t) sysnet_signal_ifconfig(virtd_t) sysnet_domtrans_ifconfig(virtd_t) @@ -100536,7 +100564,7 @@ index f03dcf5..fb96958 100644 tunable_policy(`virt_use_nfs',` fs_manage_nfs_dirs(virtd_t) -@@ -640,7 +512,7 @@ tunable_policy(`virt_use_nfs',` +@@ -640,7 +527,7 @@ tunable_policy(`virt_use_nfs',` ') tunable_policy(`virt_use_samba',` @@ -100545,7 +100573,7 @@ index f03dcf5..fb96958 100644 fs_manage_cifs_files(virtd_t) fs_read_cifs_symlinks(virtd_t) ') -@@ -665,20 +537,12 @@ optional_policy(` +@@ -665,20 +552,12 @@ optional_policy(` ') optional_policy(` @@ -100566,7 +100594,7 @@ index f03dcf5..fb96958 100644 ') optional_policy(` -@@ -691,20 +555,26 @@ optional_policy(` +@@ -691,20 +570,26 @@ optional_policy(` dnsmasq_kill(virtd_t) dnsmasq_signull(virtd_t) dnsmasq_create_pid_dirs(virtd_t) @@ -100597,7 +100625,7 @@ index f03dcf5..fb96958 100644 ') optional_policy(` -@@ -712,11 +582,13 @@ optional_policy(` +@@ -712,11 +597,13 @@ optional_policy(` ') optional_policy(` @@ -100611,7 +100639,7 @@ index f03dcf5..fb96958 100644 policykit_domtrans_auth(virtd_t) policykit_domtrans_resolve(virtd_t) policykit_read_lib(virtd_t) -@@ -727,10 +599,18 @@ optional_policy(` +@@ -727,10 +614,18 @@ optional_policy(` ') optional_policy(` @@ -100630,7 +100658,7 @@ index f03dcf5..fb96958 100644 kernel_read_xen_state(virtd_t) kernel_write_xen_state(virtd_t) -@@ -746,44 +626,277 @@ optional_policy(` +@@ -746,44 +641,277 @@ optional_policy(` udev_read_pid_files(virtd_t) ') @@ -100658,23 +100686,18 @@ index f03dcf5..fb96958 100644 -allow virsh_t self:fifo_file rw_fifo_file_perms; -allow virsh_t self:unix_stream_socket { accept connectto listen }; -allow virsh_t self:tcp_socket { accept listen }; +- +-manage_files_pattern(virsh_t, virt_image_type, virt_image_type) +-manage_blk_files_pattern(virsh_t, virt_image_type, virt_image_type) +-manage_lnk_files_pattern(virsh_t, virt_image_type, virt_image_type) +list_dirs_pattern(virt_domain, virt_content_t, virt_content_t) +read_files_pattern(virt_domain, virt_content_t, virt_content_t) +dontaudit virt_domain virt_content_t:file write_file_perms; +dontaudit virt_domain virt_content_t:dir write; - --manage_files_pattern(virsh_t, virt_image_type, virt_image_type) --manage_blk_files_pattern(virsh_t, virt_image_type, virt_image_type) --manage_lnk_files_pattern(virsh_t, virt_image_type, virt_image_type) ++ +kernel_read_net_sysctls(virt_domain) +kernel_read_network_state(virt_domain) - --manage_dirs_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) --manage_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) --manage_chr_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) --manage_lnk_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) --manage_sock_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) --manage_fifo_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) ++ +userdom_search_user_home_content(virt_domain) +userdom_read_user_home_content_symlinks(virt_domain) +userdom_read_all_users_state(virt_domain) @@ -100684,15 +100707,17 @@ index f03dcf5..fb96958 100644 +manage_sock_files_pattern(virt_domain, svirt_home_t, svirt_home_t) +filetrans_pattern(virt_domain, virt_home_t, svirt_home_t, { dir sock_file file }) +stream_connect_pattern(virt_domain, svirt_home_t, svirt_home_t, virtd_t) - --manage_dirs_pattern(virsh_t, virtd_lxc_var_run_t, virtd_lxc_var_run_t) --manage_files_pattern(virsh_t, virtd_lxc_var_run_t, virtd_lxc_var_run_t) --filetrans_pattern(virsh_t, virt_var_run_t, virtd_lxc_var_run_t, dir, "lxc") ++ +manage_dirs_pattern(virt_domain, virt_cache_t, virt_cache_t) +manage_files_pattern(virt_domain, virt_cache_t, virt_cache_t) +files_var_filetrans(virt_domain, virt_cache_t, { file dir }) --dontaudit virsh_t virt_var_lib_t:file read_file_perms; +-manage_dirs_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +-manage_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +-manage_chr_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +-manage_lnk_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +-manage_sock_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +-manage_fifo_files_pattern(virsh_t, svirt_lxc_file_t, svirt_lxc_file_t) +read_lnk_files_pattern(virt_domain, virt_image_t, virt_image_t) + +manage_dirs_pattern(virt_domain, svirt_image_t, svirt_image_t) @@ -100724,14 +100749,18 @@ index f03dcf5..fb96958 100644 + +dontaudit virtd_t virt_domain:process { siginh noatsecure rlimitinh }; --allow virsh_t svirt_lxc_domain:process transition; +-manage_dirs_pattern(virsh_t, virtd_lxc_var_run_t, virtd_lxc_var_run_t) +-manage_files_pattern(virsh_t, virtd_lxc_var_run_t, virtd_lxc_var_run_t) +-filetrans_pattern(virsh_t, virt_var_run_t, virtd_lxc_var_run_t, dir, "lxc") +dontaudit virt_domain virt_tmpfs_type:file { read write }; --can_exec(virsh_t, virsh_exec_t) +-dontaudit virsh_t virt_var_lib_t:file read_file_perms; +append_files_pattern(virt_domain, virt_log_t, virt_log_t) -+ + +-allow virsh_t svirt_lxc_domain:process transition; +append_files_pattern(virt_domain, virt_var_lib_t, virt_var_lib_t) -+ + +-can_exec(virsh_t, virsh_exec_t) +corecmd_exec_bin(virt_domain) +corecmd_exec_shell(virt_domain) + @@ -100763,7 +100792,7 @@ index f03dcf5..fb96958 100644 +files_read_mnt_symlinks(virt_domain) +files_read_var_files(virt_domain) +files_search_all(virt_domain) -+ + +fs_getattr_xattr_fs(virt_domain) +fs_getattr_tmpfs(virt_domain) +fs_rw_anon_inodefs_files(virt_domain) @@ -100772,7 +100801,7 @@ index f03dcf5..fb96958 100644 +fs_rw_inherited_nfs_files(virt_domain) +fs_rw_inherited_cifs_files(virt_domain) +fs_rw_inherited_noxattr_fs_files(virt_domain) - ++ +# I think we need these for now. +miscfiles_read_public_files(virt_domain) +miscfiles_read_generic_certs(virt_domain) @@ -100930,7 +100959,7 @@ index f03dcf5..fb96958 100644 kernel_read_system_state(virsh_t) kernel_read_network_state(virsh_t) kernel_read_kernel_sysctls(virsh_t) -@@ -794,25 +907,18 @@ kernel_write_xen_state(virsh_t) +@@ -794,25 +922,18 @@ kernel_write_xen_state(virsh_t) corecmd_exec_bin(virsh_t) corecmd_exec_shell(virsh_t) @@ -100957,7 +100986,7 @@ index f03dcf5..fb96958 100644 fs_getattr_all_fs(virsh_t) fs_manage_xenfs_dirs(virsh_t) -@@ -821,23 +927,25 @@ fs_search_auto_mountpoints(virsh_t) +@@ -821,23 +942,25 @@ fs_search_auto_mountpoints(virsh_t) storage_raw_read_fixed_disk(virsh_t) @@ -100991,7 +101020,7 @@ index f03dcf5..fb96958 100644 tunable_policy(`virt_use_nfs',` fs_manage_nfs_dirs(virsh_t) -@@ -856,14 +964,20 @@ optional_policy(` +@@ -856,14 +979,20 @@ optional_policy(` ') optional_policy(` @@ -101013,7 +101042,7 @@ index f03dcf5..fb96958 100644 xen_stream_connect(virsh_t) xen_stream_connect_xenstore(virsh_t) ') -@@ -888,49 +1002,65 @@ optional_policy(` +@@ -888,49 +1017,65 @@ optional_policy(` kernel_read_xen_state(virsh_ssh_t) kernel_write_xen_state(virsh_ssh_t) @@ -101097,7 +101126,7 @@ index f03dcf5..fb96958 100644 corecmd_exec_bin(virtd_lxc_t) corecmd_exec_shell(virtd_lxc_t) -@@ -942,17 +1072,16 @@ dev_read_urand(virtd_lxc_t) +@@ -942,17 +1087,16 @@ dev_read_urand(virtd_lxc_t) domain_use_interactive_fds(virtd_lxc_t) @@ -101117,7 +101146,7 @@ index f03dcf5..fb96958 100644 fs_getattr_all_fs(virtd_lxc_t) fs_manage_tmpfs_dirs(virtd_lxc_t) fs_manage_tmpfs_chr_files(virtd_lxc_t) -@@ -964,8 +1093,23 @@ fs_rw_cgroup_files(virtd_lxc_t) +@@ -964,8 +1108,23 @@ fs_rw_cgroup_files(virtd_lxc_t) fs_unmount_all_fs(virtd_lxc_t) fs_relabelfrom_tmpfs(virtd_lxc_t) @@ -101141,7 +101170,7 @@ index f03dcf5..fb96958 100644 selinux_get_enforce_mode(virtd_lxc_t) selinux_get_fs_mount(virtd_lxc_t) selinux_validate_context(virtd_lxc_t) -@@ -974,194 +1118,275 @@ selinux_compute_create_context(virtd_lxc_t) +@@ -974,194 +1133,297 @@ selinux_compute_create_context(virtd_lxc_t) selinux_compute_relabel_context(virtd_lxc_t) selinux_compute_user_contexts(virtd_lxc_t) @@ -101199,6 +101228,10 @@ index f03dcf5..fb96958 100644 +allow svirt_sandbox_domain self:unix_dgram_socket { sendto create_socket_perms }; +allow svirt_sandbox_domain self:passwd rootok; + ++tunable_policy(`deny_ptrace',`',` ++ allow svirt_sandbox_domain self:process ptrace; ++') ++ +allow virtd_t svirt_sandbox_domain:unix_stream_socket { create_stream_socket_perms connectto }; +allow virtd_t svirt_sandbox_domain:process { signal_perms getattr }; +allow virtd_lxc_t svirt_sandbox_domain:process { getattr getsched setsched setrlimit transition signal_perms }; @@ -101272,21 +101305,6 @@ index f03dcf5..fb96958 100644 +userdom_use_inherited_user_terminals(svirt_sandbox_domain) +userdom_dontaudit_append_inherited_admin_home_file(svirt_sandbox_domain) +userdom_dontaudit_read_inherited_admin_home_files(svirt_sandbox_domain) -+ -+optional_policy(` -+ apache_exec_modules(svirt_sandbox_domain) -+ apache_read_sys_content(svirt_sandbox_domain) -+') -+ -+optional_policy(` -+ docker_read_share_files(svirt_sandbox_domain) -+ docker_lib_filetrans(svirt_sandbox_domain,svirt_sandbox_file_t, sock_file) -+ docker_use_ptys(svirt_sandbox_domain) -+') -+ -+optional_policy(` -+ mta_dontaudit_read_spool_symlinks(svirt_sandbox_domain) -+') -allow svirt_lxc_domain self:capability { kill setuid setgid dac_override sys_boot }; -allow svirt_lxc_domain self:process { execstack execmem getattr signal_perms getsched setsched setcap setpgid }; @@ -101371,6 +101389,23 @@ index f03dcf5..fb96958 100644 - -mta_dontaudit_read_spool_symlinks(svirt_lxc_domain) +optional_policy(` ++ apache_exec_modules(svirt_sandbox_domain) ++ apache_read_sys_content(svirt_sandbox_domain) ++') ++ ++optional_policy(` ++ docker_manage_lib_files(svirt_lxc_net_t) ++ docker_manage_lib_dirs(svirt_lxc_net_t) ++ docker_read_share_files(svirt_sandbox_domain) ++ docker_lib_filetrans(svirt_sandbox_domain,svirt_sandbox_file_t, sock_file) ++ docker_use_ptys(svirt_sandbox_domain) ++') ++ ++optional_policy(` ++ mta_dontaudit_read_spool_symlinks(svirt_sandbox_domain) ++') ++ ++optional_policy(` + ssh_use_ptys(svirt_sandbox_domain) +') @@ -101383,6 +101418,18 @@ index f03dcf5..fb96958 100644 - apache_exec_modules(svirt_lxc_domain) - apache_read_sys_content(svirt_lxc_domain) + userhelper_dontaudit_write_config(svirt_sandbox_domain) ++') ++ ++tunable_policy(`virt_use_nfs',` ++ fs_manage_nfs_dirs(svirt_sandbox_domain) ++ fs_manage_nfs_files(svirt_sandbox_domain) ++ fs_read_nfs_symlinks(svirt_sandbox_domain) ++') ++ ++tunable_policy(`virt_use_samba',` ++ fs_manage_nfs_files(svirt_sandbox_domain) ++ fs_manage_cifs_files(svirt_sandbox_domain) ++ fs_read_cifs_symlinks(svirt_sandbox_domain) ') ######################################## @@ -101409,10 +101456,6 @@ index f03dcf5..fb96958 100644 -kernel_read_network_state(svirt_lxc_net_t) -kernel_read_irq_sysctls(svirt_lxc_net_t) +allow svirt_lxc_net_t self:process { execstack execmem }; -+ -+tunable_policy(`virt_sandbox_use_sys_admin',` -+ allow svirt_lxc_net_t self:capability sys_admin; -+') -corenet_all_recvfrom_unlabeled(svirt_lxc_net_t) -corenet_all_recvfrom_netlabel(svirt_lxc_net_t) @@ -101424,6 +101467,13 @@ index f03dcf5..fb96958 100644 -corenet_udp_sendrecv_all_ports(svirt_lxc_net_t) -corenet_tcp_bind_generic_node(svirt_lxc_net_t) -corenet_udp_bind_generic_node(svirt_lxc_net_t) ++tunable_policy(`virt_sandbox_use_sys_admin',` ++ allow svirt_lxc_net_t self:capability sys_admin; ++') + +-corenet_sendrecv_all_server_packets(svirt_lxc_net_t) +-corenet_udp_bind_all_ports(svirt_lxc_net_t) +-corenet_tcp_bind_all_ports(svirt_lxc_net_t) +tunable_policy(`virt_sandbox_use_netlink',` + allow svirt_lxc_net_t self:netlink_socket create_socket_perms; + allow svirt_lxc_net_t self:netlink_tcpdiag_socket create_netlink_socket_perms; @@ -101432,14 +101482,11 @@ index f03dcf5..fb96958 100644 + logging_dontaudit_send_audit_msgs(svirt_lxc_net_t) +') --corenet_sendrecv_all_server_packets(svirt_lxc_net_t) --corenet_udp_bind_all_ports(svirt_lxc_net_t) --corenet_tcp_bind_all_ports(svirt_lxc_net_t) -+allow svirt_lxc_net_t virt_lxc_var_run_t:dir list_dir_perms; -+allow svirt_lxc_net_t virt_lxc_var_run_t:file read_file_perms; - -corenet_sendrecv_all_client_packets(svirt_lxc_net_t) -corenet_tcp_connect_all_ports(svirt_lxc_net_t) ++allow svirt_lxc_net_t virt_lxc_var_run_t:dir list_dir_perms; ++allow svirt_lxc_net_t virt_lxc_var_run_t:file read_file_perms; ++ +kernel_read_irq_sysctls(svirt_lxc_net_t) +dev_read_sysfs(svirt_lxc_net_t) @@ -101458,15 +101505,16 @@ index f03dcf5..fb96958 100644 +fs_manage_cgroup_files(svirt_lxc_net_t) +# Needed for docker +fs_unmount_xattr_fs(svirt_lxc_net_t) - --auth_use_nsswitch(svirt_lxc_net_t) ++ +term_pty(svirt_sandbox_file_t) + auth_use_nsswitch(svirt_lxc_net_t) + -logging_send_audit_msgs(svirt_lxc_net_t) -+auth_use_nsswitch(svirt_lxc_net_t) ++rpm_read_db(svirt_lxc_net_t) -userdom_use_user_ptys(svirt_lxc_net_t) -+rpm_read_db(svirt_lxc_net_t) ++logging_send_syslog_msg(svirt_lxc_net_t) -optional_policy(` - rpm_read_db(svirt_lxc_net_t) @@ -101522,19 +101570,21 @@ index f03dcf5..fb96958 100644 +dev_read_urand(svirt_qemu_net_t) + +files_read_kernel_modules(svirt_qemu_net_t) - --allow svirt_prot_exec_t self:process { execmem execstack }; ++ +fs_noxattr_type(svirt_sandbox_file_t) +fs_mount_cgroup(svirt_qemu_net_t) +fs_manage_cgroup_dirs(svirt_qemu_net_t) +fs_manage_cgroup_files(svirt_qemu_net_t) -+ + +-allow svirt_prot_exec_t self:process { execmem execstack }; +term_pty(svirt_sandbox_file_t) + +auth_use_nsswitch(svirt_qemu_net_t) + +rpm_read_db(svirt_qemu_net_t) + ++logging_send_syslog_msg(svirt_qemu_net_t) ++ +tunable_policy(`virt_sandbox_use_audit',` + logging_send_audit_msgs(svirt_qemu_net_t) +') @@ -101555,7 +101605,7 @@ index f03dcf5..fb96958 100644 allow virt_qmf_t self:tcp_socket create_stream_socket_perms; allow virt_qmf_t self:netlink_route_socket create_netlink_socket_perms; -@@ -1174,12 +1399,12 @@ dev_read_sysfs(virt_qmf_t) +@@ -1174,12 +1436,12 @@ dev_read_sysfs(virt_qmf_t) dev_read_rand(virt_qmf_t) dev_read_urand(virt_qmf_t) @@ -101570,7 +101620,7 @@ index f03dcf5..fb96958 100644 sysnet_read_config(virt_qmf_t) optional_policy(` -@@ -1192,9 +1417,8 @@ optional_policy(` +@@ -1192,9 +1454,8 @@ optional_policy(` ######################################## # @@ -101581,7 +101631,7 @@ index f03dcf5..fb96958 100644 allow virt_bridgehelper_t self:process { setcap getcap }; allow virt_bridgehelper_t self:capability { setpcap setgid setuid net_admin }; allow virt_bridgehelper_t self:tcp_socket create_stream_socket_perms; -@@ -1207,5 +1431,210 @@ kernel_read_network_state(virt_bridgehelper_t) +@@ -1207,5 +1468,218 @@ kernel_read_network_state(virt_bridgehelper_t) corenet_rw_tun_tap_dev(virt_bridgehelper_t) @@ -101766,6 +101816,8 @@ index f03dcf5..fb96958 100644 + +rpm_read_db(svirt_kvm_net_t) + ++logging_send_syslog_msg(svirt_kvm_net_t) ++ +tunable_policy(`virt_sandbox_use_audit',` + logging_send_audit_msgs(svirt_kvm_net_t) +') @@ -101792,8 +101844,14 @@ index f03dcf5..fb96958 100644 +corenet_tcp_connect_all_ports(sandbox_net_domain) + +optional_policy(` ++ sssd_stream_connect(sandbox_net_domain) ++') ++ ++optional_policy(` + systemd_dbus_chat_logind(sandbox_net_domain) +') ++ ++ diff --git a/vlock.te b/vlock.te index 6b72968..de409cc 100644 --- a/vlock.te @@ -101949,10 +102007,10 @@ index 0000000..7933d80 +') diff --git a/vmtools.te b/vmtools.te new file mode 100644 -index 0000000..d59b917 +index 0000000..1928ad9 --- /dev/null +++ b/vmtools.te -@@ -0,0 +1,94 @@ +@@ -0,0 +1,96 @@ +policy_module(vmtools, 1.0.0) + +######################################## @@ -102042,6 +102100,8 @@ index 0000000..d59b917 +corecmd_exec_bin(vmtools_helper_t) + +userdom_stream_connect(vmtools_helper_t) ++userdom_use_inherited_user_ttys(vmtools_helper_t) ++userdom_use_inherited_user_ptys(vmtools_helper_t) + +optional_policy(` + unconfined_domain(vmtools_helper_t) diff --git a/selinux-policy.spec b/selinux-policy.spec index bbe6d974..1affd658 100644 --- a/selinux-policy.spec +++ b/selinux-policy.spec @@ -19,7 +19,7 @@ Summary: SELinux policy configuration Name: selinux-policy Version: 3.13.1 -Release: 38%{?dist} +Release: 39%{?dist} License: GPLv2+ Group: System Environment/Base Source: serefpolicy-%{version}.tgz @@ -584,6 +584,34 @@ SELinux Reference policy mls base module. %endif %changelog +* Tue Mar 25 2014 Miroslav Grepl 3.13.1-39 +- Manage_service_perms should include enable and disable, need backport to RHEL7 +- Allow also unpriv user to run vmtools +- Allow secadm to read /dev/urandom and meminfo +- Add userdom_tmp_role for secadm_t +- Allow postgresql to read network state +- Add a new file context for /var/named/chroot/run directory +- Add booleans to allow docker processes to use nfs and samba +- Dontaudit net_amdin for /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.1.el7.x86_64/jre-abrt/bin/java running as pki_tomcat_t +- Allow puppet stream connect to mysql +- Fixed some rules related to puppet policy +- Allow vmware-user-sui to use user ttys +- Allow talk 2 users logged via console too +- Additional avcs for docker when running tests +- allow anaconda to dbus chat with systemd-localed +- clean up rhcs.te +- remove dup rules from haproxy.te +- Add fixes for haproxy based on bperkins@redhat.com +- Allow cmirrord to make dmsetup working +- Allow NM to execute arping +- Allow users to send messages through talk +- update rtas_errd policy +- Add support for /var/spool/rhsm/debug +- Make virt_sandbox_use_audit as True by default +- Allow svirt_sandbox_domains to ptrace themselves +- Allow snmpd to getattr on removeable and fixed disks +- Allow docker containers to manage /var/lib/docker content + * Mon Mar 17 2014 Miroslav Grepl 3.13.1-38 - Label sddm as xdm_exec_t to make KDE working again - Allow postgresql to read network state