Chris PeBenito 17de1b
## <summary>Filter used for removing unsolicited email.</summary>
Chris PeBenito 17de1b
Chris PeBenito 296273
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 296273
##	Role access for spamassassin
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 296273
## <param name="role">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 296273
##	Role allowed access
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 296273
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 296273
##	User domain for the role
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 296273
interface(`spamassassin_role',`
Chris PeBenito 6b19be
	gen_require(`
Chris PeBenito 296273
		type spamc_t, spamc_exec_t, spamc_tmp_t;
Chris PeBenito 296273
		type spamassassin_t, spamassassin_exec_t;
Chris PeBenito 296273
		type spamassassin_home_t, spamassassin_tmp_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	role $1 types { spamc_t spamassassin_t };
Chris PeBenito 350b6a
Chris PeBenito 296273
	domtrans_pattern($2, spamassassin_exec_t, spamassassin_t)
Chris PeBenito 296273
	ps_process_pattern($2, spamassassin_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	domtrans_pattern($2, spamc_exec_t, spamc_t)
Chris PeBenito 296273
	ps_process_pattern($2, spamc_t)
Chris PeBenito 17de1b
Chris PeBenito 296273
	manage_dirs_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 296273
	manage_files_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 296273
	manage_lnk_files_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 296273
	relabel_dirs_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 296273
	relabel_files_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 296273
	relabel_lnk_files_pattern($2, spamassassin_home_t, spamassassin_home_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute the standalone spamassassin
Chris PeBenito 17de1b
##	program in the caller directory.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_exec',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamassassin_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 0bfccd
	can_exec($1, spamassassin_exec_t)
Chris PeBenito 17de1b
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Singnal the spam assassin daemon
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito ff8f0a
##	<summary>
Chris PeBenito a72e42
##	Domain allowed access.
Chris PeBenito ff8f0a
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_signal_spamd',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamd_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	allow $1 spamd_t:process signal;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute the spamassassin daemon
Chris PeBenito 17de1b
##	program in the caller directory.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_exec_spamd',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamd_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 0bfccd
	can_exec($1, spamd_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito ff8f0a
##	Execute spamassassin client in the spamassassin client domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Dominick Grift 288845
##	Domain allowed to transition.
Chris PeBenito 296273
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 296273
interface(`spamassassin_domtrans_client',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type spamc_t, spamc_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	domtrans_pattern($1, spamc_exec_t, spamc_t)
Dan Walsh 3eaa99
	allow $1 spamc_exec_t:file ioctl;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Send kill signal to spamassassin client
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`spamassassin_kill_client',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type spamc_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 spamc_t:process sigkill;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Manage spamc home files.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`spamassassin_manage_home_client',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type spamc_home_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	manage_dirs_pattern($1, spamc_home_t, spamc_home_t)
Dan Walsh 3eaa99
	manage_files_pattern($1, spamc_home_t, spamc_home_t)
Dan Walsh 3eaa99
	manage_lnk_files_pattern($1, spamc_home_t, spamc_home_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Execute the spamassassin client
Chris PeBenito 17de1b
##	program in the caller directory.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 17de1b
##	<summary>
Chris PeBenito 17de1b
##	Domain allowed access.
Chris PeBenito 17de1b
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_exec_client',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamc_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 0bfccd
	can_exec($1, spamc_exec_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 296273
##	Execute spamassassin standalone client in the user spamassassin domain.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito 296273
##	<summary>
Dominick Grift 288845
##	Domain allowed to transition.
Chris PeBenito 296273
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 296273
interface(`spamassassin_domtrans_local_client',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 296273
		type spamassassin_t, spamassassin_exec_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 296273
	domtrans_pattern($1, spamassassin_exec_t, spamassassin_t)
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 59bedc
##	read spamd lib files.
Chris PeBenito 59bedc
## </summary>
Chris PeBenito 59bedc
## <param name="domain">
Chris PeBenito 59bedc
##	<summary>
Chris PeBenito 59bedc
##	Domain allowed access.
Chris PeBenito 59bedc
##	</summary>
Chris PeBenito 59bedc
## </param>
Chris PeBenito 59bedc
#
Chris PeBenito 59bedc
interface(`spamassassin_read_lib_files',`
Chris PeBenito 59bedc
	gen_require(`
Chris PeBenito 59bedc
		type spamd_var_lib_t;
Chris PeBenito 59bedc
	')
Chris PeBenito 59bedc
Chris PeBenito 59bedc
	files_search_var_lib($1)
Dan Walsh 3eaa99
	list_dirs_pattern($1, spamd_var_lib_t, spamd_var_lib_t)
Chris PeBenito 0bfccd
	read_files_pattern($1, spamd_var_lib_t, spamd_var_lib_t)
Dan Walsh 3eaa99
	read_lnk_files_pattern($1, spamd_var_lib_t, spamd_var_lib_t)
Chris PeBenito 59bedc
')
Chris PeBenito 59bedc
Chris PeBenito 59bedc
########################################
Chris PeBenito 59bedc
## <summary>
Chris PeBenito 59bedc
##	Create, read, write, and delete
Chris PeBenito 59bedc
##	spamd lib files.
Chris PeBenito 59bedc
## </summary>
Chris PeBenito 59bedc
## <param name="domain">
Chris PeBenito 59bedc
##	<summary>
Chris PeBenito 59bedc
##	Domain allowed access.
Chris PeBenito 59bedc
##	</summary>
Chris PeBenito 59bedc
## </param>
Chris PeBenito 59bedc
#
Chris PeBenito 59bedc
interface(`spamassassin_manage_lib_files',`
Chris PeBenito 59bedc
	gen_require(`
Chris PeBenito 59bedc
		type spamd_var_lib_t;
Chris PeBenito 59bedc
	')
Chris PeBenito 59bedc
Chris PeBenito 59bedc
	files_search_var_lib($1)
Chris PeBenito 0bfccd
	manage_files_pattern($1, spamd_var_lib_t, spamd_var_lib_t)
Chris PeBenito 59bedc
')
Chris PeBenito 59bedc
Chris PeBenito 59bedc
########################################
Chris PeBenito 59bedc
## <summary>
Chris PeBenito ff8f0a
##	Read temporary spamd file.
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito ff8f0a
##	<summary>
Chris PeBenito a72e42
##	Domain allowed access.
Chris PeBenito ff8f0a
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_read_spamd_tmp_files',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamd_tmp_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito c0868a
	allow $1 spamd_tmp_t:file read_file_perms;
Chris PeBenito 17de1b
')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
########################################
Chris PeBenito 17de1b
## <summary>
Chris PeBenito 17de1b
##	Do not audit attempts to get attributes of temporary
Chris PeBenito 17de1b
##	spamd sockets/
Chris PeBenito 17de1b
## </summary>
Chris PeBenito 17de1b
## <param name="domain">
Chris PeBenito ff8f0a
##	<summary>
Chris PeBenito 17de1b
##	Domain to not audit.
Chris PeBenito ff8f0a
##	</summary>
Chris PeBenito 17de1b
## </param>
Chris PeBenito 17de1b
#
Chris PeBenito 17de1b
interface(`spamassassin_dontaudit_getattr_spamd_tmp_sockets',`
Chris PeBenito 17de1b
	gen_require(`
Chris PeBenito 17de1b
		type spamd_tmp_t;
Chris PeBenito 17de1b
	')
Chris PeBenito 17de1b
Chris PeBenito 17de1b
	dontaudit $1 spamd_tmp_t:sock_file getattr;
Chris PeBenito 17de1b
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Connect to run spamd.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed to connect.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`spamd_stream_connect',`
Dan Walsh 3eaa99
	gen_require(`
Dominick Grift c5cadd
		type spamd_t, spamd_var_run_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	stream_connect_pattern($1, spamd_var_run_t, spamd_var_run_t, spamd_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	All of the rules required to administrate
Dan Walsh 3eaa99
##	an spamassassin environment
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <param name="role">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	The role to be allowed to manage the spamassassin domain.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <rolecap/>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`spamassassin_spamd_admin',`
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type spamd_t, spamd_tmp_t, spamd_log_t;
Dan Walsh 3eaa99
		type spamd_spool_t, spamd_var_lib_t, spamd_var_run_t;
Dan Walsh 3eaa99
		type spamd_initrc_exec_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 spamd_t:process { ptrace signal_perms };
Dan Walsh 3eaa99
	ps_process_pattern($1, spamd_t)
Dan Walsh 3eaa99
		
Dan Walsh 3eaa99
	init_labeled_script_domtrans($1, spamd_initrc_exec_t)
Dan Walsh 3eaa99
	domain_system_change_exemption($1)
Dan Walsh 3eaa99
	role_transition $2 spamd_initrc_exec_t system_r;
Dan Walsh 3eaa99
	allow $2 system_r;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_list_tmp($1)
Dan Walsh 3eaa99
	admin_pattern($1, spamd_tmp_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	logging_list_logs($1)
Dan Walsh 3eaa99
	admin_pattern($1, spamd_log_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_list_spool($1)
Dan Walsh 3eaa99
	admin_pattern($1, spamd_spool_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_list_var_lib($1)
Dan Walsh 3eaa99
	admin_pattern($1, spamd_var_lib_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	files_list_pids($1)
Dan Walsh 3eaa99
	admin_pattern($1, spamd_var_run_t)
Dan Walsh 3eaa99
')