commit:     64c6b78b5380358af72a3867f366bf9a08327b80
Author:     Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be>
AuthorDate: Sun Feb  1 19:55:45 2015 +0000
Commit:     Sven Vermeulen <swift <AT> gentoo <DOT> org>
CommitDate: Sun Feb  8 15:41:21 2015 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=64c6b78b

Add interfaces for Gentoo's security model

On https://wiki.gentoo.org/wiki/Project:SELinux/Development_policy the
basic security model that we want to support is documented.

To make support for this security model more applicable, we provide the
necessary interfaces for domains to (optionally or not) call.

See also http://thread.gmane.org/gmane.linux.gentoo.hardened/6292

---
 policy/modules/contrib/gentoo.if | 316 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 316 insertions(+)

diff --git a/policy/modules/contrib/gentoo.if b/policy/modules/contrib/gentoo.if
new file mode 100644
index 0000000..9a20383
--- /dev/null
+++ b/policy/modules/contrib/gentoo.if
@@ -0,0 +1,316 @@
+## <summary>Gentoo specific interfaces for improving SELinux 
management</summary>
+
+#########################################
+## <summary>
+##     Monitor the system
+## </summary>
+## <desc>
+##     <p>
+##     The system monitor privilege set allows for a system domain to read 
various
+##     file types, system state (like sysctl values), process states, etc. It 
is 
+##     a read-only set of privileges.
+##     </p>
+## </desc>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access
+##     </summary>
+## </param>
+#
+interface(`gentoo_secmodel_monitor_system',`
+
+')
+
+#########################################
+## <summary>
+##     Administer services
+## </summary>
+## <desc>
+##     <p>
+##     The service administrator privilege set allows for a system domain to 
manage
+##     the state of services as well as perform administrative commands against
+##     those services (in other words, grant the _admin() interfaces of various
+##     services).
+##     </p>
+## </desc>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access
+##     </summary>
+## </param>
+#
+interface(`gentoo_secmodel_manage_services',`
+       optional_policy(`
+               abrt_admin($1, $2)
+       ')
+
+       optional_policy(`
+               acct_admin($1, $2)
+       ')
+
+       optional_policy(`
+               afs_admin($1, $2)
+       ')
+
+       optional_policy(`
+               aiccu_admin($1, $2)
+       ')
+
+       optional_policy(`
+               aisexecd_admin($1, $2)
+       ')
+
+       optional_policy(`
+               amavis_admin($1, $2)
+       ')
+
+       optional_policy(`
+               amtu_admin($1, $2)
+       ')
+
+       optional_policy(`
+               apache_admin($1, $2)
+       ')
+
+       optional_policy(`
+               apcupsd_admin($1, $2)
+       ')
+
+       optional_policy(`
+               apm_admin($1, $2)
+       ')
+
+       optional_policy(`
+               arpwatch_admin($1, $2)
+       ')
+
+       optional_policy(`
+               asterisk_admin($1, $2)
+       ')
+
+       optional_policy(`
+               automount_admin($1, $2)
+       ')
+
+       optional_policy(`
+               avahi_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bacula_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bcfg2_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bind_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bird_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bitcoin_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bitlbee_admin($1, $2)
+       ')
+
+       optional_policy(`
+               bluetooth_admin($1, $2)
+       ')
+
+       optional_policy(`
+               boinc_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cachefilesd_admin($1, $2)
+       ')
+
+       optional_policy(`
+               callweaver_admin($1, $2)
+       ')
+
+       optional_policy(`
+               canna_admin($1, $2)
+       ')
+
+       optional_policy(`
+               ccs_admin($1, $2)
+       ')
+
+       optional_policy(`
+               certmaster_admin($1, $2)
+       ')
+
+       optional_policy(`
+               certmonger_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cfengine_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cgroup_admin($1, $2)
+       ')
+
+       optional_policy(`
+               chronyd_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cipe_admin($1, $2)
+       ')
+
+       optional_policy(`
+               clamav_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cmirrord_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cobbler_admin($1, $2)
+       ')
+
+       optional_policy(`
+               collectd_admin($1, $2)
+       ')
+
+       optional_policy(`
+               condor_admin($1, $2)
+       ')
+
+       optional_policy(`
+               corosync_admin($1, $2)
+       ')
+
+       optional_policy(`
+               couchdb_admin($1, $2)
+       ')
+
+       optional_policy(`
+               # No admin interface
+               cron_initrc_domtrans($1)
+       ')
+
+       optional_policy(`
+               ctdb_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cups_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cvs_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cyphesis_admin($1, $2)
+       ')
+
+       optional_policy(`
+               cyrus_admin($1, $2)
+       ')
+')
+
+#########################################
+## <summary>
+##     Administer software
+## </summary>
+## <desc>
+##     <p>
+##     The software administrator privilege set allows for a system domain to 
manage
+##     various file types (but not, or only in a very controlled manner, 
security
+##     sensitive files).
+##     </p>
+##     <p>
+##     The software administrator can transition to package management tools 
and
+##     invoke administrative commands needed to finalize software installation.
+##     </p>
+## </desc>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access
+##     </summary>
+## </param>
+#
+interface(`gentoo_secmodel_manage_software',`
+       optional_policy(`
+               bootloader_run($1, $2)
+       ')
+')
+
+#########################################
+## <summary>
+##     Administer system state
+## </summary>
+## <desc>
+##     <p>
+##     The system state administrator privilege set allows for system state
+##     handling, including sysctl values, network configuration settings, etc.
+##     </p>
+## </desc>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access
+##     </summary>
+## </param>
+#
+interface(`gentoo_secmodel_manage_system_state',`
+
+')
+
+#########################################
+## <summary>
+##     Administer system security
+## </summary>
+## <desc>
+##     <p>
+##     The security administrator privilege set allows for security-sensitive 
types
+##     to be managed, including SELinux policy.
+##     </p>
+## </desc>
+## <param name="domain">
+##     <summary>
+##     Domain allowed access
+##     </summary>
+## </param>
+## <param name="role">
+##     <summary>
+##     Role allowed access
+##     </summary>
+## </param>
+#
+interface(`gentoo_secmodel_manage_system_security',`
+
+')
+

Reply via email to