## Policy for iptables. ######################################## ## ## Execute iptables in the iptables domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`iptables_domtrans',` gen_require(` type iptables_t, iptables_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, iptables_exec_t, iptables_t) ifdef(`hide_broken_symptoms', ` dontaudit iptables_t $1:socket_class_set { read write }; ') ') ######################################## ## ## Execute iptables in the iptables domain, and ## allow the specified role the iptables domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## Role allowed access. ## ## ## # interface(`iptables_run',` gen_require(` attribute_role iptables_roles; ') iptables_domtrans($1) roleattribute $2 iptables_roles; ') ######################################## ## ## Execute iptables in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`iptables_exec',` gen_require(` type iptables_exec_t; ') corecmd_search_bin($1) can_exec($1, iptables_exec_t) ') ##################################### ## ## Execute iptables init scripts in ## the init script domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`iptables_initrc_domtrans',` gen_require(` type iptables_initrc_exec_t; ') init_labeled_script_domtrans($1, iptables_initrc_exec_t) ') ##################################### ## ## Set the attributes of iptables config files. ## ## ## ## Domain allowed access. ## ## # interface(`iptables_setattr_config',` gen_require(` type iptables_conf_t; ') files_search_etc($1) allow $1 iptables_conf_t:file setattr; ') ##################################### ## ## Read iptables config files. ## ## ## ## Domain allowed access. ## ## # interface(`iptables_read_config',` gen_require(` type iptables_conf_t; ') files_search_etc($1) allow $1 iptables_conf_t:dir list_dir_perms; read_files_pattern($1, iptables_conf_t, iptables_conf_t) ') ##################################### ## ## Create files in /etc with the type used for ## the iptables config files. ## ## ## ## Domain allowed access. ## ## # interface(`iptables_etc_filetrans_config',` gen_require(` type iptables_conf_t; ') files_etc_filetrans($1, iptables_conf_t, file) ') ################################### ## ## Manage iptables config files. ## ## ## ## Domain allowed access. ## ## # interface(`iptables_manage_config',` gen_require(` type iptables_conf_t; type etc_t; ') files_search_etc($1) manage_files_pattern($1, iptables_conf_t, iptables_conf_t) ') ######################################## ## ## All of the rules required to ## administrate an iptables ## environment. ## ## ## ## Domain allowed access. ## ## ## ## ## Role allowed access. ## ## ## # interface(`iptables_admin',` gen_require(` type iptables_t, iptables_initrc_exec_t, iptables_conf_t; type iptables_tmp_t, iptables_var_run_t, iptables_unit_t; ') allow $1 iptables_t:process { ptrace signal_perms }; ps_process_pattern($1, iptables_t) init_startstop_service($1, $2, iptables_t, iptables_initrc_exec_t, iptables_unit_t) files_list_etc($1) admin_pattern($1, iptables_conf_t) files_list_tmp($1) admin_pattern($1, iptables_tmp_t) files_list_pids($1) admin_pattern($1, iptables_var_run_t) ')