policy_module(phpfpm, 1.1)
#######################################
#
# Declarations
#
##
##
## Allow phpfpm to use LDAP services
##
##
gen_tunable(phpfpm_use_ldap, false)
##
##
## Allow phpfpm to send syslog messages
##
##
gen_tunable(phpfpm_send_syslog_msg, false)
##
##
## Allow phpfpm to execute shells. This
## is needed by some webapps.
##
##
gen_tunable(phpfpm_exec_shell, false)
##
##
## Allow phpfpm to connect to http ports.
##
##
gen_tunable(phpfpm_connect_http, false)
##
##
## Allow phpfpm to connect to pop ports.
##
##
gen_tunable(phpfpm_connect_pop, false)
##
##
## Allow phpfpm to connect to redis ports.
##
##
gen_tunable(phpfpm_connect_redis, false)
##
##
## Allow phpfpm to connect to sieve ports.
##
##
gen_tunable(phpfpm_connect_sieve, false)
##
##
## Allow phpfpm to connect to smtp ports.
##
##
gen_tunable(phpfpm_connect_smtp, false)
type phpfpm_t;
type phpfpm_exec_t;
init_daemon_domain(phpfpm_t, phpfpm_exec_t)
type phpfpm_tmp_t;
files_tmp_file(phpfpm_tmp_t)
type phpfpm_runtime_t alias phpfpm_var_run_t;
files_runtime_file(phpfpm_runtime_t)
type phpfpm_log_t;
logging_log_file(phpfpm_log_t)
#######################################
#
# Local policy
#
allow phpfpm_t self:process signal;
allow phpfpm_t self:capability { setuid setgid kill };
allow phpfpm_t self:fifo_file rw_fifo_file_perms;
allow phpfpm_t self:tcp_socket rw_stream_socket_perms;
allow phpfpm_t self:udp_socket connected_socket_perms;
allow phpfpm_t self:unix_stream_socket { accept create_stream_socket_perms };
allow phpfpm_t self:unix_dgram_socket { create_socket_perms };
dontaudit phpfpm_t self:capability net_admin;
manage_files_pattern(phpfpm_t, phpfpm_log_t, phpfpm_log_t)
logging_log_filetrans(phpfpm_t, phpfpm_log_t, file)
manage_files_pattern(phpfpm_t, phpfpm_tmp_t, phpfpm_tmp_t)
manage_dirs_pattern(phpfpm_t, phpfpm_tmp_t, phpfpm_tmp_t)
files_tmp_filetrans(phpfpm_t, phpfpm_tmp_t, {file dir})
manage_files_pattern(phpfpm_t, phpfpm_runtime_t, phpfpm_runtime_t)
files_runtime_filetrans(phpfpm_t, phpfpm_runtime_t, { file sock_file })
manage_sock_files_pattern(phpfpm_t, phpfpm_runtime_t, phpfpm_runtime_t)
kernel_read_kernel_sysctls(phpfpm_t)
corecmd_search_bin(phpfpm_t)
corenet_tcp_bind_all_unreserved_ports(phpfpm_t)
corenet_tcp_bind_generic_node(phpfpm_t)
corenet_tcp_bind_generic_port(phpfpm_t)
dev_read_rand(phpfpm_t)
dev_read_urand(phpfpm_t)
files_read_etc_files(phpfpm_t)
files_read_usr_files(phpfpm_t)
files_search_var_lib(phpfpm_t)
fs_getattr_xattr_fs(phpfpm_t)
miscfiles_read_localization(phpfpm_t)
sysnet_dns_name_resolve(phpfpm_t)
sysnet_read_config(phpfpm_t)
userdom_search_user_home_dirs(phpfpm_t)
apache_append_all_ra_content(phpfpm_t)
apache_manage_all_rw_content(phpfpm_t)
apache_read_sys_content(phpfpm_t)
apache_dontaudit_search_modules(phpfpm_t)
optional_policy(`
apache_map_sys_content(phpfpm_t)
')
optional_policy(`
mysql_stream_connect(phpfpm_t)
mysql_tcp_connect(phpfpm_t)
')
optional_policy(`
postgresql_stream_connect(phpfpm_t)
postgresql_tcp_connect(phpfpm_t)
')
optional_policy(`
snmp_read_snmp_var_lib_files(phpfpm_t)
')
optional_policy(`
tunable_policy(`phpfpm_use_ldap',`
sysnet_use_ldap(phpfpm_t)
')
')
tunable_policy(`phpfpm_exec_shell',`
corecmd_exec_shell(phpfpm_t)
')
tunable_policy(`phpfpm_connect_http',`
corenet_tcp_connect_http_port(phpfpm_t)
')
tunable_policy(`phpfpm_connect_pop',`
corenet_tcp_connect_pop_port(phpfpm_t)
')
tunable_policy(`phpfpm_connect_redis',`
corenet_tcp_connect_redis_port(phpfpm_t)
')
tunable_policy(`phpfpm_connect_sieve',`
corenet_tcp_connect_sieve_port(phpfpm_t)
')
tunable_policy(`phpfpm_connect_smtp',`
corenet_tcp_connect_smtp_port(phpfpm_t)
')
tunable_policy(`phpfpm_send_syslog_msg',`
logging_send_syslog_msg(phpfpm_t)
')