From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 04A0A138010 for ; Fri, 19 Oct 2012 12:42:41 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 608C921C096; Fri, 19 Oct 2012 12:41:29 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id F322B21C074 for ; Fri, 19 Oct 2012 12:41:27 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 11C0F33DA33 for ; Fri, 19 Oct 2012 12:41:27 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id C8163E5453 for ; Fri, 19 Oct 2012 12:41:24 +0000 (UTC) From: "Sven Vermeulen" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sven Vermeulen" Message-ID: <1350650342.e2ecaed14568bfc463a85899acbd5059f159a30e.SwifT@gentoo> Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: policy/modules/contrib/ X-VCS-Repository: proj/hardened-refpolicy X-VCS-Files: policy/modules/contrib/procmail.fc policy/modules/contrib/procmail.if policy/modules/contrib/procmail.te X-VCS-Directories: policy/modules/contrib/ X-VCS-Committer: SwifT X-VCS-Committer-Name: Sven Vermeulen X-VCS-Revision: e2ecaed14568bfc463a85899acbd5059f159a30e X-VCS-Branch: master Date: Fri, 19 Oct 2012 12:41:24 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 6b0ef4c0-c7c2-4ba1-b03e-a85f556eab45 X-Archives-Hash: a4575fe65a48c395d56fa2380c4d4f31 commit: e2ecaed14568bfc463a85899acbd5059f159a30e Author: Dominick Grift gmail com> AuthorDate: Fri Oct 19 10:39:30 2012 +0000 Commit: Sven Vermeulen siphos be> CommitDate: Fri Oct 19 12:39:02 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=e2ecaed1 Changes to the procmail policy module Ported from Fedora with changes Signed-off-by: Dominick Grift gmail.com> --- policy/modules/contrib/procmail.fc | 1 + policy/modules/contrib/procmail.if | 94 ++++++++++++++++++++++++++++++++++-- policy/modules/contrib/procmail.te | 80 ++++++++++++++---------------- 3 files changed, 129 insertions(+), 46 deletions(-) diff --git a/policy/modules/contrib/procmail.fc b/policy/modules/contrib/procmail.fc index 2d001c5..bdff6c9 100644 --- a/policy/modules/contrib/procmail.fc +++ b/policy/modules/contrib/procmail.fc @@ -1,3 +1,4 @@ +HOME_DIR/\.procmailrc -- gen_context(system_u:object_r:procmail_home_t,s0) /usr/bin/procmail -- gen_context(system_u:object_r:procmail_exec_t,s0) diff --git a/policy/modules/contrib/procmail.if b/policy/modules/contrib/procmail.if index b64b02f..00edeab 100644 --- a/policy/modules/contrib/procmail.if +++ b/policy/modules/contrib/procmail.if @@ -1,4 +1,4 @@ -## Procmail mail delivery agent +## Procmail mail delivery agent. ######################################## ## @@ -15,7 +15,6 @@ interface(`procmail_domtrans',` type procmail_exec_t, procmail_t; ') - files_search_usr($1) corecmd_search_bin($1) domtrans_pattern($1, procmail_exec_t, procmail_t) ') @@ -35,13 +34,100 @@ interface(`procmail_exec',` type procmail_exec_t; ') - files_search_usr($1) corecmd_search_bin($1) can_exec($1, procmail_exec_t) ') ######################################## ## +## Create, read, write, and delete +## procmail home files. +## +## +## +## Domain allowed access. +## +## +# +interface(`procmail_manage_home_files',` + gen_require(` + type procmail_home_t; + ') + + userdom_search_user_home_dirs($1) + allow $1 procmail_home_t:file manage_file_perms; +') + +######################################## +## +## Read procmail user home content files. +## +## +## +## Domain allowed access. +## +## +# +interface(`procmail_read_home_files',` + gen_require(` + type procmail_home_t; + + ') + + userdom_search_user_home_dirs($1) + allow $1 procmail_home_t:file read_file_perms; +') + +######################################## +## +## Relabel procmail home files. +## +## +## +## Domain allowed access. +## +## +# +interface(`procmail_relabel_home_files',` + gen_require(` + type ppp_home_t; + ') + + userdom_search_user_home_dirs($1) + allow $1 procmail_home_t:file relabel_file_perms; +') + +######################################## +## +## Create objects in user home +## directories with the procmail home type. +## +## +## +## Domain allowed access. +## +## +## +## +## Class of the object being created. +## +## +## +## +## The name of the object being created. +## +## +# +interface(`procmail_home_filetrans_procmail_home',` + gen_require(` + type procmail_home_t; + ') + + userdom_user_home_dir_filetrans($1, procmail_home_t, $2, $3) +') + +######################################## +## ## Read procmail tmp files. ## ## @@ -61,7 +147,7 @@ interface(`procmail_read_tmp_files',` ######################################## ## -## Read/write procmail tmp files. +## Read and write procmail tmp files. ## ## ## diff --git a/policy/modules/contrib/procmail.te b/policy/modules/contrib/procmail.te index 29b9295..07d5c5a 100644 --- a/policy/modules/contrib/procmail.te +++ b/policy/modules/contrib/procmail.te @@ -1,4 +1,4 @@ -policy_module(procmail, 1.12.0) +policy_module(procmail, 1.12.1) ######################################## # @@ -10,8 +10,11 @@ type procmail_exec_t; application_domain(procmail_t, procmail_exec_t) role system_r types procmail_t; +type procmail_home_t; +userdom_user_home_content(procmail_home_t) + type procmail_log_t; -logging_log_file(procmail_log_t) +logging_log_file(procmail_log_t) type procmail_tmp_t; files_tmp_file(procmail_tmp_t) @@ -24,15 +27,11 @@ files_tmp_file(procmail_tmp_t) allow procmail_t self:capability { sys_nice chown fsetid setuid setgid dac_override }; allow procmail_t self:process { setsched signal signull }; allow procmail_t self:fifo_file rw_fifo_file_perms; -allow procmail_t self:unix_stream_socket create_socket_perms; -allow procmail_t self:unix_dgram_socket create_socket_perms; -allow procmail_t self:tcp_socket create_stream_socket_perms; -allow procmail_t self:udp_socket create_socket_perms; +allow procmail_t self:tcp_socket { accept listen }; -can_exec(procmail_t, procmail_exec_t) +allow procmail_t procmail_home_t:file read_file_perms; -# Write log to /var/log/procmail.log or /var/log/procmail/.* -allow procmail_t procmail_log_t:dir setattr; +allow procmail_t procmail_log_t:dir setattr_dir_perms; create_files_pattern(procmail_t, procmail_log_t, procmail_log_t) append_files_pattern(procmail_t, procmail_log_t, procmail_log_t) read_lnk_files_pattern(procmail_t, procmail_log_t, procmail_log_t) @@ -41,61 +40,43 @@ logging_log_filetrans(procmail_t, procmail_log_t, { file dir }) allow procmail_t procmail_tmp_t:file manage_file_perms; files_tmp_filetrans(procmail_t, procmail_tmp_t, file) +can_exec(procmail_t, procmail_exec_t) + kernel_read_system_state(procmail_t) kernel_read_kernel_sysctls(procmail_t) corenet_all_recvfrom_unlabeled(procmail_t) corenet_all_recvfrom_netlabel(procmail_t) corenet_tcp_sendrecv_generic_if(procmail_t) -corenet_udp_sendrecv_generic_if(procmail_t) corenet_tcp_sendrecv_generic_node(procmail_t) -corenet_udp_sendrecv_generic_node(procmail_t) -corenet_tcp_sendrecv_all_ports(procmail_t) -corenet_udp_sendrecv_all_ports(procmail_t) -corenet_udp_bind_generic_node(procmail_t) -corenet_tcp_connect_spamd_port(procmail_t) + corenet_sendrecv_spamd_client_packets(procmail_t) +corenet_tcp_connect_spamd_port(procmail_t) +corenet_tcp_sendrecv_spamd_port(procmail_t) + corenet_sendrecv_comsat_client_packets(procmail_t) +corenet_tcp_connect_comsat_port(procmail_t) +corenet_tcp_sendrecv_comsat_port(procmail_t) + +corecmd_exec_bin(procmail_t) +corecmd_exec_shell(procmail_t) dev_read_urand(procmail_t) -fs_getattr_xattr_fs(procmail_t) +fs_getattr_all_fs(procmail_t) fs_search_auto_mountpoints(procmail_t) fs_rw_anon_inodefs_files(procmail_t) auth_use_nsswitch(procmail_t) -corecmd_exec_bin(procmail_t) -corecmd_exec_shell(procmail_t) -corecmd_read_bin_symlinks(procmail_t) - -files_read_etc_files(procmail_t) files_read_etc_runtime_files(procmail_t) -files_search_pids(procmail_t) -# for spamassasin files_read_usr_files(procmail_t) logging_send_syslog_msg(procmail_t) miscfiles_read_localization(procmail_t) -# only works until we define a different type for maildir -userdom_manage_user_home_content_dirs(procmail_t) -userdom_manage_user_home_content_files(procmail_t) -userdom_manage_user_home_content_symlinks(procmail_t) -userdom_manage_user_home_content_pipes(procmail_t) -userdom_manage_user_home_content_sockets(procmail_t) -userdom_user_home_dir_filetrans_user_home_content(procmail_t, { dir file lnk_file fifo_file sock_file }) - -# Do not audit attempts to access /root. -userdom_dontaudit_search_user_home_dirs(procmail_t) - -mta_manage_spool(procmail_t) -mta_read_queue(procmail_t) - -ifdef(`hide_broken_symptoms',` - mta_dontaudit_rw_queue(procmail_t) -') +userdom_search_user_home_dirs(procmail_t) tunable_policy(`use_nfs_home_dirs',` fs_manage_nfs_dirs(procmail_t) @@ -115,16 +96,32 @@ optional_policy(` ') optional_policy(` + cyrus_stream_connect(procmail_t) +') + +optional_policy(` + mta_manage_spool(procmail_t) + mta_read_config(procmail_t) + mta_read_queue(procmail_t) + mta_manage_mail_home_rw_content(procmail_t) + mta_home_filetrans_mail_home_rw(procmail_t, dir, "Maildir") +') + +optional_policy(` munin_dontaudit_search_lib(procmail_t) ') optional_policy(` - # for a bug in the postfix local program + nagios_search_spool(procmail_t) +') + +optional_policy(` postfix_dontaudit_rw_local_tcp_sockets(procmail_t) postfix_dontaudit_use_fds(procmail_t) postfix_read_spool_files(procmail_t) postfix_read_local_state(procmail_t) postfix_read_master_state(procmail_t) + postfix_rw_master_pipes(procmail_t) ') optional_policy(` @@ -133,7 +130,6 @@ optional_policy(` ') optional_policy(` - mta_read_config(procmail_t) sendmail_domtrans(procmail_t) sendmail_signal(procmail_t) sendmail_dontaudit_rw_tcp_sockets(procmail_t)