selinux-refpolicy/policy/modules/system/iptables.if
Chris PeBenito c2b04d1ea2 kmod, lvm, brctl patches from Russell Coker
Patches for modutils, at least one of which is needed to generate an initramfs
on Debian.

Patch to allow lvm to talk to fifos from dpkg_script_t for postinst scripts
etc.

Patch for brctl to allow it to create sysfs files.
2017-04-18 21:17:36 -04:00

224 lines
4.3 KiB
Plaintext

## <summary>Policy for iptables.</summary>
########################################
## <summary>
## Execute iptables in the iptables domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
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 };
')
')
########################################
## <summary>
## Execute iptables in the iptables domain, and
## allow the specified role the iptables domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
## <param name="role">
## <summary>
## Role allowed access.
## </summary>
## </param>
## <rolecap/>
#
interface(`iptables_run',`
gen_require(`
attribute_role iptables_roles;
')
iptables_domtrans($1)
roleattribute $2 iptables_roles;
')
########################################
## <summary>
## Execute iptables in the caller domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`iptables_exec',`
gen_require(`
type iptables_exec_t;
')
corecmd_search_bin($1)
can_exec($1, iptables_exec_t)
')
#####################################
## <summary>
## Execute iptables init scripts in
## the init script domain.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`iptables_initrc_domtrans',`
gen_require(`
type iptables_initrc_exec_t;
')
init_labeled_script_domtrans($1, iptables_initrc_exec_t)
')
#####################################
## <summary>
## Set the attributes of iptables config files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`iptables_setattr_config',`
gen_require(`
type iptables_conf_t;
')
files_search_etc($1)
allow $1 iptables_conf_t:file setattr;
')
#####################################
## <summary>
## Read iptables config files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
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)
')
#####################################
## <summary>
## Create files in /etc with the type used for
## the iptables config files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
interface(`iptables_etc_filetrans_config',`
gen_require(`
type iptables_conf_t;
')
files_etc_filetrans($1, iptables_conf_t, file)
')
###################################
## <summary>
## Manage iptables config files.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
#
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)
')
###################################
## <summary>
## dontaudit reading iptables_var_run_t
## </summary>
## <param name="domain">
## <summary>
## Domain to not audit.
## </summary>
## </param>
#
interface(`iptables_dontaudit_read_pids',`
gen_require(`
type iptables_var_run_t;
')
dontaudit $1 iptables_var_run_t:file read;
')
########################################
## <summary>
## All of the rules required to
## administrate an iptables
## environment.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
## <param name="role">
## <summary>
## Role allowed access.
## </summary>
## </param>
## <rolecap/>
#
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)
')