These docs are for Cribl Stream 4.12 and are no longer actively maintained.
See the latest version (4.13).
Running Cribl Stream on a Hardened OS
When deploying Cribl Stream in environments with stringent security requirements, such as those adhering to the Department of Defense Security Technical Implementation Guides (STIGs), additional configuration steps are necessary to ensure the application can operate without interference.
Understanding STIG Compliance
Operating any system on a network, especially in restricted environments like the DoD, requires obtaining an Authority to Operate (ATO). This involves compliance with STIGs, which cover various aspects of system security, including the operating system, database, and application.
For Cribl Stream, the most relevant STIGs are those governing the operating system deployment. By adhering to these STIGs, you ensure a hardened environment with configured tools to safeguard your system. However, certain actions within these STIGs may be blocked by default, requiring explicit configuration to allow Cribl Stream to execute.
Security Tools and Configurations
To ensure Cribl Stream operates securely in a hardened environment, consider implementing the following essential configurations for your relevant security tools.
SELinux (Security Enhanced Linux)
When running Cribl Stream on a system with SELinux, it’s crucial to download the tgz
file directly to the /opt/
directory. Additionally, ensure that the .tgz
file is uncompressed within the /opt/
directory. Moving files on a system with SELinux might lead to complications.
For details, see the SELinux Configuration topic.
firewalld
firewalld is a dynamic firewall management tool that offers support for network/firewall zones, allowing you to define the trust level of network connections or interfaces. It encompasses features for managing IPv4 and IPv6 firewall settings, Ethernet bridges, and IP sets. According to the DOD STIG, firewalld should enforce a deny-all rule and should selectively open ports.
In a Cribl Stream environment, the Leader Node requires ports 4200
and 9000
over TCP to be open. Additionally, Worker Nodes should have port 9000
over TCP open if Worker UI access is enabled, along with any necessary Source ports.
Refer to your specific firewall configuration guidelines for details.
fapolicy
fapolicy is a software framework that regulates application execution through a user-defined policy, adhering to an allow-list approach. In this case, you should explicitly permit or trust applications to execute within a deny-all catch-all policy. This framework serves as an efficient method to prevent the execution of untrusted and potentially malicious applications on the system.
Cribl Stream operates seamlessly in secure environments, but additional configuration steps are needed for systems using fapolicy (File Access Policy). To ensure Cribl Stream can execute without interference, we’ll use trust files to explicitly authorize Cribl Stream binaries.
There are two main ways to achieve this:
Trust Files (Recommended): Trust files offer a more efficient and streamlined approach compared to writing custom fapolicyd rules. Trust files allow you to define authorized applications and their locations, enabling fapolicy to recognize Cribl Stream as a trusted application without the need for extensive rule configurations.
You define trusted applications and their locations in a trust file. fapolicy then recognizes Cribl Stream as trusted and allows it to run.
Custom Rules (Advanced): This method offers more granular control but requires writing custom fapolicy rules. While less performant, you can write custom fapolicyd rules to allow Cribl Stream execution. However, this approach is recommended for advanced users familiar with fapolicy rule syntax.
For most users, using trust files is the recommended approach due to its simplicity and performance benefits. However, if you require more granular control or have specific fapolicy configurations, custom rules might be a suitable alternative.
Upgrading Cribl Stream with fapolicy
When using fapolicy, UI-based upgrades might fail due to its tracking of individual binaries. To successfully upgrade, you must manually update the fapolicy trust file to recognize the new Cribl Stream binaries. This ensures fapolicy allows the upgraded components to execute properly.
Common Challenges and Solutions
- Access Denied Errors: If you encounter errors related to file access or execution permissions, ensure SELinux and fapolicy are configured correctly.
- Network Connectivity Issues: Verify that firewall rules allow necessary network traffic for Cribl Stream to communicate with other components.
- Configuration Errors: Double-check your configuration settings for SELinux, fapolicyd, and firewall rules to ensure they align with your security requirements.
For details and configuration templates, refer to the Guides section in the Cribl Curious Knowledge Base.