commit: a973b8969f85d4148a3a2adad6bd2bfd06c0a4ec Author: Chris PeBenito <pebenito <AT> ieee <DOT> org> AuthorDate: Thu Apr 6 21:37:31 2017 +0000 Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org> CommitDate: Mon Apr 10 16:42:40 2017 +0000 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=a973b896
Systemd-related changes from Russell Coker. policy/modules/contrib/apache.te | 6 +++++- policy/modules/contrib/cron.te | 17 ++++++++++++++++- policy/modules/contrib/dbus.if | 4 ++++ policy/modules/contrib/dbus.te | 9 ++++++++- policy/modules/contrib/devicekit.te | 3 ++- policy/modules/contrib/dpkg.te | 11 ++--------- policy/modules/contrib/logrotate.te | 14 ++++++++++++-- policy/modules/contrib/mta.te | 3 ++- policy/modules/contrib/networkmanager.te | 6 +++++- policy/modules/contrib/ntp.fc | 3 +++ policy/modules/contrib/ntp.if | 9 +++++++++ policy/modules/contrib/ntp.te | 25 ++++++++++++++++++++++++- policy/modules/contrib/policykit.te | 13 ++++++++++++- 13 files changed, 104 insertions(+), 19 deletions(-) diff --git a/policy/modules/contrib/apache.te b/policy/modules/contrib/apache.te index 628b4156..b418338c 100644 --- a/policy/modules/contrib/apache.te +++ b/policy/modules/contrib/apache.te @@ -1,4 +1,4 @@ -policy_module(apache, 2.12.3) +policy_module(apache, 2.12.4) ######################################## # @@ -544,6 +544,10 @@ ifdef(`hide_broken_symptoms',` libs_exec_lib_files(httpd_t) ') +ifdef(`init_systemd', ` + systemd_use_passwd_agent(httpd_t) +') + tunable_policy(`allow_httpd_anon_write',` miscfiles_manage_public_files(httpd_t) ') diff --git a/policy/modules/contrib/cron.te b/policy/modules/contrib/cron.te index b51524a4..5cb7dac1 100644 --- a/policy/modules/contrib/cron.te +++ b/policy/modules/contrib/cron.te @@ -1,4 +1,4 @@ -policy_module(cron, 2.11.2) +policy_module(cron, 2.11.3) gen_require(` class passwd rootok; @@ -304,6 +304,10 @@ selinux_compute_user_contexts(crond_t) init_read_state(crond_t) init_rw_utmp(crond_t) init_spec_domtrans_script(crond_t) +init_stop_all_units(system_cronjob_t) +init_start_all_units(system_cronjob_t) +init_get_generic_units_status(system_cronjob_t) +init_get_system_status(system_cronjob_t) auth_domtrans_chk_passwd(crond_t) auth_manage_var_auth(crond_t) @@ -417,6 +421,17 @@ optional_policy(` ') optional_policy(` + systemd_write_inherited_logind_sessions_pipes(crond_t) +') + +optional_policy(` + systemd_dbus_chat_logind(system_cronjob_t) + systemd_write_inherited_logind_sessions_pipes(system_cronjob_t) + # so cron jobs can restart daemons + init_stream_connect(system_cronjob_t) +') + +optional_policy(` udev_read_db(crond_t) ') diff --git a/policy/modules/contrib/dbus.if b/policy/modules/contrib/dbus.if index e06f20d6..3893df7c 100644 --- a/policy/modules/contrib/dbus.if +++ b/policy/modules/contrib/dbus.if @@ -94,6 +94,10 @@ template(`dbus_role_template',` xdg_read_data_home_files($1_dbusd_t) ') ') + + optional_policy(` + systemd_read_logind_pids($1_dbusd_t) + ') ') ####################################### diff --git a/policy/modules/contrib/dbus.te b/policy/modules/contrib/dbus.te index 941d2f47..579b2230 100644 --- a/policy/modules/contrib/dbus.te +++ b/policy/modules/contrib/dbus.te @@ -1,4 +1,4 @@ -policy_module(dbus, 1.22.4) +policy_module(dbus, 1.22.5) gen_require(` class dbus all_dbus_perms; @@ -150,6 +150,13 @@ ifdef(`distro_gentoo',` ') optional_policy(` + # for /run/systemd/users/* + systemd_read_logind_pids(system_dbusd_t) + systemd_write_inherited_logind_sessions_pipes(system_dbusd_t) + systemd_write_logind_pid_pipes(system_dbusd_t) +') + +optional_policy(` bluetooth_stream_connect(system_dbusd_t) ') diff --git a/policy/modules/contrib/devicekit.te b/policy/modules/contrib/devicekit.te index 458afb08..83e0fabd 100644 --- a/policy/modules/contrib/devicekit.te +++ b/policy/modules/contrib/devicekit.te @@ -1,4 +1,4 @@ -policy_module(devicekit, 1.6.2) +policy_module(devicekit, 1.6.3) ######################################## # @@ -261,6 +261,7 @@ auth_use_nsswitch(devicekit_power_t) init_all_labeled_script_domtrans(devicekit_power_t) init_read_utmp(devicekit_power_t) +init_search_run(devicekit_power_t) miscfiles_read_localization(devicekit_power_t) diff --git a/policy/modules/contrib/dpkg.te b/policy/modules/contrib/dpkg.te index 51ae8c36..3ea9e3e0 100644 --- a/policy/modules/contrib/dpkg.te +++ b/policy/modules/contrib/dpkg.te @@ -1,4 +1,4 @@ -policy_module(dpkg, 1.11.3) +policy_module(dpkg, 1.11.4) ######################################## # @@ -229,7 +229,6 @@ kernel_read_system_state(dpkg_script_t) corecmd_exec_all_executables(dpkg_script_t) -dev_manage_null_service(dpkg_script_t) dev_list_sysfs(dpkg_script_t) # Use named file transition to fix this # dev_manage_generic_blk_files(dpkg_script_t) @@ -276,16 +275,10 @@ files_manage_non_auth_files(dpkg_script_t) auth_manage_shadow(dpkg_script_t) init_all_labeled_script_domtrans(dpkg_script_t) -init_get_generic_units_status(dpkg_script_t) init_use_script_fds(dpkg_script_t) -init_get_system_status(dpkg_script_t) -init_start_generic_units(dpkg_script_t) -init_stop_generic_units(dpkg_script_t) -init_reload(dpkg_script_t) -init_stop_system(dpkg_script_t) -init_telinit(dpkg_script_t) init_manage_script_service(dpkg_script_t) init_startstop_all_script_services(dpkg_script_t) +init_admin(dpkg_script_t) libs_exec_ld_so(dpkg_script_t) libs_exec_lib_files(dpkg_script_t) diff --git a/policy/modules/contrib/logrotate.te b/policy/modules/contrib/logrotate.te index c43440ee..ec338fb6 100644 --- a/policy/modules/contrib/logrotate.te +++ b/policy/modules/contrib/logrotate.te @@ -1,4 +1,4 @@ -policy_module(logrotate, 1.18.1) +policy_module(logrotate, 1.18.2) ######################################## # @@ -37,7 +37,7 @@ role system_r types logrotate_mail_t; # allow logrotate_t self:capability { chown dac_override dac_read_search fowner fsetid kill setgid setuid sys_nice sys_resource }; -allow logrotate_t self:process ~{ ptrace setcurrent setexec setrlimit execmem execstack execheap }; +allow logrotate_t self:process ~{ ptrace setcurrent setexec execmem execstack execheap }; allow logrotate_t self:fd use; allow logrotate_t self:key manage_key_perms; allow logrotate_t self:fifo_file rw_fifo_file_perms; @@ -102,6 +102,11 @@ auth_manage_login_records(logrotate_t) auth_use_nsswitch(logrotate_t) init_all_labeled_script_domtrans(logrotate_t) +init_get_generic_units_status(logrotate_t) +init_get_all_units_status(logrotate_t) +init_dbus_chat(logrotate_t) +init_stream_connect(logrotate_t) +init_manage_all_units(logrotate_t) logging_manage_all_logs(logrotate_t) logging_send_syslog_msg(logrotate_t) @@ -173,6 +178,11 @@ optional_policy(` ') optional_policy(` + dbus_system_bus_client(logrotate_t) + init_write_pid_socket(logrotate_t) +') + +optional_policy(` fail2ban_stream_connect(logrotate_t) ') diff --git a/policy/modules/contrib/mta.te b/policy/modules/contrib/mta.te index 22308885..68f3e91f 100644 --- a/policy/modules/contrib/mta.te +++ b/policy/modules/contrib/mta.te @@ -1,4 +1,4 @@ -policy_module(mta, 2.8.3) +policy_module(mta, 2.8.4) ######################################## # @@ -200,6 +200,7 @@ term_dontaudit_use_unallocated_ttys(system_mail_t) init_use_script_ptys(system_mail_t) init_use_fds(system_mail_t) +init_rw_stream_sockets(system_mail_t) userdom_use_user_terminals(system_mail_t) diff --git a/policy/modules/contrib/networkmanager.te b/policy/modules/contrib/networkmanager.te index e7bc8487..99002c12 100644 --- a/policy/modules/contrib/networkmanager.te +++ b/policy/modules/contrib/networkmanager.te @@ -1,4 +1,4 @@ -policy_module(networkmanager, 1.20.3) +policy_module(networkmanager, 1.20.4) ######################################## # @@ -345,6 +345,10 @@ optional_policy(` ') optional_policy(` + systemd_read_logind_sessions_files(NetworkManager_t) +') + +optional_policy(` udev_exec(NetworkManager_t) udev_read_db(NetworkManager_t) udev_read_pid_files(NetworkManager_t) diff --git a/policy/modules/contrib/ntp.fc b/policy/modules/contrib/ntp.fc index 756241da..67c2b883 100644 --- a/policy/modules/contrib/ntp.fc +++ b/policy/modules/contrib/ntp.fc @@ -15,6 +15,8 @@ /usr/lib/systemd/ntp-units\.d/.* -- gen_context(system_u:object_r:ntpd_unit_t,s0) /usr/lib/systemd/system/ntpd.*\.service -- gen_context(system_u:object_r:ntpd_unit_t,s0) +/usr/lib/systemd/systemd-timedated -- gen_context(system_u:object_r:ntpd_exec_t,s0) +/usr/lib/systemd/systemd-timesyncd -- gen_context(system_u:object_r:ntpd_exec_t,s0) /usr/sbin/ntpd -- gen_context(system_u:object_r:ntpd_exec_t,s0) /usr/sbin/ntpdate -- gen_context(system_u:object_r:ntpdate_exec_t,s0) @@ -23,6 +25,7 @@ /var/db/ntp-kod -- gen_context(system_u:object_r:ntp_drift_t,s0) /var/lib/ntp(/.*)? gen_context(system_u:object_r:ntp_drift_t,s0) /var/lib/sntp-kod(/.*)? gen_context(system_u:object_r:ntp_drift_t,s0) +/var/lib/systemd/clock -- gen_context(system_u:object_r:ntp_drift_t,s0) /var/lock/ntpdate -- gen_context(system_u:object_r:ntpd_lock_t,s0) diff --git a/policy/modules/contrib/ntp.if b/policy/modules/contrib/ntp.if index 8bbb2aa3..31f71108 100644 --- a/policy/modules/contrib/ntp.if +++ b/policy/modules/contrib/ntp.if @@ -223,6 +223,15 @@ interface(`ntp_admin',` admin_pattern($1, ntpd_pid_t) ntp_run($1, $2) + + ifdef(`init_systemd',` + gen_require(` + class dbus send_msg; + ') + + allow $1 ntpd_t:dbus send_msg; + allow ntpd_t $1:dbus send_msg; + ') ') # This should be in an ifdef distro_gentoo but that is not allowed in if files diff --git a/policy/modules/contrib/ntp.te b/policy/modules/contrib/ntp.te index 9af1ad5f..aae4f194 100644 --- a/policy/modules/contrib/ntp.te +++ b/policy/modules/contrib/ntp.te @@ -1,4 +1,4 @@ -policy_module(ntp, 1.16.2) +policy_module(ntp, 1.16.3) ######################################## # @@ -144,6 +144,29 @@ miscfiles_read_localization(ntpd_t) userdom_dontaudit_use_unpriv_user_fds(ntpd_t) userdom_list_user_home_dirs(ntpd_t) +ifdef(`init_systemd',` + dbus_system_bus_client(ntpd_t) + dbus_connect_system_bus(ntpd_t) + init_dbus_chat(ntpd_t) + init_get_system_status(ntpd_t) + allow ntpd_t self:capability { fowner setpcap }; + init_reload(ntpd_t) + + # for /var/lib/systemd/clock + init_list_var_lib_dirs(ntpd_t) + + # for /run/systemd/netif/links + init_list_pids(ntpd_t) + + optional_policy(` + unconfined_dbus_send(ntpd_t) + ') +') + +optional_policy(` + clock_read_adjtime(ntpd_t) +') + optional_policy(` cron_system_entry(ntpd_t, ntpdate_exec_t) ') diff --git a/policy/modules/contrib/policykit.te b/policy/modules/contrib/policykit.te index 21ab30e7..d7686081 100644 --- a/policy/modules/contrib/policykit.te +++ b/policy/modules/contrib/policykit.te @@ -1,4 +1,4 @@ -policy_module(policykit, 1.6.0) +policy_module(policykit, 1.6.1) ######################################## # @@ -131,6 +131,17 @@ optional_policy(` kerberos_tmp_filetrans_host_rcache(policykit_t, file, "host_0") ') +optional_policy(` + # for /run/systemd/machines + systemd_read_machines(policykit_t) + + # for /run/systemd/seats/seat* + systemd_read_logind_sessions_files(policykit_t) + + # for /run/systemd/users/* + systemd_read_logind_pids(policykit_t) +') + ######################################## # # Auth local policy