diff options
Diffstat (limited to 'policy/modules/services/postgrey.if')
-rw-r--r-- | policy/modules/services/postgrey.if | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/policy/modules/services/postgrey.if b/policy/modules/services/postgrey.if new file mode 100644 index 000000000..d63198e92 --- /dev/null +++ b/policy/modules/services/postgrey.if @@ -0,0 +1,83 @@ +## <summary>Postfix grey-listing server.</summary> + +######################################## +## <summary> +## Connect to postgrey using a unix +## domain stream socket. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +interface(`postgrey_stream_connect',` + gen_require(` + type postgrey_var_run_t, postgrey_t, postgrey_spool_t; + ') + + files_search_pids($1) + files_search_spool($1) + stream_connect_pattern($1, { postgrey_spool_t postgrey_var_run_t }, { postgrey_spool_t postgrey_var_run_t }, postgrey_t) +') + +######################################## +## <summary> +## Search spool directories. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +interface(`postgrey_search_spool',` + gen_require(` + type postgrey_spool_t; + ') + + files_search_spool($1) + allow $1 postgrey_spool_t:dir search_dir_perms; +') + +######################################## +## <summary> +## All of the rules required to +## administrate an postgrey environment. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +## <param name="role"> +## <summary> +## Role allowed access. +## </summary> +## </param> +## <rolecap/> +# +interface(`postgrey_admin',` + gen_require(` + type postgrey_t, postgrey_etc_t, postgrey_spool_t; + type postgrey_var_lib_t, postgrey_var_run_t; + type postgrey_initrc_exec_t; + ') + + allow $1 postgrey_t:process { ptrace signal_perms }; + ps_process_pattern($1, postgrey_t) + + init_startstop_service($1, $2, postgrey_t, postgrey_initrc_exec_t) + + files_list_etc($1) + admin_pattern($1, postgrey_etc_t) + + files_list_var_lib($1) + admin_pattern($1, postgrey_var_lib_t) + + files_list_spool($1) + admin_pattern($1, postgrey_spool_t) + + files_list_pids($1) + admin_pattern($1, postgrey_var_run_t) +') |