Examining a Sample Policy

Seeing the syntax of individual policy declarations is not the same as seeing how they work together to establish a useful policy. In this section, we’ll look at the policy that governs the ping_t domain, and the related domain ping_exec_t, as implemented in Fedora Core 2. Like most policies, this policy resides in two files:

file_contexts/program/ping.fc

Specifies security contexts for files related to the domains.

domains/program/ping.te

Specifies the RBAC declarations related to the domains.

The ping.fc file has these contents:

# ping
/bin/ping.*     -- system_u:object_r:ping_exec_t
/usr/sbin/hping2   --   system_u:object_r:ping_exec_t

When the filesystems are labeled, these specifications cause ordinary files matching the first regular expression /bin/ping.* to be labeled with the security context system_u:object_r:ping_exec_t. Ordinary files matching the second regular expression /usr/sbin/hping2 are also labeled with that security context. The ping.te file is considerably longer than the ping.fc file, so we’ll analyze it a few lines at a time. The first several lines are merely comments:

#DESC Ping - Send ICMP messages to network hosts
#
# Author:  David A. Wheeler <dwheeler@ida.org>
# X-Debian-Packages: iputils-ping netkit-ping iputils-arping arping hping2
#

#################################
#
# Rules for the ping_t domain.
#
# ping_t is the domain for the ping program.
# ping_exec_t is the type of the corresponding program.
#

The comments point out that the domain ...

Get SELinux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.