1 |
commit: 088a3666044ddd17b103dcb703b399acb7076834 |
2 |
Author: Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be> |
3 |
AuthorDate: Thu Nov 1 21:00:57 2012 +0000 |
4 |
Commit: Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be> |
5 |
CommitDate: Thu Nov 1 21:00:57 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=088a3666 |
7 |
|
8 |
Reshuffle gentoo specific ldap changes. Also introduce an ldap_admin interface |
9 |
|
10 |
--- |
11 |
policy/modules/contrib/ldap.if | 30 ++++++++++++++++++++++++++---- |
12 |
policy/modules/contrib/ldap.te | 12 ++++++++---- |
13 |
2 files changed, 34 insertions(+), 8 deletions(-) |
14 |
|
15 |
diff --git a/policy/modules/contrib/ldap.if b/policy/modules/contrib/ldap.if |
16 |
index 1c58ff5..de2508e 100644 |
17 |
--- a/policy/modules/contrib/ldap.if |
18 |
+++ b/policy/modules/contrib/ldap.if |
19 |
@@ -117,7 +117,6 @@ interface(`ldap_admin',` |
20 |
type slapd_lock_t, slapd_etc_t, slapd_var_run_t; |
21 |
type slapd_initrc_exec_t, slapd_log_t, slapd_cert_t; |
22 |
type slapd_db_t; |
23 |
- type slapd_exec_t; |
24 |
') |
25 |
|
26 |
allow $1 slapd_t:process { ptrace signal_perms }; |
27 |
@@ -128,9 +127,6 @@ interface(`ldap_admin',` |
28 |
role_transition $2 slapd_initrc_exec_t system_r; |
29 |
allow $2 system_r; |
30 |
|
31 |
- role $2 types slapd_t; |
32 |
- domtrans_pattern($1, slapd_exec_t, slapd_t) |
33 |
- |
34 |
files_list_etc($1) |
35 |
admin_pattern($1, { slapd_etc_t slapd_db_t slapd_cert_t }) |
36 |
|
37 |
@@ -149,3 +145,29 @@ interface(`ldap_admin',` |
38 |
files_list_pids($1) |
39 |
admin_pattern($1, slapd_var_run_t) |
40 |
') |
41 |
+ |
42 |
+######################################## |
43 |
+## <summary> |
44 |
+## Execute slapd in the slapd domain, and |
45 |
+## allow the given role the slapd_t type. |
46 |
+## </summary> |
47 |
+## <param name="domain"> |
48 |
+## <summary> |
49 |
+## Domain allowed to transition. |
50 |
+## </summary> |
51 |
+## </param> |
52 |
+## <param name="role"> |
53 |
+## <summary> |
54 |
+## Role allowed access. |
55 |
+## </summary> |
56 |
+## </param> |
57 |
+# |
58 |
+interface(`ldap_run',` |
59 |
+ gen_require(` |
60 |
+ type slapd_t; |
61 |
+ type slapd_exec_t; |
62 |
+ ') |
63 |
+ |
64 |
+ role $2 types slapd_t; |
65 |
+ domtrans_pattern($1, slapd_exec_t, slapd_t) |
66 |
+') |
67 |
|
68 |
diff --git a/policy/modules/contrib/ldap.te b/policy/modules/contrib/ldap.te |
69 |
index 2d57372..7968e39 100644 |
70 |
--- a/policy/modules/contrib/ldap.te |
71 |
+++ b/policy/modules/contrib/ldap.te |
72 |
@@ -46,10 +46,8 @@ files_pid_file(slapd_var_run_t) |
73 |
|
74 |
allow slapd_t self:capability { kill setgid setuid net_raw dac_override dac_read_search }; |
75 |
dontaudit slapd_t self:capability sys_tty_config; |
76 |
-allow slapd_t self:process { setsched signal }; |
77 |
+allow slapd_t self:process setsched; |
78 |
allow slapd_t self:fifo_file rw_fifo_file_perms; |
79 |
-allow slapd_t self:unix_stream_socket listen; |
80 |
-#slapd needs to listen and accept needed by ldapsearch (slapd needs to accept from ldapseach) |
81 |
allow slapd_t self:tcp_socket { accept listen }; |
82 |
|
83 |
allow slapd_t slapd_cert_t:dir list_dir_perms; |
84 |
@@ -124,7 +122,13 @@ miscfiles_read_localization(slapd_t) |
85 |
|
86 |
userdom_dontaudit_use_unpriv_user_fds(slapd_t) |
87 |
userdom_dontaudit_search_user_home_dirs(slapd_t) |
88 |
-userdom_use_user_terminals(slapd_t) |
89 |
+ |
90 |
+ifdef(`distro_gentoo',` |
91 |
+ allow slapd_t self:process signal; |
92 |
+ allow slapd_t self:unix_stream_socket listen; |
93 |
+ |
94 |
+ userdom_use_user_terminals(slapd_t) |
95 |
+') |
96 |
|
97 |
optional_policy(` |
98 |
kerberos_keytab_template(slapd, slapd_t) |