summaryrefslogtreecommitdiff
path: root/support-files/policy/selinux/mariadb-server.te
blob: 71924012283a158a68a02a12b1ed4225a29b7136 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# This SELinux type enforcement (.te) file has been copied under New BSD License
# from Percona XtraDB Cluster, along with some additions.

module mariadb-server 1.0;

require {
	type user_tmp_t;
	#type kerberos_master_port_t;
	type mysqld_safe_t;
	type tmp_t;
	type tmpfs_t;
	type hostname_exec_t;
	type ifconfig_exec_t;
	type sysctl_net_t;
	type proc_net_t;
	type port_t;
	type mysqld_t;
	type var_lib_t;
	type rsync_exec_t;
	type bin_t;
	type shell_exec_t;
	type anon_inodefs_t;
	type fixed_disk_device_t;
	class lnk_file read;
	class process { getattr signull };
	class unix_stream_socket connectto;
	class capability { sys_resource sys_nice };
	class tcp_socket { name_bind name_connect };
	class file { execute setattr read create getattr execute_no_trans write ioctl open append unlink };
	class sock_file { create unlink getattr };
	class blk_file { read write open };
	class dir { write search getattr add_name read remove_name open };

# MariaDB additions
	type kerberos_port_t;
	type tram_port_t;
	type mysqld_port_t;
	class udp_socket name_bind;
	class process setpgid;
	class netlink_tcpdiag_socket { create nlmsg_read };
}


#============= mysqld_safe_t ==============
allow mysqld_safe_t mysqld_t:process signull;
allow mysqld_safe_t self:capability { sys_resource sys_nice };
allow mysqld_safe_t tmp_t:file { create read write open getattr unlink ioctl setattr };
allow mysqld_safe_t tmp_t:dir { write remove_name add_name };
allow mysqld_safe_t tmp_t:sock_file { getattr unlink };
allow mysqld_safe_t user_tmp_t:sock_file { getattr unlink };
allow mysqld_safe_t var_lib_t:dir { write add_name };
allow mysqld_safe_t var_lib_t:file { write ioctl setattr create open getattr append unlink };

#============= mysqld_t ==============
allow mysqld_t anon_inodefs_t:file write;
allow mysqld_t tmp_t:sock_file { create unlink };
allow mysqld_t tmpfs_t:dir { write search read remove_name open add_name };
allow mysqld_t tmpfs_t:file { write getattr read create unlink open };
allow mysqld_t fixed_disk_device_t:blk_file { read write open };
allow mysqld_t ifconfig_exec_t:file { read execute open execute_no_trans getattr };

#This rule allows connecting on 4444/4567/4568
#allow mysqld_t kerberos_master_port_t:tcp_socket { name_bind name_connect };

allow mysqld_t mysqld_safe_t:dir { getattr search };
allow mysqld_t mysqld_safe_t:file { read open };
allow mysqld_t self:unix_stream_socket connectto;
allow mysqld_t port_t:tcp_socket { name_bind name_connect };
allow mysqld_t proc_net_t:file { read getattr open };
allow mysqld_t sysctl_net_t:dir search;
allow mysqld_t var_lib_t:file { getattr open append };
allow mysqld_t var_lib_t:sock_file { create unlink getattr };
allow mysqld_t rsync_exec_t:file { read getattr open execute execute_no_trans };
allow mysqld_t self:process getattr;
allow mysqld_t hostname_exec_t:file { read getattr execute open execute_no_trans };
allow mysqld_t user_tmp_t:dir { write add_name };
allow mysqld_t user_tmp_t:file create;
allow mysqld_t bin_t:lnk_file read;
allow mysqld_t tmp_t:file { append create read write open getattr unlink setattr };

# Allows too much leeway - the mariabackup/wsrep rules in fc should fix it, but
# keep for the moment.
allow mysqld_t shell_exec_t:file { execute_no_trans getattr read execute open };
allow mysqld_t bin_t:file { getattr read execute open execute_no_trans ioctl };

# MariaDB additions
allow mysqld_t self:process setpgid;
# This rule allows port tcp/4444
allow mysqld_t kerberos_port_t:tcp_socket { name_bind name_connect };
# This rule allows port tcp/4567 (tram_port_t may not be available on
# older versions)
allow mysqld_t tram_port_t:tcp_socket name_bind;
# This rule allows port udp/4567 (see README)
allow mysqld_t mysqld_port_t:udp_socket name_bind;

# Rules related to mariabackup
allow mysqld_t self:netlink_tcpdiag_socket { create nlmsg_read };
allow mysqld_t sysctl_net_t:file { read getattr open };