]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/services/dovecot.te
Dovecot has a new fifo_file /var/run/stats-mail
[people/stevee/selinux-policy.git] / policy / modules / services / dovecot.te
CommitLineData
2b5cb1ff 1policy_module(dovecot, 1.12.1)
29ce0009
CP
2
3########################################
4#
5# Declarations
6#
784a3bbc 7type dovecot_t;
29ce0009 8type dovecot_exec_t;
0bfccda4 9init_daemon_domain(dovecot_t, dovecot_exec_t)
29ce0009 10
46551033
CP
11type dovecot_auth_t;
12type dovecot_auth_exec_t;
13domain_type(dovecot_auth_t)
0bfccda4 14domain_entry_file(dovecot_auth_t, dovecot_auth_exec_t)
46551033
CP
15role system_r types dovecot_auth_t;
16
bb881612
CP
17type dovecot_auth_tmp_t;
18files_tmp_file(dovecot_auth_tmp_t)
19
29ce0009 20type dovecot_cert_t;
3eaa9939 21miscfiles_cert_type(dovecot_cert_t)
29ce0009 22
bb881612
CP
23type dovecot_deliver_t;
24type dovecot_deliver_exec_t;
25domain_type(dovecot_deliver_t)
26domain_entry_file(dovecot_deliver_t, dovecot_deliver_exec_t)
27role system_r types dovecot_deliver_t;
28
3a321261
MG
29type dovecot_deliver_tmp_t;
30files_tmp_file(dovecot_deliver_tmp_t)
31
9bbc757a
CP
32type dovecot_etc_t;
33files_config_file(dovecot_etc_t)
29ce0009 34
bb881612
CP
35type dovecot_initrc_exec_t;
36init_script_file(dovecot_initrc_exec_t)
37
29ce0009
CP
38type dovecot_passwd_t;
39files_type(dovecot_passwd_t)
40
41type dovecot_spool_t;
0059652b 42files_spool_file(dovecot_spool_t)
29ce0009 43
d8eb3c71
CP
44type dovecot_tmp_t;
45files_tmp_file(dovecot_tmp_t)
46
46551033
CP
47# /var/lib/dovecot holds SSL parameters file
48type dovecot_var_lib_t;
4dd84bbf 49files_type(dovecot_var_lib_t)
46551033 50
bb881612
CP
51type dovecot_var_log_t;
52logging_log_file(dovecot_var_log_t)
53
29ce0009
CP
54type dovecot_var_run_t;
55files_pid_file(dovecot_var_run_t)
56
29ce0009
CP
57########################################
58#
59# dovecot local policy
60#
d828b5ca 61
dfa6eba1 62allow dovecot_t self:capability { dac_override dac_read_search chown fsetid kill net_bind_service setgid setuid sys_chroot };
29ce0009 63dontaudit dovecot_t self:capability sys_tty_config;
3eaa9939 64allow dovecot_t self:process { setrlimit signal_perms getcap setcap setsched };
c0868a7a 65allow dovecot_t self:fifo_file rw_fifo_file_perms;
29ce0009
CP
66allow dovecot_t self:tcp_socket create_stream_socket_perms;
67allow dovecot_t self:unix_dgram_socket create_socket_perms;
2e0a8801 68allow dovecot_t self:unix_stream_socket { create_stream_socket_perms connectto };
29ce0009 69
c0868a7a 70domtrans_pattern(dovecot_t, dovecot_auth_exec_t, dovecot_auth_t)
29ce0009 71
d8eb3c71
CP
72allow dovecot_t dovecot_auth_t:process signal;
73
c0868a7a 74allow dovecot_t dovecot_cert_t:dir list_dir_perms;
0bfccda4
CP
75read_files_pattern(dovecot_t, dovecot_cert_t, dovecot_cert_t)
76read_lnk_files_pattern(dovecot_t, dovecot_cert_t, dovecot_cert_t)
29ce0009 77
3eaa9939
DW
78allow dovecot_t dovecot_etc_t:dir list_dir_perms;
79read_files_pattern(dovecot_t, dovecot_etc_t, dovecot_etc_t)
1ff72b4f 80read_lnk_files_pattern(dovecot_t, dovecot_etc_t, dovecot_etc_t)
29ce0009
CP
81files_search_etc(dovecot_t)
82
83can_exec(dovecot_t, dovecot_exec_t)
84
d8eb3c71
CP
85manage_dirs_pattern(dovecot_t, dovecot_tmp_t, dovecot_tmp_t)
86manage_files_pattern(dovecot_t, dovecot_tmp_t, dovecot_tmp_t)
87files_tmp_filetrans(dovecot_t, dovecot_tmp_t, { file dir })
88
89# Allow dovecot to create and read SSL parameters file
90manage_files_pattern(dovecot_t, dovecot_var_lib_t, dovecot_var_lib_t)
91files_search_var_lib(dovecot_t)
92files_read_var_symlinks(dovecot_t)
93
94manage_dirs_pattern(dovecot_t, dovecot_var_log_t, dovecot_var_log_t)
bb881612 95manage_files_pattern(dovecot_t, dovecot_var_log_t, dovecot_var_log_t)
d8eb3c71 96logging_log_filetrans(dovecot_t, dovecot_var_log_t, { file dir })
bb881612 97
0bfccda4
CP
98manage_dirs_pattern(dovecot_t, dovecot_spool_t, dovecot_spool_t)
99manage_files_pattern(dovecot_t, dovecot_spool_t, dovecot_spool_t)
100manage_lnk_files_pattern(dovecot_t, dovecot_spool_t, dovecot_spool_t)
29ce0009 101
3eaa9939 102manage_dirs_pattern(dovecot_t, dovecot_var_run_t, dovecot_var_run_t)
0bfccda4 103manage_files_pattern(dovecot_t, dovecot_var_run_t, dovecot_var_run_t)
d8eb3c71 104manage_lnk_files_pattern(dovecot_t, dovecot_var_run_t, dovecot_var_run_t)
0bfccda4 105manage_sock_files_pattern(dovecot_t, dovecot_var_run_t, dovecot_var_run_t)
dbbc62f3
DW
106manage_fifo_files_pattern(dovecot_t, dovecot_var_run_t, dovecot_var_run_t)
107files_pid_filetrans(dovecot_t, dovecot_var_run_t, { dir file fifo_file })
29ce0009 108
445522dc 109kernel_read_kernel_sysctls(dovecot_t)
29ce0009
CP
110kernel_read_system_state(dovecot_t)
111
19006686
CP
112corenet_all_recvfrom_unlabeled(dovecot_t)
113corenet_all_recvfrom_netlabel(dovecot_t)
668b3093 114corenet_tcp_sendrecv_generic_if(dovecot_t)
c1262146 115corenet_tcp_sendrecv_generic_node(dovecot_t)
29ce0009 116corenet_tcp_sendrecv_all_ports(dovecot_t)
c1262146 117corenet_tcp_bind_generic_node(dovecot_t)
d8eb3c71 118corenet_tcp_bind_mail_port(dovecot_t)
e6a2eaff 119corenet_tcp_bind_pop_port(dovecot_t)
12a6885c
DW
120corenet_tcp_bind_lmtp_port(dovecot_t)
121corenet_tcp_bind_sieve_port(dovecot_t)
da4fc9ce 122corenet_tcp_connect_all_ports(dovecot_t)
72492557 123corenet_tcp_connect_postgresql_port(dovecot_t)
3d03a4f4
CP
124corenet_sendrecv_pop_server_packets(dovecot_t)
125corenet_sendrecv_all_client_packets(dovecot_t)
29ce0009
CP
126
127dev_read_sysfs(dovecot_t)
128dev_read_urand(dovecot_t)
129
130fs_getattr_all_fs(dovecot_t)
d8eb3c71 131fs_getattr_all_dirs(dovecot_t)
29ce0009 132fs_search_auto_mountpoints(dovecot_t)
72492557 133fs_list_inotifyfs(dovecot_t)
29ce0009 134
29ce0009
CP
135corecmd_exec_bin(dovecot_t)
136
15722ec9 137domain_use_interactive_fds(dovecot_t)
29ce0009
CP
138
139files_read_etc_files(dovecot_t)
140files_search_spool(dovecot_t)
141files_search_tmp(dovecot_t)
bf080a46 142files_dontaudit_list_default(dovecot_t)
165b42d2
CP
143# Dovecot now has quota support and it uses getmntent() to find the mountpoints.
144files_read_etc_runtime_files(dovecot_t)
bb881612 145files_search_all_mountpoints(dovecot_t)
ed2ac112 146files_read_var_lib_files(dovecot_t)
29ce0009 147
68228b33 148init_getattr_utmp(dovecot_t)
29ce0009 149
c0cf6e0a
CP
150auth_use_nsswitch(dovecot_t)
151
29ce0009
CP
152logging_send_syslog_msg(dovecot_t)
153
83406219 154miscfiles_read_generic_certs(dovecot_t)
29ce0009
CP
155miscfiles_read_localization(dovecot_t)
156
ed2ac112 157userdom_home_manager(dovecot_t)
15722ec9 158userdom_dontaudit_use_unpriv_user_fds(dovecot_t)
296273a7
CP
159userdom_manage_user_home_content_dirs(dovecot_t)
160userdom_manage_user_home_content_files(dovecot_t)
161userdom_manage_user_home_content_symlinks(dovecot_t)
162userdom_manage_user_home_content_pipes(dovecot_t)
163userdom_manage_user_home_content_sockets(dovecot_t)
164userdom_user_home_dir_filetrans_user_home_content(dovecot_t, { dir file lnk_file fifo_file sock_file })
29ce0009 165
704327e8 166mta_manage_spool(dovecot_t)
29ce0009 167
bb7170f6 168optional_policy(`
bb881612 169 kerberos_keytab_template(dovecot, dovecot_t)
29ce0009
CP
170')
171
4d1378a4
DW
172optional_policy(`
173 gnome_manage_data(dovecot_t)
174')
175
3eaa9939 176optional_policy(`
68ac47d8
DG
177 postfix_manage_private_sockets(dovecot_t)
178 postfix_search_spool(dovecot_t)
3eaa9939
DW
179')
180
d8eb3c71
CP
181optional_policy(`
182 postgresql_stream_connect(dovecot_t)
183')
184
bb7170f6 185optional_policy(`
29ce0009
CP
186 seutil_sigchld_newrole(dovecot_t)
187')
188
b129e200
CP
189optional_policy(`
190 squid_dontaudit_search_cache(dovecot_t)
191')
192
bb7170f6 193optional_policy(`
29ce0009
CP
194 udev_read_db(dovecot_t)
195')
196
197########################################
198#
199# dovecot auth local policy
200#
d828b5ca 201
d8360889
DW
202allow dovecot_auth_t self:capability { chown dac_override ipc_lock setgid setuid sys_nice };
203allow dovecot_auth_t self:process { getsched setsched signal_perms getcap setcap };
c0868a7a 204allow dovecot_auth_t self:fifo_file rw_fifo_file_perms;
29ce0009
CP
205allow dovecot_auth_t self:unix_dgram_socket create_socket_perms;
206allow dovecot_auth_t self:unix_stream_socket create_stream_socket_perms;
207
bb881612
CP
208allow dovecot_auth_t dovecot_t:unix_stream_socket { connectto rw_stream_socket_perms };
209
210read_files_pattern(dovecot_auth_t, dovecot_passwd_t, dovecot_passwd_t)
29ce0009 211
ef394695 212read_files_pattern(dovecot_auth_t, dovecot_etc_t, dovecot_etc_t)
1ff72b4f 213read_lnk_files_pattern(dovecot_auth_t, dovecot_etc_t, dovecot_etc_t)
ef394695 214
bb881612
CP
215manage_dirs_pattern(dovecot_auth_t, dovecot_auth_tmp_t, dovecot_auth_tmp_t)
216manage_files_pattern(dovecot_auth_t, dovecot_auth_tmp_t, dovecot_auth_tmp_t)
217files_tmp_filetrans(dovecot_auth_t, dovecot_auth_tmp_t, { file dir })
29ce0009 218
ef659a47 219allow dovecot_auth_t dovecot_var_run_t:dir list_dir_perms;
bb881612
CP
220manage_sock_files_pattern(dovecot_auth_t, dovecot_var_run_t, dovecot_var_run_t)
221dovecot_stream_connect_auth(dovecot_auth_t)
9cca1cd5 222
445522dc 223kernel_read_all_sysctls(dovecot_auth_t)
29ce0009
CP
224kernel_read_system_state(dovecot_auth_t)
225
0e27962b
MG
226corecmd_exec_bin(dovecot_auth_t)
227
bb881612
CP
228logging_send_audit_msgs(dovecot_auth_t)
229logging_send_syslog_msg(dovecot_auth_t)
230
0daf404d 231dev_search_sysfs(dovecot_auth_t)
29ce0009
CP
232dev_read_urand(dovecot_auth_t)
233
234auth_domtrans_chk_passwd(dovecot_auth_t)
78510c55 235auth_use_nsswitch(dovecot_auth_t)
29ce0009
CP
236
237files_read_etc_files(dovecot_auth_t)
78510c55 238files_read_etc_runtime_files(dovecot_auth_t)
29ce0009 239files_search_pids(dovecot_auth_t)
bb881612 240files_read_usr_files(dovecot_auth_t)
9cca1cd5 241files_read_usr_symlinks(dovecot_auth_t)
d8eb3c71 242files_read_var_lib_files(dovecot_auth_t)
9cca1cd5 243files_search_tmp(dovecot_auth_t)
29ce0009 244
2d941d16
DG
245fs_getattr_xattr_fs(dovecot_auth_t)
246
d9845ae9
CP
247init_rw_utmp(dovecot_auth_t)
248
29ce0009
CP
249miscfiles_read_localization(dovecot_auth_t)
250
251seutil_dontaudit_search_config(dovecot_auth_t)
252
bb7170f6 253optional_policy(`
29ce0009 254 kerberos_use(dovecot_auth_t)
4dd84bbf
CP
255
256 # for gssapi (kerberos)
257 userdom_list_user_tmp(dovecot_auth_t)
258 userdom_read_user_tmp_files(dovecot_auth_t)
259 userdom_read_user_tmp_symlinks(dovecot_auth_t)
29ce0009
CP
260')
261
bb7170f6 262optional_policy(`
bb881612
CP
263 mysql_search_db(dovecot_auth_t)
264 mysql_stream_connect(dovecot_auth_t)
bd0a7f42
DW
265 mysql_read_config(dovecot_auth_t)
266 mysql_tcp_connect(dovecot_auth_t)
bb881612
CP
267')
268
269optional_policy(`
270 nis_authenticate(dovecot_auth_t)
271')
272
273optional_policy(`
3eaa9939 274 postfix_manage_private_sockets(dovecot_auth_t)
f52efc83 275 postfix_rw_master_pipes(dovecot_deliver_t)
bb881612
CP
276 postfix_search_spool(dovecot_auth_t)
277')
278
279########################################
280#
281# dovecot deliver local policy
282#
5a1cc7f0
MG
283
284allow dovecot_deliver_t self:fifo_file rw_fifo_file_perms;
bb881612
CP
285allow dovecot_deliver_t self:unix_dgram_socket create_socket_perms;
286
d8eb3c71
CP
287allow dovecot_deliver_t dovecot_t:process signull;
288
ae4084fc 289allow dovecot_deliver_t dovecot_etc_t:dir list_dir_perms;
3eaa9939 290read_files_pattern(dovecot_deliver_t, dovecot_etc_t, dovecot_etc_t)
1ff72b4f 291read_lnk_files_pattern(dovecot_deliver_t, dovecot_etc_t, dovecot_etc_t)
ae4084fc 292
3eaa9939 293allow dovecot_deliver_t dovecot_cert_t:dir search_dir_perms;
ef98a374
DW
294
295append_files_pattern(dovecot_deliver_t, dovecot_var_log_t, dovecot_var_log_t)
3eaa9939 296
3a321261
MG
297manage_dirs_pattern(dovecot_deliver_t, dovecot_deliver_tmp_t, dovecot_deliver_tmp_t)
298manage_files_pattern(dovecot_deliver_t, dovecot_deliver_tmp_t, dovecot_deliver_tmp_t)
299files_tmp_filetrans(dovecot_deliver_t, dovecot_deliver_tmp_t, { file dir })
300
3985ee8b
DG
301allow dovecot_deliver_t dovecot_var_run_t:dir list_dir_perms;
302read_sock_files_pattern(dovecot_deliver_t, dovecot_var_run_t, dovecot_var_run_t)
303dovecot_stream_connect(dovecot_deliver_t)
304
3eaa9939
DW
305can_exec(dovecot_deliver_t, dovecot_deliver_exec_t)
306
bb881612
CP
307kernel_read_all_sysctls(dovecot_deliver_t)
308kernel_read_system_state(dovecot_deliver_t)
309
3eaa9939
DW
310corecmd_exec_bin(dovecot_deliver_t)
311
bb881612
CP
312files_read_etc_files(dovecot_deliver_t)
313files_read_etc_runtime_files(dovecot_deliver_t)
314
315auth_use_nsswitch(dovecot_deliver_t)
316
317logging_send_syslog_msg(dovecot_deliver_t)
f4dc1988 318logging_append_all_logs(dovecot_deliver_t)
bb881612
CP
319
320miscfiles_read_localization(dovecot_deliver_t)
321
322dovecot_stream_connect_auth(dovecot_deliver_t)
323
324files_search_tmp(dovecot_deliver_t)
325
326fs_getattr_all_fs(dovecot_deliver_t)
327
328userdom_manage_user_home_content_dirs(dovecot_deliver_t)
329userdom_manage_user_home_content_files(dovecot_deliver_t)
330userdom_manage_user_home_content_symlinks(dovecot_deliver_t)
331userdom_manage_user_home_content_pipes(dovecot_deliver_t)
332userdom_manage_user_home_content_sockets(dovecot_deliver_t)
333userdom_user_home_dir_filetrans_user_home_content(dovecot_deliver_t, { dir file lnk_file fifo_file sock_file })
334
ed2ac112 335userdom_home_manager(dovecot_deliver_t)
4dd84bbf 336
4b7fe5b4
DW
337optional_policy(`
338 gnome_manage_data(dovecot_deliver_t)
339')
340
bb881612
CP
341optional_policy(`
342 mta_manage_spool(dovecot_deliver_t)
3eaa9939 343 mta_read_queue(dovecot_deliver_t)
29ce0009 344')
5a1cc7f0 345
2265b98c
DG
346optional_policy(`
347 postfix_use_fds_master(dovecot_deliver_t)
348')
349
5a1cc7f0
MG
350optional_policy(`
351 # Handle sieve scripts
352 sendmail_domtrans(dovecot_deliver_t)
353')