diff --git a/policy/modules/services/ntp.if b/policy/modules/services/ntp.if index bb0089e..a09a9ae 100644 --- a/policy/modules/services/ntp.if +++ b/policy/modules/services/ntp.if @@ -37,6 +37,32 @@ interface(`ntp_domtrans',` ######################################## ## +## Execute ntp in the ntp domain, and +## allow the specified role the ntp domain. +## +## +## +## Domain allowed access. +## +## +## +## +## Role allowed access. +## +## +## +# +interface(`ntp_run',` + gen_require(` + type ntpd_t; + ') + + ntp_domtrans($1) + role $2 types ntpd_t; +') + +######################################## +## ## Execute ntp server in the ntpd domain. ## ## @@ -55,7 +81,25 @@ interface(`ntp_domtrans_ntpdate',` ') ######################################## -## +## +## Execute ntp server in the ntpd domain. +## +## +## +## The type of the process performing this action. +## +## +# +interface(`ntp_initrc_domtrans',` + gen_require(` + type ntpd_initrc_exec_t; + ') + + init_labeled_script_domtrans($1, ntpd_initrc_exec_t) +') + +######################################## +## ## Read and write ntpd shared memory. ## ## @@ -64,7 +108,7 @@ interface(`ntp_domtrans_ntpdate',` ## ## # -interface(`ntpd_rw_shm',` +interface(`ntp_rw_shm',` gen_require(` type ntpd_t, ntpd_tmpfs_t; ') @@ -78,7 +122,7 @@ interface(`ntpd_rw_shm',` ######################################## ## -## All of the rules required to administrate +## All of the rules required to administrate ## an ntp environment ## ## diff --git a/policy/modules/services/ntp.te b/policy/modules/services/ntp.te index 330b80f..745e3a4 100644 --- a/policy/modules/services/ntp.te +++ b/policy/modules/services/ntp.te @@ -1,5 +1,5 @@ -policy_module(ntp, 1.9.0) +policy_module(ntp, 1.9.1) ######################################## # @@ -41,10 +41,11 @@ init_system_domain(ntpd_t, ntpdate_exec_t) # sys_resource and setrlimit is for locking memory # ntpdate wants sys_nice -allow ntpd_t self:capability { chown dac_override kill setgid setuid sys_time ipc_lock sys_chroot sys_nice sys_resource }; +allow ntpd_t self:capability { chown dac_override kill setgid setuid sys_time ipc_lock ipc_owner sys_chroot sys_nice sys_resource }; dontaudit ntpd_t self:capability { net_admin sys_tty_config fsetid sys_nice }; allow ntpd_t self:process { signal_perms getcap setcap setsched setrlimit }; allow ntpd_t self:fifo_file rw_fifo_file_perms; +allow ntpd_t self:shm create_shm_perms; allow ntpd_t self:unix_dgram_socket create_socket_perms; allow ntpd_t self:unix_stream_socket create_socket_perms; allow ntpd_t self:tcp_socket create_stream_socket_perms; @@ -55,6 +56,7 @@ manage_files_pattern(ntpd_t, ntp_drift_t, ntp_drift_t) can_exec(ntpd_t, ntpd_exec_t) read_files_pattern(ntpd_t, ntpd_key_t, ntpd_key_t) +read_lnk_files_pattern(ntpd_t, ntpd_key_t, ntpd_key_t) allow ntpd_t ntpd_log_t:dir setattr; manage_files_pattern(ntpd_t, ntpd_log_t, ntpd_log_t) @@ -75,6 +77,7 @@ files_pid_filetrans(ntpd_t, ntpd_var_run_t, file) kernel_read_kernel_sysctls(ntpd_t) kernel_read_system_state(ntpd_t) kernel_read_network_state(ntpd_t) +kernel_request_load_module(ntpd_t) corenet_all_recvfrom_unlabeled(ntpd_t) corenet_all_recvfrom_netlabel(ntpd_t)