e120ed9
e120ed9
## <summary>policy for pki</summary>
e120ed9
########################################
e120ed9
## <summary>
e120ed9
##      Allow read and write pki cert files.
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##      <summary>
e120ed9
##      Domain allowed access.
e120ed9
##      </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_rw_tomcat_cert',`
e120ed9
        gen_require(`
e120ed9
                type pki_tomcat_cert_t;
1e0c581
				type pki_tomcat_etc_rw_t;
e120ed9
        ')
e120ed9
1e0c581
		allow $1 pki_tomcat_etc_rw_t:dir search_dir_perms;
e120ed9
        rw_files_pattern($1, pki_tomcat_cert_t, pki_tomcat_cert_t)
e120ed9
')
e120ed9
e120ed9
########################################
e120ed9
## <summary>
e120ed9
##	Create a set of derived types for apache
e120ed9
##	web content.
e120ed9
## </summary>
e120ed9
## <param name="prefix">
e120ed9
##	<summary>
e120ed9
##	The prefix to be used for deriving type names.
e120ed9
##	</summary>
e120ed9
## </param>
e120ed9
#
e120ed9
template(`pki_apache_template',`
e120ed9
	gen_require(`
e120ed9
		attribute pki_apache_domain;
e120ed9
		attribute pki_apache_config, pki_apache_var_lib, pki_apache_var_run;
e120ed9
		attribute pki_apache_executable, pki_apache_script, pki_apache_var_log;
e120ed9
	')
e120ed9
e120ed9
	########################################
e120ed9
	#
e120ed9
	# Declarations
e120ed9
	#
e120ed9
e120ed9
	type $1_t, pki_apache_domain;
e120ed9
	type $1_exec_t, pki_apache_executable;
e120ed9
	domain_type($1_t)
e120ed9
	init_daemon_domain($1_t, $1_exec_t)
e120ed9
e120ed9
	type $1_script_exec_t, pki_apache_script;
e120ed9
	init_script_file($1_script_exec_t)
e120ed9
e120ed9
	type $1_etc_rw_t, pki_apache_config;
e120ed9
	files_type($1_etc_rw_t)
e120ed9
e120ed9
	type $1_var_run_t, pki_apache_var_run;
e120ed9
	files_pid_file($1_var_run_t)
e120ed9
e120ed9
	type $1_var_lib_t, pki_apache_var_lib;
e120ed9
	files_type($1_var_lib_t)
e120ed9
e120ed9
	type $1_log_t, pki_apache_var_log;
e120ed9
	logging_log_file($1_log_t)
e120ed9
e120ed9
	type $1_lock_t;
e120ed9
	files_lock_file($1_lock_t)
e120ed9
e120ed9
	########################################
e120ed9
	#
e120ed9
	# $1 local policy
e120ed9
	#
e120ed9
e120ed9
	files_read_etc_files($1_t)
e120ed9
	allow $1_t $1_etc_rw_t:lnk_file read;
e120ed9
e120ed9
	manage_dirs_pattern($1_t, $1_etc_rw_t, $1_etc_rw_t)
e120ed9
	manage_files_pattern($1_t, $1_etc_rw_t, $1_etc_rw_t)
e120ed9
	files_etc_filetrans($1_t,$1_etc_rw_t, { file dir })
e120ed9
e120ed9
	manage_dirs_pattern($1_t, $1_var_run_t,  $1_var_run_t)
e120ed9
	manage_files_pattern($1_t, $1_var_run_t,  $1_var_run_t)
e120ed9
	files_pid_filetrans($1_t,$1_var_run_t, { file dir })
e120ed9
e120ed9
	manage_dirs_pattern($1_t, $1_var_lib_t,  $1_var_lib_t)
e120ed9
	manage_files_pattern($1_t, $1_var_lib_t,  $1_var_lib_t)
e120ed9
	read_lnk_files_pattern($1_t, $1_var_lib_t, $1_var_lib_t)
e120ed9
	files_var_lib_filetrans($1_t, $1_var_lib_t, { file dir } )
e120ed9
e120ed9
	manage_dirs_pattern($1_t, $1_log_t,  $1_log_t)
e120ed9
	manage_files_pattern($1_t, $1_log_t,  $1_log_t)
e120ed9
	logging_log_filetrans($1_t, $1_log_t, { file dir } )
e120ed9
e120ed9
	manage_dirs_pattern($1_t, $1_lock_t, $1_lock_t)
e120ed9
	manage_files_pattern($1_t, $1_lock_t, $1_lock_t)
e120ed9
	manage_lnk_files_pattern($1_t, $1_lock_t, $1_lock_t)
e120ed9
	files_lock_filetrans($1_t, $1_lock_t, { dir file lnk_file })
e120ed9
e120ed9
	#talk to lunasa hsm
e120ed9
	logging_send_syslog_msg($1_t)
e120ed9
e120ed9
	kernel_read_kernel_sysctls($1_t)
e120ed9
	kernel_read_system_state($1_t)
e120ed9
5f41e50
	corenet_all_recvfrom_unlabeled($1_t)
5f41e50
e120ed9
	# need to resolve addresses?
e120ed9
	auth_use_nsswitch($1_t)
e120ed9
e120ed9
		#pki_apache_domain_signal(httpd_t)
e120ed9
		#pki_apache_domain_signal(httpd_t)
e120ed9
		#pki_manage_apache_run(httpd_t)
e120ed9
		#pki_manage_apache_config_files(httpd_t)
e120ed9
		#pki_manage_apache_log_files(httpd_t)
e120ed9
		#pki_manage_apache_lib(httpd_t)
e120ed9
')
e120ed9
e120ed9
#######################################
e120ed9
## <summary>
e120ed9
##  Send a null signal to pki apache domains.
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_apache_domain_signal',`
e120ed9
    gen_require(`
3961d28
        attribute pki_apache_domain;
e120ed9
    ')
e120ed9
e120ed9
    allow $1 pki_apache_domain:process signal;
e120ed9
')
e120ed9
e120ed9
#######################################
e120ed9
## <summary>
e120ed9
##  Send a null signal to pki apache domains.
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_apache_domain_signull',`
e120ed9
    gen_require(`
3961d28
        attribute pki_apache_domain;
e120ed9
    ')
e120ed9
e120ed9
    allow $1 pki_apache_domain:process signull;
e120ed9
')
e120ed9
e120ed9
###################################
e120ed9
## <summary>
e120ed9
##  Allow domain to read pki apache subsystem pid files
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_manage_apache_run',`
e120ed9
    gen_require(`
e120ed9
        attribute pki_apache_var_run;
e120ed9
    ')
e120ed9
e120ed9
    files_search_var_lib($1)
e120ed9
    read_files_pattern($1, pki_apache_var_run, pki_apache_var_run)
e120ed9
')
e120ed9
e120ed9
####################################
e120ed9
## <summary>
e120ed9
##  Allow domain to manage pki apache subsystem lib files
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_manage_apache_lib',`
e120ed9
    gen_require(`
e120ed9
        attribute pki_apache_var_lib;
e120ed9
    ')
e120ed9
e120ed9
    files_search_var_lib($1)
e120ed9
    manage_files_pattern($1, pki_apache_var_lib, pki_apache_var_lib)
e120ed9
	manage_lnk_files_pattern($1, pki_apache_var_lib, pki_apache_var_lib)
e120ed9
')
e120ed9
013c505
##################################
013c505
## <summary>
013c505
##  Dontaudit domain to write pki log files
013c505
## </summary>
013c505
## <param name="domain">
013c505
##  <summary>
013c505
##  Domain allowed access.
013c505
##  </summary>
013c505
## </param>
013c505
#
013c505
interface(`pki_dontaudit_write_log',`
013c505
    gen_require(`
c273220
        type pki_log_t;
013c505
    ')
013c505
013c505
	dontaudit $1 pki_log_t:file write;
013c505
')
013c505
e120ed9
###################################
e120ed9
## <summary>
e120ed9
##  Allow domain to manage pki apache subsystem log files
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_manage_apache_log_files',`
e120ed9
    gen_require(`
e120ed9
        attribute pki_apache_var_log;
e120ed9
    ')
e120ed9
e120ed9
    files_search_var_lib($1)
e120ed9
    manage_files_pattern($1, pki_apache_var_log, pki_apache_var_log)
e120ed9
')
e120ed9
e120ed9
##################################
e120ed9
## <summary>
e120ed9
##  Allow domain to manage pki apache subsystem config files
e120ed9
## </summary>
e120ed9
## <param name="domain">
e120ed9
##  <summary>
e120ed9
##  Domain allowed access.
e120ed9
##  </summary>
e120ed9
## </param>
e120ed9
#
e120ed9
interface(`pki_manage_apache_config_files',`
e120ed9
    gen_require(`
e120ed9
        attribute pki_apache_config;
e120ed9
    ')
e120ed9
e120ed9
    files_search_var_lib($1)
e120ed9
    manage_files_pattern($1, pki_apache_config, pki_apache_config)
e120ed9
')
e120ed9