########################
# argus -- core access #
########################
# Log files - create, read, and append
allow argus_t argus_log_t : dir ra_dir_perms;
allow argus_t argus_log_t : file { create ra_file_perms };
#FIXME bug in book?: logging_filetrans_log(argus_t, argus_log_t, file)
logging_log_filetrans(argus_t, argus_log_t, file)
logging_search_logs(argus_t)
# Configuration files - read
allow argus_t argus_conf_t : dir r_dir_perms;
allow argus_t argus_conf_t : file r_file_perms;
allow argus_t argus_conf_t : lnk_file { getattr read };
# PID file - create, read, and write
allow argus_t argus_var_run_t : dir rw_dir_perms;
allow argus_t argus_var_run_t : file create_file_perms;
#FIXME bug in book?: files_filetrans_pid(argus_t, argus_var_run_t, file)
files_pid_filetrans(argus_t, argus_var_run_t, file)
# Network access - the argus daemon is allowed to send
# and receive network data to all nodes and ports over
# all network interfaces. Additionally, it can name_bind
# to the argus port (argus_port_t)
allow argus_t self : tcp_socket create_stream_socket_perms;
corenet_tcp_sendrecv_all_if(argus_t)
corenet_tcp_sendrecv_all_nodes(argus_t)
corenet_tcp_sendrecv_all_ports(argus_t)
corenet_non_ipsec_sendrecv(argus_t)
corenet_tcp_bind_all_nodes(argus_t)
#FIXME: corenet_tcp_bind_argus_port(argus_t)
#sysnet_dns_name_resolve(argus_t)
# use shared libraries
libs_use_ld_so(argus_t)
libs_use_shared_libs(argus_t)
## read localization data
#miscfiles_read_localization(argus_t)
# read common directories / files including
# * /etc (search)
# * system variables
files_search_etc(argus_t)
kernel_read_kernel_sysctls(argus_t)
kernel_read_system_state(argus_t)
kernel_read_all_sysctls(argus_t)