commit: 35bc01e881f75e092a6cf668400407d73081f8fc
Author: cgzones <cgzones <AT> googlemail <DOT> com>
AuthorDate: Thu Jan 5 18:59:45 2017 +0000
Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sat Feb 25 14:50:52 2017 +0000
URL:
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=35bc01e8
update ntp module
* add private lock type
* dontaudit sys_resource
policy/modules/contrib/ntp.fc | 47 ++++++++++++++++++++++---------------------
policy/modules/contrib/ntp.if | 7 ++++---
policy/modules/contrib/ntp.te | 37 +++++++++++++++++++++-------------
3 files changed, 51 insertions(+), 40 deletions(-)
diff --git a/policy/modules/contrib/ntp.fc b/policy/modules/contrib/ntp.fc
index 16428bc2..756241da 100644
--- a/policy/modules/contrib/ntp.fc
+++ b/policy/modules/contrib/ntp.fc
@@ -1,33 +1,34 @@
-/etc/cron\.daily/ntp -- gen_context(system_u:object_r:ntpd_exec_t,s0)
-/etc/cron\.(daily|weekly)/ntp-simple --
gen_context(system_u:object_r:ntpd_exec_t,s0)
-/etc/cron\.(daily|weekly)/ntp-server --
gen_context(system_u:object_r:ntpd_exec_t,s0)
+/etc/cron\.daily/ntp --
gen_context(system_u:object_r:ntpd_exec_t,s0)
+/etc/cron\.(daily|weekly)/ntp-simple --
gen_context(system_u:object_r:ntpd_exec_t,s0)
+/etc/cron\.(daily|weekly)/ntp-server --
gen_context(system_u:object_r:ntpd_exec_t,s0)
-/etc/ntp\.conf -- gen_context(system_u:object_r:ntp_conf_t,s0)
-/etc/ntpd.*\.conf.* -- gen_context(system_u:object_r:ntp_conf_t,s0)
-/etc/ntp/crypto(/.*)? gen_context(system_u:object_r:ntpd_key_t,s0)
-/etc/ntp/data(/.*)? gen_context(system_u:object_r:ntp_drift_t,s0)
-/etc/ntp/keys -- gen_context(system_u:object_r:ntpd_key_t,s0)
-/etc/ntp/step-tickers.* --
gen_context(system_u:object_r:ntp_conf_t,s0)
+/etc/ntp\.conf --
gen_context(system_u:object_r:ntp_conf_t,s0)
+/etc/ntpd.*\.conf.* --
gen_context(system_u:object_r:ntp_conf_t,s0)
+/etc/ntp/crypto(/.*)?
gen_context(system_u:object_r:ntpd_key_t,s0)
+/etc/ntp/data(/.*)?
gen_context(system_u:object_r:ntp_drift_t,s0)
+/etc/ntp/keys --
gen_context(system_u:object_r:ntpd_key_t,s0)
+/etc/ntp/step-tickers.* --
gen_context(system_u:object_r:ntp_conf_t,s0)
-/etc/rc\.d/init\.d/ntpd? --
gen_context(system_u:object_r:ntpd_initrc_exec_t,s0)
+/etc/rc\.d/init\.d/ntpd? --
gen_context(system_u:object_r:ntpd_initrc_exec_t,s0)
-# Systemd unit file
-/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)
+/run/ntpd\.pid --
gen_context(system_u:object_r:ntpd_pid_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)
-/usr/sbin/sntp -- gen_context(system_u:object_r:ntpdate_exec_t,s0)
+/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)
-/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/db/ntp-kod --
gen_context(system_u:object_r:ntp_drift_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)
+/usr/sbin/sntp --
gen_context(system_u:object_r:ntpdate_exec_t,s0)
-/var/log/ntp.* -- gen_context(system_u:object_r:ntpd_log_t,s0)
-/var/log/ntpstats(/.*)?
gen_context(system_u:object_r:ntpd_log_t,s0)
-/var/log/xntpd.* -- gen_context(system_u:object_r:ntpd_log_t,s0)
+/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)
-/run/ntpd\.pid -- gen_context(system_u:object_r:ntpd_var_run_t,s0)
+/var/lock/ntpdate --
gen_context(system_u:object_r:ntpd_lock_t,s0)
+
+/var/log/ntp.* --
gen_context(system_u:object_r:ntpd_log_t,s0)
+/var/log/ntpstats(/.*)?
gen_context(system_u:object_r:ntpd_log_t,s0)
+/var/log/xntpd.* --
gen_context(system_u:object_r:ntpd_log_t,s0)
/run/ntpd\.sock -s gen_context(system_u:object_r:ntpd_var_run_t,s0)
ifdef(`distro_gentoo',`
diff --git a/policy/modules/contrib/ntp.if b/policy/modules/contrib/ntp.if
index f8534c6b..fa0a1839 100644
--- a/policy/modules/contrib/ntp.if
+++ b/policy/modules/contrib/ntp.if
@@ -179,14 +179,15 @@ interface(`ntp_rw_shm',`
interface(`ntp_admin',`
gen_require(`
type ntpd_t, ntpd_tmp_t, ntpd_log_t;
- type ntpd_key_t, ntpd_var_run_t, ntp_conf_t;
+ type ntpd_key_t, ntpd_pid_t, ntp_conf_t;
type ntpd_initrc_exec_t, ntp_drift_t;
+ type ntpd_unit_t;
')
allow $1 ntpd_t:process { ptrace signal_perms };
ps_process_pattern($1, ntpd_t)
- init_startstop_service($1, $2, ntpd_t, ntpd_initrc_exec_t)
+ init_startstop_service($1, $2, ntpd_t, ntpd_initrc_exec_t, ntpd_unit_t)
files_list_etc($1)
admin_pattern($1, { ntpd_key_t ntp_conf_t })
@@ -201,7 +202,7 @@ interface(`ntp_admin',`
admin_pattern($1, ntp_drift_t)
files_list_pids($1)
- admin_pattern($1, ntpd_var_run_t)
+ admin_pattern($1, ntpd_pid_t)
ntp_run($1, $2)
')
diff --git a/policy/modules/contrib/ntp.te b/policy/modules/contrib/ntp.te
index 2fcf0a40..208bd66e 100644
--- a/policy/modules/contrib/ntp.te
+++ b/policy/modules/contrib/ntp.te
@@ -7,6 +7,9 @@ policy_module(ntp, 1.16.0)
attribute_role ntpd_roles;
+type ntp_conf_t;
+files_config_file(ntp_conf_t)
+
type ntp_drift_t;
files_type(ntp_drift_t)
@@ -18,15 +21,20 @@ role ntpd_roles types ntpd_t;
type ntpd_initrc_exec_t;
init_script_file(ntpd_initrc_exec_t)
-type ntp_conf_t;
-files_config_file(ntp_conf_t)
-
type ntpd_key_t;
files_type(ntpd_key_t)
+type ntpd_lock_t;
+files_lock_file(ntpd_lock_t)
+init_daemon_lock_file(ntpd_lock_t, file, "ntpdate")
+
type ntpd_log_t;
logging_log_file(ntpd_log_t)
+type ntpd_pid_t;
+typealias ntpd_pid_t alias ntpd_var_run_t;
+files_pid_file(ntpd_pid_t)
+
type ntpd_tmp_t;
files_tmp_file(ntpd_tmp_t)
@@ -36,9 +44,6 @@ files_tmpfs_file(ntpd_tmpfs_t)
type ntpd_unit_t;
init_unit_file(ntpd_unit_t)
-type ntpd_var_run_t;
-files_pid_file(ntpd_var_run_t)
-
type ntpdate_exec_t;
init_system_domain(ntpd_t, ntpdate_exec_t)
@@ -47,28 +52,36 @@ init_system_domain(ntpd_t, ntpdate_exec_t)
# Local policy
#
-allow ntpd_t self:capability { chown dac_override ipc_lock ipc_owner kill
setgid setuid sys_chroot sys_nice sys_resource sys_time };
-dontaudit ntpd_t self:capability { fsetid net_admin sys_nice sys_tty_config };
+# sys_time : modify system time
+allow ntpd_t self:capability { chown dac_override kill setgid setuid sys_time
ipc_lock ipc_owner sys_chroot sys_nice };
+dontaudit ntpd_t self:capability { net_admin sys_tty_config fsetid sys_nice
sys_resource };
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:socket create;
allow ntpd_t self:tcp_socket { accept listen };
+allow ntpd_t ntp_conf_t:file read_file_perms;
+
manage_dirs_pattern(ntpd_t, ntp_drift_t, ntp_drift_t)
manage_files_pattern(ntpd_t, ntp_drift_t, ntp_drift_t)
files_var_filetrans(ntpd_t, ntp_drift_t, file)
-allow ntpd_t ntp_conf_t:file read_file_perms;
-
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_lock_t:file write_file_perms;
+
allow ntpd_t ntpd_log_t:dir setattr_dir_perms;
append_files_pattern(ntpd_t, ntpd_log_t, ntpd_log_t)
create_files_pattern(ntpd_t, ntpd_log_t, ntpd_log_t)
setattr_files_pattern(ntpd_t, ntpd_log_t, ntpd_log_t)
logging_log_filetrans(ntpd_t, ntpd_log_t, { file dir })
+manage_files_pattern(ntpd_t, ntpd_pid_t, ntpd_pid_t)
+manage_sock_files_pattern(ntpd_t, ntpd_pid_t, ntpd_pid_t)
+files_pid_filetrans(ntpd_t, ntpd_pid_t, { file sock_file })
+
manage_dirs_pattern(ntpd_t, ntpd_tmp_t, ntpd_tmp_t)
manage_files_pattern(ntpd_t, ntpd_tmp_t, ntpd_tmp_t)
files_tmp_filetrans(ntpd_t, ntpd_tmp_t, { file dir })
@@ -77,10 +90,6 @@ manage_dirs_pattern(ntpd_t, ntpd_tmpfs_t, ntpd_tmpfs_t)
manage_files_pattern(ntpd_t, ntpd_tmpfs_t, ntpd_tmpfs_t)
fs_tmpfs_filetrans(ntpd_t, ntpd_tmpfs_t, { dir file })
-manage_files_pattern(ntpd_t, ntpd_var_run_t, ntpd_var_run_t)
-manage_sock_files_pattern(ntpd_t, ntpd_var_run_t, ntpd_var_run_t)
-files_pid_filetrans(ntpd_t, ntpd_var_run_t, { file sock_file })
-
can_exec(ntpd_t, ntpd_exec_t)
kernel_read_kernel_sysctls(ntpd_t)