commit: b1bdc46e60bb68eb54844d999197cddfed0ec5ad Author: Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be> AuthorDate: Sun Aug 24 09:23:27 2014 +0000 Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org> CommitDate: Sun Sep 21 14:03:49 2014 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=b1bdc46e
Create mta wrapper Also temporarily rename the mta policy (instead of removing it) so we can consult it during development of the new mail infrastructure policy. --- policy/modules/contrib/{mta.fc => mta.fc.orig} | 0 policy/modules/contrib/mta.if | 544 ++++++------------------- policy/modules/contrib/{mta.if => mta.if.orig} | 0 policy/modules/contrib/mta.te | 408 ------------------- policy/modules/contrib/{mta.te => mta.te.orig} | 0 5 files changed, 121 insertions(+), 831 deletions(-) diff --git a/policy/modules/contrib/mta.fc b/policy/modules/contrib/mta.fc.orig similarity index 100% rename from policy/modules/contrib/mta.fc rename to policy/modules/contrib/mta.fc.orig diff --git a/policy/modules/contrib/mta.if b/policy/modules/contrib/mta.if index 48a2845..57c2e33 100644 --- a/policy/modules/contrib/mta.if +++ b/policy/modules/contrib/mta.if @@ -1,20 +1,7 @@ -## <summary>Common e-mail transfer agent policy.</summary> - -######################################## -## <summary> -## MTA stub interface. No access allowed. -## </summary> -## <param name="domain" unused="true"> -## <summary> -## Domain allowed access. -## </summary> -## </param> +## <summary>Wrapper for common e-mail transfer agent policy.</summary> # -interface(`mta_stub',` - gen_require(` - type sendmail_exec_t; - ') -') +# The mta policy is no longer supported in Gentoo and has been deprecated +# in favor of the mail policy. ####################################### ## <summary> @@ -27,41 +14,12 @@ interface(`mta_stub',` ## </param> # template(`mta_base_mail_template',` - gen_require(` - attribute user_mail_domain; - type sendmail_exec_t; - ') - - ######################################## - # - # Declarations - # - - type $1_mail_t, user_mail_domain; - application_domain($1_mail_t, sendmail_exec_t) - - type $1_mail_tmp_t; - files_tmp_file($1_mail_tmp_t) - - ######################################## - # - # Declarations - # - - manage_dirs_pattern($1_mail_t, $1_mail_tmp_t, $1_mail_tmp_t) - manage_files_pattern($1_mail_t, $1_mail_tmp_t, $1_mail_tmp_t) - files_tmp_filetrans($1_mail_t, $1_mail_tmp_t, { file dir }) - - auth_use_nsswitch($1_mail_t) - - optional_policy(` - postfix_domtrans_user_mail_handler($1_mail_t) - ') + refpolicywarn(`$0($*) has been deprecated.') ') ######################################## ## <summary> -## Role access for mta. +## Role access for mta (deprecated, use mail_role instead). ## </summary> ## <param name="role"> ## <summary> @@ -82,46 +40,14 @@ interface(`mta_role',` type user_mail_tmp_t, mail_home_rw_t; ') - roleattribute $1 user_mail_roles; - - # this is something i need to fix - # i dont know if and why it is needed - # will role attribute work? - role $1 types mta_user_agent; + refpolicywarn(`$0($*) has been deprecated. Please use mail_role instead.') - domtrans_pattern($2, sendmail_exec_t, user_mail_t) - allow $2 sendmail_exec_t:lnk_file read_lnk_file_perms; - - allow $2 { user_mail_t mta_user_agent }:process { ptrace signal_perms }; - ps_process_pattern($2, { user_mail_t mta_user_agent }) - - allow $2 mail_home_t:file { manage_file_perms relabel_file_perms }; - userdom_user_home_dir_filetrans($2, mail_home_t, file, ".esmtp_queue") - userdom_user_home_dir_filetrans($2, mail_home_t, file, ".forward") - userdom_user_home_dir_filetrans($2, mail_home_t, file, ".mailrc") - userdom_user_home_dir_filetrans($2, mail_home_t, file, "dead.letter") - - allow $2 mail_home_rw_t:dir { manage_dir_perms relabel_dir_perms }; - allow $2 mail_home_rw_t:file { manage_file_perms relabel_file_perms }; - allow $2 mail_home_rw_t:lnk_file { manage_lnk_file_perms relabel_lnk_file_perms }; - userdom_user_home_dir_filetrans($2, mail_home_rw_t, dir, "Maildir") - userdom_user_home_dir_filetrans($2, mail_home_rw_t, dir, ".maildir") - - allow $2 user_mail_tmp_t:dir { manage_dir_perms relabel_dir_perms }; - allow $2 user_mail_tmp_t:file { manage_file_perms relabel_file_perms }; - - optional_policy(` - exim_run($2, $1) - ') - - optional_policy(` - mailman_run($2, $1) - ') + mail_role($1, $2) ') ######################################## ## <summary> -## Make the specified domain usable for a mail server. +## Make the specified domain usable for a mail server (deprecated, use mail_*_agent_type instead). ## </summary> ## <param name="type"> ## <summary> @@ -139,13 +65,13 @@ interface(`mta_mailserver',` attribute mailserver_domain; ') - init_daemon_domain($1, $2) - typeattribute $1 mailserver_domain; + refpolicywarn(`$0($*) is deprecated, use mail_*_agent_type instead. Defaulting to mail_transfer_agent_type.') + mail_transfer_agent_type($1) ') ######################################## ## <summary> -## Make the specified type a MTA executable file. +## Make the specified type a MTA executable file (deprecated). ## </summary> ## <param name="type"> ## <summary> @@ -154,18 +80,13 @@ interface(`mta_mailserver',` ## </param> # interface(`mta_agent_executable',` - gen_require(` - attribute mta_exec_type; - ') - - typeattribute $1 mta_exec_type; - + refpolicywarn(`$0($*) is deprecated.') application_executable_file($1) ') ####################################### ## <summary> -## Read mta mail home files. +## Read mta mail home files (deprecated, use mail_read_home_files instead). ## </summary> ## <param name="domain"> ## <summary> @@ -174,18 +95,14 @@ interface(`mta_agent_executable',` ## </param> # interface(`mta_read_mail_home_files',` - gen_require(` - type mail_home_t; - ') - - userdom_search_user_home_dirs($1) - allow $1 mail_home_t:file read_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_read_home_files instead.') + mail_read_home_files($1) ') ####################################### ## <summary> ## Create, read, write, and delete -## mta mail home files. +## mta mail home files (deprecated, use mail_manage_home_files instead). ## </summary> ## <param name="domain"> ## <summary> @@ -194,19 +111,15 @@ interface(`mta_read_mail_home_files',` ## </param> # interface(`mta_manage_mail_home_files',` - gen_require(` - type mail_home_t; - ') - - userdom_search_user_home_dirs($1) - allow $1 mail_home_t:file manage_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_manage_home_files instead.') + mail_manage_home_files($1) ') ######################################## ## <summary> ## Create specified objects in user home ## directories with the generic mail -## home type. +## home type (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -225,17 +138,14 @@ interface(`mta_manage_mail_home_files',` ## </param> # interface(`mta_home_filetrans_mail_home',` - gen_require(` - type mail_home_t; - ') - - userdom_user_home_dir_filetrans($1, mail_home_t, $2, $3) + refpolicywarn(`$0($*) is deprecated, use the proper mail * agent type declarations. Defaulting to delivery agent.') + mail_delivery_agent_privs($1) ') ####################################### ## <summary> ## Create, read, write, and delete -## mta mail home rw content. +## mta mail home rw content (deprecated, use mail_manage_home_rw). ## </summary> ## <param name="domain"> ## <summary> @@ -244,21 +154,15 @@ interface(`mta_home_filetrans_mail_home',` ## </param> # interface(`mta_manage_mail_home_rw_content',` - gen_require(` - type mail_home_rw_t; - ') - - userdom_search_user_home_dirs($1) - manage_dirs_pattern($1, mail_home_rw_t, mail_home_rw_t) - manage_files_pattern($1, mail_home_rw_t, mail_home_rw_t) - manage_lnk_files_pattern($1, mail_home_rw_t, mail_home_rw_t) + refpolicywarn(`$0($*) is deprecated, use mail_manage_home_rw instead') + mail_manage_home_rw($1) ') ######################################## ## <summary> ## Create specified objects in user home ## directories with the generic mail -## home rw type. +## home rw type (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -277,16 +181,13 @@ interface(`mta_manage_mail_home_rw_content',` ## </param> # interface(`mta_home_filetrans_mail_home_rw',` - gen_require(` - type mail_home_rw_t; - ') - - userdom_user_home_dir_filetrans($1, mail_home_rw_t, $2, $3) + refpolicywarn(`$0($*) is deprecated, use the proper mail * agent type declarations. Defaulting to delivery agent.') + mail_delivery_agent_privs($1) ') ######################################## ## <summary> -## Make the specified type by a system MTA. +## Make the specified type by a system MTA (deprecated, use mail_content_type instead). ## </summary> ## <param name="type"> ## <summary> @@ -295,17 +196,14 @@ interface(`mta_home_filetrans_mail_home_rw',` ## </param> # interface(`mta_system_content',` - gen_require(` - attribute mailcontent_type; - ') - - typeattribute $1 mailcontent_type; + refpolicywarn(`$0($*) is deprecated, use mail_content_type instead.') + mail_content_type($1) ') ######################################## ## <summary> ## Modified mailserver interface for -## sendmail daemon use. +## sendmail daemon use (deprecated). ## </summary> ## <desc> ## <p> @@ -328,20 +226,15 @@ interface(`mta_system_content',` ## </param> # interface(`mta_sendmail_mailserver',` - gen_require(` - attribute mailserver_domain; - type sendmail_exec_t; - ') - - init_system_domain($1, sendmail_exec_t) + refpolicywarn(`$0($*) is deprecated, use the proper mail * agent type declarations. Defaulting to transfer agent.') + mail_transfer_agent_type($1) - typeattribute $1 mailserver_domain; ') ####################################### ## <summary> ## Make a type a mailserver type used -## for sending mail. +## for sending mail (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -350,17 +243,14 @@ interface(`mta_sendmail_mailserver',` ## </param> # interface(`mta_mailserver_sender',` - gen_require(` - attribute mailserver_sender; - ') - - typeattribute $1 mailserver_sender; + refpolicywarn(`$0($*) is deprecated, use the proper mail * agent type declarations. Defaulting to submission agent.') + mail_submission_agent_type($1) ') ####################################### ## <summary> ## Make a type a mailserver type used -## for delivering mail to local users. +## for delivering mail to local users (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -369,18 +259,15 @@ interface(`mta_mailserver_sender',` ## </param> # interface(`mta_mailserver_delivery',` - gen_require(` - attribute mailserver_delivery; - ') - - typeattribute $1 mailserver_delivery; + refpolicywarn(`$0($*) is deprecated, use mail_delivery_agent_type instead') + mail_delivery_agent_type($1) ') ####################################### ## <summary> ## Make a type a mailserver type used ## for sending mail on behalf of local -## users to the local mail spool. +## users to the local mail spool (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -389,16 +276,13 @@ interface(`mta_mailserver_delivery',` ## </param> # interface(`mta_mailserver_user_agent',` - gen_require(` - attribute mta_user_agent; - ') - - typeattribute $1 mta_user_agent; + refpolicywarn(`$0($*) is deprecated, use mail_delivery_agent_type instead') + mail_delivery_agent_type($1) ') ######################################## ## <summary> -## Send mail from the system. +## Send mail from the system (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -407,23 +291,8 @@ interface(`mta_mailserver_user_agent',` ## </param> # interface(`mta_send_mail',` - gen_require(` - type system_mail_t; - attribute mta_exec_type; - ') - - corecmd_search_bin($1) - domtrans_pattern($1, mta_exec_type, system_mail_t) - - allow $1 mta_exec_type:lnk_file read_lnk_file_perms; - - ifdef(`distro_gentoo',` - gen_require(` - attribute mta_user_agent; - ') - - dontaudit mta_user_agent $1:fd use; - ') + refpolicywarn(`$0($*) is deprecated, use mail_domtrans_sendmail instead') + mail_domtrans_sendmail($1) ') ######################################## @@ -452,19 +321,12 @@ interface(`mta_send_mail',` ## </param> # interface(`mta_sendmail_domtrans',` - gen_require(` - type sendmail_exec_t; - ') - - corecmd_search_bin($1) - domain_auto_trans($1, sendmail_exec_t, $2) - - allow $1 sendmail_exec_t:lnk_file read_lnk_file_perms; + refpolicywarn(`$0($*) is deprecated.') ') ######################################## ## <summary> -## Send signals to system mail. +## Send signals to system mail (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -474,11 +336,8 @@ interface(`mta_sendmail_domtrans',` # # interface(`mta_signal_system_mail',` - gen_require(` - type system_mail_t; - ') - - allow $1 system_mail_t:process signal; + refpolicywarn(`$0($*) is deprecated, mail_run_sendmail instead') + mail_run_sendmail($1) ') ######################################## @@ -492,11 +351,7 @@ interface(`mta_signal_system_mail',` ## </param> # interface(`mta_kill_system_mail',` - gen_require(` - type system_mail_t; - ') - - allow $1 system_mail_t:process sigkill; + refpolicywarn(`$0($*) is deprecated.') ') ######################################## @@ -510,17 +365,13 @@ interface(`mta_kill_system_mail',` ## </param> # interface(`mta_sendmail_exec',` - gen_require(` - type sendmail_exec_t; - ') - - corecmd_search_bin($1) - can_exec($1, sendmail_exec_t) + refpolicywarn(`$0($*) is deprecated, use mail_exec_sendmail instead.') + mail_exec_sendmail($1) ') ######################################## ## <summary> -## Read mail server configuration content. +## Read mail server configuration content (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -530,19 +381,13 @@ interface(`mta_sendmail_exec',` ## <rolecap/> # interface(`mta_read_config',` - gen_require(` - type etc_mail_t; - ') - - files_search_etc($1) - allow $1 etc_mail_t:dir list_dir_perms; - allow $1 etc_mail_t:file read_file_perms; - allow $1 etc_mail_t:lnk_file read_lnk_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_read_etc instead.') + mail_read_etc($1) ') ######################################## ## <summary> -## Write mail server configuration files. +## Write mail server configuration files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -552,17 +397,13 @@ interface(`mta_read_config',` ## <rolecap/> # interface(`mta_write_config',` - gen_require(` - type etc_mail_t; - ') - - files_search_etc($1) - write_files_pattern($1, etc_mail_t, etc_mail_t) + refpolicywarn(`$0($*) is deprecated, use mail_rw_etc instead.') + mail_rw_etc($1) ') ######################################## ## <summary> -## Read mail address alias files. +## Read mail address alias files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -571,21 +412,8 @@ interface(`mta_write_config',` ## </param> # interface(`mta_read_aliases',` - gen_require(` - type etc_aliases_t; - ') - - files_search_etc($1) - allow $1 etc_aliases_t:file read_file_perms; - - ifdef(`distro_gentoo',` - gen_require(` - type etc_mail_t; - ') - - search_dirs_pattern($1, etc_mail_t, etc_aliases_t) - read_files_pattern($1, etc_mail_t, etc_aliases_t) - ') + refpolicywarn(`$0($*) is deprecated, use mail_read_aliases instead.') + mail_read_aliases($1) ') ######################################## @@ -600,30 +428,15 @@ interface(`mta_read_aliases',` ## </param> # interface(`mta_manage_aliases',` - gen_require(` - type etc_aliases_t; - ') - - files_search_etc($1) - manage_files_pattern($1, etc_aliases_t, etc_aliases_t) - manage_lnk_files_pattern($1, etc_aliases_t, etc_aliases_t) - - ifdef(`distro_gentoo',` - gen_require(` - type etc_mail_t; - ') - - search_dirs_pattern($1, etc_mail_t, etc_aliases_t) - manage_files_pattern($1, etc_mail_t, etc_aliases_t) - manage_lnk_files_pattern($1, etc_mail_t, etc_aliases_t) - ') + refpolicywarn(`$0($*) is deprecated, use mail_manage_aliases instead.') + mail_manage_aliases($1) ') ######################################## ## <summary> ## Create specified object in generic ## etc directories with the mail address -## alias type. +## alias type (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -642,18 +455,15 @@ interface(`mta_manage_aliases',` ## </param> # interface(`mta_etc_filetrans_aliases',` - gen_require(` - type etc_aliases_t; - ') - - files_etc_filetrans($1, etc_aliases_t, $2, $3) + refpolicywarn(`$0($*) is deprecated, use mail_generic_etc_filetrans_aliases instead.') + mail_generic_etc_filetrans_aliases($1, $2, $3) ') ######################################## ## <summary> ## Create specified objects in specified ## directories with a type transition to -## the mail address alias type. +## the mail address alias type (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -677,47 +487,15 @@ interface(`mta_etc_filetrans_aliases',` ## </param> # interface(`mta_spec_filetrans_aliases',` - gen_require(` - type etc_aliases_t; - ') - - filetrans_pattern($1, $2, etc_aliases_t, $3, $4) -') - -######################################## -## <summary> -## Read and write mail alias files. -## </summary> -## <param name="domain"> -## <summary> -## Domain allowed access. -## </summary> -## </param> -## <rolecap/> -# -interface(`mta_rw_aliases',` - gen_require(` - type etc_aliases_t; - ') - - files_search_etc($1) - allow $1 etc_aliases_t:file rw_file_perms; - - ifdef(`distro_gentoo',` - gen_require(` - type etc_mail_t; - ') - - search_dirs_pattern($1, etc_mail_t, etc_aliases_t) - rw_files_pattern($1, etc_mail_t, etc_aliases_t) - ') + refpolicywarn(`$0($*) is deprecated, use mail_spec_filetrans_aliases instead.') + mail_spec_filetrans_aliases($1, $2, $3, $4) ') ####################################### ## <summary> ## Do not audit attempts to read ## and write TCP sockets of mail -## delivery domains. +## delivery domains (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -726,11 +504,8 @@ interface(`mta_rw_aliases',` ## </param> # interface(`mta_dontaudit_rw_delivery_tcp_sockets',` - gen_require(` - attribute mailserver_delivery; - ') - - dontaudit $1 mailserver_delivery:tcp_socket { read write }; + refpolicywarn(`$0($*) is deprecated, use mail_dontaudit_rw_delivery_agent_tcp_sockets instead.') + mail_dontaudit_rw_delivery_agent_tcp_sockets($1) ') ####################################### @@ -750,7 +525,7 @@ interface(`mta_tcp_connect_all_mailservers',` ####################################### ## <summary> ## Do not audit attempts to read -## mail spool symlinks. +## mail spool symlinks (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -759,16 +534,13 @@ interface(`mta_tcp_connect_all_mailservers',` ## </param> # interface(`mta_dontaudit_read_spool_symlinks',` - gen_require(` - type mail_spool_t; - ') - - dontaudit $1 mail_spool_t:lnk_file read; + refpolicywarn(`$0($*) is deprecated, use mail_dontaudit_read_queue_symlinks instead.') + mail_dontaudit_read_queue_symlinks($1) ') ######################################## ## <summary> -## Get attributes of mail spool content. +## Get attributes of mail spool content (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -777,20 +549,14 @@ interface(`mta_dontaudit_read_spool_symlinks',` ## </param> # interface(`mta_getattr_spool',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - allow $1 mail_spool_t:dir list_dir_perms; - getattr_files_pattern($1, mail_spool_t, mail_spool_t) - read_lnk_files_pattern($1, mail_spool_t, mail_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_getattr_queue instead.') + mail_getattr_queue($1) ') ######################################## ## <summary> ## Do not audit attempts to get -## attributes of mail spool files. +## attributes of mail spool files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -799,14 +565,8 @@ interface(`mta_getattr_spool',` ## </param> # interface(`mta_dontaudit_getattr_spool_files',` - gen_require(` - type mail_spool_t; - ') - - files_dontaudit_search_spool($1) - dontaudit $1 mail_spool_t:dir search_dir_perms; - dontaudit $1 mail_spool_t:lnk_file read_lnk_file_perms; - dontaudit $1 mail_spool_t:file getattr_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_dontaudit_getattr_queue instead.') + mail_dontaudit_getattr_queue($1) ') ####################################### @@ -837,17 +597,13 @@ interface(`mta_dontaudit_getattr_spool_files',` ## </param> # interface(`mta_spool_filetrans',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - filetrans_pattern($1, mail_spool_t, $2, $3, $4) + refpolicywarn(`$0($*) is deprecated, use mail_queue_filetrans instead.') + mail_queue_filetrans($1, $2, $3, $4) ') ####################################### ## <summary> -## Read mail spool files. +## Read mail spool files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -856,17 +612,13 @@ interface(`mta_spool_filetrans',` ## </param> # interface(`mta_read_spool_files',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - read_files_pattern($1, mail_spool_t, mail_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_read_queue_files instead.') + mail_read_queue_files($1) ') ######################################## ## <summary> -## Read and write mail spool files. +## Read and write mail spool files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -875,19 +627,13 @@ interface(`mta_read_spool_files',` ## </param> # interface(`mta_rw_spool',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - allow $1 mail_spool_t:dir list_dir_perms; - allow $1 mail_spool_t:file rw_file_perms; - allow $1 mail_spool_t:lnk_file read_lnk_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_rw_queue_files instead.') + mail_rw_queue_files($1) ') ####################################### ## <summary> -## Create, read, and write mail spool files. +## Create, read, and write mail spool files (deprecated) ## </summary> ## <param name="domain"> ## <summary> @@ -896,19 +642,13 @@ interface(`mta_rw_spool',` ## </param> # interface(`mta_append_spool',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - allow $1 mail_spool_t:dir list_dir_perms; - manage_files_pattern($1, mail_spool_t, mail_spool_t) - allow $1 mail_spool_t:lnk_file read_lnk_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_manage_queue_files instead.') + mail_manage_queue_files($1) ') ####################################### ## <summary> -## Delete mail spool files. +## Delete mail spool files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -917,18 +657,14 @@ interface(`mta_append_spool',` ## </param> # interface(`mta_delete_spool',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - delete_files_pattern($1, mail_spool_t, mail_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_delete_queue_files instead.') + mail_delete_queue_files($1) ') ######################################## ## <summary> ## Create, read, write, and delete -## mail spool content. +## mail spool content (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -937,21 +673,15 @@ interface(`mta_delete_spool',` ## </param> # interface(`mta_manage_spool',` - gen_require(` - type mail_spool_t; - ') - - files_search_spool($1) - manage_dirs_pattern($1, mail_spool_t, mail_spool_t) - manage_files_pattern($1, mail_spool_t, mail_spool_t) - manage_lnk_files_pattern($1, mail_spool_t, mail_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_manage_queue instead.') + mail_manage_queue($1) ') ####################################### ## <summary> ## Create specified objects in the ## mail queue spool directory with a -## private type. +## private type (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -975,17 +705,13 @@ interface(`mta_manage_spool',` ## </param> # interface(`mta_queue_filetrans',` - gen_require(` - type mqueue_spool_t; - ') - - files_search_spool($1) - filetrans_pattern($1, mqueue_spool_t, $2, $3, $4) + refpolicywarn(`$0($*) is deprecated, use mail_queue_filetrans instead.') + mail_queue_filetrans($1, $2, $3, $4) ') ######################################## ## <summary> -## Search mail queue directories. +## Search mail queue directories (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -994,17 +720,13 @@ interface(`mta_queue_filetrans',` ## </param> # interface(`mta_search_queue',` - gen_require(` - type mqueue_spool_t; - ') - - files_search_spool($1) - allow $1 mqueue_spool_t:dir search_dir_perms; + refpolicywarn(`$0($*) is deprecated, use mail_search_queue instead.') + mail_search_queue($1) ') ####################################### ## <summary> -## List mail queue directories. +## List mail queue directories (deprecated) ## </summary> ## <param name="domain"> ## <summary> @@ -1013,17 +735,13 @@ interface(`mta_search_queue',` ## </param> # interface(`mta_list_queue',` - gen_require(` - type mqueue_spool_t; - ') - - files_search_spool($1) - allow $1 mqueue_spool_t:dir list_dir_perms; + refpolicywarn(`$0($*) is deprecated, use mail_list_queue instead.') + mail_list_queue($1) ') ####################################### ## <summary> -## Read mail queue files. +## Read mail queue files (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -1032,18 +750,14 @@ interface(`mta_list_queue',` ## </param> # interface(`mta_read_queue',` - gen_require(` - type mqueue_spool_t; - ') - - files_search_spool($1) - read_files_pattern($1, mqueue_spool_t, mqueue_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_read_queue_files instead.') + mail_read_queue_files($1) ') ####################################### ## <summary> ## Do not audit attempts to read and -## write mail queue content. +## write mail queue content (deprecated) ## </summary> ## <param name="domain"> ## <summary> @@ -1052,18 +766,14 @@ interface(`mta_read_queue',` ## </param> # interface(`mta_dontaudit_rw_queue',` - gen_require(` - type mqueue_spool_t; - ') - - dontaudit $1 mqueue_spool_t:dir search_dir_perms; - dontaudit $1 mqueue_spool_t:file rw_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_dontaudit_rw_queue_files instead.') + mail_dontaudit_rw_queue_files($1) ') ######################################## ## <summary> ## Create, read, write, and delete -## mail queue content. +## mail queue content (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -1072,18 +782,13 @@ interface(`mta_dontaudit_rw_queue',` ## </param> # interface(`mta_manage_queue',` - gen_require(` - type mqueue_spool_t; - ') - - files_search_spool($1) - manage_dirs_pattern($1, mqueue_spool_t, mqueue_spool_t) - manage_files_pattern($1, mqueue_spool_t, mqueue_spool_t) + refpolicywarn(`$0($*) is deprecated, use mail_manage_queue instead.') + mail_manage_queue($1) ') ####################################### ## <summary> -## Read sendmail binary. +## Read sendmail binary (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -1092,17 +797,14 @@ interface(`mta_manage_queue',` ## </param> # interface(`mta_read_sendmail_bin',` - gen_require(` - type sendmail_exec_t; - ') - - allow $1 sendmail_exec_t:file read_file_perms; + refpolicywarn(`$0($*) is deprecated, use mail_read_sendmail_executable instead.') + mail_read_sendmail_executable($1) ') ####################################### ## <summary> ## Read and write unix domain stream -## sockets of all base mail domains. +## sockets of all base mail domains (deprecated). ## </summary> ## <param name="domain"> ## <summary> @@ -1111,9 +813,5 @@ interface(`mta_read_sendmail_bin',` ## </param> # interface(`mta_rw_user_mail_stream_sockets',` - gen_require(` - attribute user_mail_domain; - ') - - allow $1 user_mail_domain:unix_stream_socket rw_socket_perms; + refpolicywarn(`$0($*) is deprecated.') ') diff --git a/policy/modules/contrib/mta.if b/policy/modules/contrib/mta.if.orig similarity index 100% copy from policy/modules/contrib/mta.if copy to policy/modules/contrib/mta.if.orig diff --git a/policy/modules/contrib/mta.te b/policy/modules/contrib/mta.te index 51b3bbb..e2048ee 100644 --- a/policy/modules/contrib/mta.te +++ b/policy/modules/contrib/mta.te @@ -1,410 +1,2 @@ policy_module(mta, 2.8.0) -######################################## -# -# Declarations -# - -attribute mailcontent_type; -attribute mta_exec_type; -attribute mta_user_agent; -attribute mailserver_delivery; -attribute mailserver_domain; -attribute mailserver_sender; - -attribute user_mail_domain; - -attribute_role user_mail_roles; - -type etc_aliases_t; -files_type(etc_aliases_t) - -type etc_mail_t; -files_config_file(etc_mail_t) - -type mail_home_t alias mail_forward_t; -userdom_user_home_content(mail_home_t) - -type mail_home_rw_t; -userdom_user_home_content(mail_home_rw_t) - -type mqueue_spool_t; -files_mountpoint(mqueue_spool_t) - -type mail_spool_t; -files_mountpoint(mail_spool_t) - -type sendmail_exec_t; -mta_agent_executable(sendmail_exec_t) - -mta_base_mail_template(system) -role system_r types system_mail_t; - -mta_base_mail_template(user) -typealias user_mail_t alias { staff_mail_t sysadm_mail_t }; -typealias user_mail_t alias { auditadm_mail_t secadm_mail_t }; -userdom_user_application_type(user_mail_t) -role user_mail_roles types user_mail_t; - -typealias user_mail_tmp_t alias { staff_mail_tmp_t sysadm_mail_tmp_t }; -typealias user_mail_tmp_t alias { auditadm_mail_tmp_t secadm_mail_tmp_t }; -userdom_user_tmp_file(user_mail_tmp_t) - -######################################## -# -# Common base mail policy -# - -allow user_mail_domain self:capability { setuid setgid chown }; -allow user_mail_domain self:process { signal_perms setrlimit }; -allow user_mail_domain self:fifo_file rw_fifo_file_perms; - -allow user_mail_domain mta_exec_type:file entrypoint; - -allow user_mail_domain mail_home_t:file { append_file_perms read_file_perms }; - -manage_dirs_pattern(user_mail_domain, mail_home_rw_t, mail_home_rw_t) -manage_files_pattern(user_mail_domain, mail_home_rw_t, mail_home_rw_t) -manage_lnk_files_pattern(user_mail_domain, mail_home_rw_t, mail_home_rw_t) -userdom_user_home_dir_filetrans(user_mail_domain, mail_home_rw_t, dir, "Maildir") -userdom_user_home_dir_filetrans(user_mail_domain, mail_home_rw_t, dir, ".maildir") - -read_files_pattern(user_mail_domain, { etc_mail_t etc_aliases_t }, { etc_mail_t etc_aliases_t }) - -manage_files_pattern(user_mail_domain, { mqueue_spool_t mail_spool_t }, { mqueue_spool_t mail_spool_t }) -read_lnk_files_pattern(user_mail_domain, { mqueue_spool_t mail_spool_t }, { mqueue_spool_t mail_spool_t }) - -allow user_mail_domain sendmail_exec_t:lnk_file read_lnk_file_perms; - -can_exec(user_mail_domain, { mta_exec_type sendmail_exec_t }) - -kernel_read_crypto_sysctls(user_mail_domain) -kernel_read_system_state(user_mail_domain) -kernel_read_kernel_sysctls(user_mail_domain) -kernel_read_network_state(user_mail_domain) -kernel_request_load_module(user_mail_domain) - -corenet_all_recvfrom_netlabel(user_mail_domain) -corenet_tcp_sendrecv_generic_if(user_mail_domain) -corenet_tcp_sendrecv_generic_node(user_mail_domain) - -corenet_sendrecv_all_client_packets(user_mail_domain) -corenet_tcp_connect_all_ports(user_mail_domain) -corenet_tcp_sendrecv_all_ports(user_mail_domain) - -corecmd_exec_bin(user_mail_domain) - -dev_read_urand(user_mail_domain) - -domain_use_interactive_fds(user_mail_domain) - -files_read_etc_runtime_files(user_mail_domain) -files_read_usr_files(user_mail_domain) -files_search_spool(user_mail_domain) -files_dontaudit_search_pids(user_mail_domain) - -fs_getattr_all_fs(user_mail_domain) - -init_dontaudit_rw_utmp(user_mail_domain) - -logging_send_syslog_msg(user_mail_domain) - -miscfiles_read_localization(user_mail_domain) - -tunable_policy(`use_samba_home_dirs',` - fs_manage_cifs_dirs(user_mail_domain) - fs_manage_cifs_files(user_mail_domain) - fs_read_cifs_symlinks(user_mail_domain) -') - -tunable_policy(`use_nfs_home_dirs',` - fs_manage_nfs_dirs(user_mail_domain) - fs_manage_nfs_files(user_mail_domain) - fs_read_nfs_symlinks(user_mail_domain) -') - -optional_policy(` - courier_manage_spool_dirs(user_mail_domain) - courier_manage_spool_files(user_mail_domain) - courier_rw_spool_pipes(user_mail_domain) -') - -optional_policy(` - exim_domtrans(user_mail_domain) - exim_manage_log(user_mail_domain) - exim_manage_spool_files(user_mail_domain) - exim_read_var_lib_files(user_mail_domain) -') - -optional_policy(` - files_getattr_tmp_dirs(user_mail_domain) - - postfix_exec_master(user_mail_domain) - postfix_read_config(user_mail_domain) - postfix_search_spool(user_mail_domain) - postfix_rw_inherited_master_pipes(user_mail_domain) - - ifdef(`distro_redhat',` - postfix_config_filetrans(user_mail_domain, etc_aliases_t, { dir file lnk_file sock_file fifo_file }) - ') -') - -optional_policy(` - procmail_exec(user_mail_domain) -') - -optional_policy(` - qmail_domtrans_inject(user_mail_domain) -') - -optional_policy(` - sendmail_manage_log(user_mail_domain) - sendmail_log_filetrans_sendmail_log(user_mail_domain, file) -') - -optional_policy(` - uucp_manage_spool(user_mail_domain) -') - -######################################## -# -# System local policy -# - -allow system_mail_t self:capability { dac_override fowner }; - -read_files_pattern(system_mail_t, etc_mail_t, etc_mail_t) - -read_files_pattern(system_mail_t, mailcontent_type, mailcontent_type) - -allow system_mail_t mail_home_t:file manage_file_perms; -userdom_user_home_dir_filetrans(system_mail_t, mail_home_t, file, ".esmtp_queue") -userdom_user_home_dir_filetrans(system_mail_t, mail_home_t, file, ".forward") -userdom_user_home_dir_filetrans(system_mail_t, mail_home_t, file, ".mailrc") -userdom_user_home_dir_filetrans(system_mail_t, mail_home_t, file, "dead.letter") - -allow system_mail_t user_mail_domain:dir list_dir_perms; -allow system_mail_t user_mail_domain:file read_file_perms; -allow system_mail_t user_mail_domain:lnk_file read_lnk_file_perms; - -corecmd_exec_shell(system_mail_t) - -dev_read_rand(system_mail_t) -dev_read_sysfs(system_mail_t) - -fs_rw_anon_inodefs_files(system_mail_t) - -selinux_getattr_fs(system_mail_t) - -term_dontaudit_use_unallocated_ttys(system_mail_t) - -init_use_script_ptys(system_mail_t) - -userdom_use_user_terminals(system_mail_t) - -optional_policy(` - apache_read_squirrelmail_data(system_mail_t) - apache_append_squirrelmail_data(system_mail_t) - apache_dontaudit_append_log(system_mail_t) - apache_dontaudit_rw_stream_sockets(system_mail_t) - apache_dontaudit_rw_tcp_sockets(system_mail_t) - apache_dontaudit_rw_sys_script_stream_sockets(system_mail_t) -') - -optional_policy(` - arpwatch_manage_tmp_files(system_mail_t) - - ifdef(`hide_broken_symptoms',` - arpwatch_dontaudit_rw_packet_sockets(system_mail_t) - ') -') - -optional_policy(` - bugzilla_search_content(system_mail_t) - bugzilla_dontaudit_rw_stream_sockets(system_mail_t) -') - -optional_policy(` - clamav_stream_connect(system_mail_t) - clamav_append_log(system_mail_t) -') - -optional_policy(` - cron_read_system_job_tmp_files(system_mail_t) - cron_dontaudit_write_pipes(system_mail_t) - cron_rw_system_job_stream_sockets(system_mail_t) -') - -optional_policy(` - courier_stream_connect_authdaemon(system_mail_t) -') - -optional_policy(` - cvs_read_data(system_mail_t) -') - -optional_policy(` - fail2ban_dontaudit_rw_stream_sockets(system_mail_t) - fail2ban_append_log(system_mail_t) - fail2ban_rw_inherited_tmp_files(system_mail_t) -') - -optional_policy(` - logrotate_read_tmp_files(system_mail_t) -') - -optional_policy(` - logwatch_read_tmp_files(system_mail_t) -') - -optional_policy(` - milter_getattr_all_sockets(system_mail_t) -') - -optional_policy(` - nagios_read_tmp_files(system_mail_t) -') - -optional_policy(` - manage_dirs_pattern(system_mail_t, etc_aliases_t, etc_aliases_t) - manage_files_pattern(system_mail_t, etc_aliases_t, etc_aliases_t) - manage_lnk_files_pattern(system_mail_t, etc_aliases_t, etc_aliases_t) - manage_fifo_files_pattern(system_mail_t, etc_aliases_t, etc_aliases_t) - manage_sock_files_pattern(system_mail_t, etc_aliases_t, etc_aliases_t) - files_etc_filetrans(system_mail_t, etc_aliases_t, { file lnk_file sock_file fifo_file }) -') - -optional_policy(` - sxid_read_log(system_mail_t) -') - -optional_policy(` - userdom_dontaudit_use_user_ptys(system_mail_t) - - optional_policy(` - cron_dontaudit_append_system_job_tmp_files(system_mail_t) - ') -') - -optional_policy(` - spamassassin_stream_connect_spamd(system_mail_t) -') - -optional_policy(` - smartmon_read_tmp_files(system_mail_t) -') - -######################################## -# -# MTA user agent local policy -# - -userdom_use_user_terminals(mta_user_agent) - -optional_policy(` - apache_append_log(mta_user_agent) -') - -optional_policy(` - arpwatch_manage_tmp_files(mta_user_agent) - - ifdef(`hide_broken_symptoms',` - arpwatch_dontaudit_rw_packet_sockets(mta_user_agent) - ') - - optional_policy(` - cron_read_system_job_tmp_files(mta_user_agent) - ') -') - -######################################## -# -# Mailserver delivery local policy -# - -allow mailserver_delivery self:fifo_file rw_fifo_file_perms; - -allow mailserver_delivery mail_spool_t:dir list_dir_perms; -create_files_pattern(mailserver_delivery, mail_spool_t, mail_spool_t) -read_files_pattern(mailserver_delivery, mail_spool_t, mail_spool_t) -append_files_pattern(mailserver_delivery, mail_spool_t, mail_spool_t) -create_lnk_files_pattern(mailserver_delivery, mail_spool_t, mail_spool_t) -read_lnk_files_pattern(mailserver_delivery, mail_spool_t, mail_spool_t) - -manage_dirs_pattern(mailserver_delivery, mail_home_rw_t, mail_home_rw_t) -manage_files_pattern(mailserver_delivery, { mail_home_t mail_home_rw_t }, { mail_home_t mail_home_rw_t }) -manage_lnk_files_pattern(mailserver_delivery, mail_home_rw_t, mail_home_rw_t) -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_t, file, ".esmtp_queue") -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_t, file, ".forward") -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_t, file, ".mailrc") -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_t, file, "dead.letter") -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_rw_t, dir, "Maildir") -userdom_user_home_dir_filetrans(mailserver_delivery, mail_home_rw_t, dir, ".maildir") - -read_files_pattern(mailserver_delivery, system_mail_tmp_t, system_mail_tmp_t) - -tunable_policy(`use_samba_home_dirs',` - fs_manage_cifs_dirs(mailserver_delivery) - fs_manage_cifs_files(mailserver_delivery) - fs_read_cifs_symlinks(mailserver_delivery) -') - -tunable_policy(`use_nfs_home_dirs',` - fs_manage_nfs_dirs(mailserver_delivery) - fs_manage_nfs_files(mailserver_delivery) - fs_read_nfs_symlinks(mailserver_delivery) -') - -optional_policy(` - arpwatch_search_data(mailserver_delivery) -') - -optional_policy(` - dovecot_manage_spool(mailserver_delivery) - dovecot_domtrans_deliver(mailserver_delivery) -') - -optional_policy(` - files_search_var_lib(mailserver_delivery) - - mailman_domtrans(mailserver_delivery) - mailman_read_data_symlinks(mailserver_delivery) -') - -optional_policy(` - postfix_rw_inherited_master_pipes(mailserver_delivery) -') - -optional_policy(` - uucp_domtrans_uux(mailserver_delivery) -') - -######################################## -# -# User local policy -# - -manage_files_pattern(user_mail_t, mail_home_t, mail_home_t) -userdom_user_home_dir_filetrans(user_mail_t, mail_home_t, file, ".esmtp_queue") -userdom_user_home_dir_filetrans(user_mail_t, mail_home_t, file, ".forward") -userdom_user_home_dir_filetrans(user_mail_t, mail_home_t, file, ".mailrc") -userdom_user_home_dir_filetrans(user_mail_t, mail_home_t, file, "dead.letter") - -dev_read_sysfs(user_mail_t) - -userdom_use_user_terminals(user_mail_t) - -optional_policy(` - allow user_mail_t self:capability dac_override; - - userdom_rw_user_tmp_files(user_mail_t) - - postfix_read_config(user_mail_t) - postfix_list_spool(user_mail_t) -') - -ifdef(`distro_gentoo',` - optional_policy(` - at_rw_inherited_job_log_files(system_mail_t) - ') -') diff --git a/policy/modules/contrib/mta.te b/policy/modules/contrib/mta.te.orig similarity index 100% copy from policy/modules/contrib/mta.te copy to policy/modules/contrib/mta.te.orig