]> git.ipfire.org Git - people/stevee/selinux-policy.git/blame - policy/modules/services/amavis.te
patch from dan Wed, 29 Nov 2006 17:06:40 -0500
[people/stevee/selinux-policy.git] / policy / modules / services / amavis.te
CommitLineData
8a0a9944 1
a52b4d4f 2policy_module(amavis,1.1.0)
8a0a9944
CP
3
4########################################
5#
6# Declarations
7#
8
9type amavis_t;
10type amavis_exec_t;
11domain_type(amavis_t)
12init_daemon_domain(amavis_t, amavis_exec_t)
13
14# configuration files
15type amavis_etc_t;
16files_type(amavis_etc_t)
17
18# pid files
19type amavis_var_run_t;
20files_pid_file(amavis_var_run_t)
21
22# var/lib files
23type amavis_var_lib_t;
24files_type(amavis_var_lib_t)
25
26# log files
27type amavis_var_log_t;
28logging_log_file(amavis_var_log_t)
29
30# tmp files
31type amavis_tmp_t;
32files_tmp_file(amavis_tmp_t)
33
34# virus quarantine
35type amavis_quarantine_t;
36files_type(amavis_quarantine_t)
37
87eb5c84
CP
38type amavis_spool_t;
39files_type(amavis_spool_t)
40
8a0a9944
CP
41########################################
42#
43# amavis local policy
44#
45
87eb5c84 46allow amavis_t self:capability { kill chown dac_override setgid setuid };
8a0a9944
CP
47dontaudit amavis_t self:capability sys_tty_config;
48allow amavis_t self:process { signal sigchld signull };
49allow amavis_t self:fifo_file rw_file_perms;
50allow amavis_t self:unix_stream_socket create_stream_socket_perms;
51allow amavis_t self:unix_dgram_socket create_socket_perms;
52allow amavis_t self:tcp_socket { listen accept };
53
54# configuration files
55allow amavis_t amavis_etc_t:dir r_dir_perms;
56allow amavis_t amavis_etc_t:file r_file_perms;
57allow amavis_t amavis_etc_t:lnk_file { getattr read };
58
59# mail quarantine
60allow amavis_t amavis_quarantine_t:file create_file_perms;
61allow amavis_t amavis_quarantine_t:sock_file create_file_perms;
62allow amavis_t amavis_quarantine_t:dir create_dir_perms;
63
87eb5c84 64# Spool Files
a5e2133b 65files_search_spool(amavis_t)
87eb5c84
CP
66allow amavis_t amavis_spool_t:dir manage_dir_perms;
67allow amavis_t amavis_spool_t:file manage_file_perms;
522b59bb 68allow amavis_t amavis_spool_t:sock_file manage_file_perms;
a5e2133b 69type_transition amavis_t amavis_spool_t:sock_file amavis_var_run_t;
87eb5c84 70
8a0a9944
CP
71# tmp files
72allow amavis_t amavis_tmp_t:file create_file_perms;
73allow amavis_t amavis_tmp_t:dir { rw_dir_perms setattr };
74files_tmp_filetrans(amavis_t,amavis_tmp_t,file)
75
76# var/lib files for amavis
77allow amavis_t amavis_var_lib_t:file create_file_perms;
78allow amavis_t amavis_var_lib_t:sock_file create_file_perms;
79allow amavis_t amavis_var_lib_t:dir create_dir_perms;
8a0a9944
CP
80
81# log files
82allow amavis_t amavis_var_log_t:file create_file_perms;
83allow amavis_t amavis_var_log_t:sock_file create_file_perms;
84allow amavis_t amavis_var_log_t:dir { rw_dir_perms setattr };
85logging_log_filetrans(amavis_t,amavis_var_log_t,{ sock_file file dir })
86
87# pid file
88allow amavis_t amavis_var_run_t:file manage_file_perms;
89allow amavis_t amavis_var_run_t:sock_file manage_file_perms;
90allow amavis_t amavis_var_run_t:dir rw_dir_perms;
91files_pid_filetrans(amavis_t,amavis_var_run_t, { file sock_file })
92
87eb5c84 93kernel_read_kernel_sysctls(amavis_t)
8a0a9944
CP
94# amavis tries to access /proc/self/stat, /etc/shadow and /root - perl...
95kernel_dontaudit_list_proc(amavis_t)
522b59bb 96kernel_dontaudit_read_proc_symlinks(amavis_t)
87eb5c84 97kernel_dontaudit_read_system_state(amavis_t)
8a0a9944
CP
98
99# find perl
100corecmd_exec_bin(amavis_t)
101corecmd_search_sbin(amavis_t)
102
103corenet_non_ipsec_sendrecv(amavis_t)
104corenet_tcp_sendrecv_all_if(amavis_t)
105corenet_tcp_sendrecv_all_nodes(amavis_t)
522b59bb
CP
106corenet_tcp_bind_all_nodes(amavis_t)
107corenet_udp_bind_all_nodes(amavis_t)
8a0a9944
CP
108# amavis uses well-defined ports
109corenet_tcp_sendrecv_amavisd_recv_port(amavis_t)
110corenet_tcp_sendrecv_amavisd_send_port(amavis_t)
111# just the other side not. ;-)
112corenet_tcp_sendrecv_all_ports(amavis_t)
113# connect to backchannel port
114corenet_tcp_connect_amavisd_send_port(amavis_t)
115# bind to incoming port
116corenet_tcp_bind_amavisd_recv_port(amavis_t)
522b59bb 117corenet_udp_bind_generic_port(amavis_t)
a5e2133b 118corenet_tcp_connect_razor_port(amavis_t)
8a0a9944
CP
119
120dev_read_rand(amavis_t)
121dev_read_urand(amavis_t)
122
123domain_use_interactive_fds(amavis_t)
124
125files_read_etc_files(amavis_t)
126files_read_etc_runtime_files(amavis_t)
127files_read_usr_files(amavis_t)
128
129auth_dontaudit_read_shadow(amavis_t)
130
131init_use_fds(amavis_t)
132init_use_script_ptys(amavis_t)
87eb5c84 133init_stream_connect_script(amavis_t)
8a0a9944
CP
134
135libs_use_ld_so(amavis_t)
136libs_use_shared_libs(amavis_t)
137
138logging_send_syslog_msg(amavis_t)
139
140miscfiles_read_localization(amavis_t)
141
142sysnet_dns_name_resolve(amavis_t)
13d7cec6 143sysnet_use_ldap(amavis_t)
8a0a9944
CP
144
145userdom_dontaudit_search_sysadm_home_dirs(amavis_t)
146
147# Cron handling
148cron_use_fds(amavis_t)
149cron_use_system_job_fds(amavis_t)
150cron_rw_pipes(amavis_t)
151
152mta_read_config(amavis_t)
153
87eb5c84
CP
154ifdef(`targeted_policy',`
155 term_dontaudit_use_generic_ptys(amavis_t)
8708d9be 156 term_dontaudit_use_unallocated_ttys(amavis_t)
87eb5c84
CP
157')
158
bb7170f6 159optional_policy(`
8a0a9944 160 clamav_stream_connect(amavis_t)
87eb5c84 161 clamav_domtrans_clamscan(amavis_t)
8a0a9944
CP
162')
163
6ba4d964
CP
164optional_policy(`
165 dcc_domtrans_client(amavis_t)
166 dcc_stream_connect_dccifd(amavis_t)
167')
168
a5e2133b
CP
169optional_policy(`
170 postfix_read_config(amavis_t)
171')
172
e9935943
CP
173optional_policy(`
174 pyzor_domtrans(amavis_t)
175')
176
20e929e0
CP
177optional_policy(`
178 razor_domtrans(amavis_t)
179')
180
bb7170f6 181optional_policy(`
8a0a9944
CP
182 spamassassin_exec(amavis_t)
183 spamassassin_exec_client(amavis_t)
184')