Book Image

SELinux System Administration

By : Sven Vermeulen
Book Image

SELinux System Administration

By: Sven Vermeulen

Overview of this book

NSA Security-Enhanced Linux (SELinux) is a set of patches and added utilities to the Linux kernel to incorporate a strong, flexible, mandatory access control architecture into the major subsystems of the kernel. With its fine-grained yet flexible approach, it is no wonder Linux distributions are firing up SELinux as a default security measure. SELinux System Administration covers the majority of SELinux features through a mix of real-life scenarios, descriptions, and examples. Everything an administrator needs to further tune SELinux to suit their needs are present in this book. This book touches on various SELinux topics, guiding you through the configuration of SELinux contexts, definitions, and the assignment of SELinux roles, and finishes up with policy enhancements. All of SELinux's configuration handles, be they conditional policies, constraints, policy types, or audit capabilities, are covered in this book with genuine examples that administrators might come across. By the end, SELinux System Administration will have taught you how to configure your Linux system to be more secure, powered by a formidable mandatory access control.
Table of Contents (13 chapters)

Creating our own modules


We can always maintain our own SELinux policy modules as well. To accomplish this, we need to have at least a file with the .te suffix (which stands for type enforcement) and optionally an .fc file (file context) and .if (interface). All these files need to have the same base name, which will be used as a module name later.

There are two "formats" in which SELinux policy modules can be written: the native one, and the reference policy one. The native one does not understand reference policy macros but remains supported (as the reference policy builds on this). Formats using the reference policy support all functions of the "native" one as well, so this format is becoming more and more popular for building and maintaining our own modules.

Building native modules

A native SELinux policy language module starts with a line defining the name of the module, followed by a set of requirements (types or attributes, classes, and permissions) and then the rules themselves, as...