This is a draft document that was built and uploaded automatically. It may document beta software and be incomplete or even incorrect. Use this document at your own risk.

Jump to content
Hardening SUSE Linux Enterprise with STIG
SUSE Linux Enterprise Server

Hardening SUSE Linux Enterprise with STIG

Publication Date: June 11, 2025

This document introduces you to auditing and hardening SUSE Linux Enterprise with the Security Technical Implementation Guide (STIG) by the Defense Information Systems Agency (DISA) .

Important
Important: Disclaimer

SUSE seeks to provide customers with quick and easy guides that can assist them in maintaining security compliance. Implementation of the settings contained within this guide without its prior testing in a non-operational environment is highly discouraged. The developers of these profiles and documentation have made reasonable efforts to ensure overall compliance. They assume no responsibility for its use by other parties, and make no guarantee, expressed or implied, about its quality, reliability or any other characteristic.

1 What is STIG?

STIG stands for Security Technical Implementation Guide. The Defense Information Systems Agency (DISA) organization, which is a parent agency of the United States Department of Defense (DoD) , approves and publishes Security Technical Implementation Guides (STIGs) and updates them every 90 days.

STIGs are a set of rules and best practices for configuring systems to defend against potential threats. Each implementation guide is tailored to a specific product and version, defining a configuration standard with cybersecurity requirements for this product and version.

These requirements must be met when the system connects to a DoD network. But Security Technical Implementation Guides are also used outside of the government sector.

2 Benefits

When a Security Technical Implementation Guide is implemented for a system, the system is hardened. The goals are to minimize attacks and to prevent system access (both physically and via a network) and to define processes for maintenance (applying software updates) and vulnerability patching. Security Technical Implementation Guides can also cover configuration settings, for example, for operating systems, routers, databases, firewall rules, domain name servers and switches.

STIGs are ubiquitous across all systems.

3 Hardening SUSE Linux Enterprise Server with STIG

There are several ways to harden your systems with the STIG.

During installation with YaST or AutoYaST

Starting with SUSE Linux Enterprise 15 SP4, YaST and AutoYaST let you check certain basic aspects of the system at installation time. You can also enable a full scan or scan and remediation, respectively, at first boot of the system.

For details, see SUSE Linux Enterprise Server Deployment Guide.

With OpenSCAP

You can scan or remediate an existing system to bring it to a compliant state. OpenSCAP can be used to check and remediate local systems as well as remote systems.

With STIG Viewer

You can manually review the rules from DISA and apply them to a dedicated system.

4 Applying a STIG profile

The contents delivered with the SCAP Security Guide can be used to check or check and remediate systems according to a specific profile.

Regarding STIG, SUSE supports the following SCAP Security Guide profiles:

  • DISA STIG for SUSE Linux Enterprise 15

  • DISA STIG for SUSE Linux Enterprise 12

The following sections give certain examples on how to scan SUSE Linux Enterprise with oscap for STIG compliance and how to perform a remediation. For more background on OpenSCAP and the SCAP Security Guide, see the article Hardening SUSE Linux Enterprise with OpenSCAP.

4.1 Scanning a SLE system for STIG compliance

The following example shows how to scan SUSE Linux Enterprise 15 locally with oscap for vulnerability issues according to the profile DISA STIG for SUSE Linux Enterprise 15. You can save the results in XML format and generate an HTML report.

Example 1: Scanning SUSE Linux Enterprise with oscap
> sudo oscap xccdf eval1 \
     --profile stig2 \
     --results /tmp/results.xml3 \
     --report /tmp/report.html4 \
     /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml5

1

Calls the oscap xccdf module and tells it to perform an evaluation (vulnerability scan).

2

Specifies the profile to use, in this case, stig.

3

Saves the results of the evaluation to /tmp/results.xml.

4

Generates an HTML report called /tmp/report.html in addition to the results in XML.

5

Specifies the SCAP Security Guide policy file to use. In this example, we use a policy file in the DataStream format that applies to SUSE Linux Enterprise code 15. To list all available policies, run: ls -1 /usr/share/xml/scap/ssg/content/ssg-*-ds.xml. For more information about a particular policy, run oscap info on the file.

The evaluation process usually takes a few minutes, depending on the number of selected rules.

4.2 Making a SLE system STIG-compliant

The following examples show how to scan and remediate SUSE Linux Enterprise locally with oscap according to the profile DISA STIG for SUSE Linux Enterprise 15.

4.2.1 Remediating SUSE Linux Enterprise with oscap (on the fly)

For remediation with oscap on the fly, use the --remediate command-line option.

Example 2: Remediating SLE 15 with oscap (on the fly)
> sudo oscap xccdf eval --remediate1 \
      --profile stig2 \
      --results /tmp/results.xml3 \
      /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml4

1

Calls the oscap xccdf module and tells it to perform an evaluation plus a remediation of the target system in one go.

2

Specifies the profile to use, in this case, stig.

3

Saves the results of the evaluation to /tmp/results.xml.

4

Specifies the SCAP Security Guide policy file to use. In this example, we use a policy file in the DataStream format that applies to SUSE Linux Enterprise code 15. To list all available policies, run: ls -1 /usr/share/xml/scap/ssg/content/ssg-*-ds.xml. For more information about a particular policy, run oscap info on the file.

In the resulting /tmp/results.xml file, the first TestResult element shows the result of the scan before the remediation. The second TestResult element shows the result of the scan after applying the remediation. In the second TestResult element, if the result of a rule is fixed, this means that the fix was successfully applied, and this rule now passes evaluation. If the result of a rule is error, this means that the remediation for this rule was not successful, and the rule still does not pass evaluation.

4.2.2 Remediating SUSE Linux Enterprise with oscap (after scanning)

In this example, we first execute a scan and then run the remediation as next step.

Example 3: Remediating SLE with oscap (after scanning)
  1. > sudo oscap xccdf eval1 \
            --profile stig2 \
            --results /tmp/results.xml3 \
            /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml4

    1

    Calls the oscap xccdf module and tells it to perform an evaluation.

    2

    Specifies the profile to use, in this case, stig.

    3

    Saves the results of the evaluation as an XCCDF file to /tmp/results.xml.

    4

    Specifies the SCAP Security Guide policy file to use. In this example, we use a policy file in the DataStream format that applies to SUSE Linux Enterprise code 15. To list all available policies, run: ls -1 /usr/share/xml/scap/ssg/content/ssg-*-ds.xml. For more information about a particular policy, run oscap info on the file.

    During this step, the system is only evaluated, and the results are stored in a TestResult element in /tmp/results.xml.

  2. > sudo oscap xccdf remediate1 \
            --results /tmp/results.xml2 \
            /tmp/results.xml3

    1

    Calls the oscap xccdf module and tells it to perform a remediation.

    2

    Saves the results of the remediation to /tmp/results.xml.

    3

    Uses the /tmp/results.xml XCCDF file from the first step (evaluation) as input file.

    During this step, the results file from the first step is used as input for the oscap command. You can safely store the results from the second step in the same file that you use as input file, /tmp/results.xml. During this run, oscap creates a new xccdf:TestResult element in the file. The new element is based on the previous one and inherits all the data. The newly created xccdf:TestResult element differs only in the rule-result elements which failed in the first run. Only for those is the remediation executed.

4.2.3 Remediating a SLE system with Ansible

You can use the Ansible playbooks provided by the SCAP Security Guide to remediate a local system.

The ansible package is available from SUSE Package Hub. Register your SUSE Linux Enterprise system and enable the SUSE Package Hub extension. For SUSE Linux Enterprise 12, you additionally need to enable the Public Cloud module. Then install the package with sudo zypper in ansible.

Example 4: Remediating SLE 15 with Ansible

For example, to remediate your system using the STIG Ansible playbook for SUSE Linux Enterprise 15 provided by the SCAP Security Guide, use the following command.

Warning
Warning: System configuration changes

The following command alters the configuration of your system immediately. Make sure to test this thoroughly in a non-production system first.

> sudo ansible-playbook -i "localhost," -c local \
      /usr/share/scap-security-guide/ansible/sle15-playbook-stig.yml

After the playbook has finished, you are prompted to log in to your system, which is now compliant to the chosen policy.

GNOME login screen on a STIG-compliant system

5 Using a tailored STIG profile

The standard or default STIG profile is sufficient for most deployments. In addition, you can create, use for evaluation and apply tailoring files to tailor SCAP Security Guide content. Using tailoring files, you can change the behavior of a profile without directly modifying its standard configurations.

The following sections provide examples of creating tailoring files using either SCAP Workbench or the autotailor command-line utility, and then applying the tailoring file using the ssg-apply command-line utility.

Tip
Tip: Generalized tailoring

Although the following sections provide examples of tailoring for the STIG profile, you use a similar procedure for tailoring other profiles that are valid for your target system.

5.1 Creating a tailoring file

Tailoring files are XML files containing information about the deviation from the standard SCAP Security Guide content for a profile. You create a tailoring file when you override certain default rules of a standard profile, and save that information along with necessary metadata as an XML file. Once created, you can apply the tailoring file using a suitable program such as the ssg-apply utility.

SUSE recommends using any of the following methods of creating a tailoring file:

  • Manually, using the SCAP Workbench. This method is best suited when you are unsure of the rules that you want to override in the standard content of a profile, and would prefer the convenience of a graphical software.

  • Automatically, using the autotailor command-line tool which is bundled with the openscap-utils package. This method is best suited when you are sure of all the information that you need to create a tailoring file.

5.1.1 Creating tailoring files using SCAP Workbench

This section provides an example procedure for creating a tailoring file based on the standard STIG profile, using the SCAP Workbench graphical software. You can use a similar procedure to create tailoring files for any other valid profile.

As a prerequisite, ensure that you have installed the necessary packages, as described in the section https://documentation.suse.com/compliance/all/html/SLES-openscap/index.html#openscap-installation.

  1. Start SCAP Workbench by invoking it in the terminal:

    > scap-workbench
  2. Depending on whether you are using SUSE Linux Enterprise 15 or SUSE Linux Enterprise 12, select either SLe15 or SLe12 from the Select content to load drop-down list. In this example procedure, we select SLe15.

    SCAP Workbench‐Select Content to Load
    Figure 1: SCAP Workbench—select content to load
  3. Click Load Content.

  4. In the next window, titled Guide to the Secure Configuation of SUSE Linux Enterprise 15, perform the following steps:

    1. From the Profile drop-down list, select the profile that you want to customize. In this example, we select DISA STIG for SUSE Linux Enterprise 15 (242). The number within parenthesis at the end of the profile name represents the number of rules that comprise your selected profile. For example, DISA STIG for SUSE Linux Enterprise 15 has 242 rules.

    2. Optionally, if your target is a remote system, select the Remote Machine (over SSH) and provide necessary information.

      In this example procedure, we assume that the target system is your Local Machine.

      SCAP Workbench‐DISA STIG profile
      Figure 2: SCAP Workbench—DISA STIG profile
    3. Click Customize, edit the New Profile ID field if necessary, and click OK. The default New Profile ID provided by SCAP Workbench for the selected profile is xccdf_org.ssgproject.content_profile_stig_customized.

      SCAP Workbench‐Customize STIG profile
      Figure 3: SCAP Workbench—customize STIG profile
  5. In the next window titled Customizing "DISA STIG for SUSE Linux Enterprise 15 [CUSTOMIZED]"—SCAP Workbench, perform the following steps:

    1. Override the default rules by selecting or deselecting them. For example, we select the checkbox next to the rule Limit Users' SSH Access to further harden the target system's access over SSH. You can select or deselect multiple rules.

      Tip
      Tip: When unsure, read the rule's description

      Before selecting or deselecting the checkbox next to the rule, you can click the rule and read the Description provide at the right pane of the window.

      SCAP Workbench‐Select Rule
      Figure 4: SCAP Workbench—select rule
    2. When you are sure about the override of rules, click OK.

  6. On returning to the home window of SCAP Workbench, notice that the Customization field has changed to (unsaved changes).

    Using the menu at the top left of the window, save the customization by clicking File › Save Customization Only and choosing the path of the tailoring file as /tmp/ssg-sle15-ds-tailoring.xml.

    When saved, the Customization field displays the path to the tailoring file. In addition, the name of the new Profile contains the suffix (243), which indicates that an additional rule has been selected, as compared to the default of 242 rules.

    SCAP Workbench‐Save Tailoring File
    Figure 5: SCAP Workbench—save tailoring file
  7. Optionally, inspect the tailoring file by opening it with a text editor of your choice. Based on the example override of rules, the tailoring file contains the following information.

    <?xml version="1.0" encoding="UTF-8"?>
    <xccdf:Tailoring xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2" id="xccdf_scap-workbench_tailoring_default">
      <xccdf:benchmark href="/tmp/scap-workbench-sbgnfq/ssg-sle15-ds.xml"/>
      <xccdf:version time="2024-01-25T07:21:34">1</xccdf:version>
      <xccdf:Profile id="xccdf_org.ssgproject.content_profile_stig_customized" extends="xccdf_org.ssgproject.content_profile_stig">
        <xccdf:title xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="en-US" override="true">DISA STIG for SUSE Linux Enterprise 15 [CUSTOMIZED]</xccdf:title>
        <xccdf:description xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="en-US" override="true">This profile contains configuration checks that align to the
    DISA STIG for SUSE Linux Enterprise 15 V1R4.</xccdf:description>
        <xccdf:select idref="xccdf_org.ssgproject.content_rule_sshd_limit_user_access" selected="true"/>
      </xccdf:Profile>
    </xccdf:Tailoring>

5.1.2 Creating tailoring files using autotailor

There might be deployments where installing a graphical software such as SCAP Workbench is not suitable. In even more sensitive deployments, the customization of a remote target machine over SSH from a client machine running SCAP Workbench might also not be an option.

In such situations, the autotailor command-line tool that comes bundled with the openscap-utils is a suitable choice. However, you must be sure of all the information necessary for creating the tailoring file.

To create a tailoring file with autotailor, use the following syntax:

> autotailor \
  --select RULE_ID1 \
  --unselect RULE_ID2 \
  --var-value VAR=VALUE3 \
  --output TAILORING_FILE4 \
  --new-profile-id NEW_PROFILE_ID5 \
  DS_FILENAME6 \
  BASE_PROFILE_ID7

1

--select RULE_ID adds a rule with RULE_ID. To select multiple rules, you can use this argument multiple times.

2

--unselect RULE_ID discards a rule with RULE_ID. To discard multiple rules, you can use this argument multiple times.

3

--var-value VAR=VALUE specifies modification of the XCCDF value in the form VARIABLE=VALUE.

4

TAILORING_FILE specifies the path of the tailoring file, which is the final output of the autotailor tool.

5

Specifies the ID of the new customized profile that you want to create.

6

Specifies the path to the SCAP source data stream that is tailored.

7

Specifies the original or base profile ID that you want to customize.

  • As an example, run the following command to generate a tailoring file that is similar to the one created by using SCAP Workbench in the previous section:

    > autotailor \
      --select sshd_limit_user_access1 \
      --output /tmp/ssg-sle15-ds-tailoring.xml2 \
      --new-profile-id stig_customized3 \
      /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml4 \
      stig5

    1

    The ID of the Limit Users' SSH Access rule.

    2

    The path to the tailoring file, which is the output.

    3

    The ID of the new customized profile.

    4

    The path to the SCAP Security Guide content of the original STIG profile.

    5

    The name of the original STIG profile.

For more information about the autotailor tool, read its help information by running autotailor -h or refer to its man page by running man autotailor.

5.2 Scanning using a tailoring file

You can use a tailoring file and the oscap command-line tool to scan and evaluate your target system based on a customized data stream.

To evaluate your target system using a tailoring file created earlier, perform the following steps:

  1. List the profiles in the tailoring file by running the following command:

    > oscap info /tmp/ssg-sle15-ds-tailoring.xml1
    Document type: XCCDF Tailoring
    Imported: TIMESTAMP
    Benchmark Hint: /tmp/scap-workbench-VIdbAj/ssg-sle15-ds.xml
    Profiles:
    	Title: DISA STIG for SUSE Linux Enterprise 15 [CUSTOMIZED]
    		Id: xccdf_org.ssgproject.content_profile_stig_customized

    1

    The path to the tailoring file created earlier, using either SCAP Workbench or autotailor.

  2. Evaluate the target system based on the tailoring file by running the following command:

    > oscap xccdf eval \
     --profile xccdf_org.ssgproject.content_profile_stig_customized1 \
     --tailoring-file /tmp/ssg-sle15-ds-tailoring.xml2 \
     --results /tmp/results.xml3 \
     /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml4

    1

    The ID reference of the new customized profile.

    2

    The path to the tailoring file created earlier.

    3

    The path to store the results of the evaluation in a machine-readable XML format.

    4

    The path to the SCAP Security Guide content for the standard STIG profile.

    Note
    Note: Redirection of results

    Apart from storing the results of the scan in an XML file, oscap displays the results of the evaluation in a human-readable format on the screen. If you redirect the stream of human-readable results to a file, the debug logs are displayed on the screen.

5.3 Applying a tailoring file

After you create a tailoring file either using SCAP Workbench or autotailor, you must apply the custom profile to harden your target system. SUSE recommends using the ssg-apply command-line tool.

5.3.1 Applying tailoring file using ssg-apply

ssg-apply is a command-line tool maintained by SUSE and is part of the ssg-apply package. You can install it by running the following command:

> sudo zypper install -y ssg-apply

For detailed information on ssg-apply, refer to /usr/share/doc/packages/ssg-apply/README.

To apply the tailoring file that you have already created using SCAP Workbench or autotailor, perform the following steps:

  1. As a best practice, create a copy of /etc/ssg-apply/default.conf with the name /etc/ssg-apply/override.conf. The new file must contain information pointing to the overridden or customized configuration.

    > sudo cp /etc/ssg-apply/default.conf /etc/ssg-apply/override.conf
  2. Edit the /etc/ssg-apply/override.conf file to make its content similar to the following:

     #
     # This is the configuration file for the ssg-apply executable.
     #
    
     #
     # content-file - scap-security-guide content to be used for eval/remediation
     #
     content-file=/usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml
    
     #
     # profile - profile as specified in content-file
     #
     profile=stig
    
     #
     # remediation setting - Take care before changing this setting to "yes",
     # as enabling remediation will likely make changes to the system.
     #
     remediate=no
    
     #
     # tailoring-file - tailoring file to disable specific rules
     #
     tailoring-file=/tmp/ssg-sle15-ds-tailoring.xml1

    1

    The path to the tailoring file created using SCAP Workbench or autotailor.

  3. Apply the tailoring file by running the following command:

    > ssg-apply
  4. Optionally, after running ssg-apply, you can observe the following:

    1. The output of OpenSCAP in the /var/log/ssg-apply/ssg-apply-TIMESTAMP.out files.

      For example, you can find the line number containing the mention of the Limit Users' SSH Access rule using the following command:

      > cat /var/log/ssg-apply/ssg-apply-TIMESTAMP.out | grep -n sshd_limit_user_access
      1180:xccdf_org.ssgproject.content_rule_sshd_limit_user_access

      Then you can locate the lines containing the status of the Limit Users' SSH Access rule in the /var/log/ssg-apply/ssg-apply-TIMESTAMP.out file:

      1179	Limit Users' SSH Access
      1180	xccdf_org.ssgproject.content_rule_sshd_limit_user_access
      1181	CCE-91343-4
      1182	faillt
    2. The debug logs in the /var/log/ssg-apply/ssg-apply-TIMESTAMP.log files.

6 Working with checklists in DISA STIG Viewer

DISA STIG Viewer is a Java-based graphical user interface to open content and create checklists for managing the STIG security settings on your system or network.

6.1 Installing DISA STIG Viewer

The DISA STIG Viewer application is available as a ZIP archive from https://public.cyber.mil/stigs/stig-viewing-tools/. Download the Linux version of the DISA STIG Viewer.

To install DISA STIG Viewer, unpack the ZIP archive. In the directory with the extracted files, start the DISA STIG Viewer with ./STIGViewer.

DISA STIG Viewer—main window
Figure 6: DISA STIG Viewer—main window

6.2 Using DISA STIG Viewer

To view a Security Technical Implementation Guide for SUSE Linux Enterprise, you have the following two options.

Procedure 1: Importing from a ZIP archive

You can download a ZIP archive with the STIG checklist for your SUSE Linux Enterprise version (12 or 15).

  1. Go to https://public.cyber.mil/stigs/downloads/.

  2. In the Search field, enter SUSE and select and download the Security Technical Implementation Guide checklist that matches the SUSE Linux Enterprise system you want to harden.

  3. In DISA STIG Viewer, click File › Import STIG and select the downloaded ZIP archive.

  4. Enable the checkbox beneath the entry in the STIG Explorer panel to show the individual rules in the middle panel and details for each rule on the right-hand side.

    DISA STIG Viewer—explorer
Procedure 2: Importing from XCCDF XML

Use the oscap command-line tool to generate an XCCDF XML file that can be opened with DISA STIG Viewer.

  1. > sudo oscap xccdf eval1 \
          --profile stig2 \
          --stig-viewer /tmp/results_stig.xml3 \
          /usr/share/xml/scap/ssg/content/ssg-sle15-ds.xml4

    1

    Calls the oscap xccdf module and tells it to perform an evaluation (vulnerability scan).

    2

    Tells oscap to use the stig profile for the scan.

    3

    Saves the results of the evaluation to /tmp/results_stig.xml. This is an XCCDF XML file that can be imported into DISA STIG Viewer.

    4

    Specifies the SCAP Security Guide policy file to use. In this example, we use a policy file in the DataStream format that applies to SUSE Linux Enterprise code 15.

  2. In DISA STIG Viewer, click File › Import STIG and select the XML file you generated.

  3. Enable the checkbox beneath the entry in the STIG Explorer panel to show the individual rules in the middle panel.

For more information about DISA STIG Viewer, refer to the comprehensive STIG Viewer 2.x User Guide, which is available for download at https://public.cyber.mil/stigs/downloads/, or the README file that you can access from within DISA STIG Viewer by selecting Help › View Readme.

7 Legal Notice

Copyright © 2006–2025 SUSE LLC and contributors. All rights reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled GNU Free Documentation License.

For SUSE trademarks, see https://www.suse.com/company/legal/. All third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its affiliates. Asterisks (*) denote third-party trademarks.

All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its affiliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof.