Blame SOURCES/frr.if

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