Blob Blame History Raw

policy_module(tripwire,1.0.0)

########################################
#
# Declarations
#

type siggen_t;
type siggen_exec_t;
domain_type(siggen_t)
domain_entry_file(siggen_t,siggen_exec_t)

type tripwire_t;
type tripwire_exec_t;
domain_type(tripwire_t)
domain_entry_file(tripwire_t,tripwire_exec_t)
role system_r types tripwire_t;

type tripwire_etc_t;
files_config_file(tripwire_etc_t)

type tripwire_report_t;
files_type(tripwire_report_t)

type tripwire_tmp_t;
files_tmp_file(tripwire_tmp_t)

type tripwire_var_lib_t;
files_type(tripwire_var_lib_t)

type twadmin_t;
type twadmin_exec_t;
domain_type(twadmin_t)
domain_entry_file(twadmin_t,twadmin_exec_t)

type twprint_t;
type twprint_exec_t;
domain_type(twprint_t)
domain_entry_file(twprint_t,twprint_exec_t)

########################################
#
# Tripwire local policy
#

allow tripwire_t self:capability { setgid setuid dac_override };

allow tripwire_t tripwire_etc_t:file r_file_perms;
allow tripwire_t tripwire_etc_t:dir r_dir_perms;
allow tripwire_t tripwire_etc_t:lnk_file { getattr read };
files_search_etc(tripwire_t)

allow tripwire_t tripwire_tmp_t:dir manage_dir_perms;
allow tripwire_t tripwire_tmp_t:file manage_file_perms;
files_tmp_filetrans(tripwire_t, tripwire_tmp_t, { file dir })

# Tripwire report files
allow tripwire_t tripwire_report_t:dir manage_dir_perms;
allow tripwire_t tripwire_report_t:file manage_file_perms;
allow tripwire_t tripwire_report_t:lnk_file create_lnk_perms;

allow tripwire_t tripwire_tmp_t:dir manage_dir_perms;
allow tripwire_t tripwire_tmp_t:file manage_file_perms;
allow tripwire_t tripwire_tmp_t:lnk_file create_lnk_perms;
allow tripwire_t tripwire_tmp_t:sock_file manage_file_perms;
allow tripwire_t tripwire_tmp_t:fifo_file manage_file_perms;
files_tmp_filetrans(tripwire_t,tripwire_tmp_t,{ file lnk_file sock_file fifo_file })

allow tripwire_t tripwire_var_lib_t:file manage_file_perms;
allow tripwire_t tripwire_var_lib_t:dir rw_dir_perms;
files_var_lib_filetrans(tripwire_t,tripwire_var_lib_t,file)

kernel_read_system_state(tripwire_t)
kernel_read_network_state(tripwire_t)
kernel_read_software_raid_state(tripwire_t)
kernel_getattr_core_if(tripwire_t)
kernel_getattr_message_if(tripwire_t)
kernel_read_kernel_sysctls(tripwire_t)

corecmd_exec_shell(tripwire_t)
corecmd_exec_sbin(tripwire_t)

domain_use_interactive_fds(tripwire_t)

files_read_all_files(tripwire_t)
files_read_all_symlinks(tripwire_t)
files_getattr_all_pipes(tripwire_t)
files_getattr_all_sockets(tripwire_t)

libs_use_ld_so(tripwire_t)
libs_use_shared_libs(tripwire_t)

logging_send_syslog_msg(tripwire_t)

optional_policy(`
	cron_system_entry(tripwire_t,tripwire_exec_t)
')

########################################
#
# Twadmin local policy
#

allow twadmin_t tripwire_etc_t:dir manage_dir_perms;
allow twadmin_t tripwire_etc_t:file manage_file_perms;
allow twadmin_t tripwire_etc_t:lnk_file create_lnk_perms;

domain_use_interactive_fds(twadmin_t)

libs_use_ld_so(twadmin_t)
libs_use_shared_libs(twadmin_t)

logging_send_syslog_msg(twadmin_t)

miscfiles_read_localization(twadmin_t)

########################################
#
# Twprint local policy
#

allow twprint_t tripwire_etc_t:dir r_dir_perms;
allow twprint_t tripwire_etc_t:file r_file_perms;
allow twprint_t tripwire_etc_t:lnk_file { getattr read };

allow twprint_t tripwire_report_t:dir r_dir_perms;
allow twprint_t tripwire_report_t:file r_file_perms;
allow twprint_t tripwire_report_t:lnk_file { getattr read };

allow twprint_t tripwire_var_lib_t:dir r_dir_perms;
allow twprint_t tripwire_var_lib_t:file r_file_perms;
allow twprint_t tripwire_var_lib_t:lnk_file { getattr read };
files_search_var_lib(twprint_t)

domain_use_interactive_fds(twprint_t)

libs_use_ld_so(twprint_t)
libs_use_shared_libs(twprint_t)

logging_send_syslog_msg(twprint_t)

miscfiles_read_localization(twprint_t)

########################################
#
# Siggen local policy
#

domain_use_interactive_fds(siggen_t)

# Need permission to read files
files_read_all_files(siggen_t)

libs_use_ld_so(siggen_t)
libs_use_shared_libs(siggen_t)

logging_send_syslog_msg(siggen_t)

miscfiles_read_localization(siggen_t)