summaryrefslogtreecommitdiff
path: root/policy/modules/services/openca.te
blob: f5162c84771d43eb6085cf1c8f49f01a8850b5a5 (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

policy_module(openca, 1.2.0)

########################################
#
# Declarations
#

type openca_ca_t;
type openca_ca_exec_t;
domain_type(openca_ca_t)
domain_entry_file(openca_ca_t, openca_ca_exec_t)
role system_r types openca_ca_t;

# cjp: seems like some of these types
# can be removed and replaced with generic
# etc or usr files.

# /etc/openca standard files
type openca_etc_t;
files_config_file(openca_etc_t)

# /etc/openca template files
type openca_etc_in_t;
files_type(openca_etc_in_t)

# /etc/openca writeable (from CGI script) files
type openca_etc_writeable_t;
files_type(openca_etc_writeable_t)

# /usr/share/openca/crypto/keys
type openca_usr_share_t;
files_type(openca_usr_share_t)

# /var/lib/openca
type openca_var_lib_t;
files_type(openca_var_lib_t)

# /var/lib/openca/crypto/keys
type openca_var_lib_keys_t;
files_type(openca_var_lib_keys_t)

########################################
#
# Local policy
#

# Allow access to other files under /etc/openca
allow openca_ca_t openca_etc_t:file read_file_perms;
allow openca_ca_t openca_etc_t:dir list_dir_perms;

# Allow access to writeable files under /etc/openca
manage_dirs_pattern(openca_ca_t, openca_etc_writeable_t, openca_etc_writeable_t)
manage_files_pattern(openca_ca_t, openca_etc_writeable_t, openca_etc_writeable_t)

# Allow access to other /var/lib/openca files
manage_dirs_pattern(openca_ca_t, openca_var_lib_t, openca_var_lib_t)
manage_files_pattern(openca_ca_t, openca_var_lib_t, openca_var_lib_t)

# Allow access to private CA key
manage_dirs_pattern(openca_ca_t, openca_var_lib_keys_t, openca_var_lib_keys_t)
manage_files_pattern(openca_ca_t, openca_var_lib_keys_t, openca_var_lib_keys_t)

# Allow access to other /usr/share/openca files
read_files_pattern(openca_ca_t, openca_usr_share_t, openca_usr_share_t)
read_lnk_files_pattern(openca_ca_t, openca_usr_share_t, openca_usr_share_t)
allow openca_ca_t openca_usr_share_t:dir list_dir_perms;

# the perl executable will be able to run a perl script
corecmd_exec_bin(openca_ca_t)

dev_read_rand(openca_ca_t)

files_list_default(openca_ca_t)

init_use_fds(openca_ca_t)
init_use_script_fds(openca_ca_t)

libs_exec_lib_files(openca_ca_t)

apache_append_log(openca_ca_t)
# Allow the script to return its output
apache_rw_cache_files(openca_ca_t)