]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/services/exim.te
Merge upstream
[people/stevee/selinux-policy.git] / policy / modules / services / exim.te
CommitLineData
29af4c13 1policy_module(exim, 1.5.0)
6bf8bf4f
CP
2
3########################################
4#
5# Declarations
6#
7
80348b73
CP
8## <desc>
9## <p>
10## Allow exim to connect to databases (postgres, mysql)
11## </p>
12## </desc>
13gen_tunable(exim_can_connect_db, false)
14
6bf8bf4f
CP
15## <desc>
16## <p>
17## Allow exim to read unprivileged user files.
18## </p>
19## </desc>
0bfccda4 20gen_tunable(exim_read_user_files, false)
6bf8bf4f
CP
21
22## <desc>
23## <p>
24## Allow exim to create, read, write, and delete
25## unprivileged user files.
26## </p>
27## </desc>
0bfccda4 28gen_tunable(exim_manage_user_files, false)
6bf8bf4f
CP
29
30type exim_t;
31type exim_exec_t;
32init_daemon_domain(exim_t, exim_exec_t)
80348b73
CP
33mta_mailserver(exim_t, exim_exec_t)
34mta_mailserver_user_agent(exim_t)
35application_executable_file(exim_exec_t)
36mta_agent_executable(exim_exec_t)
6bf8bf4f 37
3eaa9939
DW
38type exim_initrc_exec_t;
39init_script_file(exim_initrc_exec_t)
40
6bf8bf4f
CP
41type exim_log_t;
42logging_log_file(exim_log_t)
43
44type exim_spool_t;
45files_type(exim_spool_t)
46
47type exim_tmp_t;
48files_tmp_file(exim_tmp_t)
49
50type exim_var_run_t;
51files_pid_file(exim_var_run_t)
52
53########################################
54#
55# exim local policy
56#
57
3f67f722 58allow exim_t self:capability { chown dac_override dac_read_search fowner setuid setgid sys_resource };
80348b73 59allow exim_t self:process { setrlimit setpgid };
6bf8bf4f
CP
60allow exim_t self:fifo_file rw_fifo_file_perms;
61allow exim_t self:unix_stream_socket create_stream_socket_perms;
62allow exim_t self:tcp_socket create_stream_socket_perms;
80348b73 63allow exim_t self:udp_socket create_socket_perms;
6bf8bf4f 64
3f67f722 65can_exec(exim_t, exim_exec_t)
6bf8bf4f
CP
66
67manage_files_pattern(exim_t, exim_log_t, exim_log_t)
68logging_log_filetrans(exim_t, exim_log_t, { file dir })
69
70manage_dirs_pattern(exim_t, exim_spool_t, exim_spool_t)
71manage_files_pattern(exim_t, exim_spool_t, exim_spool_t)
72manage_sock_files_pattern(exim_t, exim_spool_t, exim_spool_t)
0bfccda4 73files_spool_filetrans(exim_t, exim_spool_t, { file dir sock_file })
6bf8bf4f
CP
74
75manage_dirs_pattern(exim_t, exim_tmp_t, exim_tmp_t)
76manage_files_pattern(exim_t, exim_tmp_t, exim_tmp_t)
77files_tmp_filetrans(exim_t, exim_tmp_t, { file dir })
78
79manage_dirs_pattern(exim_t, exim_var_run_t, exim_var_run_t)
80manage_files_pattern(exim_t, exim_var_run_t, exim_var_run_t)
81files_pid_filetrans(exim_t, exim_var_run_t, { file dir })
82
83kernel_read_kernel_sysctls(exim_t)
80348b73 84kernel_read_network_state(exim_t)
d57a0943
CP
85kernel_dontaudit_read_system_state(exim_t)
86
6bf8bf4f
CP
87corecmd_search_bin(exim_t)
88
89corenet_all_recvfrom_unlabeled(exim_t)
80348b73 90corenet_all_recvfrom_netlabel(exim_t)
668b3093 91corenet_tcp_sendrecv_generic_if(exim_t)
80348b73 92corenet_udp_sendrecv_generic_if(exim_t)
c1262146 93corenet_tcp_sendrecv_generic_node(exim_t)
80348b73 94corenet_udp_sendrecv_generic_node(exim_t)
6bf8bf4f 95corenet_tcp_sendrecv_all_ports(exim_t)
c1262146 96corenet_tcp_bind_generic_node(exim_t)
6bf8bf4f
CP
97corenet_tcp_bind_smtp_port(exim_t)
98corenet_tcp_bind_amavisd_send_port(exim_t)
99corenet_tcp_connect_auth_port(exim_t)
d57a0943
CP
100corenet_tcp_connect_smtp_port(exim_t)
101corenet_tcp_connect_ldap_port(exim_t)
6bf8bf4f 102corenet_tcp_connect_inetd_child_port(exim_t)
80348b73
CP
103# connect to spamassassin
104corenet_tcp_connect_spamd_port(exim_t)
6bf8bf4f 105
d57a0943
CP
106dev_read_rand(exim_t)
107dev_read_urand(exim_t)
108
6bf8bf4f
CP
109# Init script handling
110domain_use_interactive_fds(exim_t)
111
80348b73
CP
112files_search_usr(exim_t)
113files_search_var(exim_t)
6bf8bf4f 114files_read_etc_files(exim_t)
80348b73 115files_read_etc_runtime_files(exim_t)
84a45c96 116files_getattr_all_mountpoints(exim_t)
80348b73
CP
117
118fs_getattr_xattr_fs(exim_t)
119fs_list_inotifyfs(exim_t)
6bf8bf4f
CP
120
121auth_use_nsswitch(exim_t)
122
6bf8bf4f
CP
123logging_send_syslog_msg(exim_t)
124
125miscfiles_read_localization(exim_t)
83406219 126miscfiles_read_generic_certs(exim_t)
6bf8bf4f 127
296273a7 128userdom_dontaudit_search_user_home_dirs(exim_t)
6bf8bf4f
CP
129
130mta_read_aliases(exim_t)
80348b73
CP
131mta_read_config(exim_t)
132mta_manage_spool(exim_t)
133mta_mailserver_delivery(exim_t)
134
135tunable_policy(`exim_can_connect_db',`
136 corenet_tcp_connect_mysqld_port(exim_t)
137 corenet_sendrecv_mysqld_client_packets(exim_t)
3f67f722
CP
138 corenet_tcp_connect_postgresql_port(exim_t)
139 corenet_sendrecv_postgresql_client_packets(exim_t)
80348b73 140')
6bf8bf4f
CP
141
142tunable_policy(`exim_read_user_files',`
296273a7
CP
143 userdom_read_user_home_content_files(exim_t)
144 userdom_read_user_tmp_files(exim_t)
6bf8bf4f
CP
145')
146
147tunable_policy(`exim_manage_user_files',`
296273a7
CP
148 userdom_manage_user_home_content_dirs(exim_t)
149 userdom_read_user_tmp_files(exim_t)
150 userdom_write_user_tmp_files(exim_t)
6bf8bf4f 151')
80348b73
CP
152
153optional_policy(`
154 clamav_domtrans_clamscan(exim_t)
155 clamav_stream_connect(exim_t)
156')
157
158optional_policy(`
159 cron_read_pipes(exim_t)
160 cron_rw_system_job_pipes(exim_t)
161')
162
163optional_policy(`
164 cyrus_stream_connect(exim_t)
165')
166
167optional_policy(`
168 kerberos_keytab_template(exim, exim_t)
169')
170
171optional_policy(`
172 mailman_read_data_files(exim_t)
173 mailman_domtrans(exim_t)
174')
175
3eaa9939
DW
176optional_policy(`
177 nagios_search_spool(exim_t)
178')
179
80348b73
CP
180optional_policy(`
181 tunable_policy(`exim_can_connect_db',`
182 mysql_stream_connect(exim_t)
183 ')
184')
185
186optional_policy(`
187 tunable_policy(`exim_can_connect_db',`
188 postgresql_stream_connect(exim_t)
189 ')
190')
191
192optional_policy(`
193 procmail_domtrans(exim_t)
3eaa9939 194 procmail_read_home_files(exim_t)
80348b73
CP
195')
196
197optional_policy(`
198 sasl_connect(exim_t)
199')
200
9a1f0d21 201optional_policy(`
4931c57e
CP
202 # https://bugzilla.redhat.com/show_bug.cgi?id=512710
203 # uses sendmail for outgoing mail and exim
204 # for incoming mail
9a1f0d21
JS
205 sendmail_manage_tmp_files(exim_t)
206')
207
80348b73
CP
208optional_policy(`
209 spamassassin_exec(exim_t)
210 spamassassin_exec_client(exim_t)
211')