policy_module(rkhunter, 1.2.0) ######################################## # # Declarations # ## ##

## Determine whether rkhunter can connect ## to http ports. This is required by the ## --update option. ##

##
gen_tunable(rkhunter_connect_http, false) attribute_role rkhunter_roles; type rkhunter_t; type rkhunter_exec_t; application_domain(rkhunter_t, rkhunter_exec_t) role rkhunter_roles types rkhunter_t; type rkhunter_log_t; logging_log_file(rkhunter_log_t) type rkhunter_tmpfs_t; files_tmpfs_file(rkhunter_tmpfs_t) type rkhunter_var_lib_t; files_type(rkhunter_var_lib_t) ######################################## # # Application local policy # allow rkhunter_t self:capability { dac_read_search kill net_admin setgid setuid sys_nice sys_ptrace }; allow rkhunter_t self:process { getsched setsched signal }; allow rkhunter_t self:netlink_route_socket r_netlink_socket_perms; allow rkhunter_t self:tcp_socket { bind connect create listen read write }; allow rkhunter_t self:netlink_tcpdiag_socket r_netlink_socket_perms; allow rkhunter_t self:udp_socket { bind connect create ioctl read write }; allow rkhunter_t self:fifo_file rw_fifo_file_perms; allow rkhunter_t rkhunter_log_t:file { append_file_perms create_file_perms setattr }; logging_log_filetrans(rkhunter_t, rkhunter_log_t, file) allow rkhunter_t rkhunter_tmpfs_t:file manage_file_perms; fs_tmpfs_filetrans(rkhunter_t, rkhunter_tmpfs_t, file) allow rkhunter_t rkhunter_var_lib_t:dir manage_dir_perms; allow rkhunter_t rkhunter_var_lib_t:file manage_file_perms; kernel_request_load_module(rkhunter_t) kernel_read_all_sysctls(rkhunter_t) kernel_read_network_state(rkhunter_t) kernel_getattr_message_if(rkhunter_t) kernel_get_sysvipc_info(rkhunter_t) auth_dontaudit_read_shadow(rkhunter_t) corecmd_exec_bin(rkhunter_t) corecmd_exec_shell(rkhunter_t) corenet_tcp_bind_all_ports(rkhunter_t) corenet_udp_bind_all_ports(rkhunter_t) corenet_tcp_bind_generic_node(rkhunter_t) corenet_udp_bind_generic_node(rkhunter_t) dev_getattr_fs(rkhunter_t) dev_read_urand(rkhunter_t) dev_getattr_all_chr_files(rkhunter_t) dev_getattr_all_blk_files(rkhunter_t) domain_read_all_domains_state(rkhunter_t) domain_use_interactive_fds(rkhunter_t) domain_getattr_all_sockets(rkhunter_t) domain_getattr_all_pipes(rkhunter_t) domain_getpgid_all_domains(rkhunter_t) domain_getsched_all_domains(rkhunter_t) domain_getsession_all_domains(rkhunter_t) domain_signull_all_domains(rkhunter_t) files_read_non_auth_files(rkhunter_t) files_read_all_symlinks(rkhunter_t) files_read_all_chr_files(rkhunter_t) files_getattr_all_pipes(rkhunter_t) files_getattr_all_sockets(rkhunter_t) files_check_write_lock_dirs(rkhunter_t) files_check_write_runtime_dirs(rkhunter_t) fs_getattr_tracefs(rkhunter_t) fs_getattr_tracefs_dirs(rkhunter_t) fs_getattr_xattr_fs(rkhunter_t) hostname_exec(rkhunter_t) logging_send_syslog_msg(rkhunter_t) modutils_exec(rkhunter_t) sysnet_exec_ifconfig(rkhunter_t) userdom_use_inherited_user_terminals(rkhunter_t) ifdef(`init_systemd',` # start as systemd timer init_system_domain(rkhunter_t, rkhunter_exec_t) ') tunable_policy(`rkhunter_connect_http',` corenet_tcp_connect_http_port(rkhunter_t) ') optional_policy(` cron_system_entry(rkhunter_t, rkhunter_exec_t) cron_rw_inherited_system_job_tmp_files(rkhunter_t) ') optional_policy(` # exim check exim_exec(rkhunter_t) ') optional_policy(` # gpg check gpg_exec(rkhunter_t) ') optional_policy(` # ssh check ssh_exec_sshd(rkhunter_t) ')