diff --git a/.cvsignore b/.cvsignore
index e3d7381..4c1f1a7 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -126,3 +126,4 @@ serefpolicy-3.0.5.tgz
serefpolicy-3.0.6.tgz
serefpolicy-3.0.7.tgz
serefpolicy-3.0.8.tgz
+serefpolicy-3.1.0.tgz
diff --git a/booleans-targeted.conf b/booleans-targeted.conf
index d912b95..ea86836 100644
--- a/booleans-targeted.conf
+++ b/booleans-targeted.conf
@@ -254,3 +254,7 @@ allow_xguest_exec_content = false
# Only allow browser to use the web
#
browser_confine_xguest=true
+
+# Allow postfix locat to write to mail spool
+#
+allow_postfix_local_write_mail_spool=true
diff --git a/modules-targeted.conf b/modules-targeted.conf
index 729db8c..801df84 100644
--- a/modules-targeted.conf
+++ b/modules-targeted.conf
@@ -1522,3 +1522,17 @@ exim = module
#
kismet = module
+# Layer: services
+# Module: munin
+#
+# Munin
+#
+munin = module
+
+# Layer: services
+# Module: bitlbee
+#
+# An IRC to other chat networks gateway
+#
+bitlbee = module
+
diff --git a/policy-20071023.patch b/policy-20071023.patch
new file mode 100644
index 0000000..9ae1ad4
--- /dev/null
+++ b/policy-20071023.patch
@@ -0,0 +1,17049 @@
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/default_contexts serefpolicy-3.1.0/config/appconfig-mcs/default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/default_contexts 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -1,15 +1,9 @@
+-system_r:crond_t:s0 user_r:user_crond_t:s0 staff_r:staff_crond_t:s0 sysadm_r:sysadm_crond_t:s0 system_r:system_crond_t:s0 unconfined_r:unconfined_crond_t:s0
+-system_r:local_login_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-system_r:remote_login_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 unconfined_r:unconfined_t:s0
+-system_r:sshd_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-system_r:sulogin_t:s0 sysadm_r:sysadm_t:s0
+-system_r:xdm_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-
+-staff_r:staff_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
+-staff_r:staff_sudo_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0
+-
+-sysadm_r:sysadm_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
+-sysadm_r:sysadm_sudo_t:s0 sysadm_r:sysadm_t:s0
+-
+-user_r:user_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
+-user_r:user_sudo_t:s0 sysadm_r:sysadm_t:s0 user_r:user_t:s0
++system_r:crond_t:s0 system_r:unconfined_t:s0
++system_r:initrc_t:s0 system_r:unconfined_t:s0
++system_r:local_login_t:s0 system_r:unconfined_t:s0
++system_r:remote_login_t:s0 system_r:unconfined_t:s0
++system_r:rshd_t:s0 system_r:unconfined_t:s0
++system_r:sshd_t:s0 system_r:unconfined_t:s0
++system_r:sysadm_su_t:s0 system_r:unconfined_t:s0
++system_r:unconfined_t:s0 system_r:unconfined_t:s0
++system_r:xdm_t:s0 system_r:unconfined_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/default_type serefpolicy-3.1.0/config/appconfig-mcs/default_type
+--- nsaserefpolicy/config/appconfig-mcs/default_type 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/default_type 2007-10-23 18:51:10.000000000 -0400
+@@ -1,4 +1,4 @@
++system_r:unconfined_t
+ sysadm_r:sysadm_t
+ staff_r:staff_t
+-unconfined_r:unconfined_t
+ user_r:user_t
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/failsafe_context serefpolicy-3.1.0/config/appconfig-mcs/failsafe_context
+--- nsaserefpolicy/config/appconfig-mcs/failsafe_context 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/failsafe_context 2007-10-23 18:51:10.000000000 -0400
+@@ -1 +1 @@
+-sysadm_r:sysadm_t:s0
++system_r:unconfined_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/guest_u_default_contexts serefpolicy-3.1.0/config/appconfig-mcs/guest_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/guest_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mcs/guest_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,4 @@
++system_r:local_login_t:s0 guest_r:guest_t:s0
++system_r:remote_login_t:s0 guest_r:guest_t:s0
++system_r:sshd_t:s0 guest_r:guest_t:s0
++system_r:crond_t:s0 guest_r:guest_crond_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/root_default_contexts serefpolicy-3.1.0/config/appconfig-mcs/root_default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/root_default_contexts 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/root_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -1,11 +1,10 @@
+-system_r:crond_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_crond_t:s0 staff_r:staff_crond_t:s0 user_r:user_crond_t:s0
+-system_r:local_login_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-
+-staff_r:staff_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-sysadm_r:sysadm_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-user_r:user_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-
++system_r:local_login_t:s0 system_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++system_r:crond_t:s0 system_r:unconfined_t:s0 sysadm_r:sysadm_crond_t:s0 staff_r:staff_crond_t:s0 user_r:user_crond_t:s0
++staff_r:staff_su_t:s0 system_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++sysadm_r:sysadm_su_t:s0 system_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++user_r:user_su_t:s0 system_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+ #
+ # Uncomment if you want to automatically login as sysadm_r
+ #
+-#system_r:sshd_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++#system_r:sshd_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/seusers serefpolicy-3.1.0/config/appconfig-mcs/seusers
+--- nsaserefpolicy/config/appconfig-mcs/seusers 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/seusers 2007-10-23 18:51:10.000000000 -0400
+@@ -1,3 +1,2 @@
+-system_u:system_u:s0-mcs_systemhigh
+ root:root:s0-mcs_systemhigh
+-__default__:user_u:s0
++__default__:system_u:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/staff_u_default_contexts serefpolicy-3.1.0/config/appconfig-mcs/staff_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/staff_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mcs/staff_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,9 @@
++system_r:local_login_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:remote_login_t:s0 staff_r:staff_t:s0
++system_r:sshd_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:crond_t:s0 staff_r:staff_crond_t:s0 sysadm_r:sysadm_crond_t:s0 system_r:system_crond_t:s0 mailman_r:user_crond_t:s0
++system_r:xdm_t:s0 staff_r:staff_t:s0
++staff_r:staff_su_t:s0 staff_r:staff_t:s0
++staff_r:staff_sudo_t:s0 staff_r:staff_t:s0
++sysadm_r:sysadm_su_t:s0 sysadm_r:sysadm_t:s0
++sysadm_r:sysadm_sudo_t:s0 sysadm_r:sysadm_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/userhelper_context serefpolicy-3.1.0/config/appconfig-mcs/userhelper_context
+--- nsaserefpolicy/config/appconfig-mcs/userhelper_context 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mcs/userhelper_context 2007-10-23 18:51:10.000000000 -0400
+@@ -1 +1 @@
+-system_u:sysadm_r:sysadm_t:s0
++system_u:system_r:unconfined_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/user_u_default_contexts serefpolicy-3.1.0/config/appconfig-mcs/user_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/user_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mcs/user_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,7 @@
++system_r:local_login_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
++system_r:remote_login_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
++system_r:sshd_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
++system_r:crond_t:s0 system_r:unconfined_t:s0 user_r:user_crond_t:s0
++system_r:xdm_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
++user_r:user_su_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
++user_r:user_sudo_t:s0 system_r:unconfined_t:s0 user_r:user_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mcs/xguest_u_default_contexts serefpolicy-3.1.0/config/appconfig-mcs/xguest_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mcs/xguest_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mcs/xguest_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,5 @@
++system_r:local_login_t xguest_r:xguest_t:s0
++system_r:remote_login_t xguest_r:xguest_t:s0
++system_r:sshd_t xguest_r:xguest_t:s0
++system_r:crond_t xguest_r:xguest_crond_t:s0
++system_r:xdm_t xguest_r:xguest_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mls/default_contexts serefpolicy-3.1.0/config/appconfig-mls/default_contexts
+--- nsaserefpolicy/config/appconfig-mls/default_contexts 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mls/default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -1,15 +1,12 @@
+-system_r:crond_t:s0 user_r:user_crond_t:s0 staff_r:staff_crond_t:s0 sysadm_r:sysadm_crond_t:s0 system_r:system_crond_t:s0 unconfined_r:unconfined_crond_t:s0
+-system_r:local_login_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-system_r:remote_login_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 unconfined_r:unconfined_t:s0
+-system_r:sshd_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-system_r:sulogin_t:s0 sysadm_r:sysadm_t:s0
+-system_r:xdm_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0 unconfined_r:unconfined_t:s0
+-
+-staff_r:staff_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
+-staff_r:staff_sudo_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0
+-
+-sysadm_r:sysadm_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:sulogin_t:s0 sysadm_r:sysadm_t:s0
++system_r:local_login_t:s0 staff_r:staff_t:s0 user_r:user_t:s0 sysadm_r:sysadm_t:s0
++system_r:remote_login_t:s0 user_r:user_t:s0 staff_r:staff_t:s0
++system_r:sshd_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:crond_t:s0 user_r:user_crond_t:s0 staff_r:staff_crond_t:s0 sysadm_r:sysadm_crond_t:s0 system_r:system_crond_t:s0 mailman_r:user_crond_t:s0
++system_r:xdm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0 sysadm_r:sysadm_t:s0
++staff_r:staff_su_t:s0 staff_r:staff_t:s0 user_r:user_t:s0 sysadm_r:sysadm_t:s0
++sysadm_r:sysadm_su_t:s0 staff_r:staff_t:s0 user_r:user_t:s0 sysadm_r:sysadm_t:s0
++user_r:user_su_t:s0 staff_r:staff_t:s0 user_r:user_t:s0 sysadm_r:sysadm_t:s0
+ sysadm_r:sysadm_sudo_t:s0 sysadm_r:sysadm_t:s0
+-
+-user_r:user_su_t:s0 user_r:user_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
+-user_r:user_sudo_t:s0 sysadm_r:sysadm_t:s0 user_r:user_t:s0
++staff_r:staff_sudo_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0
++user_r:user_sudo_t:s0 sysadm_r:sysadm_t:s0 user_r:user_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mls/guest_u_default_contexts serefpolicy-3.1.0/config/appconfig-mls/guest_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mls/guest_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mls/guest_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,4 @@
++system_r:local_login_t:s0 guest_r:guest_t:s0
++system_r:remote_login_t:s0 guest_r:guest_t:s0
++system_r:sshd_t:s0 guest_r:guest_t:s0
++system_r:crond_t:s0 guest_r:guest_crond_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mls/root_default_contexts serefpolicy-3.1.0/config/appconfig-mls/root_default_contexts
+--- nsaserefpolicy/config/appconfig-mls/root_default_contexts 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/config/appconfig-mls/root_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -1,11 +1,9 @@
+-system_r:crond_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_crond_t:s0 staff_r:staff_crond_t:s0 user_r:user_crond_t:s0
+-system_r:local_login_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-
+-staff_r:staff_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-sysadm_r:sysadm_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-user_r:user_su_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+-
++system_r:local_login_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++system_r:crond_t:s0 sysadm_r:sysadm_crond_t:s0 staff_r:staff_crond_t:s0 user_r:user_crond_t:s0
++staff_r:staff_su_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++sysadm_r:sysadm_su_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++user_r:user_su_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+ #
+ # Uncomment if you want to automatically login as sysadm_r
+ #
+-#system_r:sshd_t:s0 unconfined_r:unconfined_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
++#system_r:sshd_t:s0 sysadm_r:sysadm_t:s0 staff_r:staff_t:s0 user_r:user_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mls/staff_u_default_contexts serefpolicy-3.1.0/config/appconfig-mls/staff_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mls/staff_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mls/staff_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,9 @@
++system_r:local_login_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:remote_login_t:s0 staff_r:staff_t:s0
++system_r:sshd_t:s0 staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
++system_r:crond_t:s0 staff_r:staff_crond_t:s0 sysadm_r:sysadm_crond_t:s0 system_r:system_crond_t:s0 mailman_r:user_crond_t:s0
++system_r:xdm_t:s0 staff_r:staff_t:s0
++staff_r:staff_su_t:s0 staff_r:staff_t:s0
++staff_r:staff_sudo_t:s0 staff_r:staff_t:s0
++sysadm_r:sysadm_su_t:s0 sysadm_r:sysadm_t:s0
++sysadm_r:sysadm_sudo_t:s0 sysadm_r:sysadm_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-mls/user_u_default_contexts serefpolicy-3.1.0/config/appconfig-mls/user_u_default_contexts
+--- nsaserefpolicy/config/appconfig-mls/user_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-mls/user_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,7 @@
++system_r:local_login_t:s0 user_r:user_t:s0
++system_r:remote_login_t:s0 user_r:user_t:s0
++system_r:sshd_t:s0 user_r:user_t:s0
++system_r:crond_t:s0 user_r:user_crond_t:s0
++system_r:xdm_t:s0 user_r:user_t:s0
++user_r:user_su_t:s0 user_r:user_t:s0
++user_r:user_sudo_t:s0 user_r:user_t:s0
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-standard/guest_u_default_contexts serefpolicy-3.1.0/config/appconfig-standard/guest_u_default_contexts
+--- nsaserefpolicy/config/appconfig-standard/guest_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-standard/guest_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,4 @@
++system_r:local_login_t guest_r:guest_t
++system_r:remote_login_t guest_r:guest_t
++system_r:sshd_t guest_r:guest_t
++system_r:crond_t guest_r:guest_crond_t
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-standard/staff_u_default_contexts serefpolicy-3.1.0/config/appconfig-standard/staff_u_default_contexts
+--- nsaserefpolicy/config/appconfig-standard/staff_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-standard/staff_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,9 @@
++system_r:local_login_t staff_r:staff_t sysadm_r:sysadm_t
++system_r:remote_login_t staff_r:staff_t
++system_r:sshd_t staff_r:staff_t sysadm_r:sysadm_t
++system_r:crond_t staff_r:staff_crond_t sysadm_r:sysadm_crond_t system_r:system_crond_t mailman_r:user_crond_t
++system_r:xdm_t staff_r:staff_t
++staff_r:staff_su_t staff_r:staff_t
++staff_r:staff_sudo_t staff_r:staff_t
++sysadm_r:sysadm_su_t sysadm_r:sysadm_t
++sysadm_r:sysadm_sudo_t sysadm_r:sysadm_t
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-standard/user_u_default_contexts serefpolicy-3.1.0/config/appconfig-standard/user_u_default_contexts
+--- nsaserefpolicy/config/appconfig-standard/user_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-standard/user_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,7 @@
++system_r:local_login_t system_r:unconfined_t user_r:user_t
++system_r:remote_login_t system_r:unconfined_t user_r:user_t
++system_r:sshd_t system_r:unconfined_t user_r:user_t
++system_r:crond_t system_r:unconfined_t user_r:user_crond_t
++system_r:xdm_t system_r:unconfined_t user_r:user_t
++user_r:user_su_t system_r:unconfined_t user_r:user_t
++user_r:user_sudo_t system_r:unconfined_t user_r:user_t
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/config/appconfig-standard/xguest_u_default_contexts serefpolicy-3.1.0/config/appconfig-standard/xguest_u_default_contexts
+--- nsaserefpolicy/config/appconfig-standard/xguest_u_default_contexts 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/config/appconfig-standard/xguest_u_default_contexts 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,5 @@
++system_r:local_login_t xguest_r:xguest_t
++system_r:remote_login_t xguest_r:xguest_t
++system_r:sshd_t xguest_r:xguest_t
++system_r:crond_t xguest_r:xguest_crond_t
++system_r:xdm_t xguest_r:xguest_t
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/ftpd_selinux.8 serefpolicy-3.1.0/man/ru/man8/ftpd_selinux.8
+--- nsaserefpolicy/man/ru/man8/ftpd_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/ftpd_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,57 @@
++.TH "ftpd_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "ftpd Selinux Policy documentation"
++.SH "НАЗВАНИЕ"
++ftpd_selinux \- Политика Security Enhanced Linux для демона ftp
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux обеспечивает защиту сервера ftpd при помощи гибко настраиваемого мандатного контроля доступа.
++.SH КОНТЕКСТ ФАЙЛОВ
++SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла.
++Политика управляет видом доступа демона к этим файлам. Если вы хотите организовать анонимный
++доступ к файлам, вы должны присвоить этим файлам и директориям контекст public_content_t.
++Таким образом, если вы создаете специальную директорию /var/ftp, то вам необходимо установить контекст для этой директории при помощи утилиты chcon.
++.TP
++chcon -R -t public_content_t /var/ftp
++.TP
++Если вы хотите задать директорию, в которую вы собираетесь загружать файлы, то вы должны
++установить контекст ftpd_anon_rw_t. Таким образом, если вы создаете специальную директорию /var/ftp/incoming, то вам необходимо установить контекст для этой директории при помощи утилиты chcon.
++.TP
++chcon -t public_content_rw_t /var/ftp/incoming
++.TP
++Вы также должны включить переключатель allow_ftpd_anon_write.
++.TP
++setsebool -P allow_ftpd_anon_write=1
++.TP
++Если вы хотите сделать эти изменения постоянными, иными словами, чтобы данный контекст сохранялся
++при обновлении контекстов, вы должны добавить записи в файл file_contexts.local.
++.TP
++/etc/selinux/POLICYTYPE/contexts/files/file_contexts.local
++.br
++/var/ftp(/.*)? system_u:object_r:public_content_t
++/var/ftp/incoming(/.*)? system_u:object_r:public_content_rw_t
++
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++Политика SELinux для демона ftp настроена исходя из принципа наименьших привелегий. Таким
++образом, по умолчанию политика SELinux не позволяет пользователям заходить на сервер и
++читать содержимое их домашних директорий.
++.br
++Если вы настраиваете данную машину как ftpd-сервер и хотите, чтобы пользователи могли получать
++доступ к своим домашним директориям, то вам необходимо установить переключатель ftp_home_dir.
++.TP
++setsebool -P ftp_home_dir 1
++.TP
++ftpd может функционировать как самостоятельный демон, а также как часть домена xinetd. Если вы
++хотите, чтобы ftpd работал как демон, вы должны установить переключатель ftpd_is_daemon.
++.TP
++setsebool -P ftpd_is_daemon 1
++.br
++service vsftpd restart
++.TP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), ftpd(8), chcon(1), setsebool(8)
++
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/httpd_selinux.8 serefpolicy-3.1.0/man/ru/man8/httpd_selinux.8
+--- nsaserefpolicy/man/ru/man8/httpd_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/httpd_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,137 @@
++.TH "httpd_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "httpd Selinux Policy documentation"
++.de EX
++.nf
++.ft CW
++..
++.de EE
++.ft R
++.fi
++..
++.SH "НАЗВАНИЕ"
++httpd_selinux \- Политика Security Enhanced Linux для демона httpd
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux обеспечивает защиту сервера httpd при помощи гибко настраиваемого мандатного контроля доступа.
++.SH КОНТЕКСТ ФАЙЛОВ
++SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла.
++Политика управляет видом доступа демона к этим файлам.
++Политика SELinux для демона httpd позволяет пользователям настроить web-службы максимально безопасным методом с высокой степенью гибкости.
++.PP
++Для httpd определены следующие контексты файлов:
++.EX
++httpd_sys_content_t
++.EE
++- Установите контекст httpd_sys_content_t для содержимого, которое должно быть доступно для всех скриптов httpd и для самого демона.
++.EX
++httpd_sys_script_exec_t
++.EE
++- Установите контекст httpd_sys_script_exec_t для cgi-скриптов, чтобы разрешить им доступ ко всем sys-типам.
++.EX
++httpd_sys_script_ro_t
++.EE
++- Установите на файлы контекст httpd_sys_script_ro_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать данные, и при этом нужно запретить доступ другим не-sys скриптам.
++.EX
++httpd_sys_script_rw_t
++.EE
++- Установите на файлы контекст httpd_sys_script_rw_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать и писать данные, и при этом нужно запретить доступ другим не-sys скриптам.
++.EX
++httpd_sys_script_ra_t
++.EE
++- Установите на файлы контекст httpd_sys_script_ra_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать и добавлять данные, и при этом нужно запретить доступ другим не-sys скриптам.
++.EX
++httpd_unconfined_script_exec_t
++.EE
++- Установите на cgi-скрипты контекст httpd_unconfined_script_exec_t если вы хотите разрешить
++им исполняться без какой-либо защиты SELinux. Такой способ должен использоваться только для
++скриптов с очень комплексными требованиями, и только в случае, если все остальные варианты настройки не дали результата. Лучше использовать скрипты с контекстом httpd_unconfined_script_exec_t, чем выключать защиту SELinux для httpd.
++
++.SH ЗАМЕЧАНИЕ
++Вместе с некоторыми политиками, вы можете определить дополнительные контексты файлов, основанные
++на ролях, таких как user или staff. Может быть определен контекст httpd_user_script_exec_t, который будет иметь доступ только к "пользовательским" контекстам.
++
++.SH СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ
++Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный
++доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t.
++Данный контекст позволяет любому из выше перечисленных демонов читать содержимое.
++Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны
++установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для httpd вы должны выполнить команду:
++
++.EX
++setsebool -P allow_httpd_anon_write=1
++.EE
++
++или
++
++.EX
++setsebool -P allow_httpd_sys_script_anon_write=1
++.EE
++
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++Политика SELinux настроена исходя из принципа наименьших привилегий. Таким образом,
++по умолчанию SELinux препятствует работе некоторых http-скриптов. Политика httpd весьма
++гибка, и существующие переключатели управляют политикой, позволяя httpd выполняться
++с наименее возможными правами доступа.
++.PP
++Если вы хотите, чтобы httpd мог исполнять cgi-скрипты, установите переключатель httpd_enable_cgi
++.EX
++setsebool -P httpd_enable_cgi 1
++.EE
++
++.PP
++По умолчанию демону httpd не разрешен доступ в домашние дерикториии пользователей. Если вы хотите разрешить доступ, вам необходимо установить переключатель httpd_enable_homedirs и изменить контекст
++тех файлов в домашних директориях пользователей, к которым должен быть разрешен доступ.
++
++.EX
++setsebool -P httpd_enable_homedirs 1
++chcon -R -t httpd_sys_content_t ~user/public_html
++.EE
++
++.PP
++По умолчанию демон httpd не имеет доступ к управляющему терминалу. В большинстве случаев такое
++поведение является предпочтительным. Это связанно с тем, что злоумышленник может попытаться
++использовать доступ к терминалу для получения привилегий. Однако, в некоторых ситуациях демон
++httpd должен выводить запрос пароля для открытия файла сертификата и в таких случаях нужен доступ
++к терминалу. Для того, чтобы разрешить доступ к терминалу, установите переключатель httpd_tty_comm.
++.EX
++setsebool -P httpd_tty_comm 1
++.EE
++
++.PP
++httpd может быть настроен так, чтобы не разграничивать тип доступа к файлу на основании контекста.
++Иными словами, ко всем файлам, имеющим контекст httpd разрешен доступ на чтение/запись/исполнение.
++Установка этого переключателя в false, позволяет настроить политику безопасности таким образом,
++что одина служба httpd не конфликтует с другой.
++.EX
++setsebool -P httpd_unified 0
++.EE
++
++.PP
++Имеется возможность настроить httpd таким образом, чтобы отключить встроенную поддержку
++скриптов (PHP). PHP и другие загружаемые модули работают в том же контексте, что и httpd.
++Таким образом, если используются только внешние cgi-скрипты, некоторые из правил политики
++разрешают httpd больший доступ к системе, чем необходимо.
++
++.EX
++setsebool -P httpd_builtin_scripting 0
++.EE
++
++.PP
++По умолчанию httpd-скриптам запрещено устанавливать внешние сетевые подключения.
++Это не позволит хакеру, взломавшему ваш httpd-сервер, атаковать другие машины.
++Если вашим скриптам необходимо иметь возможность подключения, установите переключатель
++httpd_can_network_connect
++
++.EX
++setsebool -P httpd_can_network_connect 1
++.EE
++
++.PP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), httpd(8), chcon(1), setsebool(8)
++
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/kerberos_selinux.8 serefpolicy-3.1.0/man/ru/man8/kerberos_selinux.8
+--- nsaserefpolicy/man/ru/man8/kerberos_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/kerberos_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,30 @@
++.TH "kerberos_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "kerberos Selinux Policy documentation"
++.de EX
++.nf
++.ft CW
++..
++.de EE
++.ft R
++.fi
++..
++.SH "НАЗВАНИЕ"
++kerberos_selinux \- Политика Security Enhanced Linux для Kerberos.
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux защищает систему при помощи гибко настраиваемого мандатного контроля доступа. По умолчанию Kerberos запрещен, поскольку требуется функционирование демонов,
++которым предоставляется слишком обширный доступ к сети и некоторым чувствительным в плане безопасности файлам.
++
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++.PP
++Для того, чтобы система могла корректно работать в окружении Kerberos, вы должны установить переключатель allow_kerberos.
++.EX
++setsebool -P allow_kerberos 1
++.EE
++.PP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), kerberos(1), chcon(1), setsebool(8)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/named_selinux.8 serefpolicy-3.1.0/man/ru/man8/named_selinux.8
+--- nsaserefpolicy/man/ru/man8/named_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/named_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,31 @@
++.TH "named_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "named Selinux Policy documentation"
++.de EX
++.nf
++.ft CW
++..
++.de EE
++.ft R
++.fi
++..
++.SH "НАЗВАНИЕ"
++named_selinux \- Политика Security Enhanced Linux для демона Internet Name server (named)
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux обеспечивает защиту сервера named при помощи гибко настраиваемого мандатного контроля доступа.
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++Политика SELinux настраивается исходя из принципа наименьших привилегий. Таким образом,
++по умолчанию политика SELinux не позволяет демону named осуществлять изменения файлов мастер-зоны.
++Если вам необходимо, чтобы named мог обновлять файлы мастер-зоны, вы должны установить переключатель named_write_master_zones boolean.
++.EX
++setsebool -P named_write_master_zones 1
++.EE
++.PP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), named(8), chcon(1), setsebool(8)
++
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/nfs_selinux.8 serefpolicy-3.1.0/man/ru/man8/nfs_selinux.8
+--- nsaserefpolicy/man/ru/man8/nfs_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/nfs_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,33 @@
++.TH "nfs_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "nfs Selinux Policy documentation"
++.SH "НАЗВАНИЕ"
++nfs_selinux \- Политика Security Enhanced Linux для NFS
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux защищает сервер nfs при помощи гибко настраиваемого мандатного контроля доступа.
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++Политика SELinux настраивается исходя из принципа наименьших привилегий. Таким образом,
++по умолчанию политика SELinux не позволяет предоставлять доступ к файлам по nfs. Если вы хотите
++разрешить доступ только на чтение к файлам этой машины по nfs, вы должны установить переключатель
++nfs_export_all_ro.
++
++.TP
++setsebool -P nfs_export_all_ro 1
++.TP
++Если вы хотите разрешить доступ на чтение/запись, вы должны установить переключатель nfs_export_all_rw.
++.TP
++setsebool -P nfs_export_all_rw 1
++
++.TP
++Если вы хотите использовать удаленный NFS сервер для хранения домашних директорий этой машины,
++то вы должны установить переключатель use_nfs_home_dir boolean.
++.TP
++setsebool -P use_nfs_home_dirs 1
++.TP
++Для управления настройками SELinux существует графическая утилита
++system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), chcon(1), setsebool(8)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/rsync_selinux.8 serefpolicy-3.1.0/man/ru/man8/rsync_selinux.8
+--- nsaserefpolicy/man/ru/man8/rsync_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/rsync_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,50 @@
++.TH "rsync_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "rsync Selinux Policy documentation"
++.de EX
++.nf
++.ft CW
++..
++.de EE
++.ft R
++.fi
++..
++.SH "НАЗВАНИЕ"
++rsync_selinux \- Политика Security Enhanced Linux для демона rsync
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux обеспечивает защиту сервера rsync при помощи гибко настраиваемого мандатного контроля доступа.
++.SH КОНТЕКСТ ФАЙЛОВ
++SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла.
++Политика управляет видом доступа демона к этим файлам. Если вы хотите предоставить доступ к файлам
++при помощи демона rsync, вы должны присвоить этим файлам и директориям контекст
++public_content_t. Таким образом, если вы создаете специальную директорию /var/rsync, то вам
++необходимо установить контекст для этой директории при помощи утилиты chcon.
++.TP
++chcon -t public_content_t /var/rsync
++.TP
++Если вы хотите сделать эти изменения постоянными, иными словами, чтобы данный контекст сохранялся
++при обновлении контекстов, вы должны добавить записи в файл file_contexts.local.
++.EX
++/etc/selinux/POLICYTYPE/contexts/files/file_contexts.local
++/var/rsync(/.*)? system_u:object_r:public_content_t
++.EE
++
++.SH СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ
++Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный
++доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t.
++Данный контекст позволяет любому из выше перечисленных демонов читать содержимое.
++Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны
++установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для rsync вы должны выполнить команду:
++
++.EX
++setsebool -P allow_rsync_anon_write=1
++.EE
++
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++.TP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), rsync(1), chcon(1), setsebool(8)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/samba_selinux.8 serefpolicy-3.1.0/man/ru/man8/samba_selinux.8
+--- nsaserefpolicy/man/ru/man8/samba_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/samba_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,60 @@
++.TH "samba_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "Samba Selinux Policy documentation"
++.SH "НАЗВАНИЕ"
++samba_selinux \- Политика Security Enhanced Linux для Samba
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux обеспечивает защиту сервера Samba при помощи гибко настраиваемого мандатного контроля доступа.
++.SH КОНТЕКСТ ФАЙЛОВ
++SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла.
++Политика управляет видом доступа демона к этим файлам.
++Если вы хотите предоставить доступ к файлам вовне домашних директорий, этим файлам необходимо
++присвоить контекст samba_share_t.
++Таким образом, если вы создаете специальную директорию /var/eng, то вам необходимо
++установить контекст для этой директории при помощи утилиты chcon.
++.TP
++chcon -t samba_share_t /var/eng
++.TP
++
++Если вы хотите сделать эти изменения постоянными, иными словами, чтобы данный контекст сохранялся
++при обновлении контекстов, вы должны добавить записи в файл file_contexts.local.
++.TP
++/etc/selinux/POLICYTYPE/contexts/files/file_contexts.local
++.br
++/var/eng(/.*)? system_u:object_r:samba_share_t
++
++.SH СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ
++Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный
++доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t.
++Данный контекст позволяет любому из выше перечисленных демонов читать содержимое.
++Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны
++установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для samba вы должны выполнить команду:
++
++setsebool -P allow_smbd_anon_write=1
++
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++.br
++Политика SELinux настраивается исходя из принципа наименьших привилегий.
++Таким образом, по умолчанию политика SELinux не позволяет предоставлять удаленный доступ
++к домашним директориям и не позволяет использовать удаленный сервер Samba для хранения
++домашних директорий.
++.TP
++Если вы настроили эту машину как сервер Samba и желаете предоставить доступ к домашним
++директориям, вы должны установить переключатель samba_enable_home_dirs.
++.br
++
++setsebool -P samba_enable_home_dirs 1
++.TP
++Если вы хотите для хранения домашних директорий пользователей этой машины использовать удаленный
++сервер Samba, вы должны установить переключатель use_samba_home_dirs.
++.br
++
++setsebool -P use_samba_home_dirs 1
++.TP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), samba(7), chcon(1), setsebool(8)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/man/ru/man8/ypbind_selinux.8 serefpolicy-3.1.0/man/ru/man8/ypbind_selinux.8
+--- nsaserefpolicy/man/ru/man8/ypbind_selinux.8 1969-12-31 19:00:00.000000000 -0500
++++ serefpolicy-3.1.0/man/ru/man8/ypbind_selinux.8 2007-10-23 18:51:10.000000000 -0400
+@@ -0,0 +1,19 @@
++.TH "ypbind_selinux" "8" "17 Янв 2005" "dwalsh@redhat.com" "ypbind Selinux Policy documentation"
++.SH "НАЗВАНИЕ"
++ypbind_selinux \- Политика Security Enhanced Linux для NIS.
++.SH "ОПИСАНИЕ"
++
++Security-Enhanced Linux защищает систему при помощи гибко настраиваемого мандатного контроля доступа. По умолчанию работа NIS запрещена. Это является следствием того, что демоны NIS требуют слишком обширного доступа к сети.
++.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
++.TP
++Для того, чтобы система могла работать в окружении NIS, вы должны установить переключатель allow_ypbind.
++.TP
++setsebool -P allow_ypbind 1
++.TP
++Для управления настройками SELinux существует графическая утилита system-config-selinux.
++.SH АВТОРЫ
++Эту страницу руководства написал Dan Walsh .
++Перевод руководства - Андрей Маркелов , 2007г.
++
++.SH "СМОТРИ ТАКЖЕ"
++selinux(8), ypbind(8), chcon(1), setsebool(8)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/flask/access_vectors serefpolicy-3.1.0/policy/flask/access_vectors
+--- nsaserefpolicy/policy/flask/access_vectors 2007-08-11 06:22:29.000000000 -0400
++++ serefpolicy-3.1.0/policy/flask/access_vectors 2007-10-23 18:51:10.000000000 -0400
+@@ -639,6 +639,8 @@
+ send
+ recv
+ relabelto
++ flow_in
++ flow_out
+ }
+
+ class key
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/global_tunables serefpolicy-3.1.0/policy/global_tunables
+--- nsaserefpolicy/policy/global_tunables 2007-10-12 08:56:09.000000000 -0400
++++ serefpolicy-3.1.0/policy/global_tunables 2007-10-23 18:51:10.000000000 -0400
+@@ -132,3 +132,19 @@
+ ##
+ ##
+ gen_tunable(write_untrusted_content,false)
++
++##
+ ##
+-## Run gconfd in the role-specfic gconfd domain.
++## Run gconfd in the role-specific gconfd domain.
+ ##
+ ##
+ ## This is a templated interface, and should only
+@@ -170,6 +237,30 @@
+
+ ########################################
+ ##
++## read gnome homedir content (.config)
++##
++##
++##
++## The prefix of the user domain (e.g., user
++## is the prefix for user_t).
++##
++##
++##
++##
++## The type of the user domain.
++##
++##
++#
++template(`gnome_read_user_gnome_config',`
++ gen_require(`
++ type $1_gnome_home_t;
++ ')
++
++ read_files_pattern($2, $1_gnome_home_t, $1_gnome_home_t)
++')
++
++########################################
++##
+ ## manage gnome homedir content (.config)
+ ##
+ ##
+@@ -189,6 +280,26 @@
+ type $1_gnome_home_t;
+ ')
+
+- allow $2 $1_gnome_home_t:dir manage_dir_perms;
+- allow $2 $1_gnome_home_t:file manage_file_perms;
++ manage_dirs_pattern($2, $1_gnome_home_t, $1_gnome_home_t)
++ manage_files_pattern($2, $1_gnome_home_t, $1_gnome_home_t)
+ ')
++
++########################################
++##
++## Execute gconf programs in
++## in the caller domain.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`gnome_exec_gconf',`
++ gen_require(`
++ type gconfd_exec_t;
++ ')
++
++ can_exec($1, gconfd_exec_t)
++')
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/gnome.te serefpolicy-3.1.0/policy/modules/apps/gnome.te
+--- nsaserefpolicy/policy/modules/apps/gnome.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/gnome.te 2007-10-23 18:51:10.000000000 -0400
+@@ -8,8 +8,5 @@
+
+ attribute gnomedomain;
+
+-type gconf_etc_t;
+-files_type(gconf_etc_t)
+-
+ type gconfd_exec_t;
+ application_executable_file(gconfd_exec_t)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/java.fc serefpolicy-3.1.0/policy/modules/apps/java.fc
+--- nsaserefpolicy/policy/modules/apps/java.fc 2007-03-01 10:01:48.000000000 -0500
++++ serefpolicy-3.1.0/policy/modules/apps/java.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -11,6 +11,7 @@
+ #
+ /usr/(.*/)?bin/java.* -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/lib(.*/)?bin/java[^/]* -- gen_context(system_u:object_r:java_exec_t,s0)
++/usr/lib/eclipse/eclipse -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/bin/frysk -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/bin/gappletviewer -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/bin/gcj-dbtool -- gen_context(system_u:object_r:java_exec_t,s0)
+@@ -20,5 +21,11 @@
+ /usr/bin/grmic -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/bin/grmiregistry -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/bin/jv-convert -- gen_context(system_u:object_r:java_exec_t,s0)
++/usr/bin/fastjar -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/local/matlab/bin/(.*/)?MATLAB. -- gen_context(system_u:object_r:java_exec_t,s0)
+ /usr/matlab/bin/(.*/)?MATLAB. -- gen_context(system_u:object_r:java_exec_t,s0)
++
++/usr/lib/jvm/java(.*/)bin(/.*)? -- gen_context(system_u:object_r:java_exec_t,s0)
++
++/usr/lib(64)?/openoffice\.org/program/soffice\.bin -- gen_context(system_u:object_r:java_exec_t,s0)
++/usr/bin/octave-[^/]* -- gen_context(system_u:object_r:java_exec_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/java.if serefpolicy-3.1.0/policy/modules/apps/java.if
+--- nsaserefpolicy/policy/modules/apps/java.if 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/java.if 2007-10-23 18:51:10.000000000 -0400
+@@ -32,7 +32,7 @@
+ ##
+ ##
+ #
+-template(`java_per_role_template',`
++template(`java_plugin_per_role_template',`
+ gen_require(`
+ type java_exec_t;
+ ')
+@@ -81,8 +81,7 @@
+
+ can_exec($1_javaplugin_t, java_exec_t)
+
+- # The user role is authorized for this domain.
+- domain_auto_trans($1_t, java_exec_t, $1_javaplugin_t)
++ domain_auto_trans($2, java_exec_t, $1_javaplugin_t)
+ allow $1_javaplugin_t $2:fd use;
+ # Unrestricted inheritance from the caller.
+ allow $2 $1_javaplugin_t:process { noatsecure siginh rlimitinh };
+@@ -166,6 +165,62 @@
+ optional_policy(`
+ xserver_user_client_template($1,$1_javaplugin_t,$1_javaplugin_tmpfs_t)
+ ')
++
++')
++
++#######################################
++##
++## The per role template for the java module.
++##
++##
++##
++## This template creates a derived domains which are used
++## for java applications.
++##
++##
++##
++##
++## The prefix of the user domain (e.g., user
++## is the prefix for user_t).
++##
++##
++##
++##
++## The type of the user domain.
++##
++##
++##
++##
++## The role associated with the user domain.
++##
++##
++#
++template(`java_per_role_template',`
++ gen_require(`
++ type java_exec_t;
++ ')
++
++ type $1_java_t;
++ domain_type($1_java_t)
++ domain_entry_file($1_java_t,java_exec_t)
++ role $3 types $1_java_t;
++
++ domain_interactive_fd($1_java_t)
++
++ userdom_unpriv_usertype($1, $1_java_t)
++
++ allow $1_java_t self:process { getsched sigkill execheap execmem execstack };
++
++ domtrans_pattern($2, java_exec_t, $1_java_t)
++
++ dev_read_urand($1_java_t)
++ dev_read_rand($1_java_t)
++
++ fs_dontaudit_rw_tmpfs_files($1_java_t)
++
++ optional_policy(`
++ xserver_xdm_rw_shm($1_java_t)
++ ')
+ ')
+
+ ########################################
+@@ -219,3 +274,66 @@
+ corecmd_search_bin($1)
+ domtrans_pattern($1, java_exec_t, java_t)
+ ')
++
++########################################
++##
++## Execute a java in the specified domain
++##
++##
++##
++## Execute the java command in the specified domain. This allows
++## the specified domain to execute any file
++## on these filesystems in the specified
++## domain.
++##
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## The type of the new process.
++##
++##
++#
++interface(`java_spec_domtrans',`
++ gen_require(`
++ type java_exec_t;
++ ')
++
++ domain_trans($1,java_exec_t,$2)
++ type_transition $1 java_exec_t:process $2;
++')
++
++########################################
++##
++## Execute java in the java domain, and
++## allow the specified role the java domain.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++##
++##
++## The role to be allowed the java domain.
++##
++##
++##
++##
++## The type of the terminal allow the java domain to use.
++##
++##
++#
++interface(`java_run',`
++ gen_require(`
++ type java_t;
++ ')
++
++ java_domtrans($1)
++ role $2 types java_t;
++ allow java_t $3:chr_file rw_term_perms;
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/java.te serefpolicy-3.1.0/policy/modules/apps/java.te
+--- nsaserefpolicy/policy/modules/apps/java.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/java.te 2007-10-23 18:51:10.000000000 -0400
+@@ -23,11 +23,23 @@
+ #
+
+ # execheap is needed for itanium/BEA jrocket
+-allow java_t self:process { execstack execmem execheap };
++allow java_t self:process { getsched sigkill execheap execmem execstack };
+
+-init_dbus_chat_script(java_t)
++optional_policy(`
++ init_dbus_chat_script(java_t)
++ optional_policy(`
++ hal_dbus_chat(java_t)
++ ')
++
++ optional_policy(`
++ unconfined_dbus_chat(java_t)
++ ')
++')
+
+ optional_policy(`
+ unconfined_domain_noaudit(java_t)
+- unconfined_dbus_chat(java_t)
++')
++
++optional_policy(`
++ xserver_xdm_rw_shm(java_t)
+ ')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/mono.if serefpolicy-3.1.0/policy/modules/apps/mono.if
+--- nsaserefpolicy/policy/modules/apps/mono.if 2007-01-02 12:57:22.000000000 -0500
++++ serefpolicy-3.1.0/policy/modules/apps/mono.if 2007-10-23 18:51:10.000000000 -0400
+@@ -18,3 +18,105 @@
+ corecmd_search_bin($1)
+ domtrans_pattern($1, mono_exec_t, mono_t)
+ ')
++
++########################################
++##
++## Read and write to mono shared memory.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`mono_rw_shm',`
++ gen_require(`
++ type mono_t;
++ ')
++
++ allow $1 mono_t:shm rw_shm_perms;
++')
++
++########################################
++##
++## Execute mono in the mono domain, and
++## allow the specified role the mono domain.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++##
++##
++## The role to be allowed the mono domain.
++##
++##
++##
++##
++## The type of the terminal allow the mono domain to use.
++##
++##
++#
++interface(`mono_run',`
++ gen_require(`
++ type mono_t;
++ ')
++
++ mono_domtrans($1)
++ role $2 types mono_t;
++ allow mono_t $3:chr_file rw_term_perms;
++')
++
++#######################################
++##
++## The per role template for the mono module.
++##
++##
++##
++## This template creates a derived domains which are used
++## for mono applications.
++##
++##
++##
++##
++## The prefix of the user domain (e.g., user
++## is the prefix for user_t).
++##
++##
++##
++##
++## The type of the user domain.
++##
++##
++##
++##
++## The role associated with the user domain.
++##
++##
++#
++template(`mono_per_role_template',`
++ gen_require(`
++ type mono_exec_t;
++ ')
++
++ type $1_mono_t;
++ domain_type($1_mono_t)
++ domain_entry_file($1_mono_t,mono_exec_t)
++ role $3 types $1_mono_t;
++
++ domain_interactive_fd($1_mono_t)
++
++ userdom_unpriv_usertype($1, $1_mono_t)
++
++ allow $1_mono_t self:process { execheap execmem };
++ allow $2 $1_mono_t:process noatsecure;
++
++ domtrans_pattern($2, mono_exec_t, $1_mono_t)
++
++ fs_dontaudit_rw_tmpfs_files($1_mono_t)
++
++ optional_policy(`
++ xserver_xdm_rw_shm($1_mono_t)
++ ')
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/mono.te serefpolicy-3.1.0/policy/modules/apps/mono.te
+--- nsaserefpolicy/policy/modules/apps/mono.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/mono.te 2007-10-23 18:51:10.000000000 -0400
+@@ -15,7 +15,7 @@
+ # Local policy
+ #
+
+-allow mono_t self:process { execheap execmem };
++allow mono_t self:process { signal getsched execheap execmem };
+
+ userdom_generic_user_home_dir_filetrans_generic_user_home_content(mono_t,{ dir file lnk_file fifo_file sock_file })
+
+@@ -46,3 +46,7 @@
+ unconfined_dbus_chat(mono_t)
+ unconfined_dbus_connect(mono_t)
+ ')
++
++optional_policy(`
++ xserver_xdm_rw_shm(mono_t)
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/mozilla.if serefpolicy-3.1.0/policy/modules/apps/mozilla.if
+--- nsaserefpolicy/policy/modules/apps/mozilla.if 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/mozilla.if 2007-10-23 18:51:10.000000000 -0400
+@@ -36,6 +36,8 @@
+ gen_require(`
+ type mozilla_conf_t, mozilla_exec_t;
+ ')
++ gen_tunable(browser_confine_$1,false)
++ gen_tunable(browser_write_$1_data,false)
+
+ ########################################
+ #
+@@ -52,6 +54,14 @@
+ type $1_mozilla_tmpfs_t;
+ files_tmpfs_file($1_mozilla_tmpfs_t)
+
++ type $1_mozilla_tmp_t;
++ files_tmp_file($1_mozilla_tmp_t)
++
++ ########################################
++ #
++ # Local booleans
++ #
++
+ ########################################
+ #
+ # Local policy
+@@ -96,15 +106,37 @@
+ relabel_files_pattern($2,$1_mozilla_home_t,$1_mozilla_home_t)
+ relabel_lnk_files_pattern($2,$1_mozilla_home_t,$1_mozilla_home_t)
+
+- manage_files_pattern($1_mozilla_t,$1_mozilla_tmpfs_t,$1_mozilla_tmpfs_t)
+- manage_lnk_files_pattern($1_mozilla_t,$1_mozilla_tmpfs_t,$1_mozilla_tmpfs_t)
+- manage_fifo_files_pattern($1_mozilla_t,$1_mozilla_tmpfs_t,$1_mozilla_tmpfs_t)
+- manage_sock_files_pattern($1_mozilla_t,$1_mozilla_tmpfs_t,$1_mozilla_tmpfs_t)
+- fs_tmpfs_filetrans($1_mozilla_t,$1_mozilla_tmpfs_t,{ file lnk_file sock_file fifo_file })
+-
+ allow $1_mozilla_t $2:process signull;
+
+- domain_auto_trans($2, mozilla_exec_t, $1_mozilla_t)
++ tunable_policy(`browser_confine_$1',`
++ domain_auto_trans($2, mozilla_exec_t, $1_mozilla_t)
++ ',`
++ can_exec($2, mozilla_exec_t)
++ ')
++
++ userdom_read_user_home_content_files($1,$1_mozilla_t)
++ userdom_read_user_home_content_symlinks($1,$1_mozilla_t)
++ userdom_read_user_tmp_files($1,$1_mozilla_t)
++ userdom_list_user_files($1,$1_mozilla_t)
++ userdom_manage_user_tmp_dirs($1,$1_mozilla_t)
++ userdom_manage_user_tmp_files($1,$1_mozilla_t)
++ userdom_manage_user_tmp_sockets($1,$1_mozilla_t)
++ userdom_tmp_filetrans_user_tmp($1,$1_mozilla_t, { file dir sock_file })
++
++ ifdef(`enable_mls',`',`
++ fs_search_removable($1_mozilla_t)
++ fs_read_removable_files($1_mozilla_t)
++ fs_read_removable_symlinks($1_mozilla_t)
++ ')
++
++ tunable_policy(`browser_write_$1_data',`
++ userdom_manage_user_home_content_dirs($1,$1_mozilla_t)
++ userdom_manage_user_home_content_files($1,$1_mozilla_t)
++ userdom_read_user_home_content_symlinks($1,$1_mozilla_t)
++ ', `
++ # helper apps will try to create .files
++ userdom_dontaudit_create_user_home_content_files($1,$1_mozilla_t)
++ ')
+ # Unrestricted inheritance from the caller.
+ allow $2 $1_mozilla_t:process { noatsecure siginh rlimitinh };
+
+@@ -115,8 +147,9 @@
+ kernel_read_kernel_sysctls($1_mozilla_t)
+ kernel_read_network_state($1_mozilla_t)
+ # Access /proc, sysctl
+- kernel_read_system_state($1_mozilla_t)
+- kernel_read_net_sysctls($1_mozilla_t)
++ kernel_dontaudit_read_system_state($1_mozilla_t)
++# kernel_read_system_state($1_mozilla_t)
++# kernel_read_net_sysctls($1_mozilla_t)
+
+ # Look for plugins
+ corecmd_list_bin($1_mozilla_t)
+@@ -165,11 +198,21 @@
+ files_read_var_files($1_mozilla_t)
+ files_read_var_symlinks($1_mozilla_t)
+ files_dontaudit_getattr_boot_dirs($1_mozilla_t)
++ files_dontaudit_list_non_security($1_mozilla_t)
++ files_dontaudit_getattr_non_security_files($1_mozilla_t)
++ files_dontaudit_getattr_non_security_symlinks($1_mozilla_t)
++ files_dontaudit_getattr_non_security_pipes($1_mozilla_t)
++ files_dontaudit_getattr_non_security_sockets($1_mozilla_t)
++
++ dev_dontaudit_getattr_all_blk_files($1_mozilla_t)
++ dev_dontaudit_getattr_all_chr_files($1_mozilla_t)
+
+ fs_search_auto_mountpoints($1_mozilla_t)
+ fs_list_inotifyfs($1_mozilla_t)
+ fs_rw_tmpfs_files($1_mozilla_t)
+
++ selinux_dontaudit_getattr_fs($1_mozilla_t)
++
+ term_dontaudit_getattr_pty_dirs($1_mozilla_t)
+
+ libs_use_ld_so($1_mozilla_t)
+@@ -184,16 +227,14 @@
+ sysnet_dns_name_resolve($1_mozilla_t)
+ sysnet_read_config($1_mozilla_t)
+
+- userdom_manage_user_home_content_dirs($1,$1_mozilla_t)
+- userdom_manage_user_home_content_files($1,$1_mozilla_t)
+- userdom_manage_user_home_content_symlinks($1,$1_mozilla_t)
+- userdom_manage_user_tmp_dirs($1,$1_mozilla_t)
+- userdom_manage_user_tmp_files($1,$1_mozilla_t)
+- userdom_manage_user_tmp_sockets($1,$1_mozilla_t)
++ userdom_dontaudit_read_user_tmp_files($1,$1_mozilla_t)
++ userdom_dontaudit_use_user_terminals($1,$1_mozilla_t)
++ userdom_user_home_dir_filetrans($1,$1_mozilla_t, $1_mozilla_home_t,dir)
+
+ xserver_user_client_template($1,$1_mozilla_t,$1_mozilla_tmpfs_t)
+ xserver_dontaudit_read_xdm_tmp_files($1_mozilla_t)
+ xserver_dontaudit_getattr_xdm_tmp_sockets($1_mozilla_t)
++ xserver_xdm_sigchld($1_mozilla_t)
+
+ tunable_policy(`allow_execmem',`
+ allow $1_mozilla_t self:process { execmem execstack };
+@@ -211,131 +252,8 @@
+ fs_manage_cifs_symlinks($1_mozilla_t)
+ ')
+
+- # Uploads, local html
+- tunable_policy(`mozilla_read_content && use_nfs_home_dirs',`
+- fs_list_auto_mountpoints($1_mozilla_t)
+- files_list_home($1_mozilla_t)
+- fs_read_nfs_files($1_mozilla_t)
+- fs_read_nfs_symlinks($1_mozilla_t)
+-
+- ',`
+- files_dontaudit_list_home($1_mozilla_t)
+- fs_dontaudit_list_auto_mountpoints($1_mozilla_t)
+- fs_dontaudit_read_nfs_files($1_mozilla_t)
+- fs_dontaudit_list_nfs($1_mozilla_t)
+- ')
+-
+- tunable_policy(`mozilla_read_content && use_samba_home_dirs',`
+- fs_list_auto_mountpoints($1_mozilla_t)
+- files_list_home($1_mozilla_t)
+- fs_read_cifs_files($1_mozilla_t)
+- fs_read_cifs_symlinks($1_mozilla_t)
+- ',`
+- files_dontaudit_list_home($1_mozilla_t)
+- fs_dontaudit_list_auto_mountpoints($1_mozilla_t)
+- fs_dontaudit_read_cifs_files($1_mozilla_t)
+- fs_dontaudit_list_cifs($1_mozilla_t)
+- ')
+-
+- tunable_policy(`mozilla_read_content',`
+- userdom_list_user_tmp($1,$1_mozilla_t)
+- userdom_read_user_tmp_files($1,$1_mozilla_t)
+- userdom_read_user_tmp_symlinks($1,$1_mozilla_t)
+- userdom_search_user_home_dirs($1,$1_mozilla_t)
+- userdom_read_user_home_content_files($1,$1_mozilla_t)
+- userdom_read_user_home_content_symlinks($1,$1_mozilla_t)
+-
+- ifdef(`enable_mls',`',`
+- fs_search_removable($1_mozilla_t)
+- fs_read_removable_files($1_mozilla_t)
+- fs_read_removable_symlinks($1_mozilla_t)
+- ')
+- ',`
+- files_dontaudit_list_tmp($1_mozilla_t)
+- files_dontaudit_list_home($1_mozilla_t)
+- fs_dontaudit_list_removable($1_mozilla_t)
+- fs_dontaudit_read_removable_files($1_mozilla_t)
+- userdom_dontaudit_list_user_tmp($1,$1_mozilla_t)
+- userdom_dontaudit_read_user_tmp_files($1,$1_mozilla_t)
+- userdom_dontaudit_list_user_home_dirs($1,$1_mozilla_t)
+- userdom_dontaudit_read_user_home_content_files($1,$1_mozilla_t)
+- ')
+-
+- tunable_policy(`mozilla_read_content && read_default_t',`
+- files_list_default($1_mozilla_t)
+- files_read_default_files($1_mozilla_t)
+- files_read_default_symlinks($1_mozilla_t)
+- ',`
+- files_dontaudit_read_default_files($1_mozilla_t)
+- files_dontaudit_list_default($1_mozilla_t)
+- ')
+-
+- tunable_policy(`mozilla_read_content && read_untrusted_content',`
+- files_list_tmp($1_mozilla_t)
+- files_list_home($1_mozilla_t)
+- userdom_search_user_home_dirs($1,$1_mozilla_t)
+-
+- userdom_list_user_untrusted_content($1,$1_mozilla_t)
+- userdom_read_user_untrusted_content_files($1,$1_mozilla_t)
+- userdom_read_user_untrusted_content_symlinks($1,$1_mozilla_t)
+- userdom_list_user_tmp_untrusted_content($1,$1_mozilla_t)
+- userdom_read_user_tmp_untrusted_content_files($1,$1_mozilla_t)
+- userdom_read_user_tmp_untrusted_content_symlinks($1,$1_mozilla_t)
+- ',`
+- files_dontaudit_list_tmp($1_mozilla_t)
+- files_dontaudit_list_home($1_mozilla_t)
+- userdom_dontaudit_list_user_home_dirs($1,$1_mozilla_t)
+- userdom_dontaudit_list_user_untrusted_content($1,$1_mozilla_t)
+- userdom_dontaudit_read_user_untrusted_content_files($1,$1_mozilla_t)
+- userdom_dontaudit_list_user_tmp_untrusted_content($1,$1_mozilla_t)
+- userdom_dontaudit_read_user_tmp_untrusted_content_files($1,$1_mozilla_t)
+- ')
+-
+- # Save web pages
+- tunable_policy(`write_untrusted_content && use_nfs_home_dirs',`
+- files_search_home($1_mozilla_t)
+-
+- fs_search_auto_mountpoints($1_mozilla_t)
+- fs_manage_nfs_dirs($1_mozilla_t)
+- fs_manage_nfs_files($1_mozilla_t)
+- fs_manage_nfs_symlinks($1_mozilla_t)
+- ',`
+- fs_dontaudit_list_auto_mountpoints($1_mozilla_t)
+- fs_dontaudit_manage_nfs_dirs($1_mozilla_t)
+- fs_dontaudit_manage_nfs_files($1_mozilla_t)
+- ')
+-
+- tunable_policy(`write_untrusted_content && use_samba_home_dirs',`
+- files_search_home($1_mozilla_t)
+-
+- fs_search_auto_mountpoints($1_mozilla_t)
+- fs_manage_cifs_dirs($1_mozilla_t)
+- fs_manage_cifs_files($1_mozilla_t)
+- fs_manage_cifs_symlinks($1_mozilla_t)
+- ',`
+- fs_dontaudit_list_auto_mountpoints($1_mozilla_t)
+- fs_dontaudit_manage_cifs_dirs($1_mozilla_t)
+- fs_dontaudit_manage_cifs_files($1_mozilla_t)
+- ')
+-
+- tunable_policy(`write_untrusted_content',`
+- files_search_home($1_mozilla_t)
+- userdom_manage_user_untrusted_content_tmp_files($1, $1_mozilla_t)
+- files_tmp_filetrans($1_mozilla_t,$1_untrusted_content_tmp_t,file)
+- files_tmp_filetrans($1_mozilla_t,$1_untrusted_content_tmp_t,dir)
+-
+- userdom_manage_user_untrusted_content_files($1,$1_mozilla_t)
+- userdom_user_home_dir_filetrans($1,$1_mozilla_t,$1_untrusted_content_tmp_t, { file dir })
+- userdom_user_home_content_filetrans($1,$1_mozilla_t,$1_untrusted_content_tmp_t, { file dir })
+- ',`
+- files_dontaudit_list_home($1_mozilla_t)
+- files_dontaudit_list_tmp($1_mozilla_t)
+-
+- userdom_dontaudit_list_user_home_dirs($1,$1_mozilla_t)
+- userdom_dontaudit_manage_user_tmp_dirs($1,$1_mozilla_t)
+- userdom_dontaudit_manage_user_tmp_files($1,$1_mozilla_t)
+- userdom_dontaudit_manage_user_home_content_dirs($1,$1_mozilla_t)
+-
++ optional_policy(`
++ alsa_read_rw_config($1_mozilla_t)
+ ')
+
+ optional_policy(`
+@@ -350,21 +268,28 @@
+ optional_policy(`
+ cups_read_rw_config($1_mozilla_t)
+ cups_dbus_chat($1_mozilla_t)
++ cups_stream_connect($1_mozilla_t)
+ ')
+
+ optional_policy(`
+ dbus_system_bus_client_template($1_mozilla,$1_mozilla_t)
+ dbus_send_system_bus($1_mozilla_t)
+- dbus_user_bus_client_template($1,$1_mozilla,$1_mozilla_t)
+- dbus_send_user_bus($1,$1_mozilla_t)
++# dbus_user_bus_client_template($1,$1_mozilla,$1_mozilla_t)
++# dbus_send_user_bus($1,$1_mozilla_t)
++ ')
++
++ optional_policy(`
++ gnome_exec_gconf($1_mozilla_t)
++ gnome_manage_user_gnome_config($1,$1_mozilla_t)
+ ')
+
+ optional_policy(`
++ gnome_domtrans_user_gconf($1,$1_mozilla_t)
+ gnome_stream_connect_gconf_template($1,$1_mozilla_t)
+ ')
+
+ optional_policy(`
+- java_domtrans_user_javaplugin($1, $1_mozilla_t)
++ java_plugin_per_role_template($1, $1_mozilla_t, $1_r)
+ ')
+
+ optional_policy(`
+@@ -384,25 +309,6 @@
+ thunderbird_domtrans_user_thunderbird($1, $1_mozilla_t)
+ ')
+
+- ifdef(`TODO',`
+- #NOTE commented out in strict.
+- ######### Launch email client, and make webcal links work
+- #ifdef(`evolution.te', `
+- #domain_auto_trans($1_mozilla_t, evolution_exec_t, $1_evolution_t)
+- #domain_auto_trans($1_mozilla_t, evolution_webcal_exec_t, $1_evolution_webcal_t)
+- #')
+-
+- # Macros for mozilla/mozilla (or other browser) domains.
+- # FIXME: Rules were removed to centralize policy in a gnome_app macro
+- # A similar thing might be necessary for mozilla compiled without GNOME
+- # support (is this possible?).
+-
+- # GNOME integration
+- optional_policy(`
+- gnome_application($1_mozilla, $1)
+- gnome_file_dialog($1_mozilla, $1)
+- ')
+- ')
+ ')
+
+ ########################################
+@@ -575,3 +481,27 @@
+
+ allow $2 $1_mozilla_t:tcp_socket rw_socket_perms;
+ ')
++
++########################################
++##
++## mozilla connection template.
++##
++##
++##
++## The prefix of the user domain (e.g., user
++## is the prefix for user_t).
++##
++##
++##
++##
++## The type of the user domain.
++##
++##
++#
++template(`mozilla_stream_connect_template',`
++ gen_require(`
++ type $1_mozilla_t;
++ ')
++
++ allow $2 $1_mozilla_t:unix_stream_socket connectto;
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/mozilla.te serefpolicy-3.1.0/policy/modules/apps/mozilla.te
+--- nsaserefpolicy/policy/modules/apps/mozilla.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/mozilla.te 2007-10-23 18:51:10.000000000 -0400
+@@ -6,13 +6,6 @@
+ # Declarations
+ #
+
+-##
+-##
+-## Control mozilla content access
+-##
+-##
+-gen_tunable(mozilla_read_content,false)
+-
+ type mozilla_conf_t;
+ files_config_file(mozilla_conf_t)
+
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/userhelper.if serefpolicy-3.1.0/policy/modules/apps/userhelper.if
+--- nsaserefpolicy/policy/modules/apps/userhelper.if 2007-07-23 10:20:12.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/userhelper.if 2007-10-23 18:51:10.000000000 -0400
+@@ -130,6 +130,7 @@
+ term_use_all_user_ptys($1_userhelper_t)
+
+ auth_domtrans_chk_passwd($1_userhelper_t)
++ auth_domtrans_upd_passwd($1_userhelper_t)
+ auth_manage_pam_pid($1_userhelper_t)
+ auth_manage_var_auth($1_userhelper_t)
+ auth_search_pam_console_data($1_userhelper_t)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/vmware.fc serefpolicy-3.1.0/policy/modules/apps/vmware.fc
+--- nsaserefpolicy/policy/modules/apps/vmware.fc 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/vmware.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -21,19 +21,25 @@
+ /usr/bin/vmware-nmbd -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-ping -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-smbd -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
++/usr/sbin/vmware-guest.* -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-smbpasswd -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-smbpasswd\.bin -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-vmx -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+ /usr/bin/vmware-wizard -- gen_context(system_u:object_r:vmware_exec_t,s0)
+ /usr/bin/vmware -- gen_context(system_u:object_r:vmware_exec_t,s0)
++/usr/sbin/vmware-serverd -- gen_context(system_u:object_r:vmware_exec_t,s0)
+
+ /usr/lib/vmware/config -- gen_context(system_u:object_r:vmware_sys_conf_t,s0)
+ /usr/lib/vmware/bin/vmware-mks -- gen_context(system_u:object_r:vmware_exec_t,s0)
+ /usr/lib/vmware/bin/vmware-ui -- gen_context(system_u:object_r:vmware_exec_t,s0)
++/usr/lib/vmware/bin/vmplayer -- gen_context(system_u:object_r:vmware_exec_t,s0)
++/usr/lib/vmware/bin/vmware-vmx -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+
+ /usr/lib64/vmware/config -- gen_context(system_u:object_r:vmware_sys_conf_t,s0)
+ /usr/lib64/vmware/bin/vmware-mks -- gen_context(system_u:object_r:vmware_exec_t,s0)
+ /usr/lib64/vmware/bin/vmware-ui -- gen_context(system_u:object_r:vmware_exec_t,s0)
++/usr/lib64/vmware/bin/vmplayer -- gen_context(system_u:object_r:vmware_exec_t,s0)
++/usr/lib64/vmware/bin/vmware-vmx -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+
+ ifdef(`distro_gentoo',`
+ /opt/vmware/workstation/bin/vmnet-bridge -- gen_context(system_u:object_r:vmware_host_exec_t,s0)
+@@ -49,3 +55,4 @@
+ /opt/vmware/workstation/bin/vmware-wizard -- gen_context(system_u:object_r:vmware_exec_t,s0)
+ /opt/vmware/workstation/bin/vmware -- gen_context(system_u:object_r:vmware_exec_t,s0)
+ ')
++/var/log/vmware.* -- gen_context(system_u:object_r:vmware_log_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/vmware.if serefpolicy-3.1.0/policy/modules/apps/vmware.if
+--- nsaserefpolicy/policy/modules/apps/vmware.if 2007-02-19 11:32:52.000000000 -0500
++++ serefpolicy-3.1.0/policy/modules/apps/vmware.if 2007-10-23 18:51:10.000000000 -0400
+@@ -202,3 +202,22 @@
+
+ allow $1 vmware_sys_conf_t:file append;
+ ')
++
++########################################
++##
++## Append to VMWare log files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`vmware_append_log',`
++ gen_require(`
++ type vmware_log_t;
++ ')
++
++ logging_search_logs($1)
++ append_files_pattern($1,vmware_log_t,vmware_log_t)
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/vmware.te serefpolicy-3.1.0/policy/modules/apps/vmware.te
+--- nsaserefpolicy/policy/modules/apps/vmware.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/vmware.te 2007-10-23 18:51:10.000000000 -0400
+@@ -22,6 +22,9 @@
+ type vmware_var_run_t;
+ files_pid_file(vmware_var_run_t)
+
++type vmware_log_t;
++logging_log_file(vmware_log_t)
++
+ ########################################
+ #
+ # VMWare host local policy
+@@ -29,7 +32,7 @@
+
+ allow vmware_host_t self:capability { setuid net_raw };
+ dontaudit vmware_host_t self:capability sys_tty_config;
+-allow vmware_host_t self:process signal_perms;
++allow vmware_host_t self:process { execstack execmem signal_perms };
+ allow vmware_host_t self:fifo_file rw_fifo_file_perms;
+ allow vmware_host_t self:unix_stream_socket create_stream_socket_perms;
+ allow vmware_host_t self:rawip_socket create_socket_perms;
+@@ -41,6 +44,9 @@
+ manage_sock_files_pattern(vmware_host_t,vmware_var_run_t,vmware_var_run_t)
+ files_pid_filetrans(vmware_host_t,vmware_var_run_t,{ file sock_file })
+
++manage_files_pattern(vmware_host_t,vmware_log_t,vmware_log_t)
++logging_log_filetrans(vmware_host_t,vmware_log_t,{ file dir })
++
+ kernel_read_kernel_sysctls(vmware_host_t)
+ kernel_list_proc(vmware_host_t)
+ kernel_read_proc_symlinks(vmware_host_t)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/wine.if serefpolicy-3.1.0/policy/modules/apps/wine.if
+--- nsaserefpolicy/policy/modules/apps/wine.if 2007-09-12 10:34:17.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/wine.if 2007-10-23 18:51:10.000000000 -0400
+@@ -49,3 +49,53 @@
+ role $2 types wine_t;
+ allow wine_t $3:chr_file rw_term_perms;
+ ')
++
++#######################################
++##
++## The per role template for the wine module.
++##
++##
++##
++## This template creates a derived domains which are used
++## for wine applications.
++##
++##
++##
++##
++## The prefix of the user domain (e.g., user
++## is the prefix for user_t).
++##
++##
++##
++##
++## The type of the user domain.
++##
++##
++##
++##
++## The role associated with the user domain.
++##
++##
++#
++template(`wine_per_role_template',`
++ gen_require(`
++ type wine_exec_t;
++ ')
++
++ type $1_wine_t;
++ domain_type($1_wine_t)
++ domain_entry_file($1_wine_t,wine_exec_t)
++ role $3 types $1_wine_t;
++
++ domain_interactive_fd($1_wine_t)
++
++ userdom_unpriv_usertype($1, $1_wine_t)
++
++ allow $1_wine_t self:process { execheap execmem };
++
++ domtrans_pattern($2, wine_exec_t, $1_wine_t)
++
++ optional_policy(`
++ xserver_xdm_rw_shm($1_wine_t)
++ ')
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/wine.te serefpolicy-3.1.0/policy/modules/apps/wine.te
+--- nsaserefpolicy/policy/modules/apps/wine.te 2007-10-12 08:56:02.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/apps/wine.te 2007-10-23 18:51:10.000000000 -0400
+@@ -9,6 +9,7 @@
+ type wine_t;
+ type wine_exec_t;
+ application_domain(wine_t,wine_exec_t)
++role system_r types wine_t;
+
+ ########################################
+ #
+@@ -20,7 +21,12 @@
+ unconfined_domain_noaudit(wine_t)
+ files_execmod_all_files(wine_t)
+
+- optional_policy(`
+- hal_dbus_chat(wine_t)
+- ')
++')
++
++optional_policy(`
++ hal_dbus_chat(wine_t)
++')
++
++optional_policy(`
++ xserver_xdm_rw_shm(wine_t)
+ ')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/corecommands.fc serefpolicy-3.1.0/policy/modules/kernel/corecommands.fc
+--- nsaserefpolicy/policy/modules/kernel/corecommands.fc 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/corecommands.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -36,6 +36,11 @@
+ /etc/cipe/ip-up.* -- gen_context(system_u:object_r:bin_t,s0)
+ /etc/cipe/ip-down.* -- gen_context(system_u:object_r:bin_t,s0)
+
++/etc/cron.daily/.* -- gen_context(system_u:object_r:bin_t,s0)
++/etc/cron.hourly/.* -- gen_context(system_u:object_r:bin_t,s0)
++/etc/cron.weekly/.* -- gen_context(system_u:object_r:bin_t,s0)
++/etc/cron.monthly/.* -- gen_context(system_u:object_r:bin_t,s0)
++
+ /etc/hotplug/.*agent -- gen_context(system_u:object_r:bin_t,s0)
+ /etc/hotplug/.*rc -- gen_context(system_u:object_r:bin_t,s0)
+ /etc/hotplug/hotplug\.functions -- gen_context(system_u:object_r:bin_t,s0)
+@@ -164,6 +169,7 @@
+
+ /usr/local/lib(64)?/ipsec/.* -- gen_context(system_u:object_r:bin_t,s0)
+ /usr/local/Brother/lpd(/.*)? gen_context(system_u:object_r:bin_t,s0)
++/usr/local/Brother/Printer/[^/]*/cupswrapper(/.*)? gen_context(system_u:object_r:bin_t,s0)
+
+ /usr/sbin/sesh -- gen_context(system_u:object_r:shell_exec_t,s0)
+
+@@ -259,3 +265,18 @@
+ ifdef(`distro_suse',`
+ /var/lib/samba/bin/.+ gen_context(system_u:object_r:bin_t,s0)
+ ')
++
++/etc/gdm/XKeepsCrashing[^/]* -- gen_context(system_u:object_r:bin_t,s0)
++/etc/gdm/[^/]+ -d gen_context(system_u:object_r:bin_t,s0)
++/etc/gdm/[^/]+/.* gen_context(system_u:object_r:bin_t,s0)
++/lib/dbus-1/dbus-daemon-launch-helper -- gen_context(system_u:object_r:bin_t,s0)
++/lib64/dbus-1/dbus-daemon-launch-helper -- gen_context(system_u:object_r:bin_t,s0)
++
++/etc/apcupsd/apccontrol -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/changeme -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/commfailure -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/commok -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/masterconnect -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/mastertimeout -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/offbattery -- gen_context(system_u:object_r:bin_t,s0)
++/etc/apcupsd/onbattery -- gen_context(system_u:object_r:bin_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/corenetwork.if.in serefpolicy-3.1.0/policy/modules/kernel/corenetwork.if.in
+--- nsaserefpolicy/policy/modules/kernel/corenetwork.if.in 2007-07-10 12:21:05.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/corenetwork.if.in 2007-10-23 18:51:10.000000000 -0400
+@@ -903,9 +903,11 @@
+ interface(`corenet_udp_bind_generic_port',`
+ gen_require(`
+ type port_t;
++ attribute port_type;
+ ')
+
+ allow $1 port_t:udp_socket name_bind;
++ dontaudit $1 { port_type -port_t }:udp_socket name_bind;
+ ')
+
+ ########################################
+@@ -1449,6 +1451,43 @@
+
+ ########################################
+ ##
++## Connect TCP sockets to rpc ports.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`corenet_tcp_connect_all_rpc_ports',`
++ gen_require(`
++ attribute rpc_port_type;
++ ')
++
++ allow $1 rpc_port_type:tcp_socket name_connect;
++')
++
++########################################
++##
++## Do not audit attempts to connect TCP sockets
++## all rpc ports.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`corenet_dontaudit_tcp_connect_all_rpc_ports',`
++ gen_require(`
++ attribute rpc_port_type;
++ ')
++
++ dontaudit $1 rpc_port_type:tcp_socket name_connect;
++')
++
++########################################
++##
+ ## Read and write the TUN/TAP virtual network device.
+ ##
+ ##
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/corenetwork.te.in serefpolicy-3.1.0/policy/modules/kernel/corenetwork.te.in
+--- nsaserefpolicy/policy/modules/kernel/corenetwork.te.in 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/corenetwork.te.in 2007-10-23 18:51:10.000000000 -0400
+@@ -55,6 +55,11 @@
+ type reserved_port_t, port_type, reserved_port_type;
+
+ #
++# hi_reserved_port_t is the type of INET port numbers between 600-1023.
++#
++type hi_reserved_port_t, port_type, reserved_port_type, rpc_port_type;
++
++#
+ # server_packet_t is the default type of IPv4 and IPv6 server packets.
+ #
+ type server_packet_t, packet_type, server_packet_type;
+@@ -67,7 +72,6 @@
+ network_port(amanda, udp,10080,s0, tcp,10080,s0, udp,10081,s0, tcp,10081,s0, tcp,10082,s0, tcp,10083,s0)
+ network_port(amavisd_recv, tcp,10024,s0)
+ network_port(amavisd_send, tcp,10025,s0)
+-network_port(aol, tcp,5190,s0, udp,5190,s0)
+ network_port(apcupsd, tcp,3551,s0, udp,3551,s0)
+ network_port(asterisk, tcp,1720,s0, udp,2427,s0, udp,2727,s0, udp,4569,s0, udp,5060,s0)
+ network_port(auth, tcp,113,s0)
+@@ -94,10 +98,11 @@
+ network_port(http_cache, tcp,3128,s0, udp,3130,s0, tcp,8080,s0, tcp,8118,s0) # 8118 is for privoxy
+ network_port(http, tcp,80,s0, tcp,443,s0, tcp,488,s0, tcp,8008,s0, tcp,8009,s0, tcp,8443,s0) #8443 is mod_nss default port
+ network_port(howl, tcp,5335,s0, udp,5353,s0)
+-network_port(hplip, tcp,1782,s0, tcp,2207,s0, tcp,2208,s0, tcp,50000,s0, tcp,50002,s0, tcp,8292,s0, tcp,9100,s0, tcp,9101,s0, tcp,9102,s0, tcp,9220,s0, tcp,9221,s0, tcp,9222,s0, tcp,9280,s0, tcp,9281,s0, tcp,9282,s0, tcp,9290,s0, tcp,9291,s0, tcp,9292,s0)
++network_port(hplip, tcp,1782,s0, tcp,2207,s0, tcp,2208,s0, tcp, 8290,s0, tcp,50000,s0, tcp,50002,s0, tcp,8292,s0, tcp,9100,s0, tcp,9101,s0, tcp,9102,s0, tcp,9220,s0, tcp,9221,s0, tcp,9222,s0, tcp,9280,s0, tcp,9281,s0, tcp,9282,s0, tcp,9290,s0, tcp,9291,s0, tcp,9292,s0)
+ network_port(i18n_input, tcp,9010,s0)
++network_port(ipsecnat, tcp,4500,s0, udp,4500,s0)
+ network_port(imaze, tcp,5323,s0, udp,5323,s0)
+-network_port(inetd_child, tcp,7,s0, udp,7,s0, tcp,9,s0, udp,9,s0, tcp,13,s0, udp,13,s0, tcp,19,s0, udp,19,s0, tcp,37,s0, udp,37,s0, tcp,512,s0, tcp,543,s0, tcp,544,s0, tcp,891,s0, udp,891,s0, tcp,892,s0, udp,892,s0, tcp,2105,s0, tcp,5666,s0)
++network_port(inetd_child, tcp,1,s0, udp,1,s0, tcp,7,s0, udp,7,s0, tcp,9,s0, udp,9,s0, tcp,13,s0, udp,13,s0, tcp,19,s0, udp,19,s0, tcp,37,s0, udp,37,s0, tcp,512,s0, tcp,543,s0, tcp,544,s0, tcp,891,s0, udp,891,s0, tcp,892,s0, udp,892,s0, tcp,2105,s0, tcp,5666,s0)
+ network_port(innd, tcp,119,s0)
+ network_port(ipp, tcp,631,s0, udp,631,s0)
+ network_port(ircd, tcp,6667,s0)
+@@ -109,14 +114,13 @@
+ network_port(kerberos_master, tcp,4444,s0, udp,4444,s0)
+ network_port(kerberos, tcp,88,s0, udp,88,s0, tcp,750,s0, udp,750,s0)
+ network_port(ktalkd, udp,517,s0, udp,518,s0)
+-network_port(ldap, tcp,389,s0, udp,389,s0, tcp,636,s0, udp,636,s0)
++network_port(ldap, tcp,3268,s0, tcp,389,s0, udp,389,s0, tcp,636,s0, udp,636,s0)
+ type lrrd_port_t, port_type; dnl network_port(lrrd_port_t) # no defined portcon
+ network_port(lmtp, tcp,24,s0, udp,24,s0)
+ network_port(mail, tcp,2000,s0)
+-network_port(mmcc, tcp,5050,s0, udp,5050,s0)
+-network_port(msnp, tcp,1863,s0, udp,1863,s0)
+ network_port(monopd, tcp,1234,s0)
+-network_port(mysqld, tcp,3306,s0)
++network_port(mysqld, tcp,3306,s0, tcp,1186,s0)
++portcon tcp 63132-63163 gen_context(system_u:object_r:mysqld_port_t, s0)
+ network_port(nessus, tcp,1241,s0)
+ network_port(netsupport, tcp,5405,s0, udp,5405,s0)
+ network_port(nmbd, udp,137,s0, udp,138,s0)
+@@ -149,7 +153,7 @@
+ network_port(snmp, udp,161,s0, udp,162,s0, tcp,199,s0)
+ network_port(spamd, tcp,783,s0)
+ network_port(ssh, tcp,22,s0)
+-network_port(soundd, tcp,8000,s0, tcp,9433,s0)
++network_port(soundd, tcp,8000,s0, tcp,9433,s0, tcp, 16001, s0)
+ type socks_port_t, port_type; dnl network_port(socks) # no defined portcon
+ type stunnel_port_t, port_type; dnl network_port(stunnel) # no defined portcon in current strict
+ network_port(squid, udp,3401,s0, tcp,3401,s0, udp,4827,s0, tcp,4827,s0) # snmp and htcp
+@@ -163,14 +167,19 @@
+ type utcpserver_port_t, port_type; dnl network_port(utcpserver) # no defined portcon
+ network_port(uucpd, tcp,540,s0)
+ network_port(vnc, tcp,5900,s0)
++network_port(wccp, udp,2048,s0)
++network_port(xdmcp, udp,177,s0, tcp,177,s0)
+ network_port(xen, tcp,8002,s0)
+ network_port(xfs, tcp,7100,s0)
+-network_port(xserver, tcp, 6000, s0, tcp,6001,s0, tcp,6002,s0, tcp,6003,s0, tcp,6004,s0, tcp,6005,s0, tcp,6006,s0, tcp,6007,s0, tcp,6008,s0, tcp,6009,s0, tcp,6010,s0, tcp,6011,s0, tcp,6012,s0, tcp,6013,s0, tcp,6014,s0, tcp,6015,s0, tcp,6016,s0, tcp,6017,s0, tcp,6018,s0, tcp,6019,s0)
++network_port(xserver, tcp, 6000, s0, tcp,6001,s0, tcp,6002,s0, tcp,6003,s0, tcp,6004,s0, tcp,6005,s0, tcp,6006,s0, tcp,6007,s0, tcp,6008,s0, tcp,6009,s0, tcp,6010,s0, tcp,6011,s0, tcp,6012,s0, tcp,6013,s0, tcp,6014,s0, tcp,6015,s0, tcp,6016,s0, tcp,6017,s0, tcp,6018,s0, tcp,6019,s0, tcp,6020,s0)
+ network_port(zebra, tcp,2600,s0, tcp,2601,s0, tcp,2602,s0, tcp,2603,s0, tcp,2604,s0, tcp,2606,s0, udp,2600,s0, udp,2601,s0, udp,2602,s0, udp,2603,s0, udp,2604,s0, udp,2606,s0)
+ network_port(zope, tcp,8021,s0)
+
+ # Defaults for reserved ports. Earlier portcon entries take precedence;
+ # these entries just cover any remaining reserved ports not otherwise declared.
++
++portcon tcp 600-1023 gen_context(system_u:object_r:hi_reserved_port_t, s0)
++portcon udp 600-1023 gen_context(system_u:object_r:hi_reserved_port_t, s0)
+ portcon tcp 1-1023 gen_context(system_u:object_r:reserved_port_t, s0)
+ portcon udp 1-1023 gen_context(system_u:object_r:reserved_port_t, s0)
+
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/devices.fc serefpolicy-3.1.0/policy/modules/kernel/devices.fc
+--- nsaserefpolicy/policy/modules/kernel/devices.fc 2007-09-05 15:24:43.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/devices.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -20,6 +20,7 @@
+ /dev/evtchn -c gen_context(system_u:object_r:xen_device_t,s0)
+ /dev/fb[0-9]* -c gen_context(system_u:object_r:framebuf_device_t,s0)
+ /dev/full -c gen_context(system_u:object_r:null_device_t,s0)
++/dev/[0-9].* -c gen_context(system_u:object_r:usb_device_t,s0)
+ /dev/fw.* -c gen_context(system_u:object_r:usb_device_t,s0)
+ /dev/hiddev.* -c gen_context(system_u:object_r:usb_device_t,s0)
+ /dev/hpet -c gen_context(system_u:object_r:clock_device_t,s0)
+@@ -98,6 +99,7 @@
+ /dev/input/event.* -c gen_context(system_u:object_r:event_device_t,s0)
+ /dev/input/mice -c gen_context(system_u:object_r:mouse_device_t,s0)
+ /dev/input/js.* -c gen_context(system_u:object_r:mouse_device_t,s0)
++/dev/input/uinput -c gen_context(system_u:object_r:event_device_t,s0)
+
+ /dev/mapper/control -c gen_context(system_u:object_r:lvm_control_t,s0)
+
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/devices.if serefpolicy-3.1.0/policy/modules/kernel/devices.if
+--- nsaserefpolicy/policy/modules/kernel/devices.if 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/devices.if 2007-10-23 18:51:10.000000000 -0400
+@@ -161,6 +161,7 @@
+ type device_t;
+ ')
+
++ allow $1 device_t:dir { ra_dir_perms create };
+ create_dirs_pattern($1,device_t,device_t)
+ ')
+
+@@ -1305,6 +1306,44 @@
+
+ ########################################
+ ##
++## Get the attributes of the event devices.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`dev_getattr_event_dev',`
++ gen_require(`
++ type device_t, event_device_t;
++ ')
++
++ allow $1 device_t:dir list_dir_perms;
++ allow $1 event_device_t:chr_file getattr;
++')
++
++########################################
++##
++## Set the attributes of the event devices.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`dev_setattr_event_dev',`
++ gen_require(`
++ type device_t, event_device_t;
++ ')
++
++ allow $1 device_t:dir list_dir_perms;
++ allow $1 event_device_t:chr_file setattr;
++')
++
++########################################
++##
+ ## Read input event devices (/dev/input).
+ ##
+ ##
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/domain.if serefpolicy-3.1.0/policy/modules/kernel/domain.if
+--- nsaserefpolicy/policy/modules/kernel/domain.if 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/domain.if 2007-10-23 18:51:10.000000000 -0400
+@@ -45,6 +45,11 @@
+ # start with basic domain
+ domain_base_type($1)
+
++ optional_policy(`
++ unconfined_use_fds($1)
++ unconfined_sigchld($1)
++ ')
++
+ # send init a sigchld and signull
+ optional_policy(`
+ init_sigchld($1)
+@@ -59,6 +64,7 @@
+ ')
+
+ optional_policy(`
++ selinux_dontaudit_getattr_fs($1)
+ selinux_dontaudit_read_fs($1)
+ ')
+
+@@ -1270,3 +1276,21 @@
+
+ typeattribute $1 mmap_low_domain_type;
+ ')
++
++########################################
++##
++## Allow specified type to associate ipsec packets from any domain
++##
++##
++##
++## Type of subject to be allowed this.
++##
++##
++#
++interface(`domain_ipsec_labels',`
++ gen_require(`
++ attribute domain;
++ ')
++
++ allow $1 domain:association { sendto recvfrom };
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/domain.te serefpolicy-3.1.0/policy/modules/kernel/domain.te
+--- nsaserefpolicy/policy/modules/kernel/domain.te 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/domain.te 2007-10-23 18:51:10.000000000 -0400
+@@ -6,6 +6,22 @@
+ # Declarations
+ #
+
++ifdef(`enable_mls',`
++##
++##
++## Allow all domains to use netlabel labeled packets
++##
++##
++gen_tunable(allow_netlabel,true)
++')
++
++##
++##
++## Allow unlabeled packets to work on system
++##
++##
++gen_tunable(allow_unlabeled_packets,true)
++
+ # Mark process types as domains
+ attribute domain;
+
+@@ -80,6 +96,8 @@
+ allow domain self:lnk_file { read_lnk_file_perms lock ioctl };
+ allow domain self:file rw_file_perms;
+ kernel_read_proc_symlinks(domain)
++# Every domain gets the key ring, so we should default to no one allowed to look at it
++kernel_dontaudit_search_key(domain)
+
+ # create child processes in the domain
+ allow domain self:process { fork sigchld };
+@@ -134,3 +152,22 @@
+
+ # act on all domains keys
+ allow unconfined_domain_type domain:key *;
++
++# xdm passes an open file descriptor to xsession-errors.log which is then audited by all confined domains.
++optional_policy(`
++ xserver_dontaudit_use_xdm_fds(domain)
++ xserver_dontaudit_rw_xdm_pipes(domain)
++')
++
++tunable_policy(`allow_unlabeled_packets',`
++ kernel_sendrecv_unlabeled_association(domain)
++ corenet_sendrecv_unlabeled_packets(domain)
++')
++
++ifdef(`enable_mls',`
++ tunable_policy(`allow_netlabel',`
++ kernel_raw_recvfrom_unlabeled(domain)
++ kernel_tcp_recvfrom_unlabeled(domain)
++ kernel_udp_recvfrom_unlabeled(domain)
++ ')
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/files.fc serefpolicy-3.1.0/policy/modules/kernel/files.fc
+--- nsaserefpolicy/policy/modules/kernel/files.fc 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/files.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -209,7 +209,8 @@
+ /usr/lost\+found -d gen_context(system_u:object_r:lost_found_t,mls_systemhigh)
+ /usr/lost\+found/.* <>
+
+-/usr/share(/.*)?/lib(64)?(/.*)? gen_context(system_u:object_r:usr_t,s0)
++#/usr/share(/.*)?/lib(64)?(/.*)? gen_context(system_u:object_r:usr_t,s0)
++/usr/share/doc(/.*)?/README.* gen_context(system_u:object_r:usr_t,s0)
+
+ /usr/src(/.*)? gen_context(system_u:object_r:src_t,s0)
+ /usr/src/kernels/.+/lib(/.*)? gen_context(system_u:object_r:usr_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/files.if serefpolicy-3.1.0/policy/modules/kernel/files.if
+--- nsaserefpolicy/policy/modules/kernel/files.if 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/files.if 2007-10-23 18:51:10.000000000 -0400
+@@ -343,8 +343,7 @@
+
+ ########################################
+ ##
+-## Mount a filesystem on all non-security
+-## directories and files.
++## Mount a filesystem on all non-security directories.
+ ##
+ ##
+ ##
+@@ -352,12 +351,29 @@
+ ##
+ ##
+ #
+-interface(`files_mounton_non_security',`
++interface(`files_mounton_non_security_dir',`
+ gen_require(`
+ attribute file_type, security_file_type;
+ ')
+
+ allow $1 { file_type -security_file_type }:dir mounton;
++')
++
++########################################
++##
++## Mount a filesystem on all non-security and files.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_mounton_non_security_files',`
++ gen_require(`
++ attribute file_type, security_file_type;
++ ')
++
+ allow $1 { file_type -security_file_type }:file mounton;
+ ')
+
+@@ -376,7 +392,7 @@
+ attribute file_type, security_file_type;
+ ')
+
+- allow $1 { file_type -security_file_type }:dir write;
++ allow $1 { file_type -security_file_type }:dir rw_dir_perms;
+ ')
+
+ ########################################
+@@ -885,6 +901,8 @@
+ attribute file_type;
+ ')
+
++ # Have to be able to read badly labeled files like file_context and ld.so.cache
++ files_read_all_files($1)
+ allow $1 { file_type $2 }:dir list_dir_perms;
+ relabel_dirs_pattern($1,{ file_type $2 },{ file_type $2 })
+ relabel_files_pattern($1,{ file_type $2 },{ file_type $2 })
+@@ -1106,6 +1124,24 @@
+
+ ########################################
+ ##
++## search all mount points.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_search_all_mountpoints',`
++ gen_require(`
++ attribute mountpoint;
++ ')
++
++ allow $1 mountpoint:dir search_dir_perms;
++')
++
++########################################
++##
+ ## List the contents of the root directory.
+ ##
+ ##
+@@ -1192,6 +1228,25 @@
+
+ ########################################
+ ##
++## Do not audit attempts to write
++## files in the root directory.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_dontaudit_write_root_dir',`
++ gen_require(`
++ type root_t;
++ ')
++
++ dontaudit $1 root_t:dir write;
++')
++
++########################################
++##
+ ## Do not audit attempts to read or write
+ ## character device nodes in the root directory.
+ ##
+@@ -2023,6 +2078,31 @@
+
+ ########################################
+ ##
++## Create a default directory in /
++##
++##
++##
++## Create a default_t direcrory in /
++##
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`files_create_default_dir',`
++ gen_require(`
++ type root_t, default_t;
++ ')
++
++ allow $1 default_t:dir create;
++ filetrans_pattern($1,root_t,default_t,dir)
++')
++
++########################################
++##
+ ## Read files in /etc that are dynamically
+ ## created on boot, such as mtab.
+ ##
+@@ -3107,6 +3187,24 @@
+
+ ########################################
+ ##
++## Manage temporary directories in /tmp.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`files_manage_generic_tmp_dirs',`
++ gen_require(`
++ type tmp_t;
++ ')
++
++ manage_dirs_pattern($1,tmp_t,tmp_t)
++')
++
++########################################
++##
+ ## Manage temporary files and directories in /tmp.
+ ##
+ ##
+@@ -3198,6 +3296,44 @@
+
+ ########################################
+ ##
++## Allow attempts to get the attributes
++## of all tmp files.
++##
++##
++##
++## Domain not to audit.
++##
++##
++#
++interface(`files_getattr_all_tmp_files',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ allow $1 tmpfile:file getattr;
++')
++
++########################################
++##
++## Do not audit attempts to get the attributes
++## of all tmp sock_file.
++##
++##
++##
++## Domain not to audit.
++##
++##
++#
++interface(`files_dontaudit_getattr_all_tmp_sockets',`
++ gen_require(`
++ attribute tmpfile;
++ ')
++
++ dontaudit $1 tmpfile:sock_file getattr;
++')
++
++########################################
++##
+ ## Read all tmp files.
+ ##
+ ##
+@@ -3323,6 +3459,42 @@
+
+ ########################################
+ ##
++## dontaudit Add and remove entries from /usr directories.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_dontaudit_rw_usr_dirs',`
++ gen_require(`
++ type usr_t;
++ ')
++
++ dontaudit $1 usr_t:dir rw_dir_perms;
++')
++
++########################################
++##
++## Create, read, write, and delete files in the /usr directory.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`files_manage_usr_files',`
++ gen_require(`
++ type usr_t;
++ ')
++
++ manage_files_pattern($1, usr_t, usr_t)
++')
++
++########################################
++##
+ ## Get the attributes of files in /usr.
+ ##
+ ##
+@@ -3381,7 +3553,7 @@
+
+ ########################################
+ ##
+-## Create, read, write, and delete files in the /usr directory.
++## Relabel a file to the type used in /usr.
+ ##
+ ##
+ ##
+@@ -3389,17 +3561,17 @@
+ ##
+ ##
+ #
+-interface(`files_manage_usr_files',`
++interface(`files_relabelto_usr_files',`
+ gen_require(`
+ type usr_t;
+ ')
+
+- manage_files_pattern($1, usr_t, usr_t)
++ relabelto_files_pattern($1,usr_t,usr_t)
+ ')
+
+ ########################################
+ ##
+-## Relabel a file to the type used in /usr.
++## Relabel a file from the type used in /usr.
+ ##
+ ##
+ ##
+@@ -3407,12 +3579,12 @@
+ ##
+ ##
+ #
+-interface(`files_relabelto_usr_files',`
++interface(`files_relabelfrom_usr_files',`
+ gen_require(`
+ type usr_t;
+ ')
+
+- relabelto_files_pattern($1,usr_t,usr_t)
++ relabelfrom_files_pattern($1,usr_t,usr_t)
+ ')
+
+ ########################################
+@@ -3556,7 +3728,7 @@
+ type boot_t, system_map_t;
+ ')
+
+- allow $1 boot_t:dir { list_dir_perms add_entry_dir_perms };
++ allow $1 boot_t:dir ra_dir_perms;
+ allow $1 system_map_t:file { rw_file_perms create };
+ ')
+
+@@ -4043,7 +4215,7 @@
+ type var_t, var_lock_t;
+ ')
+
+- rw_dirs_pattern($1,var_t,var_lock_t)
++ rw_files_pattern($1,var_t,var_lock_t)
+ ')
+
+ ########################################
+@@ -4560,6 +4732,8 @@
+ # Need to give access to /selinux/member
+ selinux_compute_member($1)
+
++ files_search_home($1)
++
+ # Need sys_admin capability for mounting
+ allow $1 self:capability { chown fsetid sys_admin };
+
+@@ -4582,6 +4756,11 @@
+ # Default type for mountpoints
+ allow $1 poly_t:dir { create mounton };
+ fs_unmount_xattr_fs($1)
++ corecmd_exec_bin($1)
++ seutil_domtrans_setfiles($1)
++ fs_mount_tmpfs($1)
++ fs_unmount_tmpfs($1)
++
+ ')
+
+ ########################################
+@@ -4619,3 +4798,28 @@
+
+ allow $1 { file_type -security_file_type }:dir manage_dir_perms;
+ ')
++
++########################################
++##
++## Create a core files in /
++##
++##
++##
++## Create a core file in /,
++##
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++#
++interface(`files_dump_core',`
++ gen_require(`
++ type root_t;
++ ')
++
++ allow $1 root_t:dir rw_dir_perms;
++ allow $1 root_t:file { create getattr write };
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/files.te serefpolicy-3.1.0/policy/modules/kernel/files.te
+--- nsaserefpolicy/policy/modules/kernel/files.te 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/files.te 2007-10-23 18:51:10.000000000 -0400
+@@ -55,6 +55,9 @@
+ # compatibility aliases for removed types:
+ typealias etc_t alias automount_etc_t;
+ typealias etc_t alias snmpd_etc_t;
++typealias etc_t alias gconf_etc_t;
++typealias etc_t alias soundd_etc_t;
++typealias etc_t alias hplip_etc_t;
+
+ #
+ # etc_runtime_t is the type of various
+@@ -188,6 +191,7 @@
+ fs_associate(file_type)
+ fs_associate_noxattr(file_type)
+ fs_associate_tmpfs(file_type)
++fs_associate_ramfs(file_type)
+
+ ########################################
+ #
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/filesystem.if serefpolicy-3.1.0/policy/modules/kernel/filesystem.if
+--- nsaserefpolicy/policy/modules/kernel/filesystem.if 2007-08-11 06:22:32.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/filesystem.if 2007-10-23 18:51:10.000000000 -0400
+@@ -2214,6 +2214,24 @@
+
+ ########################################
+ ##
++## Allow the type to associate to ramfs filesystems.
++##
++##
++##
++## The type of the object to be associated.
++##
++##
++#
++interface(`fs_associate_ramfs',`
++ gen_require(`
++ type ramfs_t;
++ ')
++
++ allow $1 ramfs_t:filesystem associate;
++')
++
++########################################
++##
+ ## Search directories on a ramfs
+ ##
+ ##
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/filesystem.te serefpolicy-3.1.0/policy/modules/kernel/filesystem.te
+--- nsaserefpolicy/policy/modules/kernel/filesystem.te 2007-10-02 09:54:49.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/filesystem.te 2007-10-23 18:51:10.000000000 -0400
+@@ -29,6 +29,7 @@
+ fs_use_xattr jffs2 gen_context(system_u:object_r:fs_t,s0);
+ fs_use_xattr jfs gen_context(system_u:object_r:fs_t,s0);
+ fs_use_xattr xfs gen_context(system_u:object_r:fs_t,s0);
++fs_use_xattr lustre gen_context(system_u:object_r:fs_t,s0);
+
+ # Use the allocating task SID to label inodes in the following filesystem
+ # types, and label the filesystem itself with the specified context.
+@@ -80,6 +81,7 @@
+ type fusefs_t;
+ fs_noxattr_type(fusefs_t)
+ allow fusefs_t self:filesystem associate;
++allow fusefs_t fs_t:filesystem associate;
+ genfscon fuse / gen_context(system_u:object_r:fusefs_t,s0)
+ genfscon fuseblk / gen_context(system_u:object_r:fusefs_t,s0)
+
+@@ -116,6 +118,7 @@
+
+ type ramfs_t;
+ fs_type(ramfs_t)
++files_mountpoint(ramfs_t)
+ genfscon ramfs / gen_context(system_u:object_r:ramfs_t,s0)
+
+ type romfs_t;
+@@ -133,6 +136,11 @@
+ genfscon spufs / gen_context(system_u:object_r:spufs_t,s0)
+ files_mountpoint(spufs_t)
+
++type squash_t;
++fs_type(squash_t)
++genfscon squash / gen_context(system_u:object_r:squash_t,s0)
++files_mountpoint(squash_t)
++
+ type vxfs_t;
+ fs_noxattr_type(vxfs_t)
+ files_mountpoint(vxfs_t)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/kernel.if serefpolicy-3.1.0/policy/modules/kernel/kernel.if
+--- nsaserefpolicy/policy/modules/kernel/kernel.if 2007-08-20 18:23:04.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/kernel.if 2007-10-23 18:51:10.000000000 -0400
+@@ -352,6 +352,24 @@
+
+ ########################################
+ ##
++## dontaudit search the kernel key ring.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`kernel_dontaudit_search_key',`
++ gen_require(`
++ type kernel_t;
++ ')
++
++ dontaudit $1 kernel_t:key search;
++')
++
++########################################
++##
+ ## Allow link to the kernel key ring.
+ ##
+ ##
+@@ -1867,6 +1885,27 @@
+
+ ########################################
+ ##
++## Read the process state (/proc/pid) of all unlabeled_t.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`kernel_read_unlabeled_state',`
++ gen_require(`
++ type unlabeled_t;
++ ')
++
++ allow $1 unlabeled_t:dir list_dir_perms;
++ read_files_pattern($1,unlabeled_t,unlabeled_t)
++ read_lnk_files_pattern($1,unlabeled_t,unlabeled_t)
++')
++
++
++########################################
++##
+ ## Do not audit attempts to list unlabeled directories.
+ ##
+ ##
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/kernel.te serefpolicy-3.1.0/policy/modules/kernel/kernel.te
+--- nsaserefpolicy/policy/modules/kernel/kernel.te 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/kernel.te 2007-10-23 18:51:10.000000000 -0400
+@@ -279,6 +279,7 @@
+
+ optional_policy(`
+ logging_send_syslog_msg(kernel_t)
++ logging_unconfined(kernel_t)
+ ')
+
+ optional_policy(`
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/selinux.if serefpolicy-3.1.0/policy/modules/kernel/selinux.if
+--- nsaserefpolicy/policy/modules/kernel/selinux.if 2007-06-21 09:32:03.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/selinux.if 2007-10-23 18:51:10.000000000 -0400
+@@ -138,6 +138,7 @@
+ type security_t;
+ ')
+
++ selinux_dontaudit_getattr_fs($1)
+ dontaudit $1 security_t:dir search_dir_perms;
+ dontaudit $1 security_t:file { getattr read };
+ ')
+@@ -159,6 +160,7 @@
+ type security_t;
+ ')
+
++ selinux_get_fs_mount($1)
+ allow $1 security_t:dir list_dir_perms;
+ allow $1 security_t:file { getattr read };
+ ')
+@@ -239,6 +241,34 @@
+
+ ########################################
+ ##
++## Allow caller to read the state of Booleans
++##
++##
++##
++## Allow caller read the state of Booleans
++##
++##
++##
++##
++## The process type allowed to set the Boolean.
++##
++##
++##
++#
++interface(`selinux_get_boolean',`
++ gen_require(`
++ type security_t;
++ attribute booleans_type;
++ bool secure_mode_policyload;
++ ')
++
++ allow $1 security_t:dir list_dir_perms;
++ allow $1 booleans_type:dir list_dir_perms;
++ allow $1 booleans_type:file read_file_perms;
++')
++
++########################################
++##
+ ## Allow caller to set the state of Booleans to
+ ## enable or disable conditional portions of the policy.
+ ##
+@@ -262,11 +292,13 @@
+ interface(`selinux_set_boolean',`
+ gen_require(`
+ type security_t;
++ attribute booleans_type;
+ bool secure_mode_policyload;
+ ')
+
+ allow $1 security_t:dir list_dir_perms;
+- allow $1 security_t:file { getattr read write };
++ allow $1 booleans_type:dir list_dir_perms;
++ allow $1 booleans_type:file { getattr read write };
+
+ if(!secure_mode_policyload) {
+ allow $1 security_t:security setbool;
+@@ -463,3 +495,23 @@
+
+ typeattribute $1 selinux_unconfined_type;
+ ')
++
++########################################
++##
++## Generate a file context for a boolean type
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`selinux_genbool',`
++ gen_require(`
++ attribute booleans_type;
++ ')
++
++ type $1, booleans_type;
++ fs_type($1)
++ mls_trusted_object($1)
++')
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/selinux.te serefpolicy-3.1.0/policy/modules/kernel/selinux.te
+--- nsaserefpolicy/policy/modules/kernel/selinux.te 2007-07-10 12:21:05.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/selinux.te 2007-10-23 18:51:10.000000000 -0400
+@@ -10,6 +10,7 @@
+ attribute can_setenforce;
+ attribute can_setsecparam;
+ attribute selinux_unconfined_type;
++attribute booleans_type;
+
+ #
+ # security_t is the target type when checking
+@@ -22,6 +23,11 @@
+ sid security gen_context(system_u:object_r:security_t,mls_systemhigh)
+ genfscon selinuxfs / gen_context(system_u:object_r:security_t,s0)
+
++type boolean_t, booleans_type;
++fs_type(boolean_t)
++mls_trusted_object(boolean_t)
++#genfscon selinuxfs /booleans gen_context(system_u:object_r:boolean_t,s0)
++
+ neverallow ~{ selinux_unconfined_type can_load_policy } security_t:security load_policy;
+ neverallow ~{ selinux_unconfined_type can_setenforce } security_t:security setenforce;
+ neverallow ~{ selinux_unconfined_type can_setsecparam } security_t:security setsecparam;
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/storage.fc serefpolicy-3.1.0/policy/modules/kernel/storage.fc
+--- nsaserefpolicy/policy/modules/kernel/storage.fc 2007-08-11 06:22:32.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/storage.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -39,6 +39,7 @@
+ ')
+ /dev/s(cd|r)[^/]* -b gen_context(system_u:object_r:removable_device_t,s0)
+ /dev/sbpcd.* -b gen_context(system_u:object_r:removable_device_t,s0)
++/dev/bsg/.+ -c gen_context(system_u:object_r:scsi_generic_device_t,s0)
+ /dev/sg[0-9]+ -c gen_context(system_u:object_r:scsi_generic_device_t,s0)
+ /dev/sjcd -b gen_context(system_u:object_r:removable_device_t,s0)
+ /dev/sonycd -b gen_context(system_u:object_r:removable_device_t,s0)
+@@ -52,7 +53,7 @@
+
+ /dev/cciss/[^/]* -b gen_context(system_u:object_r:fixed_disk_device_t,mls_systemhigh)
+
+-/dev/fuse -c gen_context(system_u:object_r:fixed_disk_device_t,mls_systemhigh)
++/dev/fuse -c gen_context(system_u:object_r:fuse_device_t,mls_systemhigh)
+ /dev/floppy/[^/]* -b gen_context(system_u:object_r:removable_device_t,s0)
+
+ /dev/i2o/hd[^/]* -b gen_context(system_u:object_r:fixed_disk_device_t,mls_systemhigh)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/storage.if serefpolicy-3.1.0/policy/modules/kernel/storage.if
+--- nsaserefpolicy/policy/modules/kernel/storage.if 2007-08-11 06:22:32.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/storage.if 2007-10-23 18:51:10.000000000 -0400
+@@ -673,3 +673,61 @@
+
+ typeattribute $1 storage_unconfined_type;
+ ')
++
++########################################
++##
++## Allow the caller to get the attributes
++## of device nodes of fuse devices.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`storage_getattr_fuse_dev',`
++ gen_require(`
++ type fuse_device_t;
++ ')
++
++ dev_list_all_dev_nodes($1)
++ allow $1 fuse_device_t:chr_file getattr;
++')
++
++########################################
++##
++## read or write fuse device interfaces.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`storage_rw_fuse',`
++ gen_require(`
++ type fuse_device_t;
++ ')
++
++ allow $1 fuse_device_t:chr_file rw_file_perms;
++')
++
++########################################
++##
++## Do not audit attempts to read or write
++## fuse device interfaces.
++##
++##
++##
++## Domain to not audit.
++##
++##
++#
++interface(`storage_dontaudit_rw_fuse',`
++ gen_require(`
++ type fuse_device_t;
++ ')
++
++ dontaudit $1 fuse_device_t:chr_file rw_file_perms;
++')
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/storage.te serefpolicy-3.1.0/policy/modules/kernel/storage.te
+--- nsaserefpolicy/policy/modules/kernel/storage.te 2007-10-02 09:54:49.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/storage.te 2007-10-23 18:51:10.000000000 -0400
+@@ -23,6 +23,12 @@
+ neverallow ~{ fixed_disk_raw_write storage_unconfined_type } fixed_disk_device_t:{ chr_file blk_file } { append write };
+
+ #
++# fuse_device_t is the type of /dev/fuse
++#
++type fuse_device_t;
++dev_node(fuse_device_t)
++
++#
+ # scsi_generic_device_t is the type of /dev/sg*
+ # it gives access to ALL SCSI devices (both fixed and removable)
+ #
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/terminal.fc serefpolicy-3.1.0/policy/modules/kernel/terminal.fc
+--- nsaserefpolicy/policy/modules/kernel/terminal.fc 2007-01-02 12:57:13.000000000 -0500
++++ serefpolicy-3.1.0/policy/modules/kernel/terminal.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -8,6 +8,7 @@
+ /dev/dcbri[0-9]+ -c gen_context(system_u:object_r:tty_device_t,s0)
+ /dev/hvc.* -c gen_context(system_u:object_r:tty_device_t,s0)
+ /dev/hvsi.* -c gen_context(system_u:object_r:tty_device_t,s0)
++/dev/i2c[^/]* -c gen_context(system_u:object_r:tty_device_t,s0)
+ /dev/ircomm[0-9]+ -c gen_context(system_u:object_r:tty_device_t,s0)
+ /dev/ip2[^/]* -c gen_context(system_u:object_r:tty_device_t,s0)
+ /dev/isdn.* -c gen_context(system_u:object_r:tty_device_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/terminal.te serefpolicy-3.1.0/policy/modules/kernel/terminal.te
+--- nsaserefpolicy/policy/modules/kernel/terminal.te 2007-10-12 08:56:01.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/kernel/terminal.te 2007-10-23 18:51:10.000000000 -0400
+@@ -28,6 +28,7 @@
+ type devpts_t;
+ files_mountpoint(devpts_t)
+ fs_associate_tmpfs(devpts_t)
++files_associate_tmp(devpts_t)
+ fs_type(devpts_t)
+ fs_use_trans devpts gen_context(system_u:object_r:devpts_t,s0);
+
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/amavis.te serefpolicy-3.1.0/policy/modules/services/amavis.te
+--- nsaserefpolicy/policy/modules/services/amavis.te 2007-10-12 08:56:07.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/services/amavis.te 2007-10-23 18:51:10.000000000 -0400
+@@ -65,6 +65,7 @@
+ # Spool Files
+ manage_dirs_pattern(amavis_t,amavis_spool_t,amavis_spool_t)
+ manage_files_pattern(amavis_t,amavis_spool_t,amavis_spool_t)
++manage_lnk_files_pattern(amavis_t,amavis_spool_t,amavis_spool_t)
+ manage_sock_files_pattern(amavis_t,amavis_spool_t,amavis_spool_t)
+ filetrans_pattern(amavis_t,amavis_spool_t,amavis_var_run_t,sock_file)
+ files_search_spool(amavis_t)
+@@ -116,6 +117,7 @@
+ # bind to incoming port
+ corenet_tcp_bind_amavisd_recv_port(amavis_t)
+ corenet_udp_bind_generic_port(amavis_t)
++corenet_dontaudit_udp_bind_all_ports(amavis_t)
+ corenet_tcp_connect_razor_port(amavis_t)
+
+ dev_read_rand(amavis_t)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/apache.fc serefpolicy-3.1.0/policy/modules/services/apache.fc
+--- nsaserefpolicy/policy/modules/services/apache.fc 2007-10-12 08:56:07.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/services/apache.fc 2007-10-23 18:51:10.000000000 -0400
+@@ -16,7 +16,6 @@
+
+ /usr/lib/apache-ssl/.+ -- gen_context(system_u:object_r:httpd_exec_t,s0)
+ /usr/lib/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
+-/usr/lib/squid/cachemgr\.cgi -- gen_context(system_u:object_r:httpd_exec_t,s0)
+ /usr/lib(64)?/apache(/.*)? gen_context(system_u:object_r:httpd_modules_t,s0)
+ /usr/lib(64)?/apache2/modules(/.*)? gen_context(system_u:object_r:httpd_modules_t,s0)
+ /usr/lib(64)?/apache(2)?/suexec(2)? -- gen_context(system_u:object_r:httpd_suexec_exec_t,s0)
+@@ -71,5 +70,16 @@
+
+ /var/www(/.*)? gen_context(system_u:object_r:httpd_sys_content_t,s0)
+ /var/www/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
++/var/www/[^/]*/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
+ /var/www/icons(/.*)? gen_context(system_u:object_r:httpd_sys_content_t,s0)
+ /var/www/perl(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
++
++#Bugzilla file context
++/usr/share/bugzilla(/.*)? -d gen_context(system_u:object_r:httpd_bugzilla_content_t,s0)
++/usr/share/bugzilla(/.*)? -- gen_context(system_u:object_r:httpd_bugzilla_script_exec_t,s0)
++/var/lib/bugzilla(/.*)? gen_context(system_u:object_r:httpd_bugzilla_script_rw_t,s0)
++#viewvc file context
++/var/spool/viewvc(/.*)? gen_context(system_u:object_r:httpd_sys_script_rw_t, s0)
++/var/www/html/[^/]*/cgi-bin(/.*)? gen_context(system_u:object_r:httpd_sys_script_exec_t,s0)
++
++/etc/rc\.d/init\.d/httpd -- gen_context(system_u:object_r:httpd_script_exec_t,s0)
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/apache.if serefpolicy-3.1.0/policy/modules/services/apache.if
+--- nsaserefpolicy/policy/modules/services/apache.if 2007-10-23 17:17:42.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/services/apache.if 2007-10-23 18:51:10.000000000 -0400
+@@ -18,10 +18,6 @@
+ attribute httpd_script_exec_type;
+ type httpd_t, httpd_suexec_t, httpd_log_t;
+ ')
+- # allow write access to public file transfer
+- # services files.
+- gen_tunable(allow_httpd_$1_script_anon_write,false)
+-
+ #This type is for webpages
+ type httpd_$1_content_t, httpdcontent; # customizable
+ files_type(httpd_$1_content_t)
+@@ -71,7 +67,7 @@
+ logging_search_logs(httpd_$1_script_t)
+
+ can_exec(httpd_$1_script_t, httpd_$1_script_exec_t)
+- allow httpd_$1_script_t httpd_$1_script_exec_t:dir search_dir_perms;
++ allow httpd_$1_script_t httpd_$1_script_exec_t:dir list_dir_perms;
+
+ allow httpd_$1_script_t httpd_$1_script_ra_t:dir { list_dir_perms add_entry_dir_perms };
+ read_files_pattern(httpd_$1_script_t,httpd_$1_script_ra_t,httpd_$1_script_ra_t)
+@@ -87,7 +83,6 @@
+ manage_lnk_files_pattern(httpd_$1_script_t,httpd_$1_script_rw_t,httpd_$1_script_rw_t)
+ manage_fifo_files_pattern(httpd_$1_script_t,httpd_$1_script_rw_t,httpd_$1_script_rw_t)
+ manage_sock_files_pattern(httpd_$1_script_t,httpd_$1_script_rw_t,httpd_$1_script_rw_t)
+- files_tmp_filetrans(httpd_$1_script_t,httpd_$1_script_rw_t,{ dir file lnk_file sock_file fifo_file })
+
+ kernel_dontaudit_search_sysctl(httpd_$1_script_t)
+ kernel_dontaudit_search_kernel_sysctl(httpd_$1_script_t)
+@@ -120,10 +115,6 @@
+ can_exec(httpd_$1_script_t, httpdcontent)
+ ')
+
+- tunable_policy(`allow_httpd_$1_script_anon_write',`
+- miscfiles_manage_public_files(httpd_$1_script_t)
+- ')
+-
+ # Allow the web server to run scripts and serve pages
+ tunable_policy(`httpd_builtin_scripting',`
+ manage_dirs_pattern(httpd_t,httpd_$1_script_rw_t,httpd_$1_script_rw_t)
+@@ -177,48 +168,6 @@
+ miscfiles_read_localization(httpd_$1_script_t)
+ ')
+
+- tunable_policy(`httpd_enable_cgi && httpd_can_network_connect_db',`
+- allow httpd_$1_script_t self:tcp_socket create_stream_socket_perms;
+- allow httpd_$1_script_t self:udp_socket create_socket_perms;
+-
+- corenet_all_recvfrom_unlabeled(httpd_$1_script_t)
+- corenet_all_recvfrom_netlabel(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_if(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_if(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_nodes(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_nodes(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_ports(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_ports(httpd_$1_script_t)
+- corenet_tcp_connect_postgresql_port(httpd_$1_script_t)
+- corenet_tcp_connect_mysqld_port(httpd_$1_script_t)
+- corenet_sendrecv_postgresql_client_packets(httpd_$1_script_t)
+- corenet_sendrecv_mysqld_client_packets(httpd_$1_script_t)
+-
+- sysnet_read_config(httpd_$1_script_t)
+- ')
+-
+- tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',`
+- allow httpd_$1_script_t self:tcp_socket create_stream_socket_perms;
+- allow httpd_$1_script_t self:udp_socket create_socket_perms;
+-
+- corenet_all_recvfrom_unlabeled(httpd_$1_script_t)
+- corenet_all_recvfrom_netlabel(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_if(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_if(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_nodes(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_nodes(httpd_$1_script_t)
+- corenet_tcp_sendrecv_all_ports(httpd_$1_script_t)
+- corenet_udp_sendrecv_all_ports(httpd_$1_script_t)
+- corenet_tcp_connect_all_ports(httpd_$1_script_t)
+- corenet_sendrecv_all_client_packets(httpd_$1_script_t)
+-
+- sysnet_read_config(httpd_$1_script_t)
+- ')
+-
+- optional_policy(`
+- mta_send_mail(httpd_$1_script_t)
+- ')
+-
+ optional_policy(`
+ tunable_policy(`httpd_enable_cgi && allow_ypbind',`
+ nis_use_ypbind_uncond(httpd_$1_script_t)
+@@ -761,6 +710,7 @@
+ ')
+
+ allow $1 httpd_modules_t:dir list_dir_perms;
++ read_lnk_files_pattern($1,httpd_modules_t,httpd_modules_t)
+ ')
+
+ ########################################
+@@ -845,6 +795,10 @@
+ type httpd_sys_script_t;
+ ')
+
++ tunable_policy(`httpd_enable_cgi',`
++ domtrans_pattern($1, httpd_sys_script_exec_t, httpd_sys_script_t)
++ ')
++
+ tunable_policy(`httpd_enable_cgi && httpd_unified',`
+ domtrans_pattern($1, httpdcontent, httpd_sys_script_t)
+ ')
+@@ -932,7 +886,7 @@
+ type httpd_squirrelmail_t;
+ ')
+
+- allow $1 httpd_squirrelmail_t:file { getattr read };
++ read_files_pattern($1,httpd_squirrelmail_t,httpd_squirrelmail_t)
+ ')
+
+ ########################################
+@@ -1088,3 +1042,144 @@
+
+ allow httpd_t $1:process signal;
+ ')
++
++########################################
++##
++## Allow the specified domain to search
++## apache bugzilla directories.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`apache_search_bugzilla_dirs',`
++ gen_require(`
++ type httpd_bugzilla_content_t;
++ ')
++
++ allow $1 httpd_bugzilla_content_t:dir search_dir_perms;
++')
++
++########################################
++##
++## Do not audit attempts to read and write Apache
++## bugzill script unix domain stream sockets.
++##
++##
++##
++## Domain allowed access.
++##
++##
++#
++interface(`apache_dontaudit_rw_bugzilla_script_stream_sockets',`
++ gen_require(`
++ type httpd_bugzilla_script_t;
++ ')
++
++ dontaudit $1 httpd_bugzilla_script_t:unix_stream_socket { read write };
++')
++
++########################################
++##
++## Execute apache server in the ntpd domain.
++##
++##
++##
++## The type of the process performing this action.
++##
++##
++#
++interface(`apache_script_domtrans',`
++ gen_require(`
++ type httpd_script_exec_t;
++ ')
++
++ init_script_domtrans_spec($1,httpd_script_exec_t)
++')
++
++########################################
++##
++## All of the rules required to administrate an apache environment
++##
++##
++##
++## Prefix of the domain. Example, user would be
++## the prefix for the uder_t domain.
++##
++##
++##
++##
++## Domain allowed access.
++##
++##
++##
++##
++## The role to be allowed to manage the apache domain.
++##
++##
++##
++#
++interface(`apache_admin',`
++
++ gen_require(`
++ type httpd_t;
++ type httpd_bool_t;
++ type httpd_script_exec_t;
++ type httpd_config_t;
++ type httpd_log_t;
++ type httpd_modules_t;
++ type httpd_lock_t;
++ type httpd_var_run_t;
++ attribute httpdcontent;
++ attribute httpd_script_exec_type;
++ ')
++
++ allow $2 httpd_t:process { getattr ptrace signal_perms };
++
++ # Allow $2 to restart the apache service
++ apache_script_domtrans($2)
++ domain_system_change_exemption($2)
++ role_transition $3 httpd_script_exec_t system_r;
++ allow $3 system_r;
++
++ apache_manage_all_content($2)
++
++ files_search_etc($2)
++ manage_dirs_pattern($2,httpd_config_t,httpd_config_t)
++ manage_files_pattern($2,httpd_config_t,httpd_config_t)
++ read_lnk_files_pattern($2,httpd_config_t,httpd_config_t)
++
++ logging_search_logs($2)
++ manage_dirs_pattern($2,httpd_log_t,httpd_log_t)
++ manage_files_pattern($2,httpd_log_t,httpd_log_t)
++ read_lnk_files_pattern($2,httpd_log_t,httpd_log_t)
++
++ manage_dirs_pattern($2,httpd_modules_t,httpd_modules_t)
++ manage_files_pattern($2,httpd_modules_t,httpd_modules_t)
++ manage_lnk_files_pattern($2,httpd_modules_t,httpd_modules_t)
++
++ allow $2 httpd_lock_t:file manage_file_perms;
++ files_lock_filetrans($2, httpd_lock_t, file)
++
++ manage_files_pattern($2,httpd_var_run_t,httpd_var_run_t)
++ files_pid_filetrans($2,httpd_var_run_t, file)
++
++ kernel_search_proc($2)
++ allow $2 httpd_t:dir list_dir_perms;
++ read_files_pattern($2,httpd_t,httpd_t)
++ read_lnk_files_pattern($2,httpd_t,httpd_t)
++
++ allow $2 { httpd_script_exec_type httpdcontent}:dir { relabelto relabelfrom };
++ allow $2 { httpd_script_exec_type httpdcontent}:file { relabelto relabelfrom };
++
++ seutil_domtrans_setfiles($2)
++
++ seutil_setsebool_per_role_template($1, $2, $3)
++ allow $1_setsebool_t httpd_bool_t:dir list_dir_perms;
++ allow $1_setsebool_t httpd_bool_t:file rw_file_perms;
++')
++
++
++
+diff --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/services/apache.te serefpolicy-3.1.0/policy/modules/services/apache.te
+--- nsaserefpolicy/policy/modules/services/apache.te 2007-10-23 07:37:52.000000000 -0400
++++ serefpolicy-3.1.0/policy/modules/services/apache.te 2007-10-23 18:51:10.000000000 -0400
+@@ -20,6 +20,8 @@
+ # Declarations
+ #
+
++selinux_genbool(httpd_bool_t)
++
+ ##
+ ##
+ ## Allow Apache to modify public files
+@@ -30,6 +32,13 @@
+
+ ##
+ ##
++## Allow Apache to communicate with avahi via dbus
++##
++##
++gen_tunable(allow_httpd_dbus_avahi,false)
++
++##
++##
+ ## Allow Apache to use mod_auth_pam
+ ##
+ ##
+@@ -47,6 +56,13 @@
+ ## Allow http daemon to tcp connect
+ ##
+ ##
++gen_tunable(httpd_can_sendmail,false)
++
++##
++##
++## Allow http daemon to tcp connect
++##
++##
+ gen_tunable(httpd_can_network_connect,false)
+
+ ##
+@@ -97,7 +113,7 @@
+ ## Allow http daemon to communicate with the TTY
+ ##
+ ##
+-gen_tunable(httpd_tty_comm,false)
++gen_tunable(httpd_tty_comm,true)
+
+ ##