SELinux

Security Enhanced Linux

Security Enhanced Linux (SELinux) implements Mandatory Access Control in Linux. It adds policy-based restrictions to conventional user and group permissions, allowing administrators to define which resources a service may access and which operations it may perform.

SELinux uses security contexts to identify processes and resources. In enforcing mode, policy decisions restrict access even when ordinary file permissions would permit it. This is useful for containing a compromised application: the process remains subject to the permissions of its SELinux domain.

SELinux access decision flow, from a subject request through the security server and policy to an allowed or denied operation

Security Models

SELinux combines controls over roles, types and, where configured, security levels and categories. A security context has the form user:role:type[:range]: a SELinux user identity, a role, a type and an optional security level or range. The models below follow the role, type and range components:

  • Role-Based Access Control (RBAC): associates SELinux users with authorised roles, and roles with the process domains they may use.
  • Type Enforcement (TE): uses process domains, resource types and policy rules to determine which operations a process may perform on a resource. It is central to confining both services and user applications.
  • Multi-Level Security (MLS): constrains access and information flow using security labels that combine hierarchical sensitivity levels with optional categories. The policy defines the permitted relationships.
  • Multi-Category Security (MCS): uses category labels at a single sensitivity level to restrict access between workloads, with applications in container, sandbox and virtual machine isolation.

These controls complement Discretionary Access Control. Their effectiveness depends on policy coverage, correct labels and the selected configuration. Enabling SELinux alone does not establish that every service is confined appropriately.

SELinux Policy Engineering & System Hardening

We help organisations protect Linux systems through SELinux policy engineering, system hardening and secure architecture. By defining the access that applications and services require, we help protect sensitive information and limit the damage a compromised component can cause.

Our services include:

  • SELinux policy development and review: Design, implementation and assessment of policies for applications, services and containers, with permissions matched to their responsibilities.
  • Linux system hardening: Integration of mandatory access controls with operating system configuration, service isolation and separation of administrative privileges.
  • Secure system architecture: Design of resource access and communication paths across services, containers and hosts, with SELinux policy supporting the intended boundaries.
  • Deployment and ongoing validation: Integration with configuration management, testing of permitted and prohibited access, and policy maintenance as applications and infrastructure evolve.

In Sovereign Fortress, these principles support the architecture of our High Assurance Web Application and API Protection (WAAP). SELinux addresses the privileges of the platform’s services; application traffic controls address the requests passing through it.

Further reading

The SELinux Project’s SELinux Notebook explains these controls in more detail:

Contact Info

Send us a message

Tell us about your application, infrastructure or security requirements. All fields below are required.

Protected by our own security check.