Blame SOURCES/frr.if

b57a21
## <summary>policy for frr</summary>
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	Execute frr_exec_t in the frr domain.
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
## <summary>
b57a21
##	Domain allowed to transition.
b57a21
## </summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_domtrans',`
b57a21
	gen_require(`
b57a21
		type frr_t, frr_exec_t;
b57a21
	')
b57a21
b57a21
	corecmd_search_bin($1)
b57a21
	domtrans_pattern($1, frr_exec_t, frr_t)
b57a21
')
b57a21
b57a21
######################################
b57a21
## <summary>
b57a21
##	Execute frr in the caller domain.
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_exec',`
b57a21
	gen_require(`
b57a21
		type frr_exec_t;
b57a21
	')
b57a21
b57a21
	corecmd_search_bin($1)
b57a21
	can_exec($1, frr_exec_t)
b57a21
')
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	Read frr's log files.
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
## <rolecap/>
b57a21
#
b57a21
interface(`frr_read_log',`
b57a21
	gen_require(`
b57a21
		type frr_log_t;
b57a21
	')
b57a21
b57a21
	read_files_pattern($1, frr_log_t, frr_log_t)
b57a21
	optional_policy(`
b57a21
		logging_search_logs($1)
b57a21
	')
b57a21
')
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	Append to frr log files.
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_append_log',`
b57a21
	gen_require(`
b57a21
		type frr_log_t;
b57a21
	')
b57a21
b57a21
	append_files_pattern($1, frr_log_t, frr_log_t)
b57a21
	optional_policy(`
b57a21
		logging_search_logs($1)
b57a21
	')
b57a21
')
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	Manage frr log files
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_manage_log',`
b57a21
	gen_require(`
b57a21
		type frr_log_t;
b57a21
	')
b57a21
b57a21
	manage_dirs_pattern($1, frr_log_t, frr_log_t)
b57a21
	manage_files_pattern($1, frr_log_t, frr_log_t)
b57a21
	manage_lnk_files_pattern($1, frr_log_t, frr_log_t)
b57a21
	optional_policy(`
b57a21
		logging_search_logs($1)
b57a21
	')
b57a21
')
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	Read frr PID files.
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_read_pid_files',`
b57a21
	gen_require(`
b57a21
		type frr_var_run_t;
b57a21
	')
b57a21
b57a21
	files_search_pids($1)
b57a21
	read_files_pattern($1, frr_var_run_t, frr_var_run_t)
b57a21
')
b57a21
b57a21
########################################
b57a21
## <summary>
b57a21
##	All of the rules required to administrate
b57a21
##	an frr environment
b57a21
## </summary>
b57a21
## <param name="domain">
b57a21
##	<summary>
b57a21
##	Domain allowed access.
b57a21
##	</summary>
b57a21
## </param>
b57a21
#
b57a21
interface(`frr_admin',`
b57a21
	gen_require(`
b57a21
		type frr_t;
b57a21
		type frr_log_t;
b57a21
		type frr_var_run_t;
b57a21
	')
b57a21
b57a21
	allow $1 frr_t:process { signal_perms };
b57a21
	ps_process_pattern($1, frr_t)
b57a21
b57a21
	tunable_policy(`deny_ptrace',`',`
b57a21
		allow $1 frr_t:process ptrace;
b57a21
	')
b57a21
b57a21
	admin_pattern($1, frr_log_t)
b57a21
b57a21
	files_search_pids($1)
b57a21
	admin_pattern($1, frr_var_run_t)
b57a21
	optional_policy(`
b57a21
		logging_search_logs($1)
b57a21
	')
b57a21
	optional_policy(`
b57a21
		systemd_passwd_agent_exec($1)
b57a21
		systemd_read_fifo_file_passwd_run($1)
b57a21
	')
b57a21
')