2 policy_module(amavis, 1.8.0)
4 ########################################
12 init_daemon_domain(amavis_t, amavis_exec_t)
16 files_config_file(amavis_etc_t)
18 type amavis_initrc_exec_t;
19 init_script_file(amavis_initrc_exec_t)
22 type amavis_var_run_t;
23 files_pid_file(amavis_var_run_t)
26 type amavis_var_lib_t;
27 files_type(amavis_var_lib_t)
30 type amavis_var_log_t;
31 logging_log_file(amavis_var_log_t)
35 files_tmp_file(amavis_tmp_t)
38 type amavis_quarantine_t;
39 files_type(amavis_quarantine_t)
42 files_type(amavis_spool_t)
44 ########################################
49 allow amavis_t self:capability { kill chown dac_override setgid setuid };
50 dontaudit amavis_t self:capability sys_tty_config;
51 allow amavis_t self:process { signal sigchld signull };
52 allow amavis_t self:fifo_file rw_fifo_file_perms;
53 allow amavis_t self:unix_stream_socket create_stream_socket_perms;
54 allow amavis_t self:unix_dgram_socket create_socket_perms;
55 allow amavis_t self:tcp_socket { listen accept };
56 allow amavis_t self:netlink_route_socket r_netlink_socket_perms;
59 allow amavis_t amavis_etc_t:dir list_dir_perms;
60 read_files_pattern(amavis_t, amavis_etc_t, amavis_etc_t)
61 read_lnk_files_pattern(amavis_t, amavis_etc_t, amavis_etc_t)
63 can_exec(amavis_t, amavis_exec_t)
66 manage_dirs_pattern(amavis_t, amavis_quarantine_t, amavis_quarantine_t)
67 manage_files_pattern(amavis_t, amavis_quarantine_t, amavis_quarantine_t)
68 manage_sock_files_pattern(amavis_t, amavis_quarantine_t, amavis_quarantine_t)
71 manage_dirs_pattern(amavis_t, amavis_spool_t, amavis_spool_t)
72 manage_files_pattern(amavis_t, amavis_spool_t, amavis_spool_t)
73 manage_lnk_files_pattern(amavis_t, amavis_spool_t, amavis_spool_t)
74 manage_sock_files_pattern(amavis_t, amavis_spool_t, amavis_spool_t)
75 filetrans_pattern(amavis_t, amavis_spool_t, amavis_var_run_t, sock_file)
76 files_search_spool(amavis_t)
79 manage_files_pattern(amavis_t, amavis_tmp_t, amavis_tmp_t)
80 allow amavis_t amavis_tmp_t:dir setattr;
81 files_tmp_filetrans(amavis_t,amavis_tmp_t,file)
83 # var/lib files for amavis
84 manage_dirs_pattern(amavis_t, amavis_var_lib_t, amavis_var_lib_t)
85 manage_files_pattern(amavis_t, amavis_var_lib_t, amavis_var_lib_t)
86 manage_sock_files_pattern(amavis_t, amavis_var_lib_t, amavis_var_lib_t)
87 files_search_var_lib(amavis_t)
90 allow amavis_t amavis_var_log_t:dir setattr;
91 manage_files_pattern(amavis_t, amavis_var_log_t, amavis_var_log_t)
92 manage_sock_files_pattern(amavis_t, amavis_var_log_t, amavis_var_log_t)
93 logging_log_filetrans(amavis_t, amavis_var_log_t, { sock_file file dir })
96 manage_files_pattern(amavis_t, amavis_var_run_t, amavis_var_run_t)
97 manage_sock_files_pattern(amavis_t, amavis_var_run_t, amavis_var_run_t)
98 files_pid_filetrans(amavis_t, amavis_var_run_t, { file sock_file })
100 kernel_read_kernel_sysctls(amavis_t)
101 # amavis tries to access /proc/self/stat, /etc/shadow and /root - perl...
102 kernel_dontaudit_list_proc(amavis_t)
103 kernel_dontaudit_read_proc_symlinks(amavis_t)
104 kernel_dontaudit_read_system_state(amavis_t)
107 corecmd_exec_bin(amavis_t)
109 corenet_all_recvfrom_unlabeled(amavis_t)
110 corenet_all_recvfrom_netlabel(amavis_t)
111 corenet_tcp_sendrecv_all_if(amavis_t)
112 corenet_tcp_sendrecv_all_nodes(amavis_t)
113 corenet_tcp_bind_all_nodes(amavis_t)
114 corenet_udp_bind_all_nodes(amavis_t)
115 # amavis uses well-defined ports
116 corenet_tcp_sendrecv_amavisd_recv_port(amavis_t)
117 corenet_tcp_sendrecv_amavisd_send_port(amavis_t)
118 # just the other side not. ;-)
119 corenet_tcp_sendrecv_all_ports(amavis_t)
120 # connect to backchannel port
121 corenet_tcp_connect_amavisd_send_port(amavis_t)
122 # bind to incoming port
123 corenet_tcp_bind_amavisd_recv_port(amavis_t)
124 corenet_udp_bind_generic_port(amavis_t)
125 corenet_dontaudit_udp_bind_all_ports(amavis_t)
126 corenet_tcp_connect_razor_port(amavis_t)
128 dev_read_rand(amavis_t)
129 dev_read_urand(amavis_t)
131 domain_use_interactive_fds(amavis_t)
133 files_read_etc_files(amavis_t)
134 files_read_etc_runtime_files(amavis_t)
135 files_read_usr_files(amavis_t)
137 auth_dontaudit_read_shadow(amavis_t)
139 init_stream_connect_script(amavis_t)
141 libs_use_ld_so(amavis_t)
142 libs_use_shared_libs(amavis_t)
144 logging_send_syslog_msg(amavis_t)
146 miscfiles_read_localization(amavis_t)
148 sysnet_dns_name_resolve(amavis_t)
149 sysnet_use_ldap(amavis_t)
152 cron_use_fds(amavis_t)
153 cron_use_system_job_fds(amavis_t)
154 cron_rw_pipes(amavis_t)
156 mta_read_config(amavis_t)
158 sysadm_dontaudit_search_home_dirs(amavis_t)
161 clamav_stream_connect(amavis_t)
162 clamav_domtrans_clamscan(amavis_t)
166 dcc_domtrans_client(amavis_t)
167 dcc_stream_connect_dccifd(amavis_t)
171 postfix_read_config(amavis_t)
175 pyzor_domtrans(amavis_t)
176 pyzor_signal(amavis_t)
180 razor_domtrans(amavis_t)
184 spamassassin_exec(amavis_t)
185 spamassassin_exec_client(amavis_t)
186 spamassassin_read_lib_files(amavis_t)