policy_module(postfixpolicyd, 1.8.0)

########################################
#
# Declarations
#

type postfix_policyd_t;
type postfix_policyd_exec_t;
init_daemon_domain(postfix_policyd_t, postfix_policyd_exec_t)

type postfix_policyd_conf_t;
files_config_file(postfix_policyd_conf_t)

type postfix_policyd_initrc_exec_t;
init_script_file(postfix_policyd_initrc_exec_t)

type postfix_policyd_runtime_t alias postfix_policyd_var_run_t;
files_runtime_file(postfix_policyd_runtime_t)

type postfix_policyd_tmp_t;
files_type(postfix_policyd_tmp_t)

########################################
#
# Local policy
#

allow postfix_policyd_t self:capability { chown sys_chroot sys_resource setgid setuid };
allow postfix_policyd_t self:process { setrlimit signal signull };
allow postfix_policyd_t self:tcp_socket { accept listen };

allow postfix_policyd_t postfix_policyd_conf_t:dir list_dir_perms;
allow postfix_policyd_t postfix_policyd_conf_t:file read_file_perms;
allow postfix_policyd_t postfix_policyd_conf_t:lnk_file read_lnk_file_perms;

manage_files_pattern(postfix_policyd_t, postfix_policyd_runtime_t, postfix_policyd_runtime_t)
files_runtime_filetrans(postfix_policyd_t, postfix_policyd_runtime_t, file)

allow postfix_policyd_t postfix_policyd_tmp_t:file manage_file_perms;
allow postfix_policyd_t postfix_policyd_tmp_t:sock_file manage_sock_file_perms;
files_tmp_filetrans(postfix_policyd_t, postfix_policyd_tmp_t, { file sock_file })

kernel_search_network_sysctl(postfix_policyd_t)

corecmd_exec_bin(postfix_policyd_t)

corenet_tcp_sendrecv_generic_if(postfix_policyd_t)
corenet_tcp_sendrecv_generic_node(postfix_policyd_t)
corenet_tcp_bind_generic_node(postfix_policyd_t)

corenet_sendrecv_postfix_policyd_server_packets(postfix_policyd_t)
corenet_tcp_bind_postfix_policyd_port(postfix_policyd_t)

corenet_sendrecv_mysqld_server_packets(postfix_policyd_t)
corenet_tcp_bind_mysqld_port(postfix_policyd_t)

dev_read_urand(postfix_policyd_t)

files_read_etc_files(postfix_policyd_t)
files_read_usr_files(postfix_policyd_t)

logging_send_syslog_msg(postfix_policyd_t)

miscfiles_read_localization(postfix_policyd_t)

sysnet_dns_name_resolve(postfix_policyd_t)
