flask/policy: Add boolean example

This shows an example boolean (prot_doms_locked) which can be set at
runtime to prevent dom0 from mapping memory of domains of type
prot_domU_t.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
This commit is contained in:
Daniel De Graaf committed 2012-02-02 15:25:23 +00:00
1 parent 9e68bb1b66
commit 21149fb130
2 files changed
+11 -2

No files matched your search

+2 -1
View File
@@ -55,10 +55,11 @@ kernel; it is normally placed either just above the dom0 kernel or at the end.
Once dom0 is running, the policy can be reloaded using "xl loadpolicy".
The example policy included with Xen demonstrates most of the features of FLASK
that can be used without dom0 disaggregation. It has two main types for domUs:
that can be used without dom0 disaggregation. The main types for domUs are:
- domU_t is a domain that can communicate with any other domU_t
- isolated_domU_t can only communicate with dom0
- prot_domU_t is a domain type whose creation can be disabled with a boolean
One disadvantage of using type enforcement to enforce isolation is that a new
type is needed for each group of domains. In addition, it is not possible to
+9 -1
View File
@@ -73,7 +73,7 @@ allow dom0_t domio_t:mmu { map_read map_write };
domain_self_comms(dom0_t)
auditallow dom0_t security_t:security { load_policy setenforce };
auditallow dom0_t security_t:security { load_policy setenforce setbool };
###############################################################################
#
@@ -92,6 +92,14 @@ create_domain(dom0_t, isolated_domU_t)
manage_domain(dom0_t, isolated_domU_t)
domain_comms(dom0_t, isolated_domU_t)
gen_bool(prot_doms_locked, false)
declare_domain(prot_domU_t)
if (!prot_doms_locked) {
create_domain(dom0_t, prot_domU_t)
}
domain_comms(dom0_t, prot_domU_t)
domain_comms(domU_t, prot_domU_t)
###############################################################################
#
# Device delegation
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.