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) ')