]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/services/clamav.te
Allow clamd to read spamd_var_run_t files
[people/stevee/selinux-policy.git] / policy / modules / services / clamav.te
CommitLineData
826d0142 1policy_module(clamav, 1.9.0)
4804cd43 2
94929a9b
DW
3## <desc>
4## <p>
5## Allow clamscan to read user content
6## </p>
7## </desc>
8gen_tunable(clamscan_read_user_content, false)
9
4804cd43 10## <desc>
68ac47d8
DG
11## <p>
12## Allow clamd to use JIT compiler
13## </p>
4804cd43
CP
14## </desc>
15gen_tunable(clamd_use_jit, false)
8a0a9944
CP
16
17########################################
18#
19# Declarations
20#
21
22# Main clamd domain
23type clamd_t;
24type clamd_exec_t;
25init_daemon_domain(clamd_t, clamd_exec_t)
26
27# configuration files
28type clamd_etc_t;
ad0aea53
CP
29files_config_file(clamd_etc_t)
30
31type clamd_initrc_exec_t;
32init_script_file(clamd_initrc_exec_t)
8a0a9944 33
8a0a9944
CP
34# tmp files
35type clamd_tmp_t;
36files_tmp_file(clamd_tmp_t)
37
38# log files
39type clamd_var_log_t;
40logging_log_file(clamd_var_log_t)
41
42# var/lib files
43type clamd_var_lib_t;
44files_type(clamd_var_lib_t)
45
46# pid files
47type clamd_var_run_t;
48files_pid_file(clamd_var_run_t)
46551033 49typealias clamd_var_run_t alias clamd_sock_t;
8a0a9944 50
165b42d2
CP
51type clamscan_t;
52type clamscan_exec_t;
53init_daemon_domain(clamscan_t, clamscan_exec_t)
54
522b59bb
CP
55# tmp files
56type clamscan_tmp_t;
57files_tmp_file(clamscan_tmp_t)
58
8a0a9944
CP
59type freshclam_t;
60type freshclam_exec_t;
61init_daemon_domain(freshclam_t, freshclam_exec_t)
62
63# log files
64type freshclam_var_log_t;
65logging_log_file(freshclam_var_log_t)
66
67########################################
68#
69# clamd local policy
70#
71
72allow clamd_t self:capability { kill setgid setuid dac_override };
4804cd43 73dontaudit clamd_t self:capability sys_tty_config;
5212892e
DW
74allow clamd_t self:process signal;
75
c0868a7a 76allow clamd_t self:fifo_file rw_fifo_file_perms;
ad0aea53 77allow clamd_t self:unix_stream_socket { create_stream_socket_perms connectto };
8a0a9944
CP
78allow clamd_t self:unix_dgram_socket create_socket_perms;
79allow clamd_t self:tcp_socket { listen accept };
80
81# configuration files
c0868a7a 82allow clamd_t clamd_etc_t:dir list_dir_perms;
0bfccda4
CP
83read_files_pattern(clamd_t, clamd_etc_t, clamd_etc_t)
84read_lnk_files_pattern(clamd_t, clamd_etc_t, clamd_etc_t)
8a0a9944 85
8a0a9944 86# tmp files
0bfccda4
CP
87manage_dirs_pattern(clamd_t, clamd_tmp_t, clamd_tmp_t)
88manage_files_pattern(clamd_t, clamd_tmp_t, clamd_tmp_t)
89files_tmp_filetrans(clamd_t, clamd_tmp_t, { file dir })
8a0a9944
CP
90
91# var/lib files for clamd
3eaa9939 92manage_sock_files_pattern(clamd_t, clamd_var_lib_t, clamd_var_lib_t)
0bfccda4
CP
93manage_dirs_pattern(clamd_t, clamd_var_lib_t, clamd_var_lib_t)
94manage_files_pattern(clamd_t, clamd_var_lib_t, clamd_var_lib_t)
8a0a9944
CP
95
96# log files
0bfccda4
CP
97manage_dirs_pattern(clamd_t, clamd_var_log_t, clamd_var_log_t)
98manage_files_pattern(clamd_t, clamd_var_log_t, clamd_var_log_t)
99logging_log_filetrans(clamd_t, clamd_var_log_t, { dir file })
8a0a9944
CP
100
101# pid file
08e567dc 102manage_dirs_pattern(clamd_t, clamd_var_run_t, clamd_var_run_t)
0bfccda4
CP
103manage_files_pattern(clamd_t, clamd_var_run_t, clamd_var_run_t)
104manage_sock_files_pattern(clamd_t, clamd_var_run_t, clamd_var_run_t)
3eaa9939 105files_pid_filetrans(clamd_t, clamd_var_run_t, { sock_file file dir })
8a0a9944
CP
106
107kernel_dontaudit_list_proc(clamd_t)
d6d16b97 108kernel_read_sysctl(clamd_t)
016e5c5c 109kernel_read_kernel_sysctls(clamd_t)
ad0aea53
CP
110kernel_read_system_state(clamd_t)
111
112corecmd_exec_shell(clamd_t)
8a0a9944 113
19006686
CP
114corenet_all_recvfrom_unlabeled(clamd_t)
115corenet_all_recvfrom_netlabel(clamd_t)
668b3093 116corenet_tcp_sendrecv_generic_if(clamd_t)
c1262146 117corenet_tcp_sendrecv_generic_node(clamd_t)
8a0a9944
CP
118corenet_tcp_sendrecv_all_ports(clamd_t)
119corenet_tcp_sendrecv_clamd_port(clamd_t)
c1262146 120corenet_tcp_bind_generic_node(clamd_t)
141cffdd 121corenet_tcp_bind_clamd_port(clamd_t)
ad0aea53
CP
122corenet_tcp_bind_generic_port(clamd_t)
123corenet_tcp_connect_generic_port(clamd_t)
6cf02752 124corenet_tcp_connect_clamd_port(clamd_t)
141cffdd 125corenet_sendrecv_clamd_server_packets(clamd_t)
8a0a9944
CP
126
127dev_read_rand(clamd_t)
128dev_read_urand(clamd_t)
129
130domain_use_interactive_fds(clamd_t)
131
132files_read_etc_files(clamd_t)
133files_read_etc_runtime_files(clamd_t)
522b59bb 134files_search_spool(clamd_t)
8a0a9944 135
192fb874
CP
136auth_use_nsswitch(clamd_t)
137
522b59bb
CP
138logging_send_syslog_msg(clamd_t)
139
8a0a9944
CP
140miscfiles_read_localization(clamd_t)
141
0117b6b5
DW
142optional_policy(`
143 amavis_read_lib_files(clamd_t)
144 amavis_read_spool_files(clamd_t)
145 amavis_spool_filetrans(clamd_t, clamd_var_run_t, sock_file)
146 amavis_create_pid_files(clamd_t)
147')
148
8898c090
MG
149optional_policy(`
150 cron_use_fds(clamd_t)
151 cron_use_system_job_fds(clamd_t)
152 cron_rw_pipes(clamd_t)
153')
8a0a9944 154
8898c090 155optional_policy(`
0117b6b5 156 exim_read_spool_files(clamd_t)
8898c090 157')
ad0aea53 158
bb7170f6 159optional_policy(`
0117b6b5
DW
160 mta_read_config(clamd_t)
161 mta_send_mail(clamd_t)
8a0a9944
CP
162')
163
ad0aea53 164optional_policy(`
0117b6b5 165 spamd_stream_connect(clamd_t)
dc1bbfd4 166 spamassassin_read_pid_files(clamd_t)
ad0aea53
CP
167')
168
29f3bfa4
CP
169tunable_policy(`clamd_use_jit',`
170 allow clamd_t self:process execmem;
3eaa9939 171 allow clamscan_t self:process execmem;
68ac47d8 172',`
29f3bfa4 173 dontaudit clamd_t self:process execmem;
3eaa9939 174 dontaudit clamscan_t self:process execmem;
29f3bfa4
CP
175')
176
8a0a9944
CP
177########################################
178#
179# Freshclam local policy
180#
181
182allow freshclam_t self:capability { setgid setuid dac_override };
c0868a7a 183allow freshclam_t self:fifo_file rw_fifo_file_perms;
8a0a9944
CP
184allow freshclam_t self:unix_stream_socket create_stream_socket_perms;
185allow freshclam_t self:unix_dgram_socket create_socket_perms;
186allow freshclam_t self:tcp_socket { listen accept };
187
188# configuration files
c0868a7a 189allow freshclam_t clamd_etc_t:dir list_dir_perms;
0bfccda4
CP
190read_files_pattern(freshclam_t, clamd_etc_t, clamd_etc_t)
191read_lnk_files_pattern(freshclam_t, clamd_etc_t, clamd_etc_t)
8a0a9944
CP
192
193# var/lib files together with clamd
0bfccda4
CP
194manage_dirs_pattern(freshclam_t, clamd_var_lib_t, clamd_var_lib_t)
195manage_files_pattern(freshclam_t, clamd_var_lib_t, clamd_var_lib_t)
8a0a9944
CP
196
197# pidfiles- var/run together with clamd
0bfccda4
CP
198manage_files_pattern(freshclam_t, clamd_var_run_t, clamd_var_run_t)
199manage_sock_files_pattern(freshclam_t, clamd_var_run_t, clamd_var_run_t)
200files_pid_filetrans(freshclam_t, clamd_var_run_t, file)
8a0a9944
CP
201
202# log files (own logfiles only)
0bfccda4 203manage_files_pattern(freshclam_t, freshclam_var_log_t, freshclam_var_log_t)
1dfc76f7 204allow freshclam_t freshclam_var_log_t:dir setattr_dir_perms;
f5b49a5e 205read_files_pattern(freshclam_t, clamd_var_log_t, clamd_var_log_t)
0bfccda4 206logging_log_filetrans(freshclam_t, freshclam_var_log_t, file)
8a0a9944 207
3eaa9939
DW
208kernel_read_kernel_sysctls(freshclam_t)
209kernel_read_system_state(freshclam_t)
210
f5b49a5e
DW
211corecmd_exec_shell(freshclam_t)
212corecmd_exec_bin(freshclam_t)
213
19006686
CP
214corenet_all_recvfrom_unlabeled(freshclam_t)
215corenet_all_recvfrom_netlabel(freshclam_t)
668b3093 216corenet_tcp_sendrecv_generic_if(freshclam_t)
c1262146 217corenet_tcp_sendrecv_generic_node(freshclam_t)
8a0a9944
CP
218corenet_tcp_sendrecv_all_ports(freshclam_t)
219corenet_tcp_sendrecv_clamd_port(freshclam_t)
8a0a9944 220corenet_tcp_connect_http_port(freshclam_t)
3eaa9939 221corenet_tcp_connect_clamd_port(freshclam_t)
141cffdd 222corenet_sendrecv_http_client_packets(freshclam_t)
8a0a9944
CP
223
224dev_read_rand(freshclam_t)
225dev_read_urand(freshclam_t)
226
227domain_use_interactive_fds(freshclam_t)
228
229files_read_etc_files(freshclam_t)
230files_read_etc_runtime_files(freshclam_t)
231
192fb874 232auth_use_nsswitch(freshclam_t)
8a0a9944 233
4804cd43
CP
234logging_send_syslog_msg(freshclam_t)
235
192fb874 236miscfiles_read_localization(freshclam_t)
8a0a9944
CP
237
238clamav_stream_connect(freshclam_t)
239
3eaa9939
DW
240userdom_stream_connect(freshclam_t)
241
29f3bfa4
CP
242tunable_policy(`clamd_use_jit',`
243 allow freshclam_t self:process execmem;
68ac47d8 244',`
29f3bfa4
CP
245 dontaudit freshclam_t self:process execmem;
246')
247
ef521e99
DG
248optional_policy(`
249 cron_system_entry(freshclam_t, freshclam_exec_t)
250')
251
165b42d2
CP
252########################################
253#
254# clamscam local policy
255#
256
257allow clamscan_t self:capability { setgid setuid dac_override };
258allow clamscan_t self:fifo_file rw_file_perms;
259allow clamscan_t self:unix_stream_socket create_stream_socket_perms;
260allow clamscan_t self:unix_dgram_socket create_socket_perms;
ad0aea53 261allow clamscan_t self:tcp_socket create_stream_socket_perms;
165b42d2
CP
262
263# configuration files
c0868a7a 264allow clamscan_t clamd_etc_t:dir list_dir_perms;
0bfccda4
CP
265read_files_pattern(clamscan_t, clamd_etc_t, clamd_etc_t)
266read_lnk_files_pattern(clamscan_t, clamd_etc_t, clamd_etc_t)
165b42d2 267
522b59bb 268# tmp files
0bfccda4
CP
269manage_dirs_pattern(clamscan_t, clamscan_tmp_t, clamscan_tmp_t)
270manage_files_pattern(clamscan_t, clamscan_tmp_t, clamscan_tmp_t)
271files_tmp_filetrans(clamscan_t, clamscan_tmp_t, { file dir })
522b59bb 272
165b42d2 273# var/lib files together with clamd
0bfccda4 274manage_files_pattern(clamscan_t, clamd_var_lib_t, clamd_var_lib_t)
c0868a7a 275allow clamscan_t clamd_var_lib_t:dir list_dir_perms;
165b42d2 276
42753faf
DG
277read_files_pattern(clamscan_t, clamd_var_run_t, clamd_var_run_t)
278allow clamscan_t clamd_var_run_t:dir list_dir_perms;
279
280kernel_read_system_state(clamscan_t)
281
ad0aea53
CP
282corenet_all_recvfrom_unlabeled(clamscan_t)
283corenet_all_recvfrom_netlabel(clamscan_t)
284corenet_tcp_sendrecv_generic_if(clamscan_t)
285corenet_tcp_sendrecv_generic_node(clamscan_t)
286corenet_tcp_sendrecv_all_ports(clamscan_t)
287corenet_tcp_sendrecv_clamd_port(clamscan_t)
bf998489 288corenet_tcp_bind_generic_node(clamscan_t)
ad0aea53
CP
289corenet_tcp_connect_clamd_port(clamscan_t)
290
94929a9b
DW
291corecmd_read_all_executables(clamscan_t)
292
293tunable_policy(`clamscan_read_user_content',`
294 userdom_read_user_home_content_files(clamscan_t)
295 userdom_dontaudit_read_user_home_content_files(clamscan_t)
296')
297
165b42d2 298kernel_read_kernel_sysctls(clamscan_t)
3eaa9939 299kernel_read_system_state(clamscan_t)
165b42d2
CP
300
301files_read_etc_files(clamscan_t)
302files_read_etc_runtime_files(clamscan_t)
303files_search_var_lib(clamscan_t)
304
016e5c5c
CP
305init_read_utmp(clamscan_t)
306init_dontaudit_write_utmp(clamscan_t)
307
165b42d2
CP
308miscfiles_read_localization(clamscan_t)
309miscfiles_read_public_files(clamscan_t)
310
311clamav_stream_connect(clamscan_t)
312
bf998489 313sysnet_read_config(clamscan_t)
ad0aea53 314
8898c090
MG
315optional_policy(`
316 mta_send_mail(clamscan_t)
317 mta_read_queue(clamscan_t)
318')
319
192fb874 320optional_policy(`
b174ead7 321 amavis_manage_spool_files(clamscan_t)
192fb874
CP
322')
323
165b42d2
CP
324optional_policy(`
325 apache_read_sys_content(clamscan_t)
326')