From 2085e6f15dc2b83c6dcdee833cda7c6558a68311 Mon Sep 17 00:00:00 2001 From: willtome Date: Tue, 9 May 2023 12:46:18 -0400 Subject: [PATCH] STIG Compliance (#61) --- .ansible-lint | 4 + .github/workflows/ansible-lint.yml | 4 +- .../iosxeSTIG/callback_plugins/stig_xml.py | 98 + .../roles/iosxeSTIG/defaults/main.yml | 280 + ...S-XE_Router_NDM_STIG_V2R1_Manual-xccdf.xml | 1010 +++ ...S-XE_Router_RTR_STIG_V2R1_Manual-xccdf.xml | 3272 +++++++ .../roles/iosxeSTIG/files/duplicates.json | 20 + .../roles/iosxeSTIG/handlers/main.yml | 4 + .../compliance/roles/iosxeSTIG/tasks/main.yml | 595 ++ .../rhel7STIG/callback_plugins/stig_xml.py | 86 + .../roles/rhel7STIG/defaults/main.yml | 503 ++ .../U_RHEL_7_STIG_V3R10_Manual-xccdf.xml | 4762 +++++++++++ .../roles/rhel7STIG/handlers/main.yml | 11 + .../compliance/roles/rhel7STIG/tasks/main.yml | 1544 ++++ .../rhel8STIG/callback_plugins/stig_xml.py | 86 + .../roles/rhel8STIG/defaults/main.yml | 571 ++ .../files/U_RHEL_8_STIG_V1R9_Manual-xccdf.xml | 7608 +++++++++++++++++ .../roles/rhel8STIG/handlers/main.yml | 11 + .../compliance/roles/rhel8STIG/tasks/main.yml | 1800 ++++ .../win2022STIG/callback_plugins/stig_xml.py | 86 + .../roles/win2022STIG/defaults/main.yml | 939 ++ ...ows_Server_2022_STIG_V1R1_Manual-xccdf.xml | 5488 ++++++++++++ .../roles/win2022STIG/handlers/main.yml | 0 .../roles/win2022STIG/tasks/main.yml | 1648 ++++ linux/compliance.yml | 4 +- linux/setup.yml | 8 +- network/compliance.yml | 8 + network/setup.yml | 13 + roles/requirements.yml | 6 - windows/compliance.yml | 11 + windows/setup.yml | 20 + 31 files changed, 30484 insertions(+), 16 deletions(-) create mode 100644 .ansible-lint create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/callback_plugins/stig_xml.py create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/defaults/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/U_Cisco_IOS-XE_Router_NDM_STIG_V2R1_Manual-xccdf.xml create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/U_Cisco_IOS-XE_Router_RTR_STIG_V2R1_Manual-xccdf.xml create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/duplicates.json create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/handlers/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/iosxeSTIG/tasks/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel7STIG/callback_plugins/stig_xml.py create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel7STIG/defaults/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel7STIG/files/U_RHEL_7_STIG_V3R10_Manual-xccdf.xml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel7STIG/handlers/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel7STIG/tasks/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel8STIG/callback_plugins/stig_xml.py create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel8STIG/defaults/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel8STIG/files/U_RHEL_8_STIG_V1R9_Manual-xccdf.xml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel8STIG/handlers/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/rhel8STIG/tasks/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/win2022STIG/callback_plugins/stig_xml.py create mode 100644 collections/ansible_collections/demo/compliance/roles/win2022STIG/defaults/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/win2022STIG/files/U_MS_Windows_Server_2022_STIG_V1R1_Manual-xccdf.xml create mode 100644 collections/ansible_collections/demo/compliance/roles/win2022STIG/handlers/main.yml create mode 100644 collections/ansible_collections/demo/compliance/roles/win2022STIG/tasks/main.yml create mode 100644 network/compliance.yml delete mode 100644 roles/requirements.yml create mode 100644 windows/compliance.yml diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..672be3d --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,4 @@ +--- +exclude_paths: + - collections/ansible_collections/demo/compliance/roles/ + - .github/ diff --git a/.github/workflows/ansible-lint.yml b/.github/workflows/ansible-lint.yml index b0e4d28..a085b82 100644 --- a/.github/workflows/ansible-lint.yml +++ b/.github/workflows/ansible-lint.yml @@ -1,6 +1,8 @@ --- name: Ansible Lint -on: [push, pull_request] +on: + - push + - pull_request env: ANSIBLE_GALAXY_SERVER_LIST: ah,galaxy diff --git a/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/callback_plugins/stig_xml.py b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/callback_plugins/stig_xml.py new file mode 100644 index 0000000..4565273 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/callback_plugins/stig_xml.py @@ -0,0 +1,98 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.plugins.callback import CallbackBase +from time import gmtime, strftime +import platform +import tempfile +import re +import sys +import os +import json +import xml.etree.ElementTree as ET +import xml.dom.minidom + +role = "iosxeSTIG" + +class CallbackModule(CallbackBase): + CALLBACK_VERSION = 2.0 + CALLBACK_TYPE = 'xml' + CALLBACK_NAME = 'stig_xml' + + CALLBACK_NEEDS_WHITELIST = True + + def __init__(self): + super(CallbackModule, self).__init__() + self.rules = {} + self.stig_path = os.environ.get('STIG_PATH') + self.XML_path = os.environ.get('XML_PATH') + if self.stig_path is None: + self.stig_path = os.path.join(os.getcwd(), "roles", role, "files") + self._display.display('Using STIG_PATH: {}'.format(self.stig_path)) + if self.XML_path is None: + self.XML_path = os.getcwd() + self._display.display('Using XML_PATH: {}'.format(self.XML_path)) + + print("Writing: {}".format(self.XML_path)) + STIG_name = os.path.basename(self.stig_path) + ET.register_namespace('cdf', 'http://checklists.nist.gov/xccdf/1.2') + self.tr = ET.Element('{http://checklists.nist.gov/xccdf/1.2}TestResult') + self.tr.set('id', 'xccdf_mil.disa.stig_testresult_scap_mil.disa_comp_{}'.format(STIG_name)) + endtime = strftime("%Y-%m-%dT%H:%M:%S", gmtime()) + self.tr.set('end-time', endtime) + tg = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}target') + tg.text = platform.node() + + def __get_rev(self, nid): + rev = '0' + # Check all files for the rule number. + for file in os.listdir(self.stig_path): + with open(os.path.join(self.stig_path, file), 'r') as f: + r = 'SV-{}r(?P\d)_rule'.format(nid) + m = re.search(r, f.read()) + if m: + rev = m.group('rev') + break + return rev + + def v2_runner_on_ok(self, result): + name = result._task.get_name() + m = re.search('stigrule_(?P\d+)', name) + if m: + nid = m.group('id') + else: + return + rev = self.__get_rev(nid) + key = "{}r{}".format(nid, rev) + if self.rules.get(key, 'Unknown') != False: + self.rules[key] = result.is_changed() + + def __set_duplicates(self): + with open(os.path.join(self.stig_path, 'duplicates.json')) as f: + dups = json.load(f) + for d in dups: + dup_of = str(dups[d][0]) + rev = self.__get_rev(d) + key = "{}r{}".format(d, rev) + dup_of_rev = self.__get_rev(dup_of) + dup_of_key = "{}r{}".format(dup_of, dup_of_rev) + if dup_of_key in self.rules: + self.rules[key] = self.rules[dup_of_key] + + def v2_playbook_on_stats(self, stats): + self.__set_duplicates() + for rule, changed in self.rules.items(): + state = 'fail' if changed else 'pass' + rr = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}rule-result') + rr.set('idref', 'xccdf_mil.disa.stig_rule_SV-{}_rule'.format(rule)) + rs = ET.SubElement(rr, '{http://checklists.nist.gov/xccdf/1.2}result') + rs.text = state + passing = len(self.rules) - sum(self.rules.values()) + sc = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}score') + sc.set('maximum', str(len(self.rules))) + sc.set('system', 'urn:xccdf:scoring:flat-unweighted') + sc.text = str(passing) + with open(os.path.join(self.XML_path, "xccdf-results.xml"), 'w') as f: + out = ET.tostring(self.tr) + pretty = xml.dom.minidom.parseString(out).toprettyxml(encoding='utf-8') + f.write(pretty) diff --git a/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/defaults/main.yml b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/defaults/main.yml new file mode 100644 index 0000000..c746ea4 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/defaults/main.yml @@ -0,0 +1,280 @@ +# R-215807 CISC-ND-000010 +iosxeSTIG_stigrule_215807_Manage: True +iosxeSTIG_stigrule_215807_ip_http_max_connections_2_Lines: + - ip http max-connections 2 +iosxeSTIG_stigrule_215807_session_limit_for_all_line_vty_sections_Lines: + - session-limit 2 +# R-215808 CISC-ND-000090 +# A partial of 215815 +# duplicate of 215815 +# R-215809 CISC-ND-000100 +# A partial of 215815 +# duplicate of 215815 +# R-215810 CISC-ND-000110 +# A partial of 215815 +# duplicate of 215815 +# R-215811 CISC-ND-000120 +# A partial of 215815 +# duplicate of 215815 +# R-215813 CISC-ND-000150 +iosxeSTIG_stigrule_215813_Manage: True +iosxeSTIG_stigrule_215813_login_block_for_900_attempts_3_within_120_Lines: + - login block-for 900 attempts 3 within 120 +# R-215814 CISC-ND-000160 +iosxeSTIG_stigrule_215814_Manage: True +iosxeSTIG_stigrule_215814_login_Text: 'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and + +counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE, or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, + +psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.' +# R-215815 CISC-ND-000210 +iosxeSTIG_stigrule_215815_Manage: True +iosxeSTIG_stigrule_215815_login_logging_Lines: + - logging userinfo +iosxeSTIG_stigrule_215815_logging_enable_Lines: + - logging enable +iosxeSTIG_stigrule_215815_logging_enable_Parents: + - archive + - log config +# R-215816 CISC-ND-000250 +iosxeSTIG_stigrule_215816_Manage: True +iosxeSTIG_stigrule_215816_login_logging_Lines: + - login on-failure log + - login on-success log +# R-215817 CISC-ND-000280 +iosxeSTIG_stigrule_215817_Manage: True +iosxeSTIG_stigrule_215817_service_timestamps_log_datetime_localtime_Lines: + - service timestamps log datetime localtime +# R-215819 CISC-ND-000330 +# A partial of 215815 +# duplicate of 215815 +# R-215820 CISC-ND-000380 +iosxeSTIG_stigrule_215820_Manage: True +iosxeSTIG_stigrule_215820_file_privilege_Lines: + - file privilege 15 +# R-215821 CISC-ND-000390 +# A duplicate of 215820 +# duplicate of 215820 +# R-215822 CISC-ND-000460 +# A duplicate of 215820 +# duplicate of 215820 +# R-215823 CISC-ND-000470 +iosxeSTIG_stigrule_215823_Manage: True +iosxeSTIG_stigrule_215823_disable_boot_network_Lines: + - no boot network +iosxeSTIG_stigrule_215823_disable_boot_server_Lines: + - no ip boot server +iosxeSTIG_stigrule_215823_disable_bootp_server_Lines: + - no ip bootp server +iosxeSTIG_stigrule_215823_disable_dns_server_Lines: + - no ip dns server +iosxeSTIG_stigrule_215823_disable_identd_Lines: + - no ip identd +iosxeSTIG_stigrule_215823_disable_finger_Lines: + - no ip finger +iosxeSTIG_stigrule_215823_disable_http_server_Lines: + - no ip http server +iosxeSTIG_stigrule_215823_disable_rcmd_rcp_enable_Lines: + - no ip rcmd rcp-enable +iosxeSTIG_stigrule_215823_disable_rcmd_rsh_enable_Lines: + - no ip rcmd rsh-enable +iosxeSTIG_stigrule_215823_disable_tcp_small_servers_Lines: + - no service tcp-small-servers +iosxeSTIG_stigrule_215823_disable_udp_small_servers_Lines: + - no service udp-small-servers +iosxeSTIG_stigrule_215823_disable_service_finger_Lines: + - no service finger +iosxeSTIG_stigrule_215823_disable_service_config_Lines: + - no service config +iosxeSTIG_stigrule_215823_disable_service_pad_Lines: + - no service pad +# R-215825 CISC-ND-000530 +# ip ssh server algorithm encryption is set in 215845. +iosxeSTIG_stigrule_215825_Manage: True +iosxeSTIG_stigrule_215825_ip_ssh_version_2_Lines: + - ip ssh version 2 +# R-215826 CISC-ND-000550 +iosxeSTIG_stigrule_215826_Manage: False +iosxeSTIG_stigrule_215826_password_min_len_Lines: + - min-length 15 +iosxeSTIG_stigrule_215826_password_min_len_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215827 CISC-ND-000570 +iosxeSTIG_stigrule_215827_Manage: False +iosxeSTIG_stigrule_215827_password_upper_case_Lines: + - upper-case 1 +iosxeSTIG_stigrule_215827_password_upper_case_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215828 CISC-ND-000580 +iosxeSTIG_stigrule_215828_Manage: False +iosxeSTIG_stigrule_215828_password_lower_case_Lines: + - lower-case 1 +iosxeSTIG_stigrule_215828_password_lower_case_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215829 CISC-ND-000590 +iosxeSTIG_stigrule_215829_Manage: False +iosxeSTIG_stigrule_215829_password_numeric_count_Lines: + - numeric-count 1 +iosxeSTIG_stigrule_215829_password_numeric_count_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215830 CISC-ND-000600 +iosxeSTIG_stigrule_215830_Manage: False +iosxeSTIG_stigrule_215830_password_special_case_Lines: + - special-case 1 +iosxeSTIG_stigrule_215830_password_special_case_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215831 CISC-ND-000610 +iosxeSTIG_stigrule_215831_Manage: False +iosxeSTIG_stigrule_215831_password_upper_case_Lines: + - char-changes 8 +iosxeSTIG_stigrule_215831_password_upper_case_Parents: + - aaa common-criteria policy PASSWORD_POLICY +# R-215832 CISC-ND-000620 +iosxeSTIG_stigrule_215832_Manage: True +iosxeSTIG_stigrule_215832_service_password_encryption_Lines: + - service password-encryption +# R-215833 CISC-ND-000720 +iosxeSTIG_stigrule_215833_Manage: True +iosxeSTIG_stigrule_215833_exec_timeout_for_console_Lines: + - exec-timeout 10 0 +iosxeSTIG_stigrule_215833_exec_timeout_for_console_Parents: + - line con 0 +iosxeSTIG_stigrule_215833_exec_timeout_for_all_line_vty_sections_Lines: + - exec-timeout 10 0 +iosxeSTIG_stigrule_215833_ip_http_timeout_policy_idle_600_life_3600_requests_10_Lines: + - ip http timeout-policy idle 600 life 3600 requests 10 +# R-215834 CISC-ND-000880 +# A partial of 215815 +# duplicate of 215815 +# R-215835 CISC-ND-000940 +# A duplicate of 215815 +# duplicate of 215815 +# R-215836 CISC-ND-000980 +iosxeSTIG_stigrule_215836_Manage: True +iosxeSTIG_stigrule_215836_logging_buffered_4096_informational_Lines: + - logging buffered 4096 informational +# R-215837 CISC-ND-001000 +# Please configure name IP address to a valid one. +iosxeSTIG_stigrule_215837_Manage: False +iosxeSTIG_stigrule_215837_host_Name: '192.0.2.128' +iosxeSTIG_stigrule_215837_logging_trap_critical_Lines: + - logging trap critical +# R-215838 CISC-ND-001030 +# Replace ntp servers' IP address before enabling. +iosxeSTIG_stigrule_215838_Manage: False +iosxeSTIG_stigrule_215838_ntp_server_1_Server: '192.0.2.0' +iosxeSTIG_stigrule_215838_ntp_server_2_Server: '192.0.2.1' +# R-215839 CISC-ND-001040 +# A duplicate of 215817 +# duplicate of 215817 +# R-215840 CISC-ND-001050 +# service timestamps log datetime localtime is set in 215817. +iosxeSTIG_stigrule_215840_Manage: True +iosxeSTIG_stigrule_215840_service_timestamps_log_datetime_localtime_Lines: + - clock timezone EST -5 0 +# R-215844 CISC-ND-001200 +iosxeSTIG_stigrule_215844_Manage: True +iosxeSTIG_stigrule_215844_ip_ssh_server_algorithm_mac_hmac_sha1_Lines: + - ip ssh server algorithm mac hmac-sha1 +iosxeSTIG_stigrule_215844_ip_http_secure_ciphersuite_aes_128_cbc_sha_Lines: + - ip http secure-ciphersuite aes-128-cbc-sha +# R-215845 CISC-ND-001210 +# Option ip http secure-ciphersuite is set in 215844 +iosxeSTIG_stigrule_215845_Manage: True +iosxeSTIG_stigrule_215845_ip_ssh_server_algorithm_encryption_aes128_cbc_aes128_ctr_aes192_cbc_aes192_ctr_Lines: + - ip ssh server algorithm encryption aes128-cbc aes128-ctr aes192-cbc aes192-ctr +# R-215847 CISC-ND-001240 +# A duplicate of 215815 +# duplicate of 215815 +# R-215848 CISC-ND-001250 +# A partial of 215815 +# duplicate of 215815 +# R-215849 CISC-ND-001260 +# A subset of 215816 +# duplicate of 215816 +# R-215850 CISC-ND-001270 +# A partial of 215815 +# duplicate of 215815 +# R-215852 CISC-ND-001290 +# A subset of 215816 +# duplicate of 215816 +# R-215853 CISC-ND-001310 +# A duplicate of 215837 +# duplicate of 215837 +# R-215854 CISC-ND-001370 +# Configure the authentication server key before enabling. +iosxeSTIG_stigrule_215854_Manage: False +iosxeSTIG_stigrule_215854_radius_host_10_1_48_2_key_xxxxxx_Lines: + - radius host 10.1.48.2 key xxxxxx +iosxeSTIG_stigrule_215854_aaa_authentication_login_LOGIN_AUTHENTICATION_group_radius_local_Lines: + - aaa authentication login LOGIN_AUTHENTICATION group radius local +iosxeSTIG_stigrule_215854_ip_http_authentication_aaa_login_authentication_LOGIN_AUTHENTICATION_Lines: + - ip http authentication aaa login-authentication LOGIN_AUTHENTICATION +iosxeSTIG_stigrule_215854_login_authentication_for_console_Lines: + - login authentication LOGIN_AUTHENTICATION +iosxeSTIG_stigrule_215854_login_authentication_for_console_Parents: + - line con 0 +iosxeSTIG_stigrule_215854_login_authentication_for_all_line_vty_sections_Lines: + - login authentication LOGIN_AUTHENTICATION +# R-215856 CISC-ND-001440 +# Insert an appropriate URL (including protocol and port) +iosxeSTIG_stigrule_215856_Manage: False +iosxeSTIG_stigrule_215856_enrollment_url_Lines: + - enrollment url http://trustpoint1.example.com:80 +iosxeSTIG_stigrule_215856_enrollment_url_Parents: + - crypto pki trustpoint CA_X +# R-216647 CISC-RT-000070 +# A duplicate of 215823 +# duplicate of 215823 +# R-216661 CISC-RT-000230 +iosxeSTIG_stigrule_216661_Manage: False +iosxeSTIG_stigrule_216661_Disable_the_auxiliary_port_Lines: + - no exec + - transport input none +iosxeSTIG_stigrule_216661_Disable_the_auxiliary_port_Parents: + - line aux 0 +# R-216675 CISC-RT-000370 +iosxeSTIG_stigrule_216675_Manage: True +iosxeSTIG_stigrule_216675_no_cdp_run_Lines: + - no cdp run +# R-216700 CISC-RT-000620 +iosxeSTIG_stigrule_216700_Manage: True +iosxeSTIG_stigrule_216700_no_mpls_ip_propagate_ttl_Lines: + - no mpls ip propagate-ttl +# R-216723 CISC-RT-000850 +iosxeSTIG_stigrule_216723_Manage: False +iosxeSTIG_stigrule_216723_ip_pim_register_rate_limit_10_Lines: + - ip pim register-rate-limit 10 +# R-216726 CISC-RT-000880 +iosxeSTIG_stigrule_216726_Manage: True +iosxeSTIG_stigrule_216726_ip_igmp_limit_Lines: + - ip igmp limit 2 +# R-216727 CISC-RT-000890 +iosxeSTIG_stigrule_216727_Manage: True +iosxeSTIG_stigrule_216727_ip_pim_spt_threshold_infinity_Lines: + - ip pim spt-threshold infinity +# R-216996 CISC-RT-000080 +iosxeSTIG_stigrule_216996_Manage: True +iosxeSTIG_stigrule_216996_no_call_home_Lines: + - no call-home +# R-217001 CISC-RT-000750 +# Options drop or ignore are allowed. +iosxeSTIG_stigrule_217001_Manage: True +iosxeSTIG_stigrule_217001_ip_options_drop_Lines: + - ip options drop +# R-220139 CISC-ND-001450 +# A duplicate of 215837 +# duplicate of 215837 +iosxeSTIG_save_configuration_Manage: False diff --git a/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/U_Cisco_IOS-XE_Router_NDM_STIG_V2R1_Manual-xccdf.xml b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/U_Cisco_IOS-XE_Router_NDM_STIG_V2R1_Manual-xccdf.xml new file mode 100644 index 0000000..128c7c7 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/iosxeSTIG/files/U_Cisco_IOS-XE_Router_NDM_STIG_V2R1_Manual-xccdf.xml @@ -0,0 +1,1010 @@ +acceptedCisco IOS XE Router NDM Security Technical Implementation GuideThis Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.DISASTIG.DOD.MILRelease: 1 Benchmark Date: 23 Oct 20203.1.1.362251.10.02I - Mission Critical Classified<ProfileDescription></ProfileDescription>I - Mission Critical Sensitive<ProfileDescription></ProfileDescription>II - Mission Support Public<ProfileDescription></ProfileDescription>III - Administrative Classified<ProfileDescription></ProfileDescription>III - Administrative Sensitive<ProfileDescription></ProfileDescription>I - Mission Critical Public<ProfileDescription></ProfileDescription>II - Mission Support Classified<ProfileDescription></ProfileDescription>II - Mission Support Sensitive<ProfileDescription></ProfileDescription>III - Administrative Public<ProfileDescription></ProfileDescription>SRG-OS-000257-GPOS-00098<GroupDescription></GroupDescription>RHEL-07-010010The Red Hat Enterprise Linux operating system must be configured so that the file permissions, ownership, and group membership of system files and commands match the vendor values.<VulnDiscussion>Discretionary access control is weakened if a user or group has access permissions to system files and directories greater than the default. + +Satisfies: SRG-OS-000257-GPOS-00098, SRG-OS-000278-GPOS-00108</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71849SV-86473CCI-001494CCI-001496CCI-002165CCI-002235Run the following command to determine which package owns the file: + + # rpm -qf <filename> + +Reset the user and group ownership of files within a package with the following command: + + # rpm --setugids <packagename> + + +Reset the permissions of files within a package with the following command: + + # rpm --setperms <packagename>Verify the file permissions, ownership, and group membership of system files and commands match the vendor values. + +Check the default file permissions, ownership, and group membership of system files and commands with the following command: + + # for i in `rpm -Va | grep -E '^.{1}M|^.{5}U|^.{6}G' | cut -d " " -f 4,5`;do for j in `rpm -qf $i`;do rpm -ql $j --dump | cut -d " " -f 1,5,6,7 | grep $i;done;done + + /var/log/gdm 040755 root root + /etc/audisp/audisp-remote.conf 0100640 root root + /usr/bin/passwd 0104755 root root + +For each file returned, verify the current permissions, ownership, and group membership: + # ls -la <filename> + + -rw-------. 1 root root 2017 Nov 1 10:03 /etc/audisp/audisp-remote.conf + +If the file is more permissive than the default permissions, this is a finding. + +If the file is not owned by the default owner and is not documented with the Information System Security Officer (ISSO), this is a finding. + +If the file is not a member of the default group and is not documented with the Information System Security Officer (ISSO), this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-07-010030The Red Hat Enterprise Linux operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71859SV-86483CCI-000048Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Create a database to contain the system-wide graphical user logon settings (if it does not already exist) with the following command: + +# touch /etc/dconf/db/local.d/01-banner-message + +Add the following line to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": + +[org/gnome/login-screen] +banner-message-enable=true + +Update the system databases: + +# dconf update + +Users must log out and back in again before the system-wide settings take effect.Verify the operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Check to see if the operating system displays a banner at the logon screen with the following command: + +# grep banner-message-enable /etc/dconf/db/local.d/* +banner-message-enable=true + +If "banner-message-enable" is set to "false" or is missing, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-07-010040The Red Hat Enterprise Linux operating system must display the approved Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71861SV-86485CCI-000048Configure the operating system to display the approved Standard Mandatory DoD Notice and Consent Banner before granting access to the system. + +Note: If the system does not have a Graphical User Interface installed, this requirement is Not Applicable. + +Create a database to contain the system-wide graphical user logon settings (if it does not already exist) with the following command: + +# touch /etc/dconf/db/local.d/01-banner-message + +Add the following line to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": + +[org/gnome/login-screen] + +banner-message-enable=true + +banner-message-text='You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' + +Note: The "\n " characters are for formatting only. They will not be displayed on the Graphical User Interface. + +Run the following command to update the database: +# dconf updateVerify the operating system displays the approved Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. + +Note: If the system does not have a Graphical User Interface installed, this requirement is Not Applicable. + +Check that the operating system displays the exact approved Standard Mandatory DoD Notice and Consent Banner text with the command: + +# grep banner-message-text /etc/dconf/db/local.d/* +banner-message-text= +'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' + +Note: The "\n " characters are for formatting only. They will not be displayed on the Graphical User Interface. + +If the banner does not match the approved Standard Mandatory DoD Notice and Consent Banner, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-07-010050The Red Hat Enterprise Linux operating system must display the Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a command line user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71863SV-86487CCI-000048Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via the command line by editing the "/etc/issue" file. + +Replace the default text with the Standard Mandatory DoD Notice and Consent Banner. The DoD required text is: +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details."Verify the operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a command line user logon. + +Check to see if the operating system displays a banner at the command line logon screen with the following command: + +# more /etc/issue + +The command should return the following text: +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +If the operating system does not display a graphical logon banner or the banner does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding. + +If the text in the "/etc/issue" file does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-07-010060The Red Hat Enterprise Linux operating system must enable a user session lock until that user re-establishes access using established identification and authentication procedures.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. + +Regardless of where the session lock is determined and implemented, once invoked, the session lock must remain in place until the user reauthenticates. No other activity aside from reauthentication must unlock the system. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86515V-71891CCI-000056Configure the operating system to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following example: + + # touch /etc/dconf/db/local.d/00-screensaver + +Edit the "[org/gnome/desktop/screensaver]" section of the database file and add or update the following lines: + + # Set this to true to lock the screen when the screensaver activates + lock-enabled=true + +Update the system databases: + + # dconf update + +Users must log out and back in again before the system-wide settings take effect.Verify the operating system enables a user's session lock until that user re-establishes access using established identification and authentication procedures. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Check to see if the screen lock is enabled with the following command: + + # grep -ir lock-enabled /etc/dconf/db/local.d/ | grep -v locks + lock-enabled=true + +If the "lock-enabled" setting is missing or is not set to "true", this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-07-010061The Red Hat Enterprise Linux operating system must uniquely identify and must authenticate users using multifactor authentication via a graphical user logon.<VulnDiscussion>To assure accountability and prevent unauthenticated access, users must be identified and authenticated to prevent potential misuse and compromise of the system. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. + +Satisfies: SRG-OS-000375-GPOS-00161,SRG-OS-000375-GPOS-00162</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-77819SV-92515CCI-001948CCI-001953CCI-001954Configure the operating system to uniquely identify and authenticate users using multifactor authentication via a graphical user logon. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example is using the database local for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +# touch /etc/dconf/db/local.d/00-defaults + +Edit "[org/gnome/login-screen]" and add or update the following line: +enable-smartcard-authentication=true + +Update the system databases: +# dconf updateVerify the operating system uniquely identifies and authenticates users using multifactor authentication via a graphical user logon. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + +# grep system-db /etc/dconf/profile/user + +system-db:local + +Note: The example is using the database local for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than local is being used. + +# grep enable-smartcard-authentication /etc/dconf/db/local.d/* + +enable-smartcard-authentication=true + +If "enable-smartcard-authentication" is set to "false" or the keyword is missing, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010070The Red Hat Enterprise Linux operating system must initiate a screensaver after a 15-minute period of inactivity for graphical user interfaces.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71893SV-86517CCI-000057Configure the operating system to initiate a screensaver after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + + # touch /etc/dconf/db/local.d/00-screensaver + +Edit /etc/dconf/db/local.d/00-screensaver and add or update the following lines: + + [org/gnome/desktop/session] + # Set the lock time out to 900 seconds before the session is considered idle + idle-delay=uint32 900 + +You must include the "uint32" along with the integer key values as shown. + +Update the system databases: + + # dconf update + +Users must log out and back in again before the system-wide settings take effect.Verify the operating system initiates a screensaver after a 15-minute period of inactivity for graphical user interfaces. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Check to see if GNOME is configured to display a screensaver after a 15 minute delay with the following command: + + # grep -i idle-delay /etc/dconf/db/local.d/* + idle-delay=uint32 900 + +If the "idle-delay" setting is missing or is not set to "900" or less, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010081The Red Hat Enterprise Linux operating system must prevent a user from overriding the screensaver lock-delay setting for the graphical user interface.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-73155SV-87807CCI-000057Configure the operating system to prevent a user from overriding a screensaver lock after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + + # touch /etc/dconf/db/local.d/locks/session + +Add the setting to lock the screensaver lock delay: + + /org/gnome/desktop/screensaver/lock-delayVerify the operating system prevents a user from overriding a screensaver lock after a 15-minute period of inactivity for graphical user interfaces. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + # grep system-db /etc/dconf/profile/user + system-db:local + +Check for the lock delay setting with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + + # grep -i lock-delay /etc/dconf/db/local.d/locks/* + /org/gnome/desktop/screensaver/lock-delay + +If the command does not return a result, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010082The Red Hat Enterprise Linux operating system must prevent a user from overriding the session idle-delay setting for the graphical user interface.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-73157SV-87809CCI-000057Configure the operating system to prevent a user from overriding a session lock after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in /etc/dconf/profile/user, the file should be created under the appropriate subdirectory. + + # touch /etc/dconf/db/local.d/locks/session + +Add the setting to lock the session idle delay: + + /org/gnome/desktop/session/idle-delayVerify the operating system prevents a user from overriding session idle delay after a 15-minute period of inactivity for graphical user interfaces. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + # grep system-db /etc/dconf/profile/user + system-db:local + +Check for the session idle delay setting with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + + # grep -i idle-delay /etc/dconf/db/local.d/locks/* + /org/gnome/desktop/session/idle-delay + +If the command does not return a result, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010100The Red Hat Enterprise Linux operating system must initiate a session lock for the screensaver after a period of inactivity for graphical user interfaces.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71899SV-86523CCI-000057Configure the operating system to initiate a session lock after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + + # touch /etc/dconf/db/local.d/00-screensaver + +Add the setting to enable screensaver locking after 15 minutes of inactivity: + + [org/gnome/desktop/screensaver] + + idle-activation-enabled=true + +Update the system databases: + + # dconf update + +Users must log out and back in again before the system-wide settings take effect.Verify the operating system initiates a session lock after a 15-minute period of inactivity for graphical user interfaces. + +Note: If the system does not have a GNOME installed, this requirement is Not Applicable. + +Check for the session lock settings with the following commands: + + # grep -i idle-activation-enabled /etc/dconf/db/local.d/* + idle-activation-enabled=true + +If "idle-activation-enabled" is not set to "true", this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010101The Red Hat Enterprise Linux operating system must prevent a user from overriding the screensaver idle-activation-enabled setting for the graphical user interface.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. + +The ability to enable/disable a session lock is given to the user by default. Disabling the user's ability to disengage the graphical user interface session lock provides the assurance that all sessions will lock after the specified period of time.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-78997SV-93703CCI-000057Configure the operating system to prevent a user from overriding a screensaver lock after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + + # touch /etc/dconf/db/local.d/locks/session + +Add the setting to lock the screensaver idle-activation-enabled setting: + + /org/gnome/desktop/screensaver/idle-activation-enabledVerify the operating system prevents a user from overriding the screensaver idle-activation-enabled setting for the graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + # grep system-db /etc/dconf/profile/user + + system-db:local + +Check for the idle-activation-enabled setting with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + + # grep -i idle-activation-enabled /etc/dconf/db/local.d/locks/* + + /org/gnome/desktop/screensaver/idle-activation-enabled + +If the command does not return a result, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010110The Red Hat Enterprise Linux operating system must initiate a session lock for graphical user interfaces when the screensaver is activated.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71901SV-86525CCI-000057Configure the operating system to initiate a session lock for graphical user interfaces when a screensaver is activated. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + + # touch /etc/dconf/db/local.d/00-screensaver + +Add the setting to enable session locking when a screensaver is activated: + + [org/gnome/desktop/screensaver] + lock-delay=uint32 5 + +The "uint32" must be included along with the integer key values as shown. + +Update the system databases: + + # dconf update + +Users must log out and back in again before the system-wide settings take effect.Verify the operating system initiates a session lock a for graphical user interfaces when the screensaver is activated. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +If GNOME is installed, check to see a session lock occurs when the screensaver is activated with the following command: + + # grep -i lock-delay /etc/dconf/db/local.d/* + lock-delay=uint32 5 + +If the "lock-delay" setting is missing, or is not set to "5" or less, this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>RHEL-07-010118The Red Hat Enterprise Linux operating system must be configured so that /etc/pam.d/passwd implements /etc/pam.d/system-auth when changing passwords.<VulnDiscussion>Pluggable authentication modules (PAM) allow for a modular approach to integrating authentication methods. PAM operates in a top-down processing model and if the modules are not listed in the correct order, an important security function could be bypassed if stack entries are not centralized.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95715V-81003CCI-000192Configure PAM to utilize /etc/pam.d/system-auth when changing passwords. + +Add the following line to "/etc/pam.d/passwd" (or modify the line to have the required value): + +password substack system-authVerify that /etc/pam.d/passwd is configured to use /etc/pam.d/system-auth when changing passwords: + +# cat /etc/pam.d/passwd | grep -i substack | grep -i system-auth +password substack system-auth + +If no results are returned, the line is commented out, this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>RHEL-07-010119The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed or new passwords are established, pwquality must be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87811V-73159CCI-000192Configure the operating system to use "pwquality" to enforce password complexity rules. + +Add the following line to "/etc/pam.d/system-auth" (or modify the line to have the required value): + +password required pam_pwquality.so retry=3 + +Note: The value of "retry" should be between "1" and "3".Verify the operating system uses "pwquality" to enforce the password complexity rules. + +Check for the use of "pwquality" with the following command: + +# cat /etc/pam.d/system-auth | grep pam_pwquality + +password required pam_pwquality.so retry=3 + +If the command does not return an uncommented line containing the value "pam_pwquality.so", this is a finding. + +If the value of "retry" is set to "0" or greater than "3", this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>RHEL-07-010120The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed or new passwords are established, the new password must contain at least one upper-case character.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86527V-71903CCI-000192Configure the operating system to enforce password complexity by requiring that at least one upper-case character be used by setting the "ucredit" option. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +ucredit = -1Note: The value to require a number of upper-case characters to be set is expressed as a negative number in "/etc/security/pwquality.conf". + +Check the value for "ucredit" in "/etc/security/pwquality.conf" with the following command: + +# grep ucredit /etc/security/pwquality.conf +ucredit = -1 + +If the value of "ucredit" is not set to a negative value, this is a finding.SRG-OS-000070-GPOS-00038<GroupDescription></GroupDescription>RHEL-07-010130The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed or new passwords are established, the new password must contain at least one lower-case character.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86529V-71905CCI-000193Configure the system to require at least one lower-case character when creating or changing a password. + +Add or modify the following line +in "/etc/security/pwquality.conf": + +lcredit = -1Note: The value to require a number of lower-case characters to be set is expressed as a negative number in "/etc/security/pwquality.conf". + +Check the value for "lcredit" in "/etc/security/pwquality.conf" with the following command: + +# grep lcredit /etc/security/pwquality.conf +lcredit = -1 + +If the value of "lcredit" is not set to a negative value, this is a finding.SRG-OS-000071-GPOS-00039<GroupDescription></GroupDescription>RHEL-07-010140The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed or new passwords are assigned, the new password must contain at least one numeric character.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86531V-71907CCI-000194Configure the operating system to enforce password complexity by requiring that at least one numeric character be used by setting the "dcredit" option. + +Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): + +dcredit = -1Note: The value to require a number of numeric characters to be set is expressed as a negative number in "/etc/security/pwquality.conf". + +Check the value for "dcredit" in "/etc/security/pwquality.conf" with the following command: + +# grep dcredit /etc/security/pwquality.conf +dcredit = -1 + +If the value of "dcredit" is not set to a negative value, this is a finding.SRG-OS-000266-GPOS-00101<GroupDescription></GroupDescription>RHEL-07-010150The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed or new passwords are established, the new password must contain at least one special character.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86533V-71909CCI-001619Configure the operating system to enforce password complexity by requiring that at least one special character be used by setting the "ocredit" option. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +ocredit = -1Verify the operating system enforces password complexity by requiring that at least one special character be used. + +Note: The value to require a number of special characters to be set is expressed as a negative number in "/etc/security/pwquality.conf". + +Check the value for "ocredit" in "/etc/security/pwquality.conf" with the following command: + +# grep ocredit /etc/security/pwquality.conf +ocredit=-1 + +If the value of "ocredit" is not set to a negative value, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-07-010160The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed a minimum of eight of the total number of characters must be changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71911SV-86535CCI-000195Configure the operating system to require the change of at least eight of the total number of characters when passwords are changed by setting the "difok" option. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +difok = 8The "difok" option sets the number of characters in a password that must not be present in the old password. + +Check for the value of the "difok" option in "/etc/security/pwquality.conf" with the following command: + +# grep difok /etc/security/pwquality.conf +difok = 8 + +If the value of "difok" is set to less than "8", this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-07-010170The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed a minimum of four character classes must be changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71913SV-86537CCI-000195Configure the operating system to require the change of at least four character classes when passwords are changed by setting the "minclass" option. + +Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): + +minclass = 4The "minclass" option sets the minimum number of required classes of characters for the new password (digits, upper-case, lower-case, others). + +Check for the value of the "minclass" option in "/etc/security/pwquality.conf" with the following command: + +# grep minclass /etc/security/pwquality.conf +minclass = 4 + +If the value of "minclass" is set to less than "4", this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-07-010180The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed the number of repeating consecutive characters must not be more than three characters.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86539V-71915CCI-000195Configure the operating system to require the change of the number of repeating consecutive characters when passwords are changed by setting the "maxrepeat" option. + +Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): + +maxrepeat = 3The "maxrepeat" option sets the maximum number of allowed same consecutive characters in a new password. + +Check for the value of the "maxrepeat" option in "/etc/security/pwquality.conf" with the following command: + +# grep maxrepeat /etc/security/pwquality.conf +maxrepeat = 3 + +If the value of "maxrepeat" is set to more than "3", this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-07-010190The Red Hat Enterprise Linux operating system must be configured so that when passwords are changed the number of repeating characters of the same character class must not be more than four characters.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86541V-71917CCI-000195Configure the operating system to require the change of the number of repeating characters of the same character class when passwords are changed by setting the "maxclassrepeat" option. + +Add the following line to "/etc/security/pwquality.conf" conf (or modify the line to have the required value): + +maxclassrepeat = 4The "maxclassrepeat" option sets the maximum number of allowed same consecutive characters in the same class in the new password. + +Check for the value of the "maxclassrepeat" option in "/etc/security/pwquality.conf" with the following command: + +$ sudo grep maxclassrepeat /etc/security/pwquality.conf +maxclassrepeat = 4 + +If the value of "maxclassrepeat" is set to "0", more than "4" or is commented out, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-07-010200The Red Hat Enterprise Linux operating system must be configured so that the PAM system service is configured to store only encrypted representations of passwords.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised. Passwords encrypted with a weak algorithm are no more protected than if they are kept in plain text.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71919SV-86543CCI-000196Configure the operating system to store only SHA512 encrypted representations of passwords. + +Add the following line in "/etc/pam.d/system-auth": + pam_unix.so sha512 shadow try_first_pass use_authtok + +Add the following line in "/etc/pam.d/password-auth": + pam_unix.so sha512 shadow try_first_pass use_authtok + +Note: Per requirement RHEL-07-010199, RHEL 7 must be configured to not overwrite custom authentication configuration settings while using the authconfig utility, otherwise manual changes to the listed files will be overwritten whenever the authconfig utility is used.Verify the PAM system service is configured to store only encrypted representations of passwords. The strength of encryption that must be used to hash passwords for all accounts is SHA512. + +Check that the system is configured to create SHA512 hashed passwords with the following command: + + # grep password /etc/pam.d/system-auth /etc/pam.d/password-auth + +Outcome should look like following: + /etc/pam.d/system-auth-ac:password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok + /etc/pam.d/password-auth:password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok + +If the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" configuration files allow for password hashes other than SHA512 to be used, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-07-010210The Red Hat Enterprise Linux operating system must be configured to use the shadow file to store only encrypted representations of passwords.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised. Passwords encrypted with a weak algorithm are no more protected than if they are kept in plain text.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71921SV-86545CCI-000196Configure the operating system to store only SHA512 encrypted representations of passwords. + +Add or update the following line in "/etc/login.defs": + +ENCRYPT_METHOD SHA512Verify the system's shadow file is configured to store only encrypted representations of passwords. The strength of encryption that must be used to hash passwords for all accounts is SHA512. + +Check that the system is configured to create SHA512 hashed passwords with the following command: + +# grep -i encrypt /etc/login.defs +ENCRYPT_METHOD SHA512 + +If the "/etc/login.defs" configuration file does not exist or allows for password hashes other than SHA512 to be used, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-07-010220The Red Hat Enterprise Linux operating system must be configured so that user and group account administration utilities are configured to store only encrypted representations of passwords.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised. Passwords encrypted with a weak algorithm are no more protected than if they are kept in plain text.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71923SV-86547CCI-000196Configure the operating system to store only SHA512 encrypted representations of passwords. + +Add or update the following line in "/etc/libuser.conf" in the [defaults] section: + +crypt_style = sha512Verify the user and group account administration utilities are configured to store only encrypted representations of passwords. The strength of encryption that must be used to hash passwords for all accounts is "SHA512". + +Check that the system is configured to create "SHA512" hashed passwords with the following command: + +# grep -i sha512 /etc/libuser.conf + +crypt_style = sha512 + +If the "crypt_style" variable is not set to "sha512", is not in the defaults section, is commented out, or does not exist, this is a finding.SRG-OS-000075-GPOS-00043<GroupDescription></GroupDescription>RHEL-07-010230The Red Hat Enterprise Linux operating system must be configured so that passwords for new users are restricted to a 24 hours/1 day minimum lifetime.<VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71925SV-86549CCI-000198Configure the operating system to enforce 24 hours/1 day as the minimum password lifetime. + +Add the following line in "/etc/login.defs" (or modify the line to have the required value): + +PASS_MIN_DAYS 1Verify the operating system enforces 24 hours/1 day as the minimum password lifetime for new user accounts. + +Check for the value of "PASS_MIN_DAYS" in "/etc/login.defs" with the following command: + +# grep -i pass_min_days /etc/login.defs +PASS_MIN_DAYS 1 + +If the "PASS_MIN_DAYS" parameter value is not "1" or greater, or is commented out, this is a finding.SRG-OS-000075-GPOS-00043<GroupDescription></GroupDescription>RHEL-07-010240The Red Hat Enterprise Linux operating system must be configured so that passwords are restricted to a 24 hours/1 day minimum lifetime.<VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86551V-71927CCI-000198Configure non-compliant accounts to enforce a 24 hours/1 day minimum password lifetime: + +# chage -m 1 [user]Check whether the minimum time period between password changes for each user account is one day or greater. + +# awk -F: '$4 < 1 {print $1 " " $4}' /etc/shadow + +If any results are returned that are not associated with a system account, this is a finding.SRG-OS-000076-GPOS-00044<GroupDescription></GroupDescription>RHEL-07-010250The Red Hat Enterprise Linux operating system must be configured so that passwords for new users are restricted to a 60-day maximum lifetime.<VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71929SV-86553CCI-000199Configure the operating system to enforce a 60-day maximum password lifetime restriction. + +Add the following line in "/etc/login.defs" (or modify the line to have the required value): + +PASS_MAX_DAYS 60If passwords are not being used for authentication, this is Not Applicable. + +Verify the operating system enforces a 60-day maximum password lifetime restriction for new user accounts. + +Check for the value of "PASS_MAX_DAYS" in "/etc/login.defs" with the following command: + +# grep -i pass_max_days /etc/login.defs +PASS_MAX_DAYS 60 + +If the "PASS_MAX_DAYS" parameter value is not 60 or less, or is commented out, this is a finding.SRG-OS-000076-GPOS-00044<GroupDescription></GroupDescription>RHEL-07-010260The Red Hat Enterprise Linux operating system must be configured so that existing passwords are restricted to a 60-day maximum lifetime.<VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If the operating system does not limit the lifetime of passwords and force users to change their passwords, there is the risk that the operating system passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71931SV-86555CCI-000199Configure non-compliant accounts to enforce a 60-day maximum password lifetime restriction. + +# chage -M 60 [user]Check whether the maximum time period for existing passwords is restricted to 60 days. + +# awk -F: '$5 > 60 {print $1 " " $5}' /etc/shadow + +If any results are returned that are not associated with a system account, this is a finding. +SRG-OS-000077-GPOS-00045<GroupDescription></GroupDescription>RHEL-07-010270The Red Hat Enterprise Linux operating system must be configured so that passwords are prohibited from reuse for a minimum of five generations.<VulnDiscussion>Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to consecutively reuse their password when that password has exceeded its defined lifetime, the end result is a password that is not changed per policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71933SV-86557CCI-000200Configure the operating system to prohibit password reuse for a minimum of five generations. + +Add the following line in "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" (or modify the line to have the required value): + + password requisite pam_pwhistory.so use_authtok remember=5 retry=3 + +Note: Per requirement RHEL-07-010199, RHEL 7 must be configured to not overwrite custom authentication configuration settings while using the authconfig utility, otherwise manual changes to the listed files will be overwritten whenever the authconfig utility is used.Verify the operating system prohibits password reuse for a minimum of five generations. + +Check for the value of the "remember" argument in "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" with the following command: + + # grep -i remember /etc/pam.d/system-auth /etc/pam.d/password-auth + password requisite pam_pwhistory.so use_authtok remember=5 retry=3 + +If the line containing the "pam_pwhistory.so" line does not have the "remember" module argument set, is commented out, or the value of the "remember" module argument is set to less than "5", this is a finding.SRG-OS-000078-GPOS-00046<GroupDescription></GroupDescription>RHEL-07-010280The Red Hat Enterprise Linux operating system must be configured so that passwords are a minimum of 15 characters in length.<VulnDiscussion>The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised. + +Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to exponentially increase the time and/or resources required to compromise the password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71935SV-86559CCI-000205Configure operating system to enforce a minimum 15-character password length. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +minlen = 15Verify the operating system enforces a minimum 15-character password length. The "minlen" option sets the minimum number of characters in a new password. + +Check for the value of the "minlen" option in "/etc/security/pwquality.conf" with the following command: + +# grep minlen /etc/security/pwquality.conf +minlen = 15 + +If the command does not return a "minlen" value of 15 or greater, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010290The Red Hat Enterprise Linux operating system must not allow accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71937SV-86561CCI-000366If an account is configured for password authentication but does not have an assigned password, it may be possible to log on to the account without authenticating. + +Remove any instances of the "nullok" option in "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" to prevent logons with empty passwords. + +Note: Per requirement RHEL-07-010199, RHEL 7 must be configured to not overwrite custom authentication configuration settings while using the authconfig utility, otherwise manual changes to the listed files will be overwritten whenever the authconfig utility is used.To verify that null passwords cannot be used, run the following command: + + # grep nullok /etc/pam.d/system-auth /etc/pam.d/password-auth + +If this produces any output, it may be possible to log on with accounts with empty passwords. + +If null passwords can be used, this is a finding.SRG-OS-000106-GPOS-00053<GroupDescription></GroupDescription>RHEL-07-010300The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow authentication using an empty password.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86563V-71939CCI-000766To explicitly disallow remote logon from accounts with empty passwords, add or correct the following line in "/etc/ssh/sshd_config": + +PermitEmptyPasswords no + +The SSH service must be restarted for changes to take effect. Any accounts with empty passwords should be disabled immediately, and PAM configuration should prevent users from being able to assign themselves empty passwords.To determine how the SSH daemon's "PermitEmptyPasswords" option is set, run the following command: + +# grep -i PermitEmptyPasswords /etc/ssh/sshd_config +PermitEmptyPasswords no + +If no line, a commented line, or a line indicating the value "no" is returned, the required value is set. + +If the required value is not set, this is a finding.SRG-OS-000118-GPOS-00060<GroupDescription></GroupDescription>RHEL-07-010310The Red Hat Enterprise Linux operating system must disable account identifiers (individuals, groups, roles, and devices) if the password expires.<VulnDiscussion>Inactive identifiers pose a risk to systems and applications because attackers may exploit an inactive identifier and potentially obtain undetected access to the system. Owners of inactive accounts will not notice if unauthorized access to their user account has been obtained. + +Operating systems need to track periods of inactivity and disable application identifiers after 35 days of inactivity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86565V-71941CCI-000795Configure the operating system to disable account identifiers (individuals, groups, roles, and devices) 35 days after the password expires. + +Add the following line to "/etc/default/useradd" (or modify the line to have the required value): + +INACTIVE=35 +DoD recommendation is 35 days, but a lower value is acceptable. The value "-1" will disable this feature, and "0" will disable the account immediately after the password expires.If passwords are not being used for authentication, this is Not Applicable. + +Verify the operating system disables account identifiers (individuals, groups, roles, and devices) after the password expires with the following command: + +# grep -i inactive /etc/default/useradd +INACTIVE=35 + +If "INACTIVE" is set to "-1", a value greater than "35", is commented out, or is not defined, this is a finding.SRG-OS-000329-GPOS-00128<GroupDescription></GroupDescription>RHEL-07-010320The Red Hat Enterprise Linux operating system must be configured to lock accounts for a minimum of 15 minutes after three unsuccessful logon attempts within a 15-minute timeframe.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-forcing, is reduced. Limits are imposed by locking the account. + +Satisfies: SRG-OS-000329-GPOS-00128, SRG-OS-000021-GPOS-00005</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71943SV-86567CCI-000044CCI-002236CCI-002237CCI-002238Configure the operating system to lock an account for the maximum period when three unsuccessful logon attempts in 15 minutes are made. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth sufficient pam_unix.so try_first_pass +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +Note: Per requirement RHEL-07-010199, RHEL 7 must be configured to not overwrite custom authentication configuration settings while using the authconfig utility, otherwise manual changes to the listed files will be overwritten whenever the authconfig utility is used.Check that the system locks an account for a minimum of 15 minutes after three unsuccessful logon attempts within a period of 15 minutes with the following command: + + # grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +If the "deny" parameter is set to "0" or a value greater than "3" on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "even_deny_root" parameter is not set on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "fail_interval" parameter is set to "0" or is set to a value less than "900" on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "unlock_time" parameter is not set to "0", "never", or is set to a value less than "900" on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +Note: The maximum configurable value for "unlock_time" is "604800". + +If any line referencing the "pam_faillock.so" module is commented out, this is a finding. + + # grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +If the "deny" parameter is set to "0" or a value greater than "3" on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "even_deny_root" parameter is not set on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "fail_interval" parameter is set to "0" or is set to a value less than "900" on both "auth" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +If the "unlock_time" parameter is not set to "0", "never", or is set to a value less than "900" on both "auth" lines with the "pam_faillock.so" module or is missing from these lines, this is a finding. + +Note: The maximum configurable value for "unlock_time" is "604800". + +If any line referencing the "pam_faillock.so" module is commented out, this is a finding.SRG-OS-000329-GPOS-00128<GroupDescription></GroupDescription>RHEL-07-010330The Red Hat Enterprise Linux operating system must lock the associated account after three unsuccessful root logon attempts are made within a 15-minute period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute forcing, is reduced. Limits are imposed by locking the account. + +Satisfies: SRG-OS-000329-GPOS-00128, SRG-OS-000021-GPOS-00005</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71945SV-86569CCI-002238Configure the operating system to automatically lock the root account, for a minimum of 15 minutes, when three unsuccessful logon attempts in 15 minutes are made. + +Modify the first three lines of the auth section and the first line of the account section of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth sufficient pam_unix.so try_first_pass +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +Note: Per requirement RHEL-07-010199, RHEL 7 must be configured to not overwrite custom authentication configuration settings while using the authconfig utility, otherwise manual changes to the listed files will be overwritten whenever the authconfig utility is used.Verify the operating system automatically locks the root account, for a minimum of 15 minutes, when three unsuccessful logon attempts in 15 minutes are made. + + # grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +If the "even_deny_root" setting is not defined on both lines with the "pam_faillock.so" module, is commented out, or is missing from a line, this is a finding. + + # grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +account required pam_faillock.so + +If the "even_deny_root" setting is not defined on both lines with the "pam_faillock.so" module, is commented out, or is missing from a line, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-07-010340The Red Hat Enterprise Linux operating system must be configured so that users must provide a password for privilege escalation.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user re-authenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71947SV-86571CCI-002038Configure the operating system to require users to supply a password for privilege escalation. + +Check the configuration of the "/etc/sudoers" file with the following command: +$ sudo visudo + +Remove any occurrences of "NOPASSWD" tags in the file. + +Check the configuration of the /etc/sudoers.d/* files with the following command: +$ sudo grep -ir nopasswd /etc/sudoers.d + +Remove any occurrences of "NOPASSWD" tags in the file.Verify the operating system requires users to supply a password for privilege escalation. + +Check the configuration of the "/etc/sudoers" and "/etc/sudoers.d/*" files with the following command: + +$ sudo grep -ir nopasswd /etc/sudoers /etc/sudoers.d + +If any occurrences of "NOPASSWD" are returned from the command and have not been documented with the Information System Security Officer (ISSO) as an organizationally defined administrative group utilizing MFA, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-07-010350The Red Hat Enterprise Linux operating system must be configured so that users must re-authenticate for privilege escalation.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user reauthenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71949SV-86573CCI-002038Configure the operating system to require users to reauthenticate for privilege escalation. + +Check the configuration of the "/etc/sudoers" file with the following command: + +# visudo +Remove any occurrences of "!authenticate" tags in the file. + +Check the configuration of the "/etc/sudoers.d/*" files with the following command: + +# grep -i authenticate /etc/sudoers /etc/sudoers.d/* +Remove any occurrences of "!authenticate" tags in the file(s).Verify the operating system requires users to reauthenticate for privilege escalation. + +Check the configuration of the "/etc/sudoers" and "/etc/sudoers.d/*" files with the following command: + +# grep -i authenticate /etc/sudoers /etc/sudoers.d/* + +If any uncommented line is found with a "!authenticate" tag, this is a finding.SRG-OS-000480-GPOS-00226<GroupDescription></GroupDescription>RHEL-07-010430The Red Hat Enterprise Linux operating system must be configured so that the delay between logon prompts following a failed console logon attempt is at least four seconds.<VulnDiscussion>Configuring the operating system to implement organization-wide security implementation guides and security checklists verifies compliance with federal standards and establishes a common security baseline across DoD that reflects the most restrictive security posture consistent with operational requirements. + +Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example, registry settings; account, file, and directory permission settings; and settings for functions, ports, protocols, services, and remote connections.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86575V-71951CCI-000366Configure the operating system to enforce a delay of at least four seconds between logon prompts following a failed console logon attempt. + +Modify the "/etc/login.defs" file to set the "FAIL_DELAY" parameter to "4" or greater: + +FAIL_DELAY 4Verify the operating system enforces a delay of at least four seconds between console logon prompts following a failed logon attempt. + +Check the value of the "fail_delay" parameter in the "/etc/login.defs" file with the following command: + +# grep -i fail_delay /etc/login.defs +FAIL_DELAY 4 + +If the value of "FAIL_DELAY" is not set to "4" or greater, or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-07-010440The Red Hat Enterprise Linux operating system must not allow an unattended or automatic logon to the system via a graphical user interface.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71953SV-86577CCI-000366Configure the operating system to not allow an unattended or automatic logon to the system via a graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Add or edit the line for the "AutomaticLoginEnable" parameter in the [daemon] section of the "/etc/gdm/custom.conf" file to "false": + +[daemon] +AutomaticLoginEnable=falseVerify the operating system does not allow an unattended or automatic logon to the system via a graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Check for the value of the "AutomaticLoginEnable" in the "/etc/gdm/custom.conf" file with the following command: + +# grep -i automaticloginenable /etc/gdm/custom.conf +AutomaticLoginEnable=false + +If the value of "AutomaticLoginEnable" is not set to "false", this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-07-010450The Red Hat Enterprise Linux operating system must not allow an unrestricted logon to the system.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71955SV-86579CCI-000366Configure the operating system to not allow an unrestricted account to log on to the system via a graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Add or edit the line for the "TimedLoginEnable" parameter in the [daemon] section of the "/etc/gdm/custom.conf" file to "false": + +[daemon] +TimedLoginEnable=falseVerify the operating system does not allow an unrestricted logon to the system via a graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Check for the value of the "TimedLoginEnable" parameter in "/etc/gdm/custom.conf" file with the following command: + +# grep -i timedloginenable /etc/gdm/custom.conf +TimedLoginEnable=false + +If the value of "TimedLoginEnable" is not set to "false", this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-07-010460The Red Hat Enterprise Linux operating system must not allow users to override SSH environment variables.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86581V-71957CCI-000366Configure the operating system to not allow users to override environment variables to the SSH daemon. + +Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for "PermitUserEnvironment" keyword and set the value to "no": + +PermitUserEnvironment no + +The SSH service must be restarted for changes to take effect.Verify the operating system does not allow users to override environment variables to the SSH daemon. + +Check for the value of the "PermitUserEnvironment" keyword with the following command: + +# grep -i permituserenvironment /etc/ssh/sshd_config +PermitUserEnvironment no + +If the "PermitUserEnvironment" keyword is not set to "no", is missing, or is commented out, this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-07-010470The Red Hat Enterprise Linux operating system must not allow a non-certificate trusted host SSH logon to the system.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86583V-71959CCI-000366Configure the operating system to not allow a non-certificate trusted host SSH logon to the system. + +Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for "HostbasedAuthentication" keyword and set the value to "no": + +HostbasedAuthentication no + +The SSH service must be restarted for changes to take effect.Verify the operating system does not allow a non-certificate trusted host SSH logon to the system. + +Check for the value of the "HostbasedAuthentication" keyword with the following command: + +# grep -i hostbasedauthentication /etc/ssh/sshd_config +HostbasedAuthentication no + +If the "HostbasedAuthentication" keyword is not set to "no", is missing, or is commented out, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-07-010481The Red Hat Enterprise Linux operating system must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid root authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-77823SV-92519CCI-000213Configure the operating system to require authentication upon booting into single-user and maintenance modes. + +Add or modify the "ExecStart" line in "/usr/lib/systemd/system/rescue.service" to include "/usr/sbin/sulogin": + +ExecStart=-/bin/sh -c "/usr/sbin/sulogin; /usr/bin/systemctl --fail --no-block default"Verify the operating system must require authentication upon booting into single-user and maintenance modes. + +Check that the operating system requires authentication upon booting into single-user mode with the following command: + +# grep -i execstart /usr/lib/systemd/system/rescue.service | grep -i sulogin + +ExecStart=-/bin/sh -c "/usr/sbin/sulogin; /usr/bin/systemctl --fail --no-block default" + +If "ExecStart" does not have "/usr/sbin/sulogin" as an option, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-07-010482Red Hat Enterprise Linux operating systems version 7.2 or newer with a Basic Input/Output System (BIOS) must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 7 and is designed to require a password to boot into single-user mode or make modifications to the boot menu.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95717V-81005CCI-000213Configure the system to encrypt the boot password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/grub2/user.cfg file. + +Generate an encrypted grub2 password for the grub superusers account with the following command: + +$ sudo grub2-setpassword +Enter password: +Confirm password:For systems that use UEFI, this is Not Applicable. + +For systems that are running a version of RHEL prior to 7.2, this is Not Applicable. + +Check to see if an encrypted grub superusers password is set. On systems that use a BIOS, use the following command: + +$ sudo grep -iw grub2_password /boot/grub2/user.cfg +GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] + +If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-07-010491Red Hat Enterprise Linux operating systems version 7.2 or newer using Unified Extensible Firmware Interface (UEFI) must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 7 and is designed to require a password to boot into single-user mode or make modifications to the boot menu.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95719V-81007CCI-000213Configure the system to encrypt the boot password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/efi/EFI/redhat/user.cfg file. + +Generate an encrypted grub2 password for the grub superusers account with the following command: + +$ sudo grub2-setpassword +Enter password: +Confirm password:For systems that use BIOS, this is Not Applicable. + +For systems that are running a version of RHEL prior to 7.2, this is Not Applicable. + +Check to see if an encrypted grub superusers password is set. On systems that use UEFI, use the following command: + +$ sudo grep -iw grub2_password /boot/efi/EFI/redhat/user.cfg +GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] + +If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.SRG-OS-000104-GPOS-00051<GroupDescription></GroupDescription>RHEL-07-010500The Red Hat Enterprise Linux operating system must uniquely identify and must authenticate organizational users (or processes acting on behalf of organizational users) using multifactor authentication.<VulnDiscussion>To assure accountability and prevent unauthenticated access, organizational users must be identified and authenticated to prevent potential misuse and compromise of the system. + +Organizational users include organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors). Organizational users (and processes acting on behalf of users) must be uniquely identified and authenticated to all accesses, except for the following: + +1) Accesses explicitly identified and documented by the organization. Organizations document specific user actions that can be performed on the information system without identification or authentication; + +and + +2) Accesses that occur through authorized use of group authenticators without individual authentication. Organizations may require unique identification of individuals in group accounts (e.g., shared privilege accounts) or for detailed accountability of individual activity. + +Satisfies: SRG-OS-000104-GPOS-00051, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000109-GPOS-00056, SRG-OS-000108-GPOS-00055, SRG-OS-000108-GPOS-00057, SRG-OS-000108-GPOS-00058</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71965SV-86589CCI-000766Configure the operating system to require individuals to be authenticated with a multifactor authenticator. + +Enable smartcard logons with the following commands: + +# authconfig --enablesmartcard --smartcardaction=0 --update +# authconfig --enablerequiresmartcard -update + +Modify the "/etc/pam_pkcs11/pkcs11_eventmgr.conf" file to uncomment the following line: + +#/usr/X11R6/bin/xscreensaver-command -lock + +Modify the "/etc/pam_pkcs11/pam_pkcs11.conf" file to use the cackey module if required.Verify the operating system requires multifactor authentication to uniquely identify organizational users using multifactor authentication. + +Check to see if smartcard authentication is enforced on the system: + +# authconfig --test | grep "pam_pkcs11 is enabled" + +If no results are returned, this is a finding. + +# authconfig --test | grep "smartcard removal action" + +If "smartcard removal action" is blank, this is a finding. + +# authconfig --test | grep "smartcard module" + +If any of the above checks are not configured, ask the administrator to indicate the AO-approved multifactor authentication in use and the configuration to support it. If there is no evidence of multifactor authentication, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-07-020000The Red Hat Enterprise Linux operating system must not have the rsh-server package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +The rsh-server service provides an unencrypted remote access service that does not provide for the confidentiality and integrity of user passwords or the remote session and has very weak authentication. + +If a privileged user were to log on using this service, the privileged user password could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71967SV-86591CCI-000381Configure the operating system to disable non-essential capabilities by removing the rsh-server package from the system with the following command: + +# yum remove rsh-serverCheck to see if the rsh-server package is installed with the following command: + +# yum list installed rsh-server + +If the rsh-server package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-07-020010The Red Hat Enterprise Linux operating system must not have the ypserv package installed.<VulnDiscussion>Removing the "ypserv" package decreases the risk of the accidental (or intentional) activation of NIS or NIS+ services.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71969SV-86593CCI-000381Configure the operating system to disable non-essential capabilities by removing the "ypserv" package from the system with the following command: + +# yum remove ypservThe NIS service provides an unencrypted authentication service that does not provide for the confidentiality and integrity of user passwords or the remote session. + +Check to see if the "ypserve" package is installed with the following command: + +# yum list installed ypserv + +If the "ypserv" package is installed, this is a finding.SRG-OS-000324-GPOS-00125<GroupDescription></GroupDescription>RHEL-07-020020The Red Hat Enterprise Linux operating system must prevent non-privileged users from executing privileged functions to include disabling, circumventing, or altering implemented security safeguards/countermeasures.<VulnDiscussion>Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. + +Privileged functions include, for example, establishing accounts, performing system integrity checks, or administering cryptographic key management activities. Non-privileged users are individuals who do not possess appropriate authorizations. Circumventing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86595V-71971CCI-002165CCI-002235Configure the operating system to prevent non-privileged users from executing privileged functions to include disabling, circumventing, or altering implemented security safeguards/countermeasures. + +Use the following command to map a new user to the "staff_u" SELinux user: + +$ sudo semanage login -a -s staff_u <username> + +Use the following command to map an existing user to the "staff_u" SELinux user: + +$ sudo semanage login -m -s staff_u <username> + +Use the following command to map a new user to the "user_u" SELinux user: + +$ sudo semanage login -a -s user_u <username> + +Use the following command to map an existing user to the "user_u" SELinux user: + +$ sudo semanage login -m -s user_u <username>Note: Per OPORD 16-0080, the preferred endpoint security tool is Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Verify the operating system prevents non-privileged users from executing privileged functions to include disabling, circumventing, or altering implemented security safeguards/countermeasures. + +Get a list of authorized users for the system. + +Check the list against the system by using the following command: + +$ sudo semanage login -l | more + +Login Name SELinux User MLS/MCS Range Service +__default__ user_u s0-s0:c0.c1023 * +root unconfined_u s0-s0:c0.c1023 * +system_u system_u s0-s0:c0.c1023 * +joe staff_u s0-s0:c0.c1023 * + +All administrators must be mapped to the , "staff_u", or an appropriately tailored confined SELinux user as defined by the organization. + +All authorized non-administrative users must be mapped to the "user_u" SELinux user. + +If they are not mapped in this way, this is a finding. +If administrator accounts are mapped to the "sysadm_u" SELinux user and are not documented as an operational requirement with the ISSO, this is a finding. +If administrator accounts are mapped to the "sysadm_u" SELinux user and are documented as an operational requirement with the ISSO, this can be downgraded to a CAT III.SRG-OS-000363-GPOS-00150<GroupDescription></GroupDescription>RHEL-07-020030The Red Hat Enterprise Linux operating system must be configured so that a file integrity tool verifies the baseline operating system configuration at least weekly.<VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the operating system. Changes to operating system configurations can have unintended side effects, some of which may be relevant to security. + +Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the operating system. The operating system's Information System Security Manager (ISSM)/Information System Security Officer (ISSO) and System Administrators (SAs) must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86597V-71973CCI-001744Configure the file integrity tool to run automatically on the system at least weekly. The following example output is generic. It will set cron to run AIDE daily, but other file integrity tools may be used: + + # more /etc/cron.daily/aide + #!/bin/bash + + /usr/sbin/aide --check | /var/spool/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.milVerify the operating system routinely checks the baseline configuration for unauthorized changes. + +Note: A file integrity tool other than Advanced Intrusion Detection Environment (AIDE) may be used, but the tool must be executed at least once per week. + +Check for the presence of a cron job running daily or weekly on the system that executes AIDE daily to scan for changes to the system baseline. The command used in the example will use a daily occurrence. + +Check the cron directories for a script file controlling the execution of the file integrity application. For example, if AIDE is installed on the system, use the following command: + + # ls -al /etc/cron.* | grep aide + -rwxr-xr-x 1 root root 602 Mar 6 20:02 aide + + # grep aide /etc/crontab /var/spool/cron/root + /etc/crontab: 30 04 * * * root /usr/sbin/aide --check + /var/spool/cron/root: 30 04 * * * /usr/sbin/aide --check + +If the file integrity application does not exist, or a script file controlling the execution of the file integrity application does not exist, this is a finding.SRG-OS-000363-GPOS-00150<GroupDescription></GroupDescription>RHEL-07-020040The Red Hat Enterprise Linux operating system must be configured so that designated personnel are notified if baseline configurations are changed in an unauthorized manner.<VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the operating system. Changes to operating system configurations can have unintended side effects, some of which may be relevant to security. + +Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the operating system. The operating system's Information System Security Manager (ISSM)/Information System Security Officer (ISSO) and System Administrators (SAs) must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71975SV-86599CCI-001744Configure the operating system to notify designated personnel if baseline configurations are changed in an unauthorized manner. The AIDE tool can be configured to email designated personnel with the use of the cron system. + +The following example output is generic. It will set cron to run AIDE daily and to send email at the completion of the analysis. + + # more /etc/cron.daily/aide + + /usr/sbin/aide --check | /var/spool/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.milVerify the operating system notifies designated personnel if baseline configurations are changed in an unauthorized manner. + +Note: A file integrity tool other than Advanced Intrusion Detection Environment (AIDE) may be used, but the tool must be executed and notify specified individuals via email or an alert. + +Check for the presence of a cron job running routinely on the system that executes AIDE to scan for changes to the system baseline. The commands used in the example will use a daily occurrence. + +Check the cron directories for a "crontab" script file controlling the execution of the file integrity application. For example, if AIDE is installed on the system, use the following command: + + # ls -al /etc/cron.* | grep aide + -rwxr-xr-x 1 root root 602 Mar 6 20:02 aide + + # grep aide /etc/crontab /var/spool/cron/root + /etc/crontab: 30 04 * * * root /usr/sbin/aide --check + /var/spool/cron/root: 30 04 * * * /usr/sbin/aide --check + +AIDE does not have a configuration that will send a notification, so the cron job uses the mail application on the system to email the results of the file integrity run as in the following example: + + # more /etc/cron.daily/aide + #!/bin/bash + + /usr/sbin/aide --check | /var/spool/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.mil + +If the file integrity application does not notify designated personnel of changes, this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>RHEL-07-020050The Red Hat Enterprise Linux operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components from a repository without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. + +Accordingly, patches, service packs, device drivers, or operating system components must be signed with a certificate recognized and approved by the organization. + +Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This verifies the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71977SV-86601CCI-001749Configure the operating system to verify the signature of packages from a repository prior to install by setting the following option in the "/etc/yum.conf" file: + +gpgcheck=1Verify the operating system prevents the installation of patches, service packs, device drivers, or operating system components from a repository without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. + +Check that yum verifies the signature of packages from a repository prior to install with the following command: + +# grep gpgcheck /etc/yum.conf +gpgcheck=1 + +If "gpgcheck" is not set to "1", or if options are missing or commented out, ask the System Administrator how the certificates for patches and other operating system components are verified. + +If there is no process to validate certificates that is approved by the organization, this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>RHEL-07-020060The Red Hat Enterprise Linux operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. + +Accordingly, patches, service packs, device drivers, or operating system components must be signed with a certificate recognized and approved by the organization. + +Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This verifies the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71979SV-86603CCI-001749Configure the operating system to verify the signature of local packages prior to install by setting the following option in the "/etc/yum.conf" file: + +localpkg_gpgcheck=1Verify the operating system prevents the installation of patches, service packs, device drivers, or operating system components of local packages without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. + +Check that yum verifies the signature of local packages prior to install with the following command: + +# grep localpkg_gpgcheck /etc/yum.conf +localpkg_gpgcheck=1 + +If "localpkg_gpgcheck" is not set to "1", or if options are missing or commented out, ask the System Administrator how the signatures of local packages and other operating system components are verified. + +If there is no process to validate the signatures of local packages that is approved by the organization, this is a finding.SRG-OS-000114-GPOS-00059<GroupDescription></GroupDescription>RHEL-07-020100The Red Hat Enterprise Linux operating system must be configured to disable USB mass storage.<VulnDiscussion>USB mass storage permits easy introduction of unknown devices, thereby facilitating malicious activity. + +Satisfies: SRG-OS-000114-GPOS-00059, SRG-OS-000378-GPOS-00163, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86607V-71983CCI-000366CCI-000778CCI-001958Configure the operating system to disable the ability to use the USB Storage kernel module. + +Create a file under "/etc/modprobe.d" with the following command: + +# touch /etc/modprobe.d/usb-storage.conf + +Add the following line to the created file: + +install usb-storage /bin/true + +Configure the operating system to disable the ability to use USB mass storage devices. + +# vi /etc/modprobe.d/blacklist.conf + +Add or update the line: + +blacklist usb-storageVerify the operating system disables the ability to load the USB Storage kernel module. + +# grep -r usb-storage /etc/modprobe.d/* | grep -i "/bin/true" | grep -v "^#" + +install usb-storage /bin/true + +If the command does not return any output, or the line is commented out, and use of USB Storage is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use USB mass storage devices. + +Check to see if USB mass storage is disabled with the following command: + +# grep usb-storage /etc/modprobe.d/* | grep -i "blacklist" | grep -v "^#" +blacklist usb-storage + +If the command does not return any output or the output is not "blacklist usb-storage", and use of USB storage devices is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000378-GPOS-00163<GroupDescription></GroupDescription>RHEL-07-020101The Red Hat Enterprise Linux operating system must be configured so that the Datagram Congestion Control Protocol (DCCP) kernel module is disabled unless required.<VulnDiscussion>Disabling DCCP protects the system against exploitation of any flaws in the protocol implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-77821SV-92517CCI-001958Configure the operating system to disable the ability to use the DCCP kernel module. + +Create a file under "/etc/modprobe.d" with the following command: + +# touch /etc/modprobe.d/dccp.conf + +Add the following line to the created file: + +install dccp /bin/true + +Ensure that the DCCP module is blacklisted: + +# vi /etc/modprobe.d/blacklist.conf + +Add or update the line: + +blacklist dccpVerify the operating system disables the ability to load the DCCP kernel module. + +# grep -r dccp /etc/modprobe.d/* | grep -i "/bin/true" | grep -v "^#" + +install dccp /bin/true + +If the command does not return any output, or the line is commented out, and use of DCCP is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the DCCP kernel module. + +Check to see if the DCCP kernel module is disabled with the following command: + +# grep -i dccp /etc/modprobe.d/* | grep -i "blacklist" | grep -v "^#" + +blacklist dccp + +If the command does not return any output or the output is not "blacklist dccp", and use of the dccp kernel module is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000114-GPOS-00059<GroupDescription></GroupDescription>RHEL-07-020110The Red Hat Enterprise Linux operating system must disable the file system automounter unless required.<VulnDiscussion>Automatically mounting file systems permits easy introduction of unknown devices, thereby facilitating malicious activity. + +Satisfies: SRG-OS-000114-GPOS-00059, SRG-OS-000378-GPOS-00163, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71985SV-86609CCI-000366CCI-000778CCI-001958Configure the operating system to disable the ability to automount devices. + +Turn off the automount service with the following commands: + +# systemctl stop autofs +# systemctl disable autofs + +If "autofs" is required for Network File System (NFS), it must be documented with the ISSO.Verify the operating system disables the ability to automount devices. + +Check to see if automounter service is active with the following command: + +# systemctl status autofs +autofs.service - Automounts filesystems on demand + Loaded: loaded (/usr/lib/systemd/system/autofs.service; disabled) + Active: inactive (dead) + +If the "autofs" status is set to "active" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000437-GPOS-00194<GroupDescription></GroupDescription>RHEL-07-020200The Red Hat Enterprise Linux operating system must remove all software components after updated versions have been installed.<VulnDiscussion>Previous versions of software components that are not removed from the information system after updates have been installed may be exploited by adversaries. Some information technology products may remove older versions of software automatically from the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71987SV-86611CCI-002617Configure the operating system to remove all software components after updated versions have been installed. + +Set the "clean_requirements_on_remove" option to "1" in the "/etc/yum.conf" file: + +clean_requirements_on_remove=1Verify the operating system removes all software components after updated versions have been installed. + +Check if yum is configured to remove unneeded packages with the following command: + +# grep -i clean_requirements_on_remove /etc/yum.conf +clean_requirements_on_remove=1 + +If "clean_requirements_on_remove" is not set to "1", "True", or "yes", or is not set in "/etc/yum.conf", this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>RHEL-07-020210The Red Hat Enterprise Linux operating system must enable SELinux.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to operating systems performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71989SV-86613CCI-002165CCI-002696Configure the operating system to verify correct operation of all security functions. + +Set the "SELinux" status and the "Enforcing" mode by modifying the "/etc/selinux/config" file to have the following line: + +SELINUX=enforcing + +A reboot is required for the changes to take effect.Per OPORD 16-0080, the preferred endpoint security tool is Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Verify the operating system verifies correct operation of all security functions. + +Check if "SELinux" is active and in "Enforcing" mode with the following command: + +# getenforce +Enforcing + +If "SELinux" is not active and not in "Enforcing" mode, this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>RHEL-07-020220The Red Hat Enterprise Linux operating system must enable the SELinux targeted policy.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to operating systems performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-71991SV-86615CCI-002165CCI-002696Configure the operating system to verify correct operation of all security functions. + +Set the "SELinuxtype" to the "targeted" policy by modifying the "/etc/selinux/config" file to have the following line: + +SELINUXTYPE=targeted + +A reboot is required for the changes to take effect.Per OPORD 16-0080, the preferred endpoint security tool is Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Verify the operating system verifies correct operation of all security functions. + +Check if "SELinux" is active and is enforcing the targeted policy with the following command: + +# sestatus + +SELinux status: enabled + +SELinuxfs mount: /selinux + +SELinux root directory: /etc/selinux + +Loaded policy name: targeted + +Current mode: enforcing + +Mode from config file: enforcing + +Policy MLS status: enabled + +Policy deny_unknown status: allowed + +Max kernel policy version: 28 + +If the "Loaded policy name" is not set to "targeted", this is a finding. + +Verify that the /etc/selinux/config file is configured to the "SELINUXTYPE" to "targeted": + +# grep -i "selinuxtype" /etc/selinux/config | grep -v '^#' + +SELINUXTYPE = targeted + +If no results are returned or "SELINUXTYPE" is not set to "targeted", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020230The Red Hat Enterprise Linux operating system must be configured so that the x86 Ctrl-Alt-Delete key sequence is disabled on the command line.<VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In the GNOME graphical environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86617V-71993CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence for the command line with the following commands: + +$ sudo systemctl disable ctrl-alt-del.target + +$ sudo systemctl mask ctrl-alt-del.targetVerify the operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed. + +Check that the ctrl-alt-del.target is masked and not active with the following command: + +$ sudo systemctl status ctrl-alt-del.target + +ctrl-alt-del.target +Loaded: masked (/dev/null; bad) +Active: inactive (dead) + +If the ctrl-alt-del.target is not masked, this is a finding. + +If the ctrl-alt-del.target is active, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020231The Red Hat Enterprise Linux operating system must be configured so that the x86 Ctrl-Alt-Delete key sequence is disabled in the Graphical User Interface.<VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In the graphical environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-94843SV-104673CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence for the graphical user interface with the following command: + +# touch /etc/dconf/db/local.d/00-disable-CAD + +Add the setting to disable the Ctrl-Alt-Delete sequence for the graphical user interface: + +[org/gnome/settings-daemon/plugins/media-keys] +logout=''Note: If the operating system does not have a graphical user interface installed, this requirement is Not Applicable. + +Verify the operating system is not configured to reboot the system when Ctrl-Alt-Delete is pressed. + +Check that the ctrl-alt-del.target is masked and not active in the graphical user interface with the following command: + +# grep logout /etc/dconf/db/local.d/* + +logout='' + +If "logout" is not set to use two single quotations, or is missing, this is a finding.SRG-OS-000480-GPOS-00228<GroupDescription></GroupDescription>RHEL-07-020240The Red Hat Enterprise Linux operating system must define default permissions for all authenticated users in such a way that the user can only read and modify their own files.<VulnDiscussion>Setting the most restrictive default permissions ensures that when new accounts are created, they do not have unnecessary access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86619V-71995CCI-000366Configure the operating system to define default permissions for all authenticated users in such a way that the user can only read and modify their own files. + +Add or edit the line for the "UMASK" parameter in "/etc/login.defs" file to "077": + +UMASK 077Verify the operating system defines default permissions for all authenticated users in such a way that the user can only read and modify their own files. + +Check for the value of the "UMASK" parameter in "/etc/login.defs" file with the following command: + +Note: If the value of the "UMASK" parameter is set to "000" in "/etc/login.defs" file, the Severity is raised to a CAT I. + +# grep -i umask /etc/login.defs +UMASK 077 + +If the value for the "UMASK" parameter is not "077", or the "UMASK" parameter is missing or is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020250The Red Hat Enterprise Linux operating system must be a vendor supported release.<VulnDiscussion>An operating system release is considered "supported" if the vendor continues to provide security patches for the product. With an unsupported release, it will not be possible to resolve security issues discovered in the system software. + +Red Hat offers the Extended Update Support (EUS) Add-On to a Red Hat Enterprise Linux subscription, for a fee, for those customers who wish to standardize on a specific minor release for an extended period. RHEL 7.7 marks the final minor release that EUS will be available, while 7.9 is the final minor release overall.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86621V-71997CCI-000366Upgrade to a supported version of the operating system.Verify the version of the operating system is vendor supported. + +Check the version of the operating system with the following command: + +# cat /etc/redhat-release + +Red Hat Enterprise Linux Server release 7.9 (Maipo) + +Current End of Extended Update Support for RHEL 7.6 is 31 May 2021. + +Current End of Extended Update Support for RHEL 7.7 is 30 August 2021. + +Current End of Maintenance Support for RHEL 7.9 is 30 June 2024. + +If the release is not supported by the vendor, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020260The Red Hat Enterprise Linux operating system security patches and updates must be installed and up to date.<VulnDiscussion>Timely patching is critical for maintaining the operational availability, confidentiality, and integrity of information technology (IT) systems. However, failure to keep operating system and application software patched is a common mistake made by IT professionals. New patches are released daily, and it is often difficult for even experienced System Administrators to keep abreast of all the new patches. When new weaknesses in an operating system exist, patches are usually made available by the vendor to resolve the problems. If the most recent security patches and updates are not installed, unauthorized users may take advantage of weaknesses in the unpatched software. The lack of prompt attention to patching could result in a system compromise.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86623V-71999CCI-000366Install the operating system patches or updated packages available from Red Hat within 30 days or sooner as local policy dictates.Verify the operating system security patches and updates are installed and up to date. Updates are required to be applied with a frequency determined by the site or Program Management Office (PMO). + +Obtain the list of available package security updates from Red Hat. The URL for updates is https://rhn.redhat.com/errata/. It is important to note that updates provided by Red Hat may not be present on the system if the underlying packages are not installed. + +Check that the available package security updates have been installed on the system with the following command: + +# yum history list | more +Loaded plugins: langpacks, product-id, subscription-manager +ID | Command line | Date and time | Action(s) | Altered +------------------------------------------------------------------------------- + 70 | install aide | 2016-05-05 10:58 | Install | 1 + 69 | update -y | 2016-05-04 14:34 | Update | 18 EE + 68 | install vlc | 2016-04-21 17:12 | Install | 21 + 67 | update -y | 2016-04-21 17:04 | Update | 7 EE + 66 | update -y | 2016-04-15 16:47 | E, I, U | 84 EE + +If package updates have not been performed on the system within the timeframe that the site/program documentation requires, this is a finding. + +Typical update frequency may be overridden by Information Assurance Vulnerability Alert (IAVA) notifications from CYBERCOM. + +If the operating system is in non-compliance with the Information Assurance Vulnerability Management (IAVM) process, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020270The Red Hat Enterprise Linux operating system must not have unnecessary accounts.<VulnDiscussion>Accounts providing no operational purpose provide additional opportunities for system compromise. Unnecessary accounts include user accounts for individuals not requiring access to the system and application accounts for applications not installed on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86625V-72001CCI-000366Configure the system so all accounts on the system are assigned to an active system, application, or user account. + +Remove accounts that do not support approved system activities or that allow for a normal user to perform administrative-level actions. + +Document all authorized accounts on the system.Verify all accounts on the system are assigned to an active system, application, or user account. + +Obtain the list of authorized system accounts from the Information System Security Officer (ISSO). + +Check the system accounts on the system with the following command: + +# more /etc/passwd +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/sbin/nologin +daemon:x:2:2:daemon:/sbin:/sbin/nologin +sync:x:5:0:sync:/sbin:/bin/sync +shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown +halt:x:7:0:halt:/sbin:/sbin/halt +games:x:12:100:games:/usr/games:/sbin/nologin +gopher:x:13:30:gopher:/var/gopher:/sbin/nologin + +Accounts such as "games" and "gopher" are not authorized accounts as they do not support authorized system functions. + +If the accounts on the system do not match the provided documentation, or accounts that do not support an authorized system function are present, this is a finding.SRG-OS-000104-GPOS-00051<GroupDescription></GroupDescription>RHEL-07-020300The Red Hat Enterprise Linux operating system must be configured so that all Group Identifiers (GIDs) referenced in the /etc/passwd file are defined in the /etc/group file.<VulnDiscussion>If a user is assigned the GID of a group not existing on the system, and a group with the GID is subsequently created, the user may have unintended rights to any files associated with the group.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72003SV-86627CCI-000764Configure the system to define all GIDs found in the "/etc/passwd" file by modifying the "/etc/group" file to add any non-existent group referenced in the "/etc/passwd" file, or change the GIDs referenced in the "/etc/passwd" file to a group that exists in "/etc/group".Verify all GIDs referenced in the "/etc/passwd" file are defined in the "/etc/group" file. + +Check that all referenced GIDs exist with the following command: + +# pwck -r + +If GIDs referenced in "/etc/passwd" file are returned as not defined in "/etc/group" file, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020310The Red Hat Enterprise Linux operating system must be configured so that the root account must be the only account having unrestricted access to the system.<VulnDiscussion>If an account other than root also has a User Identifier (UID) of "0", it has root authority, giving that account unrestricted access to the entire operating system. Multiple accounts with a UID of "0" afford an opportunity for potential intruders to guess a password for a privileged account.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86629V-72005CCI-000366Change the UID of any account on the system, other than root, that has a UID of "0". + +If the account is associated with system commands or applications, the UID should be changed to one greater than "0" but less than "1000". Otherwise, assign a UID of greater than "1000" that has not already been assigned.Check the system for duplicate UID "0" assignments with the following command: + +# awk -F: '$3 == 0 {print $1}' /etc/passwd + +If any accounts other than root have a UID of "0", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020320The Red Hat Enterprise Linux operating system must be configured so that all files and directories have a valid owner.<VulnDiscussion>Unowned files and directories may be unintentionally inherited if a user is assigned the same User Identifier "UID" as the UID of the un-owned files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86631V-72007CCI-002165Either remove all files and directories from the system that do not have a valid user, or assign a valid user to all unowned files and directories on the system with the "chown" command: + +# chown <user> <file>Verify all files and directories on the system have a valid owner. + +Check the owner of all files and directories with the following command: + +Note: The value after -fstype must be replaced with the filesystem type. XFS is used as an example. + +# find / -fstype xfs -nouser + +If any files on the system do not have an assigned owner, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020330The Red Hat Enterprise Linux operating system must be configured so that all files and directories have a valid group owner.<VulnDiscussion>Files without a valid group owner may be unintentionally inherited if a group is assigned the same Group Identifier (GID) as the GID of the files without a valid group owner.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72009SV-86633CCI-002165Either remove all files and directories from the system that do not have a valid group, or assign a valid group to all files and directories on the system with the "chgrp" command: + +# chgrp <group> <file>Verify all files and directories on the system have a valid group. + +Check the owner of all files and directories with the following command: + +Note: The value after -fstype must be replaced with the filesystem type. XFS is used as an example. + +# find / -fstype xfs -nogroup + +If any files on the system do not have an assigned group, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020610The Red Hat Enterprise Linux operating system must be configured so that all local interactive user accounts, upon creation, are assigned a home directory.<VulnDiscussion>If local interactive users are not assigned a valid home directory, there is no place for the storage and control of files they should own.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72013SV-86637CCI-000366Configure the operating system to assign home directories to all new local interactive users by setting the "CREATE_HOME" parameter in "/etc/login.defs" to "yes" as follows. + +CREATE_HOME yesVerify all local interactive users on the system are assigned a home directory upon creation. + +Check to see if the system is configured to create home directories for local interactive users with the following command: + +# grep -i create_home /etc/login.defs +CREATE_HOME yes + +If the value for "CREATE_HOME" parameter is not set to "yes", the line is missing, or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020620The Red Hat Enterprise Linux operating system must be configured so that all local interactive users have a home directory assigned and defined in the /etc/passwd file.<VulnDiscussion>If local interactive users are not assigned a valid home directory, there is no place for the storage and control of files they should own. + +In addition, if a local interactive user has a home directory defined that does not exist, the user may be given access to the / directory as the current working directory upon logon. This could create a Denial of Service because the user would not be able to access their logon configuration files, and it may give them visibility to system files they normally would not be able to access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72015SV-86639CCI-000366Create home directories to all local interactive users that currently do not have a home directory assigned. Use the following commands to create the user home directory assigned in "/etc/ passwd": + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj", a UID of "smithj", and a Group Identifier (GID) of "users" assigned in "/etc/passwd". + +# mkdir /home/smithj +# chown smithj /home/smithj +# chgrp users /home/smithj +# chmod 0750 /home/smithjVerify local interactive users on the system have a home directory assigned and the directory exists. + +Check the home directory assignment for all local interactive non-privileged users on the system with the following command: + +# awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd + +smithj 1001 /home/smithj + +Note: This may miss interactive users that have been assigned a privileged UID. Evidence of interactive use may be obtained from a number of log files containing system logon information. + +Check that all referenced home directories exist with the following command: + +# pwck -r +user 'smithj': directory '/home/smithj' does not exist + +If any home directories referenced in "/etc/passwd" are returned as not defined, or if any interactive users do not have a home directory assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020630The Red Hat Enterprise Linux operating system must be configured so that all local interactive user home directories have mode 0750 or less permissive.<VulnDiscussion>Excessive permissions on local interactive user home directories may allow unauthorized access to user files by other users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86641V-72017CCI-000366Change the mode of interactive user's home directories to "0750". To change the mode of a local interactive user's home directory, use the following command: + +Note: The example will be for the user "smithj". + +# chmod 0750 /home/smithjVerify the assigned home directory of all local interactive users has a mode of "0750" or less permissive. + +Check the home directory assignment for all non-privileged users on the system with the following command: + +Note: This may miss interactive users that have been assigned a privileged User Identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. + +# ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) +-rwxr-x--- 1 smithj users 18 Mar 5 17:06 /home/smithj + +If home directories referenced in "/etc/passwd" do not have a mode of "0750" or less permissive, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020640The Red Hat Enterprise Linux operating system must be configured so that all local interactive user home directories are owned by their respective users.<VulnDiscussion>If a local interactive user does not own their home directory, unauthorized users could access or modify the user's files, and the users may not be able to access their own files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86643V-72019CCI-000366Change the owner of a local interactive user's home directories to that owner. To change the owner of a local interactive user's home directory, use the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj". + +# chown smithj /home/smithjVerify the assigned home directory of all local interactive users on the system exists. + +Check the home directory assignment for all local interactive users on the system with the following command: + +# ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) + +-rwxr-x--- 1 smithj users 18 Mar 5 17:06 /home/smithj + +If any home directories referenced in "/etc/passwd" are not owned by the interactive user, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020650The Red Hat Enterprise Linux operating system must be configured so that all local interactive user home directories are group-owned by the home directory owners primary group.<VulnDiscussion>If the Group Identifier (GID) of a local interactive user's home directory is not the same as the primary GID of the user, this would allow unauthorized access to the user's files, and users that share the same group may not be able to access files that they legitimately should.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86645V-72021CCI-000366Change the group owner of a local interactive user's home directory to the group found in "/etc/passwd". To change the group owner of a local interactive user's home directory, use the following command: + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj", and has a primary group of users. + + # chgrp users /home/smithjVerify the assigned home directory of all local interactive users is group-owned by that user's primary GID. + +Check the home directory assignment for all local interactive users on the system with the following command: + + # ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) + -rwxr-x--- 1 smithj users 13 Apr 1 04:20 /home/smithj + +Check the user's primary group with the following command: + + # grep $(grep smithj /etc/passwd | awk -F: '{print $4}') /etc/group + users:x:250:smithj,marinc,chongt + +If the user home directory referenced in "/etc/passwd" is not group-owned by that user's primary GID, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020660The Red Hat Enterprise Linux operating system must be configured so that all files and directories contained in local interactive user home directories have a valid owner.<VulnDiscussion>Unowned files and directories may be unintentionally inherited if a user is assigned the same User Identifier "UID" as the UID of the un-owned files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86647V-72023CCI-000366Either remove all files and directories from the system that do not have a valid user, or assign a valid user to all unowned files and directories on RHEL 7 with the "chown" command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj". + +$ sudo chown smithj /home/smithj/<file or directory>Verify all files and directories in a local interactive user's home directory have a valid owner. + +Check the owner of all files and directories in a local interactive user's home directory with the following command: + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". + +$ sudo ls -lLR /home/smithj +-rw-r--r-- 1 smithj smithj 18 Mar 5 17:06 file1 +-rw-r--r-- 1 smithj smithj 193 Mar 5 17:06 file2 +-rw-r--r-- 1 smithj smithj 231 Mar 5 17:06 file3 + +If any files or directories are found without an owner, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020670The Red Hat Enterprise Linux operating system must be configured so that all files and directories contained in local interactive user home directories are group-owned by a group of which the home directory owner is a member.<VulnDiscussion>If a local interactive user's files are group-owned by a group of which the user is not a member, unintended users may be able to access them.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72025SV-86649CCI-000366Change the group of a local interactive user's files and directories to a group that the interactive user is a member of. To change the group owner of a local interactive user's files and directories, use the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. + +# chgrp users /home/smithj/<file>Verify all files and directories in a local interactive user home directory are group-owned by a group the user is a member of. + +Check the group owner of all files and directories in a local interactive user's home directory with the following command: + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". + +# ls -lLR /<home directory>/<users home directory>/ +-rw-r--r-- 1 smithj smithj 18 Mar 5 17:06 file1 +-rw-r--r-- 1 smithj smithj 193 Mar 5 17:06 file2 +-rw-r--r-- 1 smithj sa 231 Mar 5 17:06 file3 + +If any files are found with an owner different than the group home directory user, check to see if the user is a member of that group with the following command: + +# grep smithj /etc/group +sa:x:100:juan,shelley,bob,smithj +smithj:x:521:smithj + +If the user is not a member of a group that group owns file(s) in a local interactive user's home directory, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020680The Red Hat Enterprise Linux operating system must be configured so that all files and directories contained in local interactive user home directories have a mode of 0750 or less permissive.<VulnDiscussion>If a local interactive user files have excessive permissions, unintended users may be able to access or modify them.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72027SV-86651CCI-000366Set the mode on files and directories in the local interactive user home directory with the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. + +# chmod 0750 /home/smithj/<file>Verify all files and directories contained in a local interactive user home directory, excluding local initialization files, have a mode of "0750". + +Check the mode of all non-initialization files in a local interactive user home directory with the following command: + +Files that begin with a "." are excluded from this requirement. + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". + +# ls -lLR /home/smithj +-rwxr-x--- 1 smithj smithj 18 Mar 5 17:06 file1 +-rwxr----- 1 smithj smithj 193 Mar 5 17:06 file2 +-rw-r-x--- 1 smithj smithj 231 Mar 5 17:06 file3 + +If any files are found with a mode more permissive than "0750", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020690The Red Hat Enterprise Linux operating system must be configured so that all local initialization files for interactive users are owned by the home directory user or root.<VulnDiscussion>Local initialization files are used to configure the user's shell environment upon logon. Malicious modification of these files could compromise accounts upon logon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72029SV-86653CCI-000366Set the owner of the local initialization files for interactive users to either the directory owner or root with the following command: + +Note: The example will be for the smithj user, who has a home directory of "/home/smithj". + +# chown smithj /home/smithj/.[^.]*Verify the local initialization files of all local interactive users are owned by that user. + +Check the home directory assignment for all non-privileged users on the system with the following command: + +Note: The example will be for the smithj user, who has a home directory of "/home/smithj". + +# awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd +smithj 1000 /home/smithj + +Note: This may miss interactive users that have been assigned a privileged User Identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. + +Check the owner of all local interactive user's initialization files with the following command: + +# ls -al /home/smithj/.[^.]* | more + +-rwxr-xr-x 1 smithj users 896 Mar 10 2011 .profile +-rwxr-xr-x 1 smithj users 497 Jan 6 2007 .login +-rwxr-xr-x 1 smithj users 886 Jan 6 2007 .something + +If all local interactive user's initialization files are not owned by that user or root, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020700The Red Hat Enterprise Linux operating system must be configured so that all local initialization files for local interactive users are be group-owned by the users primary group or root.<VulnDiscussion>Local initialization files for interactive users are used to configure the user's shell environment upon logon. Malicious modification of these files could compromise accounts upon logon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72031SV-86655CCI-000366Change the group owner of a local interactive user's files to the group found in "/etc/passwd" for the user. To change the group owner of a local interactive user's home directory, use the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj", and has a primary group of users. + +# chgrp users /home/smithj/.[^.]*Verify the local initialization files of all local interactive users are group-owned by that user's primary Group Identifier (GID). + +Check the home directory assignment for all non-privileged users on the system with the following command: + +Note: The example will be for the smithj user, who has a home directory of "/home/smithj" and a primary group of "users". + +# awk -F: '($4>=1000)&&($7 !~ /nologin/){print $1, $4, $6}' /etc/passwd +smithj 1000 /home/smithj + +# grep 1000 /etc/group +users:x:1000:smithj,jonesj,jacksons + +Note: This may miss interactive users that have been assigned a privileged User Identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. + +Check the group owner of all local interactive user's initialization files with the following command: + +# ls -al /home/smithj/.[^.]* | more + +-rwxr-xr-x 1 smithj users 896 Mar 10 2011 .profile +-rwxr-xr-x 1 smithj users 497 Jan 6 2007 .login +-rwxr-xr-x 1 smithj users 886 Jan 6 2007 .something + +If all local interactive user's initialization files are not group-owned by that user's primary GID, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020710The Red Hat Enterprise Linux operating system must be configured so that all local initialization files have mode 0740 or less permissive.<VulnDiscussion>Local initialization files are used to configure the user's shell environment upon logon. Malicious modification of these files could compromise accounts upon logon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86657V-72033CCI-000366Set the mode of the local initialization files to "0740" with the following command: + +Note: The example will be for the "smithj" user, who has a home directory of "/home/smithj". + +# chmod 0740 /home/smithj/.[^.]*Verify that all local initialization files have a mode of "0740" or less permissive. + +Check the mode on all local initialization files with the following command: + +Note: The example will be for the "smithj" user, who has a home directory of "/home/smithj". + +# ls -al /home/smithj/.[^.]* | more + +-rwxr----- 1 smithj users 896 Mar 10 2011 .profile +-rwxr----- 1 smithj users 497 Jan 6 2007 .login +-rwxr----- 1 smithj users 886 Jan 6 2007 .something + +If any local initialization files have a mode more permissive than "0740", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020720The Red Hat Enterprise Linux operating system must be configured so that all local interactive user initialization files executable search paths contain only paths that resolve to the users home directory.<VulnDiscussion>The executable search path (typically the PATH environment variable) contains a list of directories for the shell to search to find executables. If this path includes the current working directory (other than the user's home directory), executables in these directories may be executed instead of system commands. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon or two consecutive colons, this is interpreted as the current working directory. If deviations from the default system search path for the local interactive user are required, they must be documented with the Information System Security Officer (ISSO).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72035SV-86659CCI-000366Edit the local interactive user initialization files to change any PATH variable statements that reference directories other than their home directory. + +If a local interactive user requires path variables to reference a directory owned by the application, it must be documented with the ISSO.Verify that all local interactive user initialization files' executable search path statements do not contain statements that will reference a working directory other than the user's home directory. + +Check the executable search path statement for all local interactive user initialization files in the user's home directory with the following commands: + +Note: The example will be for the smithj user, which has a home directory of "/home/smithj". + +# grep -i path= /home/smithj/.* +/home/smithj/.bash_profile:PATH=$PATH:$HOME/.local/bin:$HOME/bin + +If any local interactive user initialization files have executable search path statements that include directories outside of their home directory, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020730The Red Hat Enterprise Linux operating system must be configured so that local initialization files do not execute world-writable programs.<VulnDiscussion>If user start-up files execute world-writable programs, especially in unprotected directories, they could be maliciously modified to destroy user files or otherwise compromise the system at the user level. If the system is compromised at the user level, it is easier to elevate privileges to eventually compromise the system at the root and network level.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86661V-72037CCI-000366Set the mode on files being executed by the local initialization files with the following command: + +# chmod 0755 <file>Verify that local initialization files do not execute world-writable programs. + +Check the system for world-writable files with the following command: + +# find / -xdev -perm -002 -type f -exec ls -ld {} \; | more + +For all files listed, check for their presence in the local initialization files with the following commands: + +Note: The example will be for a system that is configured to create users' home directories in the "/home" directory. + +# grep <file> /home/*/.* + +If any local initialization files are found to reference world-writable files, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020900The Red Hat Enterprise Linux operating system must be configured so that all system device files are correctly labeled to prevent unauthorized modification.<VulnDiscussion>If an unauthorized or modified device is allowed to exist on the system, there is the possibility the system may perform unintended or unauthorized operations.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86663V-72039CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Run the following command to determine which package owns the device file: + +# rpm -qf <filename> + +The package can be reinstalled from a yum repository using the command: + +# sudo yum reinstall <packagename> + +Alternatively, the package can be reinstalled from trusted media using the command: + +# sudo rpm -Uvh <packagename>Verify that all system device files are correctly labeled to prevent unauthorized modification. + +List all device files on the system that are incorrectly labeled with the following commands: + +Note: Device files are normally found under "/dev", but applications may place device files in other directories and may necessitate a search of the entire system. + +#find /dev -context *:device_t:* \( -type c -o -type b \) -printf "%p %Z\n" + +#find /dev -context *:unlabeled_t:* \( -type c -o -type b \) -printf "%p %Z\n" + +Note: There are device files, such as "/dev/vmci", that are used when the operating system is a host virtual machine. They will not be owned by a user on the system and require the "device_t" label to operate. These device files are not a finding. + +If there is output from either of these commands, other than already noted, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021000The Red Hat Enterprise Linux operating system must be configured so that file systems containing user home directories are mounted to prevent files with the setuid and setgid bit set from being executed.<VulnDiscussion>The "nosuid" mount option causes the system to not execute setuid and setgid files with owner privileges. This option must be used for mounting any file system not containing approved setuid and setguid files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86665V-72041CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that contain user home directories.Verify file systems that contain user home directories are mounted with the "nosuid" option. + +Find the file system(s) that contain the user home directories with the following command: + +Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is not a finding as the "nosuid" option cannot be used on the "/" system. + +# awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd +smithj 1001 /home/smithj +thomasr 1002 /home/thomasr + +Check the file systems that are mounted at boot time with the following command: + +# more /etc/fstab + +UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /home ext4 rw,relatime,discard,data=ordered,nosuid 0 2 + +If a file system found in "/etc/fstab" refers to the user home directory file system and it does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021010The Red Hat Enterprise Linux operating system must prevent files with the setuid and setgid bit set from being executed on file systems that are used with removable media.<VulnDiscussion>The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86667V-72043CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that are associated with removable media.Verify file systems that are used for removable media are mounted with the "nosuid" option. + +Check the file systems that are mounted at boot time with the following command: + +# more /etc/fstab + +UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid 0 0 + +If a file system found in "/etc/fstab" refers to removable media and it does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021020The Red Hat Enterprise Linux operating system must prevent files with the setuid and setgid bit set from being executed on file systems that are being imported via Network File System (NFS).<VulnDiscussion>The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86669V-72045CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that are being imported via NFS.Verify file systems that are being NFS imported are configured with the "nosuid" option. + +Find the file system(s) that contain the directories being exported with the following command: + +# more /etc/fstab | grep nfs + +UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid 0 0 + +If a file system found in "/etc/fstab" refers to NFS and it does not have the "nosuid" option set, this is a finding. + +Verify the NFS is mounted with the "nosuid" option: + +# mount | grep nfs | grep nosuid +If no results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021021The Red Hat Enterprise Linux operating system must prevent binary files from being executed on file systems that are being imported via Network File System (NFS).<VulnDiscussion>The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87813V-73161CCI-000366Configure the "/etc/fstab" to use the "noexec" option on file systems that are being imported via NFS.Verify file systems that are being NFS imported are configured with the "noexec" option. + +Find the file system(s) that contain the directories being imported with the following command: + +# more /etc/fstab | grep nfs + +UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,noexec 0 0 + +If a file system found in "/etc/fstab" refers to NFS and it does not have the "noexec" option set, and use of NFS imported binaries is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the NFS is mounted with the "noexec"option: + +# mount | grep nfs | grep noexec +If no results are returned and use of NFS imported binaries is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-07-021024The Red Hat Enterprise Linux operating system must mount /dev/shm with secure options.<VulnDiscussion>The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95725V-81013CCI-001764Configure the system so that /dev/shm is mounted with the "nodev", "nosuid", and "noexec" options by adding /modifying the /etc/fstab with the following line: + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0Verify that the "nodev","nosuid", and "noexec" options are configured for /dev/shm: + +# cat /etc/fstab | grep /dev/shm + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev", "nosuid", or "noexec" options are missing, this is a finding. + +Verify "/dev/shm" is mounted with the "nodev", "nosuid", and "noexec" options: + +# mount | grep /dev/shm + +tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) + +If /dev/shm is mounted without secure options "nodev", "nosuid", and "noexec", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021030The Red Hat Enterprise Linux operating system must be configured so that all world-writable directories are group-owned by root, sys, bin, or an application group.<VulnDiscussion>If a world-writable directory is not group-owned by root, sys, bin, or an application Group Identifier (GID), unauthorized users may be able to modify files created by others. + +The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage, (e.g., /tmp), and for directories requiring global read/write access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72047SV-86671CCI-000366All directories in local partitions which are world-writable should be group-owned by root or another system account. If any world-writable directories are not group-owned by a system account, this should be investigated. Following this, the directories should be deleted or assigned to an appropriate group.The following command will discover and print world-writable directories that are not group-owned by a system account, assuming only system accounts have a GID lower than 1000. Run it once for each local partition [PART]: + +# find [PART] -xdev -type d -perm -0002 -gid +999 -print + +If there is output, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021040The Red Hat Enterprise Linux operating system must set the umask value to 077 for all local interactive user accounts.<VulnDiscussion>The umask controls the default access mode assigned to newly created files. A umask of 077 limits new files to mode 700 or less permissive. Although umask can be represented as a four-digit number, the first digit representing special access modes is typically ignored or required to be "0". This requirement applies to the globally configured system defaults and the local interactive user defaults for each account on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72049SV-86673CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Remove the umask statement from all local interactive user's initialization files. + +If the account is for an application, the requirement for a umask less restrictive than "077" can be documented with the Information System Security Officer, but the user agreement for access to the account must specify that the local interactive user must log on to their account first and then switch the user to the application account with the correct option to gain the account's environment variables.Verify that the default umask for all local interactive users is "077". + +Identify the locations of all local interactive user home directories by looking at the "/etc/passwd" file. + +Check all local interactive user initialization files for interactive users with the following command: + +Note: The example is for a system that is configured to create users home directories in the "/home" directory. + +$ sudo grep -ir ^umask /home | grep -v '.bash_history' + +If any local interactive user initialization files are found to have a umask statement that has a value less restrictive than "077", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021100The Red Hat Enterprise Linux operating system must have cron logging implemented.<VulnDiscussion>Cron logging can be used to trace the successful or unsuccessful execution of cron jobs. It can also be used to spot intrusions into the use of the cron facility by unauthorized and malicious users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72051SV-86675CCI-000366Configure "rsyslog" to log all cron messages by adding or updating the following line to "/etc/rsyslog.conf" or a configuration file in the /etc/rsyslog.d/ directory: + +cron.* /var/log/cron + +The rsyslog daemon must be restarted for the changes to take effect: +$ sudo systemctl restart rsyslog.serviceVerify that "rsyslog" is configured to log cron events. + +Check the configuration of "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files for the cron facility with the following command: + +Note: If another logging package is used, substitute the utility configuration file for "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files. + +# grep cron /etc/rsyslog.conf /etc/rsyslog.d/*.conf +cron.* /var/log/cron + +If the command does not return a response, check for cron logging all facilities by inspecting the "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files. + +Look for the following entry: + +*.* /var/log/messages + +If "rsyslog" is not logging messages for the cron facility or all facilities, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021110The Red Hat Enterprise Linux operating system must be configured so that the cron.allow file, if it exists, is owned by root.<VulnDiscussion>If the owner of the "cron.allow" file is not set to root, the possibility exists for an unauthorized user to view or to edit sensitive information.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72053SV-86677CCI-000366Set the owner on the "/etc/cron.allow" file to root with the following command: + +# chown root /etc/cron.allowVerify that the "cron.allow" file is owned by root. + +Check the owner of the "cron.allow" file with the following command: + +# ls -al /etc/cron.allow +-rw------- 1 root root 6 Mar 5 2011 /etc/cron.allow + +If the "cron.allow" file exists and has an owner other than root, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021120The Red Hat Enterprise Linux operating system must be configured so that the cron.allow file, if it exists, is group-owned by root.<VulnDiscussion>If the group owner of the "cron.allow" file is not set to root, sensitive information could be viewed or edited by unauthorized users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86679V-72055CCI-000366Set the group owner on the "/etc/cron.allow" file to root with the following command: + +# chgrp root /etc/cron.allowVerify that the "cron.allow" file is group-owned by root. + +Check the group owner of the "cron.allow" file with the following command: + +# ls -al /etc/cron.allow +-rw------- 1 root root 6 Mar 5 2011 /etc/cron.allow + +If the "cron.allow" file exists and has a group owner other than root, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021300The Red Hat Enterprise Linux operating system must disable Kernel core dumps unless needed.<VulnDiscussion>Kernel core dumps may contain the full contents of system memory at the time of the crash. Kernel core dumps may consume a considerable amount of disk space and may result in denial of service by exhausting the available space on the target file system partition.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86681V-72057CCI-000366If kernel core dumps are not required, disable the "kdump" service with the following command: + +# systemctl disable kdump.service + +If kernel core dumps are required, document the need with the ISSO.Verify that kernel core dumps are disabled unless needed. + +Check the status of the "kdump" service with the following command: + +# systemctl status kdump.service +kdump.service - Crash recovery kernel arming + Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled) + Active: active (exited) since Wed 2015-08-26 13:08:09 EDT; 43min ago + Main PID: 1130 (code=exited, status=0/SUCCESS) +kernel arming. + +If the "kdump" service is active, ask the System Administrator if the use of the service is required and documented with the Information System Security Officer (ISSO). + +If the service is active and is not documented, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021310The Red Hat Enterprise Linux operating system must be configured so that a separate file system is used for user home directories (such as /home or an equivalent).<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86683V-72059CCI-000366Migrate the "/home" directory onto a separate file system/partition.Verify that a separate file system/partition has been created for non-privileged local interactive user home directories. + +Check the home directory assignment for all non-privileged users (those with a UID of 1000 or greater) on the system with the following command: + +# awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6, $7}' /etc/passwd + +adamsj 1000 /home/adamsj /bin/bash +jacksonm 1001 /home/jacksonm /bin/bash +smithj 1002 /home/smithj /bin/bash + +The output of the command will give the directory/partition that contains the home directories for the non-privileged users on the system (in this example, /home) and users' shell. All accounts with a valid shell (such as /bin/bash) are considered interactive users. + +Check that a file system/partition has been created for the non-privileged interactive users with the following command: + +Note: The partition of /home is used in the example. + +# grep /home /etc/fstab +UUID=333ada18 /home ext4 noatime,nobarrier,nodev 1 2 + +If a separate entry for the file system/partition that contains the non-privileged interactive users' home directories does not exist, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021320The Red Hat Enterprise Linux operating system must use a separate file system for /var.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72061SV-86685CCI-000366Migrate the "/var" path onto a separate file system.Verify that a separate file system/partition has been created for "/var". + +Check that a file system/partition has been created for "/var" with the following command: + +# grep /var /etc/fstab +UUID=c274f65f /var ext4 noatime,nobarrier 1 2 + +If a separate entry for "/var" is not in use, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021330The Red Hat Enterprise Linux operating system must use a separate file system for the system audit data path.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86687V-72063CCI-000366Migrate the system audit data path onto a separate file system.Determine if the operating system is configured to have the "/var/log/audit" path is on a separate file system. + +# grep /var/log/audit /etc/fstab + +If no result is returned, or the operating system is not configured to have "/var/log/audit" on a separate file system, this is a finding. + +Verify that "/var/log/audit" is mounted on a separate file system: + +# mount | grep "/var/log/audit" + +If no result is returned, or "/var/log/audit" is not on a separate file system, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021340The Red Hat Enterprise Linux operating system must use a separate file system for /tmp (or equivalent).<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86689V-72065CCI-000366Start the "tmp.mount" service with the following command: + +# systemctl enable tmp.mount + +OR + +Edit the "/etc/fstab" file and ensure the "/tmp" directory is defined in the fstab with a device and mount point.Verify that a separate file system/partition has been created for "/tmp". + +Check that a file system/partition has been created for "/tmp" with the following command: + +# systemctl is-enabled tmp.mount +enabled + +If the "tmp.mount" service is not enabled, check to see if "/tmp" is defined in the fstab with a device and mount point: + +# grep -i /tmp /etc/fstab +UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /tmp ext4 rw,relatime,discard,data=ordered,nosuid,noexec, 0 0 + +If "tmp.mount" service is not enabled or the "/tmp" directory is not defined in the fstab with a device and mount point, this is a finding. SRG-OS-000033-GPOS-00014<GroupDescription></GroupDescription>RHEL-07-021350The Red Hat Enterprise Linux operating system must implement NIST FIPS-validated cryptography for the following: to provision digital signatures, to generate cryptographic hashes, and to protect data requiring data-at-rest protections in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards.<VulnDiscussion>Use of weak or untested encryption algorithms undermines the purposes of using encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated. + +Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000185-GPOS-00079, SRG-OS-000396-GPOS-00176, SRG-OS-000405-GPOS-00184, SRG-OS-000478-GPOS-00223</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86691V-72067CCI-000068CCI-001199CCI-002450CCI-002476Configure the operating system to implement DoD-approved encryption by installing the dracut-fips package. + +To enable strict FIPS compliance, the fips=1 kernel option needs to be added to the kernel command line during system installation so key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. + +Configure the operating system to implement DoD-approved encryption by following the steps below: + +The fips=1 kernel option needs to be added to the kernel command line during system installation so that key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. Users should also ensure that the system has plenty of entropy during the installation process by moving the mouse around, or if no mouse is available, ensuring that many keystrokes are typed. The recommended amount of keystrokes is 256 and more. Less than 256 keystrokes may generate a non-unique key. + +Install the dracut-fips package with the following command: + +# yum install dracut-fips + +Recreate the "initramfs" file with the following command: + +Note: This command will overwrite the existing "initramfs" file. + +# dracut -f + +Modify the kernel command line of the current kernel in the "grub.cfg" file by adding the following option to the GRUB_CMDLINE_LINUX key in the "/etc/default/grub" file and then rebuild the "grub.cfg" file: + +fips=1 + +Changes to "/etc/default/grub" require rebuilding the "grub.cfg" file as follows: + +On BIOS-based machines, use the following command: + +# grub2-mkconfig -o /boot/grub2/grub.cfg + +On UEFI-based machines, use the following command: + +# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg + +If /boot or /boot/efi reside on separate partitions, the kernel parameter boot=<partition of /boot or /boot/efi> must be added to the kernel command line. You can identify a partition by running the df /boot or df /boot/efi command: + +# df /boot +Filesystem 1K-blocks Used Available Use% Mounted on +/dev/sda1 495844 53780 416464 12% /boot + +To ensure the "boot=" configuration option will work even if device naming changes occur between boots, identify the universally unique identifier (UUID) of the partition with the following command: + +# blkid /dev/sda1 +/dev/sda1: UUID="05c000f1-a213-759e-c7a2-f11b7424c797" TYPE="ext4" + +For the example above, append the following string to the kernel command line: + +boot=UUID=05c000f1-a213-759e-c7a2-f11b7424c797 + +If the file /etc/system-fips does not exists, recreate it: + +# touch /etc/ system-fips + +Reboot the system for the changes to take effect.Verify the operating system implements DoD-approved encryption to protect the confidentiality of remote access sessions. + +Check to see if the "dracut-fips" package is installed with the following command: + +# yum list installed dracut-fips + +dracut-fips-033-360.el7_2.x86_64.rpm + +If a "dracut-fips" package is installed, check to see if the kernel command line is configured to use FIPS mode with the following command: + +Note: GRUB 2 reads its configuration from the "/boot/grub2/grub.cfg" file on traditional BIOS-based machines and from the "/boot/efi/EFI/redhat/grub.cfg" file on UEFI machines. + +# grep fips /boot/grub2/grub.cfg +/vmlinuz-3.8.0-0.40.el7.x86_64 root=/dev/mapper/rhel-root ro rd.md=0 rd.dm=0 rd.lvm.lv=rhel/swap crashkernel=auto rd.luks=0 vconsole.keymap=us rd.lvm.lv=rhel/root rhgb fips=1 quiet + +If the kernel command line is configured to use FIPS mode, check to see if the system is in FIPS mode with the following command: + +# cat /proc/sys/crypto/fips_enabled +1 + +If a "dracut-fips" package is not installed, the kernel command line does not have a fips entry, or the system has a value of "0" for "fips_enabled" in "/proc/sys/crypto", this is a finding. + +Verify the file /etc/system-fips exists. + +# ls -l /etc/system-fips + +If this file does not exist, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021600The Red Hat Enterprise Linux operating system must be configured so that the file integrity tool is configured to verify Access Control Lists (ACLs).<VulnDiscussion>ACLs can provide permissions beyond those permitted through the file mode and must be verified by file integrity tools.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86693V-72069CCI-000366Configure the file integrity tool to check file and directory ACLs. + +If AIDE is installed, ensure the "acl" rule is present on all uncommented file and directory selection lists.Verify the file integrity tool is configured to verify ACLs. + +Note: AIDE is highly configurable at install time. These commands assume the "aide.conf" file is under the "/etc" directory. + +Use the following command to determine if the file is in another location: + + # find / -name aide.conf + +Check the "aide.conf" file to determine if the "acl" rule has been added to the rule list being applied to the files and directories selection lists. + +An example rule that includes the "acl" rule is below: + + All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux + /bin All # apply the custom rule to the files in bin + /sbin All # apply the same custom rule to the files in sbin + +If the "acl" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or ACLs are not being checked by another file integrity tool, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021610The Red Hat Enterprise Linux operating system must be configured so that the file integrity tool is configured to verify extended attributes.<VulnDiscussion>Extended attributes in file systems are used to contain arbitrary data and file metadata with security implications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86695V-72071CCI-000366Configure the file integrity tool to check file and directory extended attributes. + +If AIDE is installed, ensure the "xattrs" rule is present on all uncommented file and directory selection lists.Verify the file integrity tool is configured to verify extended attributes. + +Note: AIDE is highly configurable at install time. These commands assume the "aide.conf" file is under the "/etc" directory. + +Use the following command to determine if the file is in another location: + # find / -name aide.conf + +Check the "aide.conf" file to determine if the "xattrs" rule has been added to the rule list being applied to the files and directories selection lists. + +An example rule that includes the "xattrs" rule follows: + + All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux + /bin All # apply the custom rule to the files in bin + /sbin All # apply the same custom rule to the files in sbin + +If the "xattrs" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or extended attributes are not being checked by another file integrity tool, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021620The Red Hat Enterprise Linux operating system must use a file integrity tool that is configured to use FIPS 140-2 approved cryptographic hashes for validating file contents and directories.<VulnDiscussion>File integrity tools use cryptographic hashes for verifying file contents and directories have not been altered. These hashes must be FIPS 140-2 approved cryptographic hashes. + +Red Hat Enterprise Linux operating system installation media ships with an optional file integrity tool called Advanced Intrusion Detection Environment (AIDE). AIDE is highly configurable at install time. This requirement assumes the "aide.conf" file is under the "/etc" directory.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86697V-72073CCI-000366Configure the file integrity tool to use FIPS 140-2 cryptographic hashes for validating file and directory contents. + +If AIDE is installed, ensure the "sha512" rule is present on all uncommented file and directory selection lists. Exclude any log files, or files expected to change frequently, to reduce unnecessary notifications.Verify the file integrity tool is configured to use FIPS 140-2-approved cryptographic hashes for validating file contents and directories. + +Note: AIDE is highly configurable at install time. These commands assume the "aide.conf" file is under the "/etc" directory. + +Use the following command to determine if the file is in another location: + + # find / -name aide.conf + +Check the "aide.conf" file to determine if the "sha512" rule has been added to the rule list being applied to the files and directories selection lists. Exclude any log files, or files expected to change frequently, to reduce unnecessary notifications. + +An example rule that includes the "sha512" rule follows: + + All=p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux + /bin All # apply the custom rule to the files in bin + /sbin All # apply the same custom rule to the files in sbin + +If the "sha512" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or another file integrity tool is not using FIPS 140-2-approved cryptographic hashes for validating file contents and directories, this is a finding.SRG-OS-000364-GPOS-00151<GroupDescription></GroupDescription>RHEL-07-021700The Red Hat Enterprise Linux operating system must not allow removable media to be used as the boot loader unless approved.<VulnDiscussion>Malicious users with removable boot media can gain access to a system configured to use removable media as the boot loader. If removable media is designed to be used as the boot loader, the requirement must be documented with the Information System Security Officer (ISSO).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86699V-72075CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Remove alternate methods of booting the system from removable media or document the configuration to boot from removable media with the ISSO.Verify the system is not configured to use a boot loader on removable media. + +Note: GRUB 2 reads its configuration from the "/boot/grub2/grub.cfg" file on traditional BIOS-based machines and from the "/boot/efi/EFI/redhat/grub.cfg" file on UEFI machines. + +Check for the existence of alternate boot loader configuration files with the following command: + +# find / -name grub.cfg +/boot/grub2/grub.cfg + +If a "grub.cfg" is found in any subdirectories other than "/boot/grub2" and "/boot/efi/EFI/redhat", ask the System Administrator if there is documentation signed by the ISSO to approve the use of removable media as a boot loader. + +Check that the grub configuration file has the set root command in each menu entry with the following commands: + +# grep -cw menuentry /boot/grub2/grub.cfg +1 +# grep 'set root' /boot/grub2/grub.cfg +set root=(hd0,1) + +If the system is using an alternate boot loader on removable media, and documentation does not exist approving the alternate configuration, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-07-021710The Red Hat Enterprise Linux operating system must not have the telnet-server package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72077SV-86701CCI-000381Configure the operating system to disable non-essential capabilities by removing the telnet-server package from the system with the following command: + +# yum remove telnet-serverVerify the operating system is configured to disable non-essential capabilities. The most secure way of ensuring a non-essential capability is disabled is to not have the capability installed. + +The telnet service provides an unencrypted remote access service that does not provide for the confidentiality and integrity of user passwords or the remote session. + +If a privileged user were to log on using this service, the privileged user password could be compromised. + +Check to see if the telnet-server package is installed with the following command: + +# yum list installed telnet-server + +If the telnet-server package is installed, this is a finding.SRG-OS-000038-GPOS-00016<GroupDescription></GroupDescription>RHEL-07-030000The Red Hat Enterprise Linux operating system must be configured so that auditing is configured to produce records containing information to establish what type of events occurred, where the events occurred, the source of the events, and the outcome of the events. These audit records must also identify individual identities of group account users.<VulnDiscussion>Without establishing what type of events occurred, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. + +Associating event types with detected events in the operating system audit logs provides a means of investigating an attack; recognizing resource utilization or capacity thresholds; or identifying an improperly configured operating system. + +Satisfies: SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000042-GPOS-00021, SRG-OS-000254-GPOS-00095, SRG-OS-000255-GPOS-00096</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86703V-72079CCI-000126CCI-000131Configure the operating system to produce audit records containing information to establish when (date and time) the events occurred. + +Enable the auditd service with the following command: + +# systemctl start auditd.serviceVerify the operating system produces audit records containing information to establish when (date and time) the events occurred. + +Check to see if auditing is active by issuing the following command: + +# systemctl is-active auditd.service +active + +If the "auditd" status is not active, this is a finding.SRG-OS-000046-GPOS-00022<GroupDescription></GroupDescription>RHEL-07-030010The Red Hat Enterprise Linux operating system must shut down upon audit processing failure, unless availability is an overriding concern. If availability is a concern, the system must alert the designated staff (System Administrator [SA] and Information System Security Officer [ISSO] at a minimum) in the event of an audit processing failure.<VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. + +Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. + +This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both. + +Satisfies: SRG-OS-000046-GPOS-00022, SRG-OS-000047-GPOS-00023</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72081SV-86705CCI-000139Configure the operating system to shut down in the event of an audit processing failure. + +Add or correct the option to shut down the operating system with the following command: + + # auditctl -f 2 + +Edit the "/etc/audit/rules.d/audit.rules" file and add the following line: + + -f 2 + +If availability has been determined to be more important, and this decision is documented with the ISSO, configure the operating system to notify system administration staff and ISSO staff in the event of an audit processing failure with the following command: + + # auditctl -f 1 + +Edit the "/etc/audit/rules.d/audit.rules" file and add the following line: + + -f 1 + +Kernel log monitoring must also be configured to properly alert designated staff. + +The audit daemon must be restarted for the changes to take effect.Confirm the audit configuration regarding how auditing processing failures are handled. + +Check to see what level "auditctl" is set to with following command: + + # auditctl -s | grep -i "fail" + failure 2 + +Note: If the value of "failure" is set to "2", the system is configured to panic (shut down) in the event of an auditing failure. If the value of "failure" is set to "1", the system will not shut down and instead will record the audit failure in the kernel log. If the system is configured as per requirement RHEL-07-031000, the kernel log will be sent to a log aggregation server and generate an alert. + +If the "failure" setting is set to any value other than "1" or "2", this is a finding. + +If the "failure" setting is not set, this should be upgraded to a CAT I finding. + +If the "failure" setting is set to "1" but the availability concern is not documented or there is no monitoring of the kernel log, this should be downgraded to a CAT III finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030201The Red Hat Enterprise Linux operating system must be configured to off-load audit logs onto a different system or storage media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +One method of off-loading audit logs in Red Hat Enterprise Linux is with the use of the audisp-remote dameon. Without the configuration of the "au-remote" plugin, the audisp-remote daemon will not off load the logs from the system being audited. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95729V-81017CCI-001851Edit the /etc/audisp/plugins.d/au-remote.conf file and add or update the following values: + +active = yes +direction = out +path = /sbin/audisp-remote +type = always + +The audit daemon must be restarted for changes to take effect: + +# service auditd restartVerify the "au-remote" plugin is configured to always off-load audit logs using the audisp-remote daemon: + +# cat /etc/audisp/plugins.d/au-remote.conf | grep -v "^#" + +active = yes +direction = out +path = /sbin/audisp-remote +type = always +format = string + +If "active" is not set to "yes", "direction" is not set to "out", "path" is not set to "/sbin/audisp-remote", "type" is not set to "always", or any of the lines are commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or storage media. + +If there is no evidence that the system is configured to off-load audit logs to a different system or storage media, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030210The Red Hat Enterprise Linux operating system must take appropriate action when the remote logging buffer is full.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +One method of off-loading audit logs in Red Hat Enterprise Linux is with the use of the audisp-remote dameon. When the remote buffer is full, audit logs will not be collected and sent to the central log server. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-81019SV-95731CCI-001851Edit the /etc/audisp/audispd.conf file and add or update the "overflow_action" option: + +overflow_action = syslog + +The audit daemon must be restarted for changes to take effect: + +# service auditd restartVerify the audisp daemon is configured to take an appropriate action when the internal queue is full: + +# grep "overflow_action" /etc/audisp/audispd.conf + +overflow_action = syslog + +If the "overflow_action" option is not "syslog", "single", or "halt", or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or storage media, and to indicate what action that system takes when the internal queue is full. + +If there is no evidence the system is configured to off-load audit logs to a different system or storage media or, if the configuration does not take appropriate action when the internal queue is full, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030211The Red Hat Enterprise Linux operating system must label all off-loaded audit logs before sending them to the central log server.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +One method of off-loading audit logs in Red Hat Enterprise Linux is with the use of the audisp-remote dameon. When audit logs are not labeled before they are sent to a central log server, the audit data will not be able to be analyzed and tied back to the correct system. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-95733V-81021CCI-001851Edit the /etc/audisp/audispd.conf file and add or update the "name_format" option: + +name_format = hostname + +The audit daemon must be restarted for changes to take effect: + +# service auditd restartVerify the audisp daemon is configured to label all off-loaded audit logs: + +# grep "name_format" /etc/audisp/audispd.conf + +name_format = hostname + +If the "name_format" option is not "hostname", "fqd", or "numeric", or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or storage media, and to indicate if the logs are labeled appropriately. + +If there is no evidence that the system is configured to off-load audit logs to a different system or storage media, or if the configuration does not appropriately label logs before they are off-loaded, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030300The Red Hat Enterprise Linux operating system must off-load audit records onto a different system or media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72083SV-86707CCI-001851Configure the operating system to off-load audit records onto a different system or media from the system being audited. + +Set the remote server option in "/etc/audisp/audisp-remote.conf" with the IP address of the log aggregation server.Verify the operating system off-loads audit records onto a different system or media from the system being audited. + +To determine the remote server that the records are being sent to, use the following command: + +# grep -i remote_server /etc/audisp/audisp-remote.conf +remote_server = 10.0.21.1 + +If a remote server is not configured, or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the audit logs are being off-loaded to another system or media, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030310The Red Hat Enterprise Linux operating system must encrypt the transfer of audit records off-loaded onto a different system or media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72085SV-86709CCI-001851Configure the operating system to encrypt the transfer of off-loaded audit records onto a different system or media from the system being audited. + +Uncomment the "enable_krb5" option in "/etc/audisp/audisp-remote.conf" and set it with the following line: + +enable_krb5 = yesVerify the operating system encrypts audit records off-loaded onto a different system or media from the system being audited. + +To determine if the transfer is encrypted, use the following command: + +# grep -i enable_krb5 /etc/audisp/audisp-remote.conf +enable_krb5 = yes + +If the value of the "enable_krb5" option is not set to "yes" or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the transfer of the audit logs being off-loaded to another system or media is encrypted, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030320The Red Hat Enterprise Linux operating system must be configured so that the audit system takes appropriate action when the audit storage volume is full.<VulnDiscussion>Taking appropriate action in case of a filled audit storage volume will minimize the possibility of losing audit records. +One method of off-loading audit logs in Red Hat Enterprise Linux is with the use of the audisp-remote dameon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72087SV-86711CCI-001851Configure the action the operating system takes if the disk the audit records are written to becomes full. + +Uncomment or edit the "disk_full_action" option in "/etc/audisp/audisp-remote.conf" and set it to "syslog", "single", or "halt", such as the following line: + +disk_full_action = singleVerify the action the operating system takes if the disk the audit records are written to becomes full. + +To determine the action that takes place if the disk is full on the remote server, use the following command: + +# grep -i disk_full_action /etc/audisp/audisp-remote.conf +disk_full_action = single + +If the value of the "disk_full_action" option is not "syslog", "single", or "halt", or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or storage media, and to indicate the action taken when the disk is full on the remote server. + +If there is no evidence that the system is configured to off-load audit logs to a different system or storage media, or if the configuration does not take appropriate action when the disk is full on the remote server, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-07-030321The Red Hat Enterprise Linux operating system must be configured so that the audit system takes appropriate action when there is an error sending audit records to a remote system.<VulnDiscussion>Taking appropriate action when there is an error sending audit records to a remote system will minimize the possibility of losing audit records. +One method of off-loading audit logs in Red Hat Enterprise Linux is with the use of the audisp-remote dameon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-73163SV-87815CCI-001851Configure the action the operating system takes if there is an error sending audit records to a remote system. + +Uncomment the "network_failure_action" option in "/etc/audisp/audisp-remote.conf" and set it to "syslog", "single", or "halt". + +network_failure_action = syslogVerify the action the operating system takes if there is an error sending audit records to a remote system. + +Check the action that takes place if there is an error sending audit records to a remote system with the following command: + +# grep -i network_failure_action /etc/audisp/audisp-remote.conf +network_failure_action = syslog + +If the value of the "network_failure_action" option is not "syslog", "single", or "halt", or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or storage media, and to indicate the action taken if there is an error sending audit records to the remote system. + +If there is no evidence that the system is configured to off-load audit logs to a different system or storage media, or if the configuration does not take appropriate action if there is an error sending audit records to the remote system, this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>RHEL-07-030330The Red Hat Enterprise Linux operating system must initiate an action to notify the System Administrator (SA) and Information System Security Officer ISSO, at a minimum, when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity.<VulnDiscussion>If security personnel are not notified immediately when storage volume reaches 75 percent utilization, they are unable to plan for audit record storage capacity expansion.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72089SV-86713CCI-001855Configure the operating system to initiate an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity. + +Set the value of the "space_left" keyword in "/etc/audit/auditd.conf" to 25 percent of the partition size. +space_left = 25% +Reload the auditd daemon to apply changes made to the "/etc/audit/auditd.conf" file.Verify the operating system initiates an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity. + +Check the system configuration to determine the partition the audit records are being written to with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf +log_file = /var/log/audit/audit.log + +Determine what the threshold is for the system to take action when 75 percent of the repository maximum audit record storage capacity is reached: + +$ sudo grep -iw space_left /etc/audit/auditd.conf +space_left = 25% + +If the value of the "space_left" keyword is not set to 25 percent of the total partition size, this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>RHEL-07-030340The Red Hat Enterprise Linux operating system must immediately notify the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) via email when the threshold for the repository maximum audit record storage capacity is reached.<VulnDiscussion>If security personnel are not notified immediately when the threshold for the repository maximum audit record storage capacity is reached, they are unable to expand the audit record storage capacity before records are lost.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72091SV-86715CCI-001855Configure the operating system to immediately notify the SA and ISSO (at a minimum) when the threshold for the repository maximum audit record storage capacity is reached. + +Uncomment or edit the "space_left_action" keyword in "/etc/audit/auditd.conf" and set it to "email". + +space_left_action = emailVerify the operating system immediately notifies the SA and ISSO (at a minimum) via email when the allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity. + +Check what action the operating system takes when the threshold for the repository maximum audit record storage capacity is reached with the following command: + +# grep -i space_left_action /etc/audit/auditd.conf +space_left_action = email + +If the value of the "space_left_action" keyword is not set to "email", this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>RHEL-07-030350The Red Hat Enterprise Linux operating system must immediately notify the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when the threshold for the repository maximum audit record storage capacity is reached.<VulnDiscussion>If security personnel are not notified immediately when the threshold for the repository maximum audit record storage capacity is reached, they are unable to expand the audit record storage capacity before records are lost.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72093SV-86717CCI-001855Configure the operating system to immediately notify the SA and ISSO (at a minimum) when the threshold for the repository maximum audit record storage capacity is reached. + +Uncomment or edit the "action_mail_acct" keyword in "/etc/audit/auditd.conf" and set it to root and any other accounts associated with security personnel. + +action_mail_acct = rootVerify the operating system immediately notifies the SA and ISSO (at a minimum) via email when the threshold for the repository maximum audit record storage capacity is reached. + +Check what account the operating system emails when the threshold for the repository maximum audit record storage capacity is reached with the following command: + +# grep -i action_mail_acct /etc/audit/auditd.conf +action_mail_acct = root + +If the value of the "action_mail_acct" keyword is not set to "root" and other accounts for security personnel, this is a finding.SRG-OS-000327-GPOS-00127<GroupDescription></GroupDescription>RHEL-07-030360The Red Hat Enterprise Linux operating system must audit all executions of privileged functions.<VulnDiscussion>Misuse of privileged functions, either intentionally or unintentionally by authorized users, or by unauthorized external entities that have compromised information system accounts, is a serious and ongoing concern and can have significant adverse impacts on organizations. Auditing the use of privileged functions is one way to detect such misuse and identify the risk from insider threats and the advanced persistent threat.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72095SV-86719CCI-002234Configure the operating system to audit the execution of privileged functions. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k setuid +-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k setuid +-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k setgid +-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k setgid + +The audit daemon must be restarted for the changes to take effect.Verify the operating system audits the execution of privileged functions using the following command: + +# grep -iw execve /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k setuid +-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k setuid +-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k setgid +-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k setgid + + +If both the "b32" and "b64" audit rules for "SUID" files are not defined, this is a finding. + +If both the "b32" and "b64" audit rules for "SGID" files are not defined, this is a finding.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>RHEL-07-030370The Red Hat Enterprise Linux operating system must audit all uses of the chown, fchown, fchownat, and lchown syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000392-GPOS-00172, SRG-OS-000458-GPOS-00203, SRG-OS-000474-GPOS-00219</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86721V-72097CCI-000126CCI-000172Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat", and "lchown" syscalls. + +Check the file system rules in "/etc/audit/audit.rules" with the following commands: + +# grep chown /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +If both the "b32" and "b64" audit rules are not defined for the "chown", "fchown", "fchownat", and "lchown" syscalls, this is a finding.SRG-OS-000458-GPOS-00203<GroupDescription></GroupDescription>RHEL-07-030410The Red Hat Enterprise Linux operating system must audit all uses of the chmod, fchmod, and fchmodat syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000458-GPOS-00203, SRG-OS-000392-GPOS-00172, SRG-OS-000064-GPOS-00033</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86729V-72105CCI-000172Configure the operating system to generate audit records upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" syscalls. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" syscalls. + +Check the file system rules in "/etc/audit/audit.rules" with the following command: + +# grep chmod /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +If both the "b32" and "b64" audit rules are not defined for the "chmod", "fchmod", and "fchmodat" syscalls, this is a finding.SRG-OS-000458-GPOS-00203<GroupDescription></GroupDescription>RHEL-07-030440The Red Hat Enterprise Linux operating system must audit all uses of the setxattr, fsetxattr, lsetxattr, removexattr, fremovexattr, and lremovexattr syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000458-GPOS-00203, SRG-OS-000392-GPOS-00172, SRG-OS-000064-GPOS-00033</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86735V-72111CCI-000172Configure the operating system to generate audit records upon successful/unsuccessful attempts to use the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" syscalls. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" syscalls. + +Check the file system rules in "/etc/audit/audit.rules" with the following commands: + +# grep xattr /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +If both the "b32" and "b64" audit rules are not defined for the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" syscalls, this is a finding.SRG-OS-000064-GPOS-00033<GroupDescription></GroupDescription>RHEL-07-030510The Red Hat Enterprise Linux operating system must audit all uses of the creat, open, openat, open_by_handle_at, truncate, and ftruncate syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000064-GPOS-00033, SRG-OS-000458-GPOS-00203, SRG-OS-000461-GPOS-00205, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86749V-72125CCI-000172CCI-002884Configure the operating system to generate audit records upon successful/unsuccessful attempts to use the "creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" syscalls. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" syscalls. + +Check the file system rules in "/etc/audit/audit.rules" with the following commands: + +# grep 'open\|truncate\|creat' /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access + +-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access + +If both the "b32" and "b64" audit rules are not defined for the "creat", "open", "openat", "open_by_handle_at", "truncate", and "ftruncate" syscalls, this is a finding. + +If the output does not produce rules containing "-F exit=-EPERM", this is a finding. + +If the output does not produce rules containing "-F exit=-EACCES", this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030560The Red Hat Enterprise Linux operating system must audit all uses of the semanage command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86759V-72135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "semanage" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "semanage" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/semanage" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030570The Red Hat Enterprise Linux operating system must audit all uses of the setsebool command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72137SV-86761CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "setsebool" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "setsebool" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/setsebool" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030580The Red Hat Enterprise Linux operating system must audit all uses of the chcon command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72139SV-86763CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "chcon" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "chcon" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/bin/chcon" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030590The Red Hat Enterprise Linux operating system must audit all uses of the setfiles command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000463-GPOS-00207, SRG-OS-000465-GPOS-00209</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72141SV-86765CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "setfiles" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "setfiles" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/setfiles" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030610The Red Hat Enterprise Linux operating system must generate audit records for all unsuccessful account access events.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72145SV-86769CCI-000126CCI-000172CCI-002884Configure the operating system to generate audit records when unsuccessful account access events occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-w /var/run/faillock -p wa -k logins + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when unsuccessful account access events occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following commands: + +# grep -i /var/run/faillock /etc/audit/audit.rules + +-w /var/run/faillock -p wa -k logins + +If the command does not return any output, this is a finding.SRG-OS-000392-GPOS-00172<GroupDescription></GroupDescription>RHEL-07-030620The Red Hat Enterprise Linux operating system must generate audit records for all successful account access events.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000392-GPOS-00172, SRG-OS-000470-GPOS-00214, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72147SV-86771CCI-000126CCI-000172CCI-002884Configure the operating system to generate audit records when successful account access events occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-w /var/log/lastlog -p wa -k logins + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful account access events occur. + +Check the file system rules in "/etc/audit/audit.rules" with the following commands: + +# grep -i /var/log/lastlog /etc/audit/audit.rules + +-w /var/log/lastlog -p wa -k logins + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030630The Red Hat Enterprise Linux operating system must audit all uses of the passwd command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged password commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86773V-72149CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "passwd" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "passwd" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/bin/passwd" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030640The Red Hat Enterprise Linux operating system must audit all uses of the unix_chkpwd command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged password commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86775V-72151CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "unix_chkpwd" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "unix_chkpwd" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/unix_chkpwd" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030650The Red Hat Enterprise Linux operating system must audit all uses of the gpasswd command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged password commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86777V-72153CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "gpasswd" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "gpasswd" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/bin/gpasswd" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030660The Red Hat Enterprise Linux operating system must audit all uses of the chage command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged password commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86779V-72155CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "chage" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "chage" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/bin/chage" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030670The Red Hat Enterprise Linux operating system must audit all uses of the userhelper command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged password commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86781V-72157CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "userhelper" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "userhelper" command occur. + +Check the file system rule in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/userhelper" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return any output, this is a finding.SRG-OS-000037-GPOS-00015<GroupDescription></GroupDescription>RHEL-07-030680The Red Hat Enterprise Linux operating system must audit all uses of the su command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged access commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86783V-72159CCI-000130CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "su" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "su" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/su" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000037-GPOS-00015<GroupDescription></GroupDescription>RHEL-07-030690The Red Hat Enterprise Linux operating system must audit all uses of the sudo command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged access commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72161SV-86785CCI-000130CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "sudo" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "sudo" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/sudo" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000037-GPOS-00015<GroupDescription></GroupDescription>RHEL-07-030700The Red Hat Enterprise Linux operating system must audit all uses of the sudoers file and all files in the /etc/sudoers.d/ directory.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged access commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72163SV-86787CCI-000130CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to access the "/etc/sudoers" file and files in the "/etc/sudoers.d/" directory. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-w /etc/sudoers -p wa -k privileged-actions + +-w /etc/sudoers.d/ -p wa -k privileged-actions + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to access the "/etc/sudoers" file and files in the "/etc/sudoers.d/" directory. + +Check for modification of the following files being audited by performing the following commands to check the file system rules in "/etc/audit/audit.rules": + +# grep -i "/etc/sudoers" /etc/audit/audit.rules + +-w /etc/sudoers -p wa -k privileged-actions + +# grep -i "/etc/sudoers.d/" /etc/audit/audit.rules + +-w /etc/sudoers.d/ -p wa -k privileged-actions + +If the commands do not return output that match the examples, this is a finding.SRG-OS-000037-GPOS-00015<GroupDescription></GroupDescription>RHEL-07-030710The Red Hat Enterprise Linux operating system must audit all uses of the newgrp command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged access commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72165SV-86789CCI-000130CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "newgrp" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "newgrp" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/newgrp" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000037-GPOS-00015<GroupDescription></GroupDescription>RHEL-07-030720The Red Hat Enterprise Linux operating system must audit all uses of the chsh command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged access commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86791V-72167CCI-000130CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "chsh" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "chsh" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/chsh" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030740The Red Hat Enterprise Linux operating system must audit all uses of the mount command and syscall.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged mount commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72171SV-86795CCI-000135CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "mount" command and syscall occur. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "mount" command and syscall occur. + +Check that the following system call is being audited by performing the following series of commands to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "mount" /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +If both the "b32" and "b64" audit rules are not defined for the "mount" syscall, this is a finding. + +If all uses of the "mount" command are not being audited, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030750The Red Hat Enterprise Linux operating system must audit all uses of the umount command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged mount commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72173SV-86797CCI-000135CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "umount" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "umount" command occur. + +Check that the following system call is being audited by performing the following series of commands to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/umount" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030760The Red Hat Enterprise Linux operating system must audit all uses of the postdrop command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged postfix commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72175SV-86799CCI-000135CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "postdrop" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-postfix + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "postdrop" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/sbin/postdrop" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-postfix + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030770The Red Hat Enterprise Linux operating system must audit all uses of the postqueue command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged postfix commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86801V-72177CCI-000135CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "postqueue" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-postfix + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "postqueue" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/sbin/postqueue" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-postfix + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030780The Red Hat Enterprise Linux operating system must audit all uses of the ssh-keysign command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged ssh commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86803V-72179CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "ssh-keysign" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "ssh-keysign" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/libexec/openssh/ssh-keysign" /etc/audit/audit.rules + +-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +If the command does not return any output, this is a finding.SRG-OS-000042-GPOS-00020<GroupDescription></GroupDescription>RHEL-07-030800The Red Hat Enterprise Linux operating system must audit all uses of the crontab command.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86807V-72183CCI-000135CCI-000172CCI-002884Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "crontab" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-cron + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "crontab" command occur. + +Check that the following system call is being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "/usr/bin/crontab" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-cron + +If the command does not return any output, this is a finding.SRG-OS-000471-GPOS-00215<GroupDescription></GroupDescription>RHEL-07-030810The Red Hat Enterprise Linux operating system must audit all uses of the pam_timestamp_check command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72185SV-86809CCI-000172Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "pam_timestamp_check" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "pam_timestamp_check" command occur. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "/usr/sbin/pam_timestamp_check" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam + +If the command does not return any output, this is a finding.SRG-OS-000471-GPOS-00216<GroupDescription></GroupDescription>RHEL-07-030819The Red Hat Enterprise Linux operating system must audit all uses of the create_module syscall.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000471-GPOS-00216, SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-78999SV-93705CCI-000172Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "create_module" syscall occur. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S create_module -F auid>=1000 -F auid!=unset -k module-change + +-a always,exit -F arch=b64 -S create_module -F auid>=1000 -F auid!=unset -k module-change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "create_module" syscall occur. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "create_module" /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S create_module -F auid>=1000 -F auid!=unset -k module-change + +-a always,exit -F arch=b64 -S create_module -F auid>=1000 -F auid!=unset -k module-change + +If both the "b32" and "b64" audit rules are not defined for the "create_module" syscall, this is a finding.SRG-OS-000471-GPOS-00216<GroupDescription></GroupDescription>RHEL-07-030820The Red Hat Enterprise Linux operating system must audit all uses of the init_module and finit_module syscalls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000471-GPOS-00216, SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72187SV-86811CCI-000172Configure the operating system to generate audit records upon successful/unsuccessful attempts to use the "init_module" and "finit_module" syscalls. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k modulechange + +-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k modulechange + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "init_module" and "finit_module" syscalls. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep init_module /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k modulechange + +-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k modulechange + +If both the "b32" and "b64" audit rules are not defined for the "init_module" and "finit_module" syscalls, this is a finding.SRG-OS-000471-GPOS-00216<GroupDescription></GroupDescription>RHEL-07-030830The Red Hat Enterprise Linux operating system must audit all uses of the delete_module syscall.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000471-GPOS-00216, SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72189SV-86813CCI-000172Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "delete_module" syscall occur. + +Add or update the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module-change + +-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module-change + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "delete_module" syscall occur. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep -w "delete_module" /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module-change + +-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module-change + +If both the "b32" and "b64" audit rules are not defined for the "delete_module" syscall, this is a finding.SRG-OS-000471-GPOS-00216<GroupDescription></GroupDescription>RHEL-07-030840The Red Hat Enterprise Linux operating system must audit all uses of the kmod command.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +Satisfies: SRG-OS-000471-GPOS-00216, SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86815V-72191CCI-000172Configure the operating system to generate audit records when successful/unsuccessful attempts to use the "kmod" command occur. + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records when successful/unsuccessful attempts to use the "kmod" command occur. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep "/usr/bin/kmod" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules + +If the command does not return any output, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>RHEL-07-030870The Red Hat Enterprise Linux operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/passwd.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000004-GPOS-00004, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86821V-72197CCI-000018CCI-000172CCI-001403CCI-002130Configure the operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". + +Add or update the following rule "/etc/audit/rules.d/audit.rules": + +-w /etc/passwd -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify the operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +# grep /etc/passwd /etc/audit/audit.rules + +-w /etc/passwd -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>RHEL-07-030871The Red Hat Enterprise Linux operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/group.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87817V-73165CCI-000018CCI-000172CCI-001403CCI-002130Configure the operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-w /etc/group -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify the operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +# grep /etc/group /etc/audit/audit.rules + +-w /etc/group -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>RHEL-07-030872The Red Hat Enterprise Linux operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/gshadow.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87819V-73167CCI-000018CCI-000172CCI-001403CCI-002130Configure the operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". + +Add or update the following rule in "/etc/audit/rules.d/audit.rules": + +-w /etc/gshadow -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify the operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +# grep /etc/gshadow /etc/audit/audit.rules + +-w /etc/gshadow -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>RHEL-07-030873The Red Hat Enterprise Linux operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87823V-73171CCI-000018CCI-000172CCI-001403CCI-002130Configure the operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow. + +Add or update the following file system rule in "/etc/audit/rules.d/audit.rules": + +-w /etc/shadow -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify the operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +# grep /etc/shadow /etc/audit/audit.rules + +-w /etc/shadow -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000004-GPOS-00004<GroupDescription></GroupDescription>RHEL-07-030874The Red Hat Enterprise Linux operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/security/opasswd.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87825V-73173CCI-000018CCI-000172CCI-001403CCI-002130Configure the operating system to generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/security/opasswd. + +Add or update the following file system rule in "/etc/audit/rules.d/audit.rules": + +-w /etc/security/opasswd -p wa -k identity + +The audit daemon must be restarted for the changes to take effect: +# systemctl restart auditdVerify the operating system must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/security/opasswd. + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +# grep /etc/security/opasswd /etc/audit/audit.rules + +-w /etc/security/opasswd -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000466-GPOS-00210<GroupDescription></GroupDescription>RHEL-07-030910The Red Hat Enterprise Linux operating system must audit all uses of the unlink, unlinkat, rename, renameat, and rmdir syscalls.<VulnDiscussion>If the system is not configured to audit certain activities and write them to an audit log, it is more difficult to detect and track system compromises and damages incurred during a system compromise. + +When a user logs on, the auid is set to the uid of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to -1. The auid representation is an unsigned 32-bit integer, which equals 4294967295. The audit system interprets -1, 4294967295, and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000466-GPOS-00210, SRG-OS-000467-GPOS-00211, SRG-OS-000468-GPOS-00212, SRG-OS-000392-GPOS-00172</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72205SV-86829CCI-000172CCI-002884Configure the operating system to generate audit records upon successful/unsuccessful attempts to use the "unlink", "unlinkat", "rename", "renameat", and "rmdir" syscalls. + +Add the following rules in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete + +-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete + +The audit daemon must be restarted for the changes to take effect.Verify the operating system generates audit records upon successful/unsuccessful attempts to use the "unlink", "unlinkat", "rename", "renameat", and "rmdir" syscalls. + +Check the file system rules in "/etc/audit/audit.rules" with the following commands: + +# grep 'unlink\|rename\|rmdir' /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete + +-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete + +If both the "b32" and "b64" audit rules are not defined for the "unlink", "unlinkat", "rename", "renameat", and "rmdir" syscalls, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-031000The Red Hat Enterprise Linux operating system must send rsyslog output to a log aggregation server.<VulnDiscussion>Sending rsyslog output to another system ensures that the logs cannot be removed or modified in the event that the system is compromised or has a hardware failure.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86833V-72209CCI-000366Modify the "/etc/rsyslog.conf" or an "/etc/rsyslog.d/*.conf" file to contain a configuration line to send all "rsyslog" output to a log aggregation system: +*.* @@<log aggregation system name>Verify "rsyslog" is configured to send all messages to a log aggregation server. + +Check the configuration of "rsyslog" with the following command: + +Note: If another logging package is used, substitute the utility configuration file for "/etc/rsyslog.conf". + +# grep @ /etc/rsyslog.conf /etc/rsyslog.d/*.conf +*.* @@logagg.site.mil + +If there are no lines in the "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files that contain the "@" or "@@" symbol(s), and the lines with the correct symbol(s) to send output to another system do not cover all "rsyslog" output, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If the lines are commented out or there is no evidence that the audit logs are being sent to another system, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-031010The Red Hat Enterprise Linux operating system must be configured so that the rsyslog daemon does not accept log messages from other servers unless the server is being used for log aggregation.<VulnDiscussion>Unintentionally running a rsyslog server accepting remote messages puts the system at increased risk. Malicious rsyslog messages sent to the server could exploit vulnerabilities in the server software itself, could introduce misleading information in to the system's logs, or could fill the system's storage leading to a Denial of Service. + +If the system is intended to be a log aggregation server its use must be documented with the ISSO.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86835V-72211CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Modify the "/etc/rsyslog.conf" file to remove the "ModLoad imtcp", "ModLoad imudp", and "ModLoad imrelp" configuration lines, or document the system as being used for log aggregation.Verify that the system is not accepting "rsyslog" messages from other systems unless it is documented as a log aggregation server. + +Check the configuration of "rsyslog" with the following command: + +# grep imtcp /etc/rsyslog.conf +$ModLoad imtcp +# grep imudp /etc/rsyslog.conf +$ModLoad imudp +# grep imrelp /etc/rsyslog.conf +$ModLoad imrelp + +If any of the above modules are being loaded in the "/etc/rsyslog.conf" file, ask to see the documentation for the system being used for log aggregation. + +If the documentation does not exist, or does not specify the server as a log aggregation system, this is a finding.SRG-OS-000027-GPOS-00008<GroupDescription></GroupDescription>RHEL-07-040000The Red Hat Enterprise Linux operating system must limit the number of concurrent sessions to 10 for all accounts and/or account types.<VulnDiscussion>Operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. + +This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based on mission needs and the operational environment for each system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72217SV-86841CCI-000054Configure the operating system to limit the number of concurrent sessions to "10" for all accounts and/or account types. + +Add the following line to the top of the /etc/security/limits.conf or in a ".conf" file defined in /etc/security/limits.d/ : + +* hard maxlogins 10Verify the operating system limits the number of concurrent sessions to "10" for all accounts and/or account types by issuing the following command: + +# grep "maxlogins" /etc/security/limits.conf /etc/security/limits.d/*.conf + +* hard maxlogins 10 + +This can be set as a global domain (with the * wildcard) but may be set differently for multiple domains. + +If the "maxlogins" item is missing, commented out, or the value is not set to "10" or less for all domains that have the "maxlogins" item assigned, this is a finding.SRG-OS-000096-GPOS-00050<GroupDescription></GroupDescription>RHEL-07-040100The Red Hat Enterprise Linux operating system must be configured to prohibit or restrict the use of functions, ports, protocols, and/or services, as defined in the Ports, Protocols, and Services Management Component Local Service Assessment (PPSM CLSA) and vulnerability assessments.<VulnDiscussion>In order to prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. + +To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality of life issues. + +Satisfies: SRG-OS-000096-GPOS-00050, SRG-OS-000297-GPOS-00115</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72219SV-86843CCI-000382CCI-002314Update the host's firewall settings and/or running services to comply with the PPSM CLSA for the site or program and the PPSM CAL.Inspect the firewall configuration and running services to verify that it is configured to prohibit or restrict the use of functions, ports, protocols, and/or services that are unnecessary or prohibited. + +Check which services are currently active with the following command: + +# firewall-cmd --list-all +public (default, active) + interfaces: enp0s3 + sources: + services: dhcpv6-client dns http https ldaps rpc-bind ssh + ports: + masquerade: no + forward-ports: + icmp-blocks: + rich rules: + +Ask the System Administrator for the site or program PPSM CLSA. Verify the services allowed by the firewall match the PPSM CLSA. + +If there are additional ports, protocols, or services that are not in the PPSM CLSA, or there are ports, protocols, or services that are prohibited by the PPSM Category Assurance List (CAL), this is a finding.SRG-OS-000033-GPOS-00014<GroupDescription></GroupDescription>RHEL-07-040110The Red Hat Enterprise Linux 7 operating system must implement DoD-approved encryption to protect the confidentiality of SSH connections.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +Operating systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general purpose computing system. + +The system will attempt to use the first cipher presented by the client that matches the server list. Listing the values "strongest to weakest" is a method to ensure the use of the strongest cipher available to secure the SSH connection. + +Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000125-GPOS-00065, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72221SV-86845CCI-000068CCI-000366CCI-000803Configure SSH to use FIPS 140-2 approved cryptographic algorithms. + +Add the following line (or modify the line to have the required value) to the "/etc/ssh/sshd_config" file (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). + +Ciphers aes256-ctr,aes192-ctr,aes128-ctr + +The SSH service must be restarted for changes to take effect.Verify the operating system uses mechanisms meeting the requirements of applicable federal laws, Executive orders, directives, policies, regulations, standards, and guidance for authentication to a cryptographic module. + +The location of the "sshd_config" file may vary if a different daemon is in use. + +Inspect the "Ciphers" configuration with the following command: + +# grep -i ciphers /etc/ssh/sshd_config +Ciphers aes256-ctr,aes192-ctr,aes128-ctr + +If any ciphers other than "aes256-ctr", "aes192-ctr", or "aes128-ctr" are listed, the order differs from the example above, the "Ciphers" keyword is missing, or the returned line is commented out, this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>RHEL-07-040160The Red Hat Enterprise Linux operating system must be configured so that all network connections associated with a communication session are terminated at the end of the session or after 15 minutes of inactivity from the user at a command prompt, except to fulfill documented and validated mission requirements.<VulnDiscussion>Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000163-GPOS-00072</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86847V-72223CCI-001133CCI-002361Configure the operating system to terminate all network connections associated with a communications session at the end of the session or after a period of inactivity. + +Create a script to enforce the inactivity timeout (for example /etc/profile.d/tmout.sh) such as: + +#!/bin/bash + +declare -xr TMOUT=900Verify the operating system terminates all network connections associated with a communications session at the end of the session or based on inactivity. + +Check the value of the system inactivity timeout with the following command: + +$ sudo grep -irw tmout /etc/profile /etc/bashrc /etc/profile.d + +etc/profile.d/tmout.sh:declare -xr TMOUT=900 + +If conflicting results are returned, this is a finding. +If "TMOUT" is not set to "900" or less to enforce session termination after inactivity, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-07-040170The Red Hat Enterprise Linux operating system must display the Standard Mandatory DoD Notice and Consent Banner immediately prior to, or as part of, remote access logon prompts.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the publicly accessible operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000024-GPOS-00007 , SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72225SV-86849CCI-000048CCI-000050CCI-001384CCI-001385CCI-001386CCI-001387CCI-001388Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via the ssh. + +Edit the "/etc/ssh/sshd_config" file to uncomment the banner keyword and configure it to point to a file that will contain the logon banner (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). An example configuration line is: + +banner /etc/issue + +Either create the file containing the banner or replace the text in the file with the Standard Mandatory DoD Notice and Consent Banner. The DoD required text is: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +The SSH service must be restarted for changes to take effect.Verify any publicly accessible connection to the operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the system. + +Check for the location of the banner file being used with the following command: + +# grep -i banner /etc/ssh/sshd_config + +banner /etc/issue + +This command will return the banner keyword and the name of the file that contains the ssh banner (in this case "/etc/issue"). + +If the line is commented out, this is a finding. + +View the file specified by the banner keyword to check that it matches the text of the Standard Mandatory DoD Notice and Consent Banner: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +If the system does not display a graphical logon banner or the banner does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding. + +If the text in the file does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-07-040180The Red Hat Enterprise Linux operating system must implement cryptography to protect the integrity of Lightweight Directory Access Protocol (LDAP) authentication communications.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the key used to generate the hash.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72227SV-86851CCI-001453Configure the operating system to implement cryptography to protect the integrity of LDAP authentication sessions. + +Add or modify the following line in "/etc/sssd/sssd.conf": + +ldap_id_use_start_tls = trueIf LDAP is not being utilized, this requirement is Not Applicable. + +Verify the operating system implements cryptography to protect the integrity of remote LDAP authentication sessions. + +To determine if LDAP is being used for authentication, use the following command: + +# systemctl status sssd.service +sssd.service - System Security Services Daemon +Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled) +Active: active (running) since Wed 2018-06-27 10:58:11 EST; 1h 50min ago + +If the "sssd.service" is "active", then LDAP is being used. + +Determine the "id_provider" the LDAP is currently using: + +# grep -i "id_provider" /etc/sssd/sssd.conf + +id_provider = ad + +If "id_provider" is set to "ad", this is Not Applicable. + +Ensure that LDAP is configured to use TLS by using the following command: + +# grep -i "start_tls" /etc/sssd/sssd.conf +ldap_id_use_start_tls = true + +If the "ldap_id_use_start_tls" option is not "true", this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-07-040190The Red Hat Enterprise Linux operating system must implement cryptography to protect the integrity of Lightweight Directory Access Protocol (LDAP) communications.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the key used to generate the hash.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72229SV-86853CCI-001453Configure the operating system to implement cryptography to protect the integrity of LDAP remote access sessions. + +Add or modify the following line in "/etc/sssd/sssd.conf": + +ldap_tls_reqcert = demandIf LDAP is not being utilized, this requirement is Not Applicable. + +Verify the operating system implements cryptography to protect the integrity of remote LDAP access sessions. + +To determine if LDAP is being used for authentication, use the following command: + +# systemctl status sssd.service +sssd.service - System Security Services Daemon +Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled) +Active: active (running) since Wed 2018-06-27 10:58:11 EST; 1h 50min ago + +If the "sssd.service" is "active", then LDAP is being used. + +Determine the "id_provider" the LDAP is currently using: + +# grep -i "id_provider" /etc/sssd/sssd.conf + +id_provider = ad + +If "id_provider" is set to "ad", this is Not Applicable. + +Verify the sssd service is configured to require the use of certificates: + +# grep -i tls_reqcert /etc/sssd/sssd.conf +ldap_tls_reqcert = demand + +If the "ldap_tls_reqcert" setting is missing, commented out, or does not exist, this is a finding. + +If the "ldap_tls_reqcert" setting is not set to "demand" or "hard", this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-07-040200The Red Hat Enterprise Linux operating system must implement cryptography to protect the integrity of Lightweight Directory Access Protocol (LDAP) communications.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the key used to generate the hash.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86855V-72231CCI-001453Configure the operating system to implement cryptography to protect the integrity of LDAP remote access sessions. + +Add or modify the following line in "/etc/sssd/sssd.conf": + +ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crtIf LDAP is not being utilized, this requirement is Not Applicable. + +Verify the operating system implements cryptography to protect the integrity of remote LDAP access sessions. + +To determine if LDAP is being used for authentication, use the following command: + +# systemctl status sssd.service +sssd.service - System Security Services Daemon +Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled) +Active: active (running) since Wed 2018-06-27 10:58:11 EST; 1h 50min ago + +If the "sssd.service" is "active", then LDAP is being used. + +Determine the "id_provider" that the LDAP is currently using: + +# grep -i "id_provider" /etc/sssd/sssd.conf + +id_provider = ad + +If "id_provider" is set to "ad", this is Not Applicable. + +Check the path to the X.509 certificate for peer authentication with the following command: + +# grep -i tls_cacert /etc/sssd/sssd.conf + +ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt + +Verify the "ldap_tls_cacert" option points to a file that contains the trusted CA certificate. + +If this file does not exist, or the option is commented out or missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040201The Red Hat Enterprise Linux operating system must implement virtual address space randomization.<VulnDiscussion>Address space layout randomization (ASLR) makes it more difficult for an attacker to predict the location of attack code he or she has introduced into a process's address space during an attempt at exploitation. Additionally, ASLR also makes it more difficult for an attacker to know the location of existing code in order to repurpose it using return-oriented programming (ROP) techniques.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-92521V-77825CCI-000366Configure the operating system implement virtual address space randomization. + +Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a config file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + kernel.randomize_va_space = 2 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the operating system implements virtual address space randomization. + + # grep -r kernel.randomize_va_space /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + kernel.randomize_va_space = 2 + +If "kernel.randomize_va_space" is not configured in the /etc/sysctl.conf file or or in any of the other sysctl.d directories, is commented out or does not have a value of "2", this is a finding. + +Check that the operating system implements virtual address space randomization with the following command: + + # /sbin/sysctl -a | grep kernel.randomize_va_space + kernel.randomize_va_space = 2 + +If "kernel.randomize_va_space" does not have a value of "2", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000423-GPOS-00187<GroupDescription></GroupDescription>RHEL-07-040300The Red Hat Enterprise Linux operating system must be configured so that all networked systems have SSH installed.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. + +This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, logical means (cryptography) do not have to be employed, and vice versa. + +Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000424-GPOS-00188, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86857V-72233CCI-002418CCI-002420CCI-002421CCI-002422Install SSH packages onto the host with the following commands: + +# yum install openssh-server.x86_64Check to see if sshd is installed with the following command: + +# yum list installed \*ssh\* +libssh2.x86_64 1.4.3-8.el7 @anaconda/7.1 +openssh.x86_64 6.6.1p1-11.el7 @anaconda/7.1 +openssh-server.x86_64 6.6.1p1-11.el7 @anaconda/7.1 + +If the "SSH server" package is not installed, this is a finding.SRG-OS-000423-GPOS-00187<GroupDescription></GroupDescription>RHEL-07-040310The Red Hat Enterprise Linux operating system must be configured so that all networked systems use SSH for confidentiality and integrity of transmitted and received information as well as information during preparation for transmission.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. + +This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. + +Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000424-GPOS-00188, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86859V-72235CCI-002418CCI-002420CCI-002421CCI-002422Configure the SSH service to automatically start after reboot with the following command: + +# systemctl enable sshd.serviceVerify SSH is loaded and active with the following command: + +# systemctl status sshd +sshd.service - OpenSSH server daemon +Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +Active: active (running) since Tue 2015-11-17 15:17:22 EST; 4 weeks 0 days ago +Main PID: 1348 (sshd) +CGroup: /system.slice/sshd.service +1053 /usr/sbin/sshd -D + +If "sshd" does not show a status of "active" and "running", this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>RHEL-07-040320The Red Hat Enterprise Linux operating system must be configured so that all network connections associated with SSH traffic are terminated at the end of the session or after 10 minutes of inactivity, except to fulfill documented and validated mission requirements.<VulnDiscussion>Terminating an idle SSH session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle SSH session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +Satisfies: SRG-OS-000163-GPOS-00072, SRG-OS-000279-GPOS-00109</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72237SV-86861CCI-001133CCI-002361Configure the operating system to automatically terminate a user session after inactivity time-outs have expired or at shutdown. + +Add the following line (or modify the line to have the required value) to the "/etc/ssh/sshd_config" file (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +ClientAliveInterval 600 + +The SSH service must be restarted for changes to take effect.Verify the operating system automatically terminates a user session after inactivity time-outs have expired. + +Check for the value of the "ClientAliveInterval" keyword with the following command: + +# grep -iw clientaliveinterval /etc/ssh/sshd_config + +ClientAliveInterval 600 + +If "ClientAliveInterval" is not configured, commented out, or has a value of "0", this is a finding. + +If "ClientAliveInterval" has a value that is greater than "600" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040330The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow authentication using RSA rhosts authentication.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72239SV-86863CCI-000366Configure the SSH daemon to not allow authentication using RSA rhosts authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "no": + +RhostsRSAAuthentication no + +The SSH service must be restarted for changes to take effect.Check the version of the operating system with the following command: + +# cat /etc/redhat-release + +If the release is 7.4 or newer this requirement is Not Applicable. + +Verify the SSH daemon does not allow authentication using RSA rhosts authentication. + +To determine how the SSH daemon's "RhostsRSAAuthentication" option is set, run the following command: + +# grep RhostsRSAAuthentication /etc/ssh/sshd_config +RhostsRSAAuthentication no + +If the value is returned as "yes", the returned line is commented out, or no output is returned, this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>RHEL-07-040340The Red Hat Enterprise Linux operating system must be configured so that all network connections associated with SSH traffic terminate after a period of inactivity.<VulnDiscussion>Terminating an idle SSH session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle SSH session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +Satisfies: SRG-OS-000163-GPOS-00072, SRG-OS-000279-GPOS-00109</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86865V-72241CCI-001133CCI-002361Configure the operating system to terminate automatically a user session after inactivity time-outs have expired or at shutdown. + +Add the following line (or modify the line to have the required value) to the "/etc/ssh/sshd_config" file (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +ClientAliveCountMax 0 + +The SSH service must be restarted for changes to take effect.Verify the operating system automatically terminates a user session after inactivity time-outs have expired. + +Check for the value of the "ClientAliveCountMax" keyword with the following command: + +# grep -i clientalivecount /etc/ssh/sshd_config +ClientAliveCountMax 0 + +If "ClientAliveCountMax" is not set to "0", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040350The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow authentication using rhosts authentication.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72243SV-86867CCI-000366Configure the SSH daemon to not allow authentication using known hosts authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "yes": + +IgnoreRhosts yesVerify the SSH daemon does not allow authentication using known hosts authentication. + +To determine how the SSH daemon's "IgnoreRhosts" option is set, run the following command: + +# grep -i IgnoreRhosts /etc/ssh/sshd_config + +IgnoreRhosts yes + +If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040360The Red Hat Enterprise Linux operating system must display the date and time of the last successful account logon upon an SSH logon.<VulnDiscussion>Providing users with feedback on when account accesses via SSH last occurred facilitates user recognition and reporting of unauthorized account use.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72245SV-86869CCI-000052Configure SSH to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/sshd" or in the "sshd_config" file used by the system ("/etc/ssh/sshd_config" will be used in the example) (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). + +Modify the "PrintLastLog" line in "/etc/ssh/sshd_config" to match the following: + +PrintLastLog yes + +The SSH service must be restarted for changes to "sshd_config" to take effect.Verify SSH provides users with feedback on when account accesses last occurred. + +Check that "PrintLastLog" keyword in the sshd daemon configuration file is used and set to "yes" with the following command: + +# grep -i printlastlog /etc/ssh/sshd_config +PrintLastLog yes + +If the "PrintLastLog" keyword is set to "no", is missing, or is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040370The Red Hat Enterprise Linux operating system must not permit direct logons to the root account using remote access via SSH.<VulnDiscussion>Even though the communications channel may be encrypted, an additional layer of security is gained by extending the policy of not logging on directly as root. In addition, logging on with a user-specific account provides individual accountability of actions performed on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72247SV-86871CCI-000366Configure SSH to stop users from logging on remotely as the root user. + +Edit the appropriate "/etc/ssh/sshd_config" file to uncomment or add the line for the "PermitRootLogin" keyword and set its value to "no" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +PermitRootLogin no + +The SSH service must be restarted for changes to take effect.Verify remote access using SSH prevents users from logging on directly as root. + +Check that SSH prevents users from logging on directly as root with the following command: + +# grep -i permitrootlogin /etc/ssh/sshd_config +PermitRootLogin no + +If the "PermitRootLogin" keyword is set to "yes", is missing, or is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040380The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow authentication using known hosts authentication.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72249SV-86873CCI-000366Configure the SSH daemon to not allow authentication using known hosts authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "yes": + +IgnoreUserKnownHosts yes + +The SSH service must be restarted for changes to take effect.Verify the SSH daemon does not allow authentication using known hosts authentication. + +To determine how the SSH daemon's "IgnoreUserKnownHosts" option is set, run the following command: + +# grep -i IgnoreUserKnownHosts /etc/ssh/sshd_config + +IgnoreUserKnownHosts yes + +If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding.SRG-OS-000074-GPOS-00042<GroupDescription></GroupDescription>RHEL-07-040390The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon is configured to only use the SSHv2 protocol.<VulnDiscussion>SSHv1 is an insecure implementation of the SSH protocol and has many well-known vulnerability exploits. Exploits of the SSH daemon could provide immediate root access to the system. + +Satisfies: SRG-OS-000074-GPOS-00042, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86875V-72251CCI-000197CCI-000366Remove all Protocol lines that reference version "1" in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). The "Protocol" line must be as follows: + +Protocol 2 + +The SSH service must be restarted for changes to take effect.Check the version of the operating system with the following command: + +# cat /etc/redhat-release + +If the release is 7.4 or newer this requirement is Not Applicable. + +Verify the SSH daemon is configured to only use the SSHv2 protocol. + +Check that the SSH daemon is configured to only use the SSHv2 protocol with the following command: + +# grep -i protocol /etc/ssh/sshd_config +Protocol 2 +#Protocol 1,2 + +If any protocol line other than "Protocol 2" is uncommented, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-07-040400The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon is configured to only use Message Authentication Codes (MACs) employing FIPS 140-2 approved cryptographic hash algorithms.<VulnDiscussion>DoD information systems are required to use FIPS 140-2 approved cryptographic hash functions. The only SSHv2 hash algorithm meeting this requirement is SHA. + +The system will attempt to use the first hash presented by the client that matches the server list. Listing the values "strongest to weakest" is a method to ensure the use of the strongest hash available to secure the SSH connection.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86877V-72253CCI-001453Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "MACs" keyword and set its value to "hmac-sha2-512" and/or "hmac-sha2-256" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +MACs hmac-sha2-512,hmac-sha2-256 + +The SSH service must be restarted for changes to take effect.Verify the SSH daemon is configured to only use MACs employing FIPS 140-2-approved hashes. + +Note: If RHEL-07-021350 is a finding, this is automatically a finding as the system cannot implement FIPS 140-2-approved cryptographic algorithms and hashes. + +Check that the SSH daemon is configured to only use MACs employing FIPS 140-2-approved hashes with the following command: + +# grep -i macs /etc/ssh/sshd_config +MACs hmac-sha2-512,hmac-sha2-256 + +If any hashes other than "hmac-sha2-512" or "hmac-sha2-256" are listed, the order differs from the example above, they are missing, or the returned line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040410The Red Hat Enterprise Linux operating system must be configured so that the SSH public host key files have mode 0644 or less permissive.<VulnDiscussion>If a public host key file is modified by an unauthorized user, the SSH service may be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72255SV-86879CCI-000366Note: SSH public key files may be found in other directories on the system depending on the installation. + +Change the mode of public host key files under "/etc/ssh" to "0644" with the following command: + +# chmod 0644 /etc/ssh/*.key.pubVerify the SSH public host key files have mode "0644" or less permissive. + +Note: SSH public key files may be found in other directories on the system depending on the installation. + +The following command will find all SSH public key files on the system: + +# find /etc/ssh -name '*.pub' -exec ls -lL {} \; + +-rw-r--r-- 1 root root 618 Nov 28 06:43 ssh_host_dsa_key.pub +-rw-r--r-- 1 root root 347 Nov 28 06:43 ssh_host_key.pub +-rw-r--r-- 1 root root 238 Nov 28 06:43 ssh_host_rsa_key.pub + +If any file has a mode more permissive than "0644", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040420The Red Hat Enterprise Linux operating system must be configured so that the SSH private host key files have mode 0640 or less permissive.<VulnDiscussion>If an unauthorized user obtains the private SSH host key file, the host could be impersonated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72257SV-86881CCI-000366Configure the mode of SSH private host key files under "/etc/ssh" to "0640" with the following command: + +# chmod 0640 /path/to/file/ssh_host*keyVerify the SSH private host key files have mode "0640" or less permissive. + +The following command will find all SSH private key files on the system and list their modes: + + # find / -name '*ssh_host*key' | xargs ls -lL + + -rw-r----- 1 root ssh_keys 112 Apr 1 11:59 ssh_host_dsa_key + -rw-r----- 1 root ssh_keys 202 Apr 1 11:59 ssh_host_key + -rw-r----- 1 root ssh_keys 352 Apr 1 11:59 ssh_host_rsa_key + +If any file has a mode more permissive than "0640", this is a finding.SRG-OS-000364-GPOS-00151<GroupDescription></GroupDescription>RHEL-07-040430The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not permit Generic Security Service Application Program Interface (GSSAPI) authentication unless needed.<VulnDiscussion>GSSAPI authentication is used to provide additional authentication mechanisms to applications. Allowing GSSAPI authentication through SSH exposes the system's GSSAPI to remote hosts, increasing the attack surface of the system. GSSAPI authentication must be disabled unless needed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72259SV-86883CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Uncomment the "GSSAPIAuthentication" keyword in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor) and set the value to "no": + +GSSAPIAuthentication no + +The SSH service must be restarted for changes to take effect. + +If GSSAPI authentication is required, it must be documented, to include the location of the configuration file, with the ISSO.Verify the SSH daemon does not permit GSSAPI authentication unless approved. + +Check that the SSH daemon does not permit GSSAPI authentication with the following command: + +# grep -i gssapiauth /etc/ssh/sshd_config +GSSAPIAuthentication no + +If the "GSSAPIAuthentication" keyword is missing, is set to "yes" and is not documented with the Information System Security Officer (ISSO), or the returned line is commented out, this is a finding.SRG-OS-000364-GPOS-00151<GroupDescription></GroupDescription>RHEL-07-040440The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not permit Kerberos authentication unless needed.<VulnDiscussion>Kerberos authentication for SSH is often implemented using Generic Security Service Application Program Interface (GSSAPI). If Kerberos is enabled through SSH, the SSH daemon provides a means of access to the system's Kerberos implementation. Vulnerabilities in the system's Kerberos implementation may then be subject to exploitation. To reduce the attack surface of the system, the Kerberos authentication mechanism within SSH must be disabled for systems not using this capability.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72261SV-86885CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Uncomment the "KerberosAuthentication" keyword in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor) and set the value to "no": + +KerberosAuthentication no + +The SSH service must be restarted for changes to take effect. + +If Kerberos authentication is required, it must be documented, to include the location of the configuration file, with the ISSO.Verify the SSH daemon does not permit Kerberos to authenticate passwords unless approved. + +Check that the SSH daemon does not permit Kerberos to authenticate passwords with the following command: + +# grep -i kerberosauth /etc/ssh/sshd_config +KerberosAuthentication no + +If the "KerberosAuthentication" keyword is missing, or is set to "yes" and is not documented with the Information System Security Officer (ISSO), or the returned line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040450The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon performs strict mode checking of home directory configuration files.<VulnDiscussion>If other users have access to modify user-specific SSH configuration files, they may be able to log on to the system as another user.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86887V-72263CCI-000366Uncomment the "StrictModes" keyword in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor) and set the value to "yes": + +StrictModes yes + +The SSH service must be restarted for changes to take effect.Verify the SSH daemon performs strict mode checking of home directory configuration files. + +The location of the "sshd_config" file may vary if a different daemon is in use. + +Inspect the "sshd_config" file with the following command: + +# grep -i strictmodes /etc/ssh/sshd_config + +StrictModes yes + +If "StrictModes" is set to "no", is missing, or the returned line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040460The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon uses privilege separation.<VulnDiscussion>SSH daemon privilege separation causes the SSH process to drop root privileges when not needed, which would decrease the impact of software vulnerabilities in the unprivileged section.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86889V-72265CCI-000366Uncomment the "UsePrivilegeSeparation" keyword in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor) and set the value to "sandbox" or "yes": + +UsePrivilegeSeparation sandbox + +The SSH service must be restarted for changes to take effect.Verify the SSH daemon performs privilege separation. + +Check that the SSH daemon performs privilege separation with the following command: + +# grep -i usepriv /etc/ssh/sshd_config + +UsePrivilegeSeparation sandbox + +If the "UsePrivilegeSeparation" keyword is set to "no", is missing, or the returned line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040470The Red Hat Enterprise Linux operating system must be configured so that the SSH daemon does not allow compression or only allows compression after successful authentication.<VulnDiscussion>If compression is allowed in an SSH connection prior to authentication, vulnerabilities in the compression software could result in compromise of the system from an unauthenticated connection, potentially with root privileges.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86891V-72267CCI-000366Uncomment the "Compression" keyword in "/etc/ssh/sshd_config" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor) on the system and set the value to "delayed" or "no": + + Compression no + +The SSH service must be restarted for changes to take effect.Note: For RHEL 7.4 and above, this requirement is not applicable. + +Verify the SSH daemon performs compression after a user successfully authenticates. + +Check that the SSH daemon performs compression after a user successfully authenticates with the following command: + + # grep -i compression /etc/ssh/sshd_config + Compression delayed + +If the "Compression" keyword is set to "yes", is missing, or the returned line is commented out, this is a finding.SRG-OS-000355-GPOS-00143<GroupDescription></GroupDescription>RHEL-07-040500The Red Hat Enterprise Linux operating system must, for networked systems, synchronize clocks with a server that is synchronized to one of the redundant United States Naval Observatory (USNO) time servers, a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS).<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. + +Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. + +Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). + +Satisfies: SRG-OS-000355-GPOS-00143, SRG-OS-000356-GPOS-00144</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72269SV-86893CCI-001891CCI-002046Edit the "/etc/ntp.conf" or "/etc/chrony.conf" file and add or update an entry to define "maxpoll" to "16" as follows: + +server 0.rhel.pool.ntp.org iburst maxpoll 16 + +If NTP was running and "maxpoll" was updated, the NTP service must be restarted: + +# systemctl restart ntpd + +If NTP was not running, it must be started: + +# systemctl start ntpd + +If "chronyd" was running and "maxpoll" was updated, the service must be restarted: + +# systemctl restart chronyd.service + +If "chronyd" was not running, it must be started: + +# systemctl start chronyd.serviceCheck to see if NTP is running in continuous mode: + +# ps -ef | grep ntp + +If NTP is not running, check to see if "chronyd" is running in continuous mode: + +# ps -ef | grep chronyd + +If NTP or "chronyd" is not running, this is a finding. + +If the NTP process is found, then check the "ntp.conf" file for the "maxpoll" option setting: + +# grep maxpoll /etc/ntp.conf + +server 0.rhel.pool.ntp.org iburst maxpoll 16 + +If the "maxpoll" option is set to a number greater than 16 or the line is commented out, this is a finding. + +If the file does not exist, check the "/etc/cron.daily" subdirectory for a crontab file controlling the execution of the "ntpd -q" command. + +# grep -i "ntpd -q" /etc/cron.daily/* +# ls -al /etc/cron.* | grep ntp + +ntp + +If a crontab file does not exist in the "/etc/cron.daily" that executes the "ntpd -q" command, this is a finding. + +If the "chronyd" process is found, then check the "chrony.conf" file for the "maxpoll" option setting: + +# grep maxpoll /etc/chrony.conf + +server 0.rhel.pool.ntp.org iburst maxpoll 16 + +If the option is not set or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040520The Red Hat Enterprise Linux operating system must enable an application firewall, if available.<VulnDiscussion>Firewalls protect computers from network attacks by blocking or limiting access to open network ports. Application firewalls limit which applications are allowed to communicate over the network. + +Satisfies: SRG-OS-000480-GPOS-00227, SRG-OS-000480-GPOS-00231, SRG-OS-000480-GPOS-00232</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86897V-72273CCI-000366Ensure the operating system's application firewall is enabled. + +Install the "firewalld" package, if it is not on the system, with the following command: + +# yum install firewalld + +Start the firewall via "systemctl" with the following command: + +# systemctl start firewalldVerify the operating system enabled an application firewall. + +Check to see if "firewalld" is installed with the following command: + +# yum list installed firewalld +firewalld-0.3.9-11.el7.noarch.rpm + +If the "firewalld" package is not installed, ask the System Administrator if another firewall application (such as iptables) is installed. + +If an application firewall is not installed, this is a finding. + +Check to see if the firewall is loaded and active with the following command: + +# systemctl status firewalld +firewalld.service - firewalld - dynamic firewall daemon + + Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) + Active: active (running) since Tue 2014-06-17 11:14:49 CEST; 5 days ago + +If "firewalld" does not show a status of "loaded" and "active", this is a finding. + +Check the state of the firewall: + +# firewall-cmd --state +running + +If "firewalld" does not show a state of "running", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040530The Red Hat Enterprise Linux operating system must display the date and time of the last successful account logon upon logon.<VulnDiscussion>Providing users with feedback on when account accesses last occurred facilitates user recognition and reporting of unauthorized account use.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86899V-72275CCI-000052Configure the operating system to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/postlogin". + +Add the following line to the top of "/etc/pam.d/postlogin": + +session required pam_lastlog.so showfailedVerify users are provided with feedback on when account accesses last occurred. + +Check that "pam_lastlog" is used and not silent with the following command: + +# grep pam_lastlog /etc/pam.d/postlogin +session required pam_lastlog.so showfailed + +If "pam_lastlog" is missing from "/etc/pam.d/postlogin" file, or the silent option is present, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040540The Red Hat Enterprise Linux operating system must not contain .shosts files.<VulnDiscussion>The .shosts files are used to configure host-based authentication for individual users or the system via SSH. Host-based authentication is not sufficient for preventing unauthorized access to the system, as it does not require interactive identification and authentication of a connection request, or for the use of two-factor authentication.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86901V-72277CCI-000366Remove any found ".shosts" files from the system. + +# rm /[path]/[to]/[file]/.shostsVerify there are no ".shosts" files on the system. + +Check the system for the existence of these files with the following command: + +# find / -name '*.shosts' + +If any ".shosts" files are found on the system, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040550The Red Hat Enterprise Linux operating system must not contain shosts.equiv files.<VulnDiscussion>The shosts.equiv files are used to configure host-based authentication for the system via SSH. Host-based authentication is not sufficient for preventing unauthorized access to the system, as it does not require interactive identification and authentication of a connection request, or for the use of two-factor authentication.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86903V-72279CCI-000366Remove any found "shosts.equiv" files from the system. + +# rm /[path]/[to]/[file]/shosts.equivVerify there are no "shosts.equiv" files on the system. + +Check the system for the existence of these files with the following command: + +# find / -name shosts.equiv + +If any "shosts.equiv" files are found on the system, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040600For Red Hat Enterprise Linux operating systems using DNS resolution, at least two name servers must be configured.<VulnDiscussion>To provide availability for name resolution services, multiple redundant name servers are mandated. A failure in name resolution could lead to the failure of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86905V-72281CCI-000366Configure the operating system to use two or more name servers for DNS resolution. + +Edit the "/etc/resolv.conf" file to uncomment or add the two or more "nameserver" option lines with the IP address of local authoritative name servers. If local host resolution is being performed, the "/etc/resolv.conf" file must be empty. An empty "/etc/resolv.conf" file can be created as follows: + +# echo -n > /etc/resolv.conf + +And then make the file immutable with the following command: + +# chattr +i /etc/resolv.conf + +If the "/etc/resolv.conf" file must be mutable, the required configuration must be documented with the Information System Security Officer (ISSO) and the file must be verified by the system file integrity tool.Determine whether the system is using local or DNS name resolution with the following command: + +# grep hosts /etc/nsswitch.conf +hosts: files dns + +If the DNS entry is missing from the host's line in the "/etc/nsswitch.conf" file, the "/etc/resolv.conf" file must be empty. + +Verify the "/etc/resolv.conf" file is empty with the following command: + +# ls -al /etc/resolv.conf +-rw-r--r-- 1 root root 0 Aug 19 08:31 resolv.conf + +If local host authentication is being used and the "/etc/resolv.conf" file is not empty, this is a finding. + +If the DNS entry is found on the host's line of the "/etc/nsswitch.conf" file, verify the operating system is configured to use two or more name servers for DNS resolution. + +Determine the name servers used by the system with the following command: + +# grep nameserver /etc/resolv.conf +nameserver 192.168.1.2 +nameserver 192.168.1.3 + +If less than two lines are returned that are not commented out, this is a finding. + +Verify that the "/etc/resolv.conf" file is immutable with the following command: + +# sudo lsattr /etc/resolv.conf + +----i----------- /etc/resolv.conf + +If the file is mutable and has not been documented with the Information System Security Officer (ISSO), this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040610The Red Hat Enterprise Linux operating system must not forward Internet Protocol version 4 (IPv4) source-routed packets.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when IPv4 forwarding is enabled and the system is functioning as a router.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72283SV-86907CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.all.accept_source_route = 0 + +Issue the following command to make the changes take effect: + + # sysctl -systemVerify the system does not accept IPv4 source-routed packets. + + # grep -r net.ipv4.conf.all.accept_source_route /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv4.conf.all.accept_source_route = 0 + +If "net.ipv4.conf.all.accept_source_route" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "0", this is a finding. + +Check that the operating system implements the accept source route variable with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.all.accept_source_route + net.ipv4.conf.all.accept_source_route = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040611The Red Hat Enterprise Linux operating system must use a reverse-path filter for IPv4 network traffic when possible on all interfaces.<VulnDiscussion>Enabling reverse path filtering drops packets with source addresses that should not have been able to be received on the interface they were received on. It should not be used on systems that are routers for complicated networks, but is helpful for end hosts and routers serving small networks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-92251SV-102353CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.all.rp_filter = 1 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system uses a reverse-path filter for IPv4: + + # grep -r net.ipv4.conf.all.rp_filter /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv4.conf.all.rp_filter = 1 + +If "net.ipv4.conf.all.rp_filter" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "1", this is a finding. + +Check that the operating system implements the accept source route variable with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.all.rp_filter + net.ipv4.conf.all.rp_filter = 1 + +If the returned line does not have a value of "1", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040612The Red Hat Enterprise Linux operating system must use a reverse-path filter for IPv4 network traffic when possible by default.<VulnDiscussion>Enabling reverse path filtering drops packets with source addresses that should not have been able to be received on the interface they were received on. It should not be used on systems which are routers for complicated networks, but is helpful for end hosts and routers serving small networks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-92253SV-102355CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.default.rp_filter = 1 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system uses a reverse-path filter for IPv4: + + # grep -r net.ipv4.conf.default.rp_filter /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv4.conf.default.rp_filter = 1 + +If "net.ipv4.conf.default.rp_filter" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "1", this is a finding. + +Check that the operating system implements the accept source route variable with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.default.rp_filter + net.ipv4.conf.default.rp_filter = 1 + +If the returned line does not have a value of "1", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040620The Red Hat Enterprise Linux operating system must not forward Internet Protocol version 4 (IPv4) source-routed packets by default.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when IPv4 forwarding is enabled and the system is functioning as a router.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72285SV-86909CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.default.accept_source_route = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system does not accept IPv4 source-routed packets by default. + + # grep -r net.ipv4.conf.default.accept_source_route /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv4.conf.default.accept_source_route = 0 + +If "net.ipv4.conf.default.accept_source_route" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "0", this is a finding. + +Check that the operating system implements the accept source route variable with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.default.accept_source_route + net.ipv4.conf.default.accept_source_route = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040630The Red Hat Enterprise Linux operating system must not respond to Internet Protocol version 4 (IPv4) Internet Control Message Protocol (ICMP) echoes sent to a broadcast address.<VulnDiscussion>Responding to broadcast (ICMP) echoes facilitates network mapping and provides a vector for amplification attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72287SV-86911CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.icmp_echo_ignore_broadcasts = 1 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system does not respond to IPv4 ICMP echoes sent to a broadcast address. + + # grep -r net.ipv4.icmp_echo_ignore_broadcasts /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + +If "net.ipv4.icmp_echo_ignore_broadcasts" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "1", this is a finding. + +Check that the operating system implements the "icmp_echo_ignore_broadcasts" variable with the following command: + + # /sbin/sysctl -a | grep net.ipv4.icmp_echo_ignore_broadcasts + net.ipv4.icmp_echo_ignore_broadcasts = 1 + +If the returned line does not have a value of "1", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040640The Red Hat Enterprise Linux operating system must prevent Internet Protocol version 4 (IPv4) Internet Control Message Protocol (ICMP) redirect messages from being accepted.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86913V-72289CCI-000366Set the system to not accept IPv4 ICMP redirect messages by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.default.accept_redirects = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system will not accept IPv4 ICMP redirect messages. + + # grep -r net.ipv4.conf.default.accept_redirects /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + +If "net.ipv4.conf.default.accept_redirects" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "0", this is a finding. + +Check that the operating system implements the value of the "accept_redirects" variables with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.default.accept_redirects + net.ipv4.conf.default.accept_redirects = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040641The Red Hat Enterprise Linux operating system must ignore Internet Protocol version 4 (IPv4) Internet Control Message Protocol (ICMP) redirect messages.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87827V-73175CCI-000366Set the system to ignore IPv4 ICMP redirect messages by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.all.accept_redirects = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system ignores IPv4 ICMP redirect messages. + + # grep -r net.ipv4.conf.all.accept_redirects /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + +If "net.ipv4.conf.all.accept_redirects" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "0", this is a finding. + +Check that the operating system implements the "accept_redirects" variables with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.all.accept_redirects + net.ipv4.conf.all.accept_redirects = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040650The Red Hat Enterprise Linux operating system must not allow interfaces to perform Internet Protocol version 4 (IPv4) Internet Control Message Protocol (ICMP) redirects by default.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages contain information from the system's route table, possibly revealing portions of the network topology.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72291SV-86915CCI-000366Configure the system to not allow interfaces to perform IPv4 ICMP redirects by default. + +Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.default.send_redirects = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system does not allow interfaces to perform IPv4 ICMP redirects by default. + + # grep -r net.ipv4.conf.default.send_redirects /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + +If "net.ipv4.conf.default.send_redirects" is not configured in the "/etc/sysctl.conf" file or in any of the other sysctl.d directories, is commented out or does not have a value of "0", this is a finding. + +Check that the operating system implements the "default send_redirects" variables with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.default.send_redirects + net.ipv4.conf.default.send_redirects = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040660The Red Hat Enterprise Linux operating system must not send Internet Protocol version 4 (IPv4) Internet Control Message Protocol (ICMP) redirects.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages contain information from the system's route table, possibly revealing portions of the network topology.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72293SV-86917CCI-000366Configure the system to not allow interfaces to perform IPv4 ICMP redirects. + +Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.conf.all.send_redirects = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system does not send IPv4 ICMP redirect messages. + + # grep -r net.ipv4.conf.all.send_redirects /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + +If "net.ipv4.conf.all.send_redirects" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out or does not have a value of "0", this is a finding. + +Check that the operating system implements the "all send_redirects" variables with the following command: + + # /sbin/sysctl -a | grep net.ipv4.conf.all.send_redirects + net.ipv4.conf.all.send_redirects = 0 + +If the returned line does not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040670Network interfaces configured on the Red Hat Enterprise Linux operating system must not be in promiscuous mode.<VulnDiscussion>Network interfaces in promiscuous mode allow for the capture of all network traffic visible to the system. If unauthorized individuals can access these applications, it may allow then to collect information such as logon IDs, passwords, and key exchanges between systems. + +If the system is being used to perform a network troubleshooting function, the use of these tools must be documented with the Information System Security Officer (ISSO) and restricted to only authorized personnel.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72295SV-86919CCI-000366Configure network interfaces to turn off promiscuous mode unless approved by the ISSO and documented. + +Set the promiscuous mode of an interface to off with the following command: + +#ip link set dev <devicename> multicast off promisc offVerify network interfaces are not in promiscuous mode unless approved by the ISSO and documented. + +Check for the status with the following command: + +# ip link | grep -i promisc + +If network interfaces are found on the system in promiscuous mode and their use has not been approved by the ISSO and documented, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040680The Red Hat Enterprise Linux operating system must be configured to prevent unrestricted mail relaying.<VulnDiscussion>If unrestricted mail relaying is permitted, unauthorized senders could use this host as a mail relay for the purpose of sending spam or other unauthorized activity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86921V-72297CCI-000366If "postfix" is installed, modify the "/etc/postfix/main.cf" file to restrict client connections to the local network with the following command: + +# postconf -e 'smtpd_client_restrictions = permit_mynetworks,reject'Verify the system is configured to prevent unrestricted mail relaying. + +Determine if "postfix" is installed with the following commands: + +# yum list installed postfix +postfix-2.6.6-6.el7.x86_64.rpm + +If postfix is not installed, this is Not Applicable. + +If postfix is installed, determine if it is configured to reject connections from unknown or untrusted networks with the following command: + +# postconf -n smtpd_client_restrictions +smtpd_client_restrictions = permit_mynetworks, reject + +If the "smtpd_client_restrictions" parameter contains any entries other than "permit_mynetworks" and "reject", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040690The Red Hat Enterprise Linux operating system must not have a File Transfer Protocol (FTP) server package installed unless needed.<VulnDiscussion>The FTP service provides an unencrypted remote access that does not provide for the confidentiality and integrity of user passwords or the remote session. If a privileged user were to log on using this service, the privileged user password could be compromised. SSH or other encrypted file transfer methods must be used in place of this service.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86923V-72299CCI-000366Document the "vsftpd" package with the ISSO as an operational requirement or remove it from the system with the following command: + +# yum remove vsftpdVerify an FTP server has not been installed on the system. + +Check to see if an FTP server has been installed with the following commands: + +# yum list installed vsftpd + + vsftpd-3.0.2.el7.x86_64.rpm + +If "vsftpd" is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040700The Red Hat Enterprise Linux operating system must not have the Trivial File Transfer Protocol (TFTP) server package installed if not required for operational support.<VulnDiscussion>If TFTP is required for operational support (such as the transmission of router configurations) its use must be documented with the Information System Security Officer (ISSO), restricted to only authorized personnel, and have access control rules established.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86925V-72301CCI-000318CCI-000368CCI-001812CCI-001813CCI-001814Remove the TFTP package from the system with the following command: + +# yum remove tftp-serverVerify a TFTP server has not been installed on the system. + +Check to see if a TFTP server has been installed with the following command: + +# yum list installed tftp-server +tftp-server-0.49-9.el7.x86_64.rpm + +If TFTP is installed and the requirement for TFTP is not documented with the ISSO, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040710The Red Hat Enterprise Linux operating system must be configured so that remote X connections are disabled except to fulfill documented and validated mission requirements.<VulnDiscussion>The security risk of using X11 forwarding is that the client's X11 display server may be exposed to attack when the SSH client requests forwarding. A system administrator may have a stance in which they want to protect clients that may expose themselves to attack by unwittingly requesting X11 forwarding, which can warrant a ''no'' setting. +X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user's X11 authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring if the ForwardX11Trusted option is also enabled. +If X11 services are not required for the system's intended function, they should be disabled or restricted as appropriate to the system’s needs.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86927V-72303CCI-000366Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11Forwarding" keyword and set its value to "no" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +X11Forwarding no + +The SSH service must be restarted for changes to take effect: + +# systemctl restart sshdDetermine if X11Forwarding is disabled with the following command: + +# grep -i x11forwarding /etc/ssh/sshd_config | grep -v "^#" + +X11Forwarding no + +If the "X11Forwarding" keyword is set to "yes" and is not documented with the Information System Security Officer (ISSO) as an operational requirement or is missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040720The Red Hat Enterprise Linux operating system must be configured so that if the Trivial File Transfer Protocol (TFTP) server is required, the TFTP daemon is configured to operate in secure mode.<VulnDiscussion>Restricting TFTP to a specific directory prevents remote users from copying, transferring, or overwriting system files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86929V-72305CCI-000366Configure the TFTP daemon to operate in secure mode by adding the following line to "/etc/xinetd.d/tftp" (or modify the line to have the required value): + +server_args = -s /var/lib/tftpbootVerify the TFTP daemon is configured to operate in secure mode. + +Check to see if a TFTP server has been installed with the following commands: + +# yum list installed tftp-server +tftp-server.x86_64 x.x-x.el7 rhel-7-server-rpms + +If a TFTP server is not installed, this is Not Applicable. + +If a TFTP server is installed, check for the server arguments with the following command: + +# grep server_args /etc/xinetd.d/tftp +server_args = -s /var/lib/tftpboot + +If the "server_args" line does not have a "-s" option and a subdirectory is not assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040730The Red Hat Enterprise Linux operating system must not have a graphical display manager installed unless approved.<VulnDiscussion>Internet services that are not required for system or application processes must not be active to decrease the attack surface of the system. Graphical display managers have a long history of security vulnerabilities and must not be used unless approved and documented.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86931V-72307CCI-000366Document the requirement for a graphical user interface with the ISSO or reinstall the operating system without the graphical user interface. If reinstallation is not feasible, then continue with the following procedure: + +Open an SSH session and enter the following commands: + +$ sudo systemctl set-default multi-user.target + +$ sudo yum remove xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-server-utils + +A reboot is required for the changes to take effect.Verify the system is configured to boot to the command line: + +$ systemctl get-default +multi-user.target + +If the system default target is not set to "multi-user.target" and the Information System Security Officer (ISSO) lacks a documented requirement for a graphical user interface, this is a finding. + +Verify a graphical user interface is not installed: + +$ rpm -qa | grep xorg | grep server + +Ask the System Administrator if use of a graphical user interface is an operational requirement. + +If the use of a graphical user interface on the system is not documented with the ISSO, this is a finding. +SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040740The Red Hat Enterprise Linux operating system must not be performing packet forwarding unless the system is a router.<VulnDiscussion>Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86933V-72309CCI-000366Set the system to the required kernel parameter by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv4.ip_forward = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemVerify the system is not performing packet forwarding, unless the system is a router. + + # grep -r net.ipv4.ip_forward /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv4.ip_forward = 0 + +If "net.ipv4.ip_forward" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out, or does not have a value of "0", this is a finding. + +Check that the operating system does not implement IP forwarding using the following command: + + # /sbin/sysctl -a | grep net.ipv4.ip_forward + net.ipv4.ip_forward = 0 + +If IP forwarding value is "1" and the system is hosting any application, database, or web servers, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040750The Red Hat Enterprise Linux operating system must be configured so that the Network File System (NFS) is configured to use RPCSEC_GSS.<VulnDiscussion>When an NFS server is configured to use RPCSEC_SYS, a selected userid and groupid are used to handle requests from the remote user. The userid and groupid could mistakenly or maliciously be set incorrectly. The RPCSEC_GSS method of authentication uses certificates on the server and client systems to more securely authenticate the remote mount request.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86935V-72311CCI-000366Update the "/etc/fstab" file so the option "sec" is defined for each NFS mounted file system and the "sec" option does not have the "sys" setting. + +Ensure the "sec" option is defined as "krb5:krb5i:krb5p".Verify "AUTH_GSS" is being used to authenticate NFS mounts. + +To check if the system is importing an NFS file system, look for any entries in the "/etc/fstab" file that have a file system type of "nfs" with the following command: + +# cat /etc/fstab | grep nfs +192.168.21.5:/mnt/export /data1 nfs4 rw,sync ,soft,sec=krb5:krb5i:krb5p + +If the system is mounting file systems via NFS and has the sec option without the "krb5:krb5i:krb5p" settings, the "sec" option has the "sys" setting, or the "sec" option is missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040800SNMP community strings on the Red Hat Enterprise Linux operating system must be changed from the default.<VulnDiscussion>Whether active or not, default Simple Network Management Protocol (SNMP) community strings must be changed to maintain security. If the service is running with the default authenticators, anyone can gather data about the system and the network and use the information to potentially compromise the integrity of the system or network(s). It is highly recommended that SNMP version 3 user authentication and message encryption be used in place of the version 2 community strings.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86937V-72313CCI-000366If the "/etc/snmp/snmpd.conf" file exists, modify any lines that contain a community string value of "public" or "private" to another string value.Verify that a system using SNMP is not using default community strings. + +Check to see if the "/etc/snmp/snmpd.conf" file exists with the following command: + +# ls -al /etc/snmp/snmpd.conf + -rw------- 1 root root 52640 Mar 12 11:08 snmpd.conf + +If the file does not exist, this is Not Applicable. + +If the file does exist, check for the default community strings with the following commands: + +# grep public /etc/snmp/snmpd.conf +# grep private /etc/snmp/snmpd.conf + +If either of these commands returns any output, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040810The Red Hat Enterprise Linux operating system access control program must be configured to grant or deny system access to specific hosts and services.<VulnDiscussion>If the systems access control program is not configured with appropriate rules for allowing and denying access to system network resources, services may be accessible to unauthorized hosts.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86939V-72315CCI-000366If "firewalld" is installed and active on the system, configure rules for allowing specific services and hosts. + +If "firewalld" is not "active", enable "tcpwrappers" by configuring "/etc/hosts.allow" and "/etc/hosts.deny" to allow or deny access to specific hosts.If the "firewalld" package is not installed, ask the System Administrator (SA) if another firewall application (such as iptables) is installed. If an application firewall is not installed, this is a finding. + +Verify the system's access control program is configured to grant or deny system access to specific hosts. + +Check to see if "firewalld" is active with the following command: + +# systemctl status firewalld +firewalld.service - firewalld - dynamic firewall daemon +Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) +Active: active (running) since Sun 2014-04-20 14:06:46 BST; 30s ago + +If "firewalld" is active, check to see if it is configured to grant or deny access to specific hosts or services with the following commands: + +# firewall-cmd --get-default-zone +public + +# firewall-cmd --list-all --zone=public +public (active) +target: default +icmp-block-inversion: no +interfaces: eth0 +sources: +services: mdns ssh +ports: +protocols: +masquerade: no +forward-ports: +icmp-blocks: + +If "firewalld" is not active, determine whether "tcpwrappers" is being used by checking whether the "hosts.allow" and "hosts.deny" files are empty with the following commands: + +# ls -al /etc/hosts.allow +rw-r----- 1 root root 9 Aug 2 23:13 /etc/hosts.allow + +# ls -al /etc/hosts.deny +-rw-r----- 1 root root 9 Apr 9 2007 /etc/hosts.deny + +If "firewalld" and "tcpwrappers" are not installed, configured, and active, ask the SA if another access control program (such as iptables) is installed and active. Ask the SA to show that the running configuration grants or denies access to specific hosts or services. + +If "firewalld" is active and is not configured to grant access to specific hosts or "tcpwrappers" is not configured to grant or deny access to specific hosts, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040820The Red Hat Enterprise Linux operating system must not have unauthorized IP tunnels configured.<VulnDiscussion>IP tunneling mechanisms can be used to bypass network filtering. If tunneling is required, it must be documented with the Information System Security Officer (ISSO).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72317SV-86941CCI-000366Remove all unapproved tunnels from the system, or document them with the ISSO.Verify the system does not have unauthorized IP tunnels configured. + +Check to see if "libreswan" is installed with the following command: + +# yum list installed libreswan +libreswan.x86-64 3.20-5.el7_4 + +If "libreswan" is installed, check to see if the "IPsec" service is active with the following command: + +# systemctl status ipsec +ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec +Loaded: loaded (/usr/lib/systemd/system/ipsec.service; disabled) +Active: inactive (dead) + +If the "IPsec" service is active, check to see if any tunnels are configured in "/etc/ipsec.conf" and "/etc/ipsec.d/" with the following commands: + +# grep -iw conn /etc/ipsec.conf /etc/ipsec.d/*.conf + +If there are indications that a "conn" parameter is configured for a tunnel, ask the System Administrator if the tunnel is documented with the ISSO. + +If "libreswan" is installed, "IPsec" is active, and an undocumented tunnel is active, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040830The Red Hat Enterprise Linux operating system must not forward IPv6 source-routed packets.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when IPv6 forwarding is enabled and the system is functioning as a router.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72319SV-86943CCI-000366Set the system to the required kernel parameter, if IPv6 is enabled, by adding the following line to "/etc/sysctl.conf" or a configuration file in the /etc/sysctl.d/ directory (or modify the line to have the required value): + + net.ipv6.conf.all.accept_source_route = 0 + +Issue the following command to make the changes take effect: + + # sysctl --systemIf IPv6 is not enabled, the key will not exist, and this is Not Applicable. + +Verify the system does not accept IPv6 source-routed packets. + + # grep -r net.ipv6.conf.all.accept_source_route /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + net.ipv6.conf.all.accept_source_route = 0 + +If "net.ipv6.conf.all.accept_source_route" is not configured in the /etc/sysctl.conf file or in any of the other sysctl.d directories, is commented out or does not have a value of "0", this is a finding. + +Check that the operating system implements the accept source route variable with the following command: + + # /sbin/sysctl -a | grep net.ipv6.conf.all.accept_source_route + net.ipv6.conf.all.accept_source_route = 0 + +If the returned lines do not have a value of "0", this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-07-041001The Red Hat Enterprise Linux operating system must have the required packages for multifactor authentication installed.<VulnDiscussion>Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. + +A privileged account is defined as an information system account with authorizations of a privileged user. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management). + +Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000375-GPOS-00161, SRG-OS-000375-GPOS-00162</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-87041V-72417CCI-001948CCI-001953CCI-001954Configure the operating system to implement multifactor authentication by installing the required packages. + +Install the pam_pkcs11 package with the following command: + +# yum install pam_pkcs11Verify the operating system has the packages required for multifactor authentication installed. + +Check for the presence of the packages required to support multifactor authentication with the following commands: + +# yum list installed pam_pkcs11 +pam_pkcs11-0.6.2-14.el7.noarch.rpm + +If the "pam_pkcs11" package is not installed, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-07-041002The Red Hat Enterprise Linux operating system must implement multifactor authentication for access to privileged accounts via pluggable authentication modules (PAM).<VulnDiscussion>Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. + +A privileged account is defined as an information system account with authorizations of a privileged user. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management). + +Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000375-GPOS-00161, SRG-OS-000375-GPOS-00162</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72427SV-87051CCI-001948CCI-001953CCI-001954Configure the operating system to implement multifactor authentication for remote access to privileged accounts via pluggable authentication modules (PAM). + +Modify all of the services lines in "/etc/sssd/sssd.conf" or in configuration files found under "/etc/sssd/conf.d" to include pam.Verify the operating system implements multifactor authentication for remote access to privileged accounts via pluggable authentication modules (PAM). + +Check the "/etc/sssd/sssd.conf" file for the authentication services that are being used with the following command: + +# grep services /etc/sssd/sssd.conf /etc/sssd/conf.d/*.conf + +services = nss, pam + +If the "pam" service is not present on all "services" lines, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-07-041003The Red Hat Enterprise Linux operating system must implement certificate status checking for PKI authentication.<VulnDiscussion>Using an authentication device, such as a CAC or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD Common Access Card. + +A privileged account is defined as an information system account with authorizations of a privileged user. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management). + +Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000375-GPOS-00161, SRG-OS-000375-GPOS-00162</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72433SV-87057CCI-001948CCI-001953CCI-001954Configure the operating system to do certificate status checking for PKI authentication. + +Modify all of the "cert_policy" lines in "/etc/pam_pkcs11/pam_pkcs11.conf" to include "ocsp_on".Verify the operating system implements certificate status checking for PKI authentication. + +Check to see if Online Certificate Status Protocol (OCSP) is enabled on the system with the following command: + +# grep cert_policy /etc/pam_pkcs11/pam_pkcs11.conf | grep -v "^#" + +cert_policy = ca, ocsp_on, signature; +cert_policy = ca, ocsp_on, signature; +cert_policy = ca, ocsp_on, signature; + +There should be at least three lines returned. + +If "ocsp_on" is not present in all uncommented "cert_policy" lines in "/etc/pam_pkcs11/pam_pkcs11.conf", this is a finding.SRG-OS-000424-GPOS-00188<GroupDescription></GroupDescription>RHEL-07-041010The Red Hat Enterprise Linux operating system must be configured so that all wireless network adapters are disabled.<VulnDiscussion>The use of wireless networking can introduce many different attack vectors into the organization's network. Common attack vectors such as malicious association and ad hoc networks will allow an attacker to spoof a wireless access point (AP), allowing validated systems to connect to the malicious AP and enabling the attacker to monitor and record network traffic. These malicious APs can also serve to create a man-in-the-middle attack or be used to create a denial of service to valid network resources.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-73177SV-87829CCI-001443CCI-001444CCI-002418Configure the system to disable all wireless network interfaces with the following command: + +#nmcli radio wifi offVerify that there are no wireless interfaces configured on the system. + +This is N/A for systems that do not have wireless network adapters. + +Check for the presence of active wireless interfaces with the following command: + +# nmcli device +DEVICE TYPE STATE +eth0 ethernet connected +wlp3s0 wifi disconnected +lo loopback unmanaged + +If a wireless interface is configured and its use on the system is not documented with the Information System Security Officer (ISSO), this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010020The Red Hat Enterprise Linux operating system must be configured so that the cryptographic hash of system files and commands matches vendor values.<VulnDiscussion>Without cryptographic integrity protections, system command and files can be altered by unauthorized users without detection. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the key used to generate the hash.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899SV-86479V-71855CCI-001749Run the following command to determine which package owns the file: + +# rpm -qf <filename> + +The package can be reinstalled from a yum repository using the command: + +# sudo yum reinstall <packagename> + +Alternatively, the package can be reinstalled from trusted media using the command: + +# sudo rpm -Uvh <packagename>Verify the cryptographic hash of system files and commands match the vendor values. + +Check the cryptographic hash of system files and commands with the following command: + +Note: System configuration files (indicated by a "c" in the second column) are expected to change over time. Unusual modifications should be investigated through the system audit log. + +# rpm -Va --noconfig | grep '^..5' + +If there is any output from the command for system files or binaries, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-020019The Red Hat Enterprise Linux operating system must implement the Endpoint Security for Linux Threat Prevention tool.<VulnDiscussion>Adding endpoint security tools can provide the capability to automatically take actions in response to malicious behavior, which can provide additional agility in reacting to network threats. These tools also often include a reporting capability to provide network awareness of the system, which may not otherwise exist in an organization's systems management regime.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-92255SV-102357CCI-001263CCI-000366Install and enable the latest McAfee ENSLTP package.Per OPORD 16-0080, the preferred endpoint security tool is McAfee Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Procedure: +Check that the following package has been installed: + +# rpm -qa | grep -i mcafeetp + +If the "mcafeetp" package is not installed, this is a finding. + +Verify that the daemon is running: + +# ps -ef | grep -i mfetpd + +If the daemon is not running, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-032000The Red Hat Enterprise Linux operating system must use a virus scan program.<VulnDiscussion>Virus scanning software can be used to protect a system from penetration from computer viruses and to limit their spread through intermediate systems. + +The virus scanning software should be configured to perform scans dynamically on accessed files. If this capability is not available, the system must be configured to scan, at a minimum, all altered files on the system on a daily basis. + +If the system processes inbound SMTP mail, the virus scanner must be configured to scan all received mail.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-72213SV-86837CCI-001668CCI-000366Install an antivirus solution on the system.Verify an anti-virus solution is installed on the system. The anti-virus solution may be bundled with an approved host-based security solution. + +If there is no anti-virus solution installed on the system, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010062The Red Hat Enterprise Linux operating system must prevent a user from overriding the screensaver lock-enabled setting for the graphical user interface.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. + +The ability to enable/disable a session lock is given to the user by default. Disabling the user’s ability to disengage the graphical user interface session lock provides the assurance that all sessions will lock after the specified period of time.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-78995SV-93701CCI-000057Configure the operating system to prevent a user from overriding a screensaver lock after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + + # touch /etc/dconf/db/local.d/locks/session + +Add the setting to lock the screensaver lock-enabled setting: + + /org/gnome/desktop/screensaver/lock-enabledVerify the operating system prevents a user from overriding the screensaver lock-enabled setting for the graphical user interface. + +Note: If the system does not have GNOME installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + # grep system-db /etc/dconf/profile/user + system-db:local + +Check for the lock-enabled setting with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + + # grep -i lock-enabled /etc/dconf/db/local.d/locks/* + /org/gnome/desktop/screensaver/lock-enabled + +If the command does not return a result, this is a finding.SRG-OS-000114-GPOS-00059<GroupDescription></GroupDescription>RHEL-07-020111The Red Hat Enterprise Linux operating system must disable the graphical user interface automounter unless required.<VulnDiscussion>Automatically mounting file systems permits easy introduction of unknown devices, thereby facilitating malicious activity. + +Satisfies: SRG-OS-000114-GPOS-00059, SRG-OS-000378-GPOS-00163, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899V-100023SV-109127CCI-000366CCI-000778CCI-001958Configure the graphical user interface to disable the ability to automount devices. + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + +Create or edit the /etc/dconf/db/local.d/00-No-Automount file and add the following: + +[org/gnome/desktop/media-handling] + +automount=false + +automount-open=false + +autorun-never=true + +Create or edit the /etc/dconf/db/local.d/locks/00-No-Automount file and add the following: +/org/gnome/desktop/media-handling/automount + +/org/gnome/desktop/media-handling/automount-open + +/org/gnome/desktop/media-handling/autorun-never + +Run the following command to update the database: + +# dconf updateNote: If the operating system does not have a graphical user interface installed, this requirement is Not Applicable. + +Verify the operating system disables the ability to automount devices in a graphical user interface. + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + +Check to see if automounter service is disabled with the following commands: +# cat /etc/dconf/db/local.d/00-No-Automount + +[org/gnome/desktop/media-handling] + +automount=false + +automount-open=false + +autorun-never=true + +If the output does not match the example above, this is a finding. + +# cat /etc/dconf/db/local.d/locks/00-No-Automount + +/org/gnome/desktop/media-handling/automount + +/org/gnome/desktop/media-handling/automount-open + +/org/gnome/desktop/media-handling/autorun-never + +If the output does not match the example, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-021031The Red Hat Enterprise Linux operating system must be configured so that all world-writable directories are owned by root, sys, bin, or an application user.<VulnDiscussion>If a world-writable directory is not owned by root, sys, bin, or an application User Identifier (UID), unauthorized users may be able to modify files created by others. + +The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage, (e.g., /tmp), and for directories requiring global read/write access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000366All directories in local partitions which are world-writable should be owned by root or another system account. If any world-writable directories are not owned by a system account, this should be investigated. Following this, the files should be deleted or assigned to an appropriate group.The following command will discover and print world-writable directories that are not owned by a system account, assuming only system accounts have a UID lower than 1000. Run it once for each local partition [PART]: + +# find [PART] -xdev -type d -perm -0002 -uid +999 -print + +If there is output, this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-07-910055The Red Hat Enterprise Linux operating system must protect audit information from unauthorized read, modification, or deletion.<VulnDiscussion>If audit information were to become compromised, then forensic analysis and discovery of the true source of potentially malicious system activity is impossible to achieve. + +To ensure the veracity of audit information, the operating system must protect audit information from unauthorized modification. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit information system activity. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029, SRG-OS-000206-GPOS-00084</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000162CCI-000163CCI-000164CCI-001314Change the mode of the audit log files with the following command: + +# chmod 0600 [audit_file] + +Change the owner and group owner of the audit log files with the following command: + +# chown root:root [audit_file]Verify the operating system audit records have proper permissions and ownership. + +List the full permissions and ownership of the audit log files with the following command. + +# ls -la /var/log/audit +total 4512 +drwx------. 2 root root 23 Apr 25 16:53 . +drwxr-xr-x. 17 root root 4096 Aug 9 13:09 .. +-rw-------. 1 root root 8675309 Aug 9 12:54 audit.log + +Audit logs must be mode 0600 or less permissive. +If any are more permissive, this is a finding. + +The owner and group owner of all audit log files must both be "root". If any other owner or group owner is listed, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-040711The Red Hat Enterprise Linux operating system SSH daemon must prevent remote hosts from connecting to the proxy display.<VulnDiscussion>When X11 forwarding is enabled, there may be additional exposure to the server and client displays if the sshd proxy display is configured to listen on the wildcard address. By default, sshd binds the forwarding server to the loopback address and sets the hostname part of the DIPSLAY environment variable to localhost. This prevents remote hosts from connecting to the proxy display.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000366Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. + +Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11UseLocalhost" keyword and set its value to "yes" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +X11UseLocalhost yesVerify the SSH daemon prevents remote hosts from connecting to the proxy display. + +Check the SSH X11UseLocalhost setting with the following command: + +# sudo grep -i x11uselocalhost /etc/ssh/sshd_config +X11UseLocalhost yes + +If the "X11UseLocalhost" keyword is set to "no", is missing, or is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010341The Red Hat Enterprise Linux operating system must restrict privilege elevation to authorized personnel.<VulnDiscussion>The sudo command allows a user to execute programs with elevated (administrator) privileges. It prompts the user for their password and confirms your request to execute a command by checking a file, called sudoers. If the "sudoers" file is not configured correctly, any user defined on the system can initiate privileged actions on the target system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000366Remove the following entries from the sudoers file: +ALL ALL=(ALL) ALL +ALL ALL=(ALL:ALL) ALLVerify the "sudoers" file restricts sudo access to authorized personnel. +$ sudo grep -iw 'ALL' /etc/sudoers /etc/sudoers.d/* + +If the either of the following entries are returned, this is a finding: +ALL ALL=(ALL) ALL +ALL ALL=(ALL:ALL) ALLSRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010342The Red Hat Enterprise Linux operating system must use the invoking user's password for privilege escalation when using "sudo".<VulnDiscussion>The sudoers security policy requires that users authenticate themselves before they can use sudo. When sudoers requires authentication, it validates the invoking user's credentials. If the rootpw, targetpw, or runaspw flags are defined and not disabled, by default the operating system will prompt the invoking user for the "root" user password. +For more information on each of the listed configurations, reference the sudoers(5) manual page.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002227Define the following in the Defaults section of the /etc/sudoers file or a configuration file in the /etc/sudoers.d/ directory: + Defaults !targetpw + Defaults !rootpw + Defaults !runaspw + +Remove any configurations that conflict with the above from the following locations: + /etc/sudoers + /etc/sudoers.d/Verify that the sudoers security policy is configured to use the invoking user's password for privilege escalation. + + $ sudo grep -Eir '(rootpw|targetpw|runaspw)' /etc/sudoers /etc/sudoers.d* | grep -v '#' + + /etc/sudoers:Defaults !targetpw + /etc/sudoers:Defaults !rootpw + /etc/sudoers:Defaults !runaspw + +If conflicting results are returned, this is a finding. +If "Defaults !targetpw" is not defined, this is a finding. +If "Defaults !rootpw" is not defined, this is a finding. +If "Defaults !runaspw" is not defined, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-07-010343The Red Hat Enterprise Linux operating system must require re-authentication when using the "sudo" command.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the organization requires the user to re-authenticate when using the "sudo" command. + +If the value is set to an integer less than 0, the user's time stamp will not expire and the user will not have to re-authenticate for privileged actions until the user's session is terminated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002038Configure the "sudo" command to require re-authentication. +Edit the /etc/sudoers file: +$ sudo visudo + +Add or modify the following line: +Defaults timestamp_timeout=[value] +Note: The "[value]" must be a number that is greater than or equal to "0". + +Remove any duplicate or conflicting lines from /etc/sudoers and /etc/sudoers.d/ files.Verify the operating system requires re-authentication when using the "sudo" command to elevate privileges. + +$ sudo grep -ir 'timestamp_timeout' /etc/sudoers /etc/sudoers.d +/etc/sudoers:Defaults timestamp_timeout=0 + +If conflicting results are returned, this is a finding. + +If "timestamp_timeout" is set to a negative number, is commented out, or no results are returned, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-07-010483Red Hat Enterprise Linux operating systems version 7.2 or newer booted with a BIOS must have a unique name for the grub superusers account when booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 7 and is designed to require a password to boot into single-user mode or make modifications to the boot menu. +The GRUB 2 superuser account is an account of last resort. Establishing a unique username for this account hardens the boot loader against brute force attacks. Due to the nature of the superuser account database being distinct from the OS account database, this allows the use of a username that is not among those within the OS account database. Examples of non-unique superusers names are root, superuser, unlock, etc.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000213Configure the system to have a unique name for the grub superusers account. + +Edit the /etc/grub.d/01_users file and add or modify the following lines: + +set superusers="[someuniquestringhere]" +export superusers +password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} + +Generate a new grub.cfg file with the following command: + +$ sudo grub2-mkconfig -o /boot/grub2/grub.cfgFor systems that use UEFI, this is Not Applicable. + +For systems that are running a version of RHEL prior to 7.2, this is Not Applicable. + +Verify that a unique name is set as the "superusers" account: + +# grep -iw "superusers" /boot/grub2/grub.cfg + set superusers="[someuniquestringhere]" + export superusers + +If "superusers" is identical to any OS account name or is missing a name, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-07-010492Red Hat Enterprise Linux operating systems version 7.2 or newer booted with United Extensible Firmware Interface (UEFI) must have a unique name for the grub superusers account when booting into single-user mode and maintenance.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 7 and is designed to require a password to boot into single-user mode or make modifications to the boot menu. +The GRUB 2 superuser account is an account of last resort. Establishing a unique username for this account hardens the boot loader against brute force attacks. Due to the nature of the superuser account database being distinct from the OS account database, this allows the use of a username that is not among those within the OS account database. Examples of non-unique superusers names are root, superuser, unlock, etc.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000213Configure the system to have a unique name for the grub superusers account. + +Edit the /etc/grub.d/01_users file and add or modify the following lines: + +set superusers="[someuniquestringhere]" +export superusers +password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} + +Generate a new grub.cfg file with the following command: + +$ sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgFor systems that use BIOS, this is Not Applicable. + +For systems that are running a version of RHEL prior to 7.2, this is Not Applicable. + +Verify that a unique name is set as the "superusers" account: + +$ sudo grep -iw "superusers" /boot/efi/EFI/redhat/grub.cfg + set superusers="[someuniquestringhere]" + export superusers + +If "superusers" is identical to any OS account name or is missing a name, this is a finding.SRG-OS-000324-GPOS-00125<GroupDescription></GroupDescription>RHEL-07-020021The Red Hat Enterprise Linux operating system must confine SELinux users to roles that conform to least privilege.<VulnDiscussion>Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. + +Privileged functions include, for example, establishing accounts, performing system integrity checks, or administering cryptographic key management activities. Non-privileged users are individuals who do not possess appropriate authorizations. Circumventing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002165CCI-002235Configure the operating system to confine SELinux users to roles that conform to least privilege. + +Use the following command to map the "staff_u" SELinux user to the "staff_r" and "sysadm_r" roles: + +$ sudo semanage user -m staff_u -R staff_r -R sysadm_r + +Use the following command to map the "user_u" SELinux user to the "user_r" role: + +$ sudo semanage -m user_u -R user_rNote: Per OPORD 16-0080, the preferred endpoint security tool is Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Verify the operating system confines SELinux users to roles that conform to least privilege. + +Check the SELinux User list to SELinux Roles mapping by using the following command: + +$ sudo semanage user -l +SELinuxUser LabelingPrefix MLS/MCSLevel MLS/MCSRange SELinuxRoles +guest_u user s0 s0 guest_r +root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r +staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r +sysadm_u user s0 s0-s0:c0.c1023 sysadm_r +system_u user s0 s0-s0:c0.c1023 system_r unconfined_r +unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r +user_u user s0 s0 user_r +xguest_u user s0 s0 xguest_r + +If the output differs from the above example, ask the SA to demonstrate how the SELinux User mappings are exercising least privilege. If deviations from the example are not documented with the ISSO and do not demonstrate least privilege, this is a finding.SRG-OS-000324-GPOS-00125<GroupDescription></GroupDescription>RHEL-07-020022The Red Hat Enterprise Linux operating system must not allow privileged accounts to utilize SSH.<VulnDiscussion>Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. + +Privileged functions include, for example, establishing accounts, performing system integrity checks, or administering cryptographic key management activities. Non-privileged users are individuals who do not possess appropriate authorizations. Circumventing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002165CCI-002235Configure the operating system to prevent privileged accounts from utilizing SSH. +Use the following command to set the "ssh_sysadm_login" boolean to "off": + +$ sudo setsebool -P ssh_sysadm_login off + +Note: SELinux confined users mapped to sysadm_u are not allowed to login to the system over SSH, by default. If this is a required function, it can be configured by setting the ssh_sysadm_login SELinux boolean to "on" with the following command: + +$ sudo setsebool -P ssh_sysadm_login on + +This must be documented with the ISSO as an operational requirement.Note: Per OPORD 16-0080, the preferred endpoint security tool is Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Verify the operating system prevents privileged accounts from utilizing SSH. +Check the SELinux ssh_sysadm_login boolean with the following command: + +$ sudo getsebool ssh_sysadm_login +ssh_sysadm_login --> off + +If the "ssh_sysadm_login" boolean is not "off" and is not documented with the ISSO as an operational requirement, this is a finding.SRG-OS-000324-GPOS-00125<GroupDescription></GroupDescription>RHEL-07-020023The Red Hat Enterprise Linux operating system must elevate the SELinux context when an administrator calls the sudo command.<VulnDiscussion>Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. + +Privileged functions include, for example, establishing accounts, performing system integrity checks, or administering cryptographic key management activities. Non-privileged users are individuals who do not possess appropriate authorizations. Circumventing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002165CCI-002235Configure the operating system to elevate the SELinux context when an administrator calls the sudo command. +Edit a file in the /etc/sudoers.d directory with the following command: +$ sudo visudo -f /etc/sudoers.d/<customfile> + +Use the following example to build the <customfile> in the /etc/sudoers.d directory to allow any administrator belonging to a designated sudoers admin group to elevate their SELinux context with the use of the sudo command: +%wheel ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL + +Remove any configurations that conflict with the above from the following locations: +/etc/sudoers +/etc/sudoers.d/Verify the operating system elevates the SELinux context when an administrator calls the sudo command with the following command: + +This command must be ran as root: +# grep -r sysadm_r /etc/sudoers /etc/sudoers.d +%wheel ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL + +If conflicting results are returned, this is a finding. + +If a designated sudoers administrator group or account(s) is not configured to elevate the SELinux type and role to "sysadm_t" and "sysadm_r" with the use of the sudo command, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010291The Red Hat Enterprise Linux operating system must not have accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000366Configure all accounts on the system to have a password or lock the account with the following commands: + +Perform a password reset: +$ sudo passwd [username] +Lock an account: +$ sudo passwd -l [username]Check the "/etc/shadow" file for blank passwords with the following command: + +$ sudo awk -F: '!$2 {print $1}' /etc/shadow + +If the command returns any results, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-07-010339The Red Hat Enterprise Linux operating system must specify the default "include" directory for the /etc/sudoers file.<VulnDiscussion>The "sudo" command allows authorized users to run programs (including shells) as other users, system users, and root. The "/etc/sudoers" file is used to configure authorized "sudo" users as well as the programs they are allowed to run. Some configuration options in the "/etc/sudoers" file allow configured users to run programs without re-authenticating. Use of these configuration options makes it easier for one compromised account to be used to compromise other accounts. + +It is possible to include other sudoers files from within the sudoers file currently being parsed using the #include and #includedir directives. When sudo reaches this line it will suspend processing of the current file (/etc/sudoers) and switch to the specified file/directory. Once the end of the included file(s) is reached, the rest of /etc/sudoers will be processed. Files that are included may themselves include other files. A hard limit of 128 nested include files is enforced to prevent include file loops.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000366Configure the /etc/sudoers file to only include the /etc/sudoers.d directory. + +Edit the /etc/sudoers file with the following command: + +$ sudo visudo + +Add or modify the following line: +#includedir /etc/sudoers.dNote: If the "include" and "includedir" directives are not present in the /etc/sudoers file, this requirement is not applicable. + +Verify the operating system specifies only the default "include" directory for the /etc/sudoers file with the following command: + +$ sudo grep include /etc/sudoers + +#includedir /etc/sudoers.d + +If the results are not "/etc/sudoers.d" or additional files or directories are specified, this is a finding. + +Verify the operating system does not have nested "include" files or directories within the /etc/sudoers.d directory with the following command: + +$ sudo grep -r include /etc/sudoers.d + +If results are returned, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-07-010344The Red Hat Enterprise Linux operating system must not be configured to bypass password requirements for privilege escalation.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user re-authenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002038Configure the operating system to require users to supply a password for privilege escalation. + +Check the configuration of the "/etc/ pam.d/sudo" file with the following command: +$ sudo vi /etc/pam.d/sudo + +Remove any occurrences of "pam_succeed_if" in the file.Verify the operating system is not be configured to bypass password requirements for privilege escalation. + +Check the configuration of the "/etc/pam.d/sudo" file with the following command: + +$ sudo grep pam_succeed_if /etc/pam.d/sudo + +If any occurrences of "pam_succeed_if" is returned from the command, this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>RHEL-07-020029The Red Hat Enterprise Linux operating system must use a file integrity tool to verify correct operation of all security functions.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly, and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to the Red Hat Enterprise Linux operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-002696Install AIDE, initialize it, and perform a manual check. + +Install AIDE: + $ sudo yum install aide + +Initialize it: + $ sudo /usr/sbin/aide --init + + AIDE, version 0.15.1 + ### AIDE database at /var/lib/aide/aide.db.new.gz initialized. + +The new database will need to be renamed to be read by AIDE: + $ sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz + +Perform a manual check: + $ sudo /usr/sbin/aide --check + + AIDE, version 0.15.1 + ### All files match AIDE database. Looks okay! + +Done.Verify that Advanced Intrusion Detection Environment (AIDE) is installed and verifies the correct operation of all security functions. + +Check that the AIDE package is installed with the following command: + $ sudo rpm -q aide + + aide-0.15.1-13.el7.x86_64 + +If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. + +If there is no application installed to perform integrity checks, this is a finding. + +If AIDE is installed, check if it has been initialized with the following command: + $ sudo /usr/sbin/aide --check + +If the output is "Couldn't open file /var/lib/aide/aide.db.gz for reading", this is a finding.SRG-OS-000123-GPOS-00064<GroupDescription></GroupDescription>RHEL-07-010271The Red Hat Enterprise Linux operating system emergency accounts must be automatically removed or disabled after the crisis is resolved or within 72 hours.<VulnDiscussion>Emergency accounts are privileged accounts established in response to crisis situations where the need for rapid account activation is required. Therefore, emergency account activation may bypass normal account authorization processes. If these accounts are automatically disabled, system maintenance during emergencies may not be possible, thus adversely affecting system availability. + +Emergency accounts are different from infrequently used accounts (i.e., local logon accounts used by the organization's system administrators when network or normal logon/access is not available). Infrequently used accounts are not subject to automatic termination dates. Emergency accounts are accounts created in response to crisis situations, usually for use by maintenance personnel. The automatic expiration or disabling time period may be extended as needed until the crisis is resolved; however, it must not be extended indefinitely. A permanent account should be established for privileged users who need long-term maintenance accounts. + +To address access requirements, many RHEL systems can be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-001682If an emergency account must be created, configure the system to terminate the account after 72 hours with the following command to set an expiration date for the account. Substitute "system_account_name" with the account to be created. + +$ sudo chage -E `date -d "+3 days" +%Y-%m-%d` system_account_name + +The automatic expiration or disabling time period may be extended as needed until the crisis is resolved.Verify emergency accounts have been provisioned with an expiration date of 72 hours. + +For every existing emergency account, run the following command to obtain its account expiration information. + +$ sudo chage -l system_account_name + +Verify each of these accounts has an expiration date set within 72 hours. +If any emergency accounts have no expiration date set or do not expire within 72 hours, this is a finding.SRG-OS-000033-GPOS-00014<GroupDescription></GroupDescription>RHEL-07-040712The Red Hat Enterprise Linux operating system SSH server must be configured to use only FIPS-validated key exchange algorithms.<VulnDiscussion>The use of FIPS-validated cryptographic algorithms is enforced by enabling kernel FIPS mode. In the event that kernel FIPS mode is disabled, the use of nonvalidated cryptographic algorithms will be permitted systemwide. The SSH server configuration must manually define only FIPS-validated key exchange algorithms to prevent the use of nonvalidated algorithms.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-001453Configure the SSH server to use only FIPS-validated key exchange algorithms by adding or modifying the following line in "/etc/ssh/sshd_config": + + KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256 + +Restart the "sshd" service for changes to take effect: + + $ sudo systemctl restart sshdVerify that the SSH server is configured to use only FIPS-validated key exchange algorithms: + + $ sudo grep -i kexalgorithms /etc/ssh/sshd_config + KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256 + +If "KexAlgorithms" is not configured, is commented out, or does not contain only the algorithms "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256" in exact order, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-07-010090The Red Hat Enterprise Linux operating system must have the screen package installed.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The screen and tmux packages allow for a session lock to be implemented and configured.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000057Install the screen package to allow the initiation of a session lock after a 15-minute period of inactivity. + +Install the screen program (if it is not on the system) with the following command: + + # yum install screen + +OR + +Install the tmux program (if it is not on the system) with the following command: + + # yum install tmuxVerify the operating system has the screen package installed. + +Check to see if the screen package is installed with the following command: + + # yum list installed screen + screen-4.3.1-3-x86_64.rpm + +If the screen package is not installed, check to see if the tmux package is installed with the following command: + + # yum list installed tmux + tmux-1.8-4.el7.x86_64.rpm + +If either the screen package or the tmux package is not installed, this is a finding.SRG-OS-000138-GPOS-00069<GroupDescription></GroupDescription>RHEL-07-010375The Red Hat Enterprise Linux operating system must restrict access to the kernel message buffer.<VulnDiscussion>Restricting access to the kernel message buffer limits access only to root. This prevents attackers from gaining additional system information as a non-privileged user.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-001090Configure the operating system to restrict access to the kernel message buffer. + +Set the system to the required kernel parameter by adding or modifying the following line in /etc/sysctl.conf or a config file in the /etc/sysctl.d/ directory: + + kernel.dmesg_restrict = 1 + +Remove any configurations that conflict with the above from the following locations: + /run/sysctl.d/ + /etc/sysctl.d/ + /usr/local/lib/sysctl.d/ + /usr/lib/sysctl.d/ + /lib/sysctl.d/ + /etc/sysctl.conf + +Reload settings from all system configuration files with the following command: + + $ sudo sysctl --systemVerify the operating system is configured to restrict access to the kernel message buffer with the following commands: + + $ sudo sysctl kernel.dmesg_restrict + kernel.dmesg_restrict = 1 + +If "kernel.dmesg_restrict" is not set to "1" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter: + + $ sudo grep -r kernel.dmesg_restrict /run/sysctl.d/* /etc/sysctl.d/* /usr/local/lib/sysctl.d/* /usr/lib/sysctl.d/* /lib/sysctl.d/* /etc/sysctl.conf 2> /dev/null + /etc/sysctl.conf:kernel.dmesg_restrict = 1 + /etc/sysctl.d/99-sysctl.conf:kernel.dmesg_restrict = 1 + +If "kernel.dmesg_restrict" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-07-010199The Red Hat Enterprise Linux operating system must be configured to prevent overwriting of custom authentication configuration settings by the authconfig utility.<VulnDiscussion>When using the authconfig utility to modify authentication configuration settings, the "system-auth" and "password-auth" files and any custom settings that they may contain are overwritten. This can be avoided by creating new local configuration files and creating new or moving existing symbolic links to them. The authconfig utility will recognize the local configuration files and not overwrite them, while writing its own settings to the original configuration files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 7DISADPMS TargetRed Hat Enterprise Linux 72899CCI-000196Create custom configuration files and their corresponding symbolic links: + +Rename the existing configuration files (skip this step if symbolic links are already present): + $ sudo mv /etc/pam.d/system-auth /etc/pam.d/system-auth-ac + $ sudo mv /etc/pam.d/password-auth /etc/pam.d/password-auth-ac + +Create custom system-auth configuration file: + $ sudo vi /etc/pam.d/system-auth-local + +The new file, at minimum, must contain the following lines: + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth include system-auth-ac +auth sufficient pam_unix.so try_first_pass +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 + +account required pam_faillock.so +account include system-auth-ac + +password requisite pam_pwhistory.so use_authtok remember=5 retry=3 +password include system-auth-ac +password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok + +session include system-auth-ac + +Create custom password-auth configuration file: + $ sudo vi /etc/pam.d/password-auth-local + +The new file, at minimum, must contain the following lines: + +auth required pam_faillock.so preauth silent audit deny=3 even_deny_root fail_interval=900 unlock_time=900 +auth include password-auth-ac +auth sufficient pam_unix.so try_first_pass +auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root fail_interval=900 unlock_time=900 + +account required pam_faillock.so +account include password-auth-ac + +password requisite pam_pwhistory.so use_authtok remember=5 retry=3 +password include password-auth-ac +password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok + +session include password-auth-ac + +Create new or move existing symbolic links to the new custom configuration files: + $ sudo ln -sf /etc/pam.d/system-auth-local /etc/pam.d/system-auth + $ sudo ln -sf /etc/pam.d/password-auth-local /etc/pam.d/password-auth + +Once finished you should have the following file structure: + $ sudo ls -1 /etc/pam.d/{password,system}-auth* + + /etc/pam.d/password-auth + /etc/pam.d/password-auth-ac + /etc/pam.d/password-auth-local + /etc/pam.d/system-auth + /etc/pam.d/system-auth-ac + /etc/pam.d/system-auth-local + +Done. + +Note: With this solution in place any custom settings to "system-auth" and "password-auth" will be retained and not overwritten by the use of the authconfig utility. The authconfig utility will write its settings to "system-auth-ac" and "password-auth-ac" and continue to function as expected.Verify "system-auth" and "password-auth" files are symbolic links pointing to "system-auth-local" and "password-auth-local": + $ sudo ls -l /etc/pam.d/{password,system}-auth + + lrwxrwxrwx. 1 root root 30 Apr 1 11:59 /etc/pam.d/password-auth -> /etc/pam.d/password-auth-local + lrwxrwxrwx. 1 root root 28 Apr 1 11:59 /etc/pam.d/system-auth -> /etc/pam.d/system-auth-local + +If system-auth and password-auth files are not symbolic links, this is a finding. + +If system-auth and password-auth are symbolic links but do not point to "system-auth-local" and "password-auth-local", this is a finding. \ No newline at end of file diff --git a/collections/ansible_collections/demo/compliance/roles/rhel7STIG/handlers/main.yml b/collections/ansible_collections/demo/compliance/roles/rhel7STIG/handlers/main.yml new file mode 100644 index 0000000..54e5791 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel7STIG/handlers/main.yml @@ -0,0 +1,11 @@ +- name: dconf_update + command: dconf update +- name: auditd_restart + command: /usr/sbin/service auditd restart +- name: ssh_restart + service: + name: sshd + state: restarted +- name: do_reboot + reboot: + pre_reboot_delay: 60 diff --git a/collections/ansible_collections/demo/compliance/roles/rhel7STIG/tasks/main.yml b/collections/ansible_collections/demo/compliance/roles/rhel7STIG/tasks/main.yml new file mode 100644 index 0000000..d49b553 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel7STIG/tasks/main.yml @@ -0,0 +1,1544 @@ +- name: populate package facts + package_facts: +# R-204393 RHEL-07-010030 +- name: stigrule_204393__etc_dconf_db_local_d_01_banner_message + ini_file: + path: /etc/dconf/db/local.d/01-banner-message + section: org/gnome/login-screen + option: banner-message-enable + value: "{{ rhel7STIG_stigrule_204393__etc_dconf_db_local_d_01_banner_message_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204393_Manage + - "'dconf' in packages" +# R-204394 RHEL-07-010040 +- name: stigrule_204394__etc_dconf_db_local_d_01_banner_message + ini_file: + path: /etc/dconf/db/local.d/01-banner-message + section: org/gnome/login-screen + option: banner-message-text + value: "{{ rhel7STIG_stigrule_204394__etc_dconf_db_local_d_01_banner_message_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204394_Manage + - "'dconf' in packages" +# R-204395 RHEL-07-010050 +- name: stigrule_204395__etc_issue + copy: + dest: "{{ rhel7STIG_stigrule_204395__etc_issue_Dest }}" + content: "{{ rhel7STIG_stigrule_204395__etc_issue_Content }}" + when: + - rhel7STIG_stigrule_204395_Manage +# R-204396 RHEL-07-010060 +- name: stigrule_204396__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/screensaver + option: lock-enabled + value: "{{ rhel7STIG_stigrule_204396__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204396_Manage + - "'dconf' in packages" +# R-204397 RHEL-07-010061 +- name: stigrule_204397__etc_dconf_db_local_d_00_defaults + ini_file: + path: /etc/dconf/db/local.d/00-defaults + section: org/gnome/login-screen + option: enable-smartcard-authentication + value: "{{ rhel7STIG_stigrule_204397__etc_dconf_db_local_d_00_defaults_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204397_Manage + - "'dconf' in packages" +# R-204398 RHEL-07-010070 +- name: stigrule_204398__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/session + option: idle-delay + value: "{{ rhel7STIG_stigrule_204398__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204398_Manage + - "'dconf' in packages" +# R-204399 RHEL-07-010081 +- name: stigrule_204399__etc_dconf_db_local_d_locks_session + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel7STIG_stigrule_204399__etc_dconf_db_local_d_locks_session_Line }}" + create: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204399_Manage + - "'dconf' in packages" +# R-204400 RHEL-07-010082 +- name: stigrule_204400__etc_dconf_db_local_d_locks_session + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel7STIG_stigrule_204400__etc_dconf_db_local_d_locks_session_Line }}" + create: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204400_Manage + - "'dconf' in packages" +# R-204402 RHEL-07-010100 +- name: stigrule_204402__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/screensaver + option: idle-activation-enabled + value: "{{ rhel7STIG_stigrule_204402__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204402_Manage + - "'dconf' in packages" +# R-204403 RHEL-07-010101 +- name: stigrule_204403__etc_dconf_db_local_d_locks_session + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel7STIG_stigrule_204403__etc_dconf_db_local_d_locks_session_Line }}" + create: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204403_Manage + - "'dconf' in packages" +# R-204404 RHEL-07-010110 +- name: stigrule_204404__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/screensaver + option: lock-delay + value: "{{ rhel7STIG_stigrule_204404__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_204404_Manage + - "'dconf' in packages" +# R-204407 RHEL-07-010120 +- name: stigrule_204407__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*ucredit' + line: "{{ rhel7STIG_stigrule_204407__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204407_Manage +# R-204408 RHEL-07-010130 +- name: stigrule_204408__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*lcredit' + line: "{{ rhel7STIG_stigrule_204408__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204408_Manage +# R-204409 RHEL-07-010140 +- name: stigrule_204409__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*dcredit' + line: "{{ rhel7STIG_stigrule_204409__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204409_Manage +# R-204410 RHEL-07-010150 +- name: stigrule_204410__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*ocredit' + line: "{{ rhel7STIG_stigrule_204410__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204410_Manage +# R-204411 RHEL-07-010160 +- name: stigrule_204411__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*difok' + line: "{{ rhel7STIG_stigrule_204411__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204411_Manage +# R-204412 RHEL-07-010170 +- name: stigrule_204412__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*minclass' + line: "{{ rhel7STIG_stigrule_204412__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204412_Manage +# R-204413 RHEL-07-010180 +- name: stigrule_204413__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*maxrepeat' + line: "{{ rhel7STIG_stigrule_204413__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204413_Manage +# R-204414 RHEL-07-010190 +- name: stigrule_204414__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*maxclassrepeat' + line: "{{ rhel7STIG_stigrule_204414__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204414_Manage +# R-204416 RHEL-07-010210 +- name: stigrule_204416__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^ENCRYPT_METHOD' + line: "{{ rhel7STIG_stigrule_204416__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204416_Manage +# R-204417 RHEL-07-010220 +- name: stigrule_204417__etc_libuser_conf + ini_file: + path: /etc/libuser.conf + section: defaults + option: crypt_style + value: "{{ rhel7STIG_stigrule_204417__etc_libuser_conf_Value }}" + no_extra_spaces: no + when: + - rhel7STIG_stigrule_204417_Manage +# R-204418 RHEL-07-010230 +- name: stigrule_204418__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^PASS_MIN_DAYS' + line: "{{ rhel7STIG_stigrule_204418__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204418_Manage +# R-204419 RHEL-07-010240 +- name: get all non-compliant accounts (minimum) + shell: "awk -F: '{cmd=\"id -u \"$1|getline uid;if($4<1 && uid>=1000 && uid!=65534 && uid!=65535 && uid!=4294967294 && uid!=4294967295){print $1}}' /etc/shadow" + changed_when: False + check_mode: no + register: foreach +- name: stigrule_204419_chage__m_1_user + shell: "{{ rhel7STIG_stigrule_204419_chage__m_1_user_Command }} {{ item }}" + with_items: "{{ foreach.stdout_lines }}" + when: + - rhel7STIG_stigrule_204419_Manage +# R-204420 RHEL-07-010250 +- name: stigrule_204420__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^PASS_MAX_DAYS' + line: "{{ rhel7STIG_stigrule_204420__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204420_Manage +# R-204421 RHEL-07-010260 +- name: get all non-compliant accounts (maximum) + shell: "awk -F: '{cmd=\"id -u \"$1|getline uid;if($5>60 && uid>=1000 && uid!=65534 && uid!=65535 && uid!=4294967294 && uid!=4294967295){print $1}}' /etc/shadow" + changed_when: False + check_mode: no + register: foreach +- name: stigrule_204421_chage__M_60_user + shell: "{{ rhel7STIG_stigrule_204421_chage__M_60_user_Command }} {{ item }}" + with_items: "{{ foreach.stdout_lines }}" + when: + - rhel7STIG_stigrule_204421_Manage +# R-204423 RHEL-07-010280 +- name: stigrule_204423__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*minlen' + line: "{{ rhel7STIG_stigrule_204423__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204423_Manage +# R-204425 RHEL-07-010300 +- name: stigrule_204425_PermitEmptyPasswords + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PermitEmptyPasswords\s+' + line: "{{ rhel7STIG_stigrule_204425_PermitEmptyPasswords_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204425_Manage + - "'openssh-server' in packages" +# R-204426 RHEL-07-010310 +- name: stigrule_204426__etc_default_useradd + lineinfile: + path: /etc/default/useradd + regexp: '^INACTIVE' + line: "{{ rhel7STIG_stigrule_204426__etc_default_useradd_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204426_Manage +# R-204431 RHEL-07-010430 +- name: stigrule_204431__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^FAIL_DELAY' + line: "{{ rhel7STIG_stigrule_204431__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204431_Manage +# R-204432 RHEL-07-010440 +- name: stigrule_204432__etc_gdm_custom_conf + ini_file: + path: /etc/gdm/custom.conf + section: daemon + option: AutomaticLoginEnable + value: "{{ rhel7STIG_stigrule_204432__etc_gdm_custom_conf_Value }}" + no_extra_spaces: yes + when: + - rhel7STIG_stigrule_204432_Manage + - "'gdm' in packages" +# R-204433 RHEL-07-010450 +- name: stigrule_204433__etc_gdm_custom_conf + ini_file: + path: /etc/gdm/custom.conf + section: daemon + option: TimedLoginEnable + value: "{{ rhel7STIG_stigrule_204433__etc_gdm_custom_conf_Value }}" + no_extra_spaces: yes + when: + - rhel7STIG_stigrule_204433_Manage + - "'gdm' in packages" +# R-204434 RHEL-07-010460 +- name: stigrule_204434_PermitUserEnvironment + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PermitUserEnvironment\s+' + line: "{{ rhel7STIG_stigrule_204434_PermitUserEnvironment_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204434_Manage + - "'openssh-server' in packages" +# R-204435 RHEL-07-010470 +- name: stigrule_204435_HostbasedAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)HostbasedAuthentication\s+' + line: "{{ rhel7STIG_stigrule_204435_HostbasedAuthentication_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204435_Manage + - "'openssh-server' in packages" +# R-204442 RHEL-07-020000 +- name: stigrule_204442_rsh_server + yum: + name: rsh-server + state: "{{ rhel7STIG_stigrule_204442_rsh_server_State }}" + when: rhel7STIG_stigrule_204442_Manage +# R-204443 RHEL-07-020010 +- name: stigrule_204443_ypserv + yum: + name: ypserv + state: "{{ rhel7STIG_stigrule_204443_ypserv_State }}" + when: rhel7STIG_stigrule_204443_Manage +# R-204445 RHEL-07-020030 +# Edit email address. +- name: stigrule_204445__etc_cron_daily_aide + copy: + dest: "{{ rhel7STIG_stigrule_204445__etc_cron_daily_aide_Dest }}" + content: "{{ rhel7STIG_stigrule_204445__etc_cron_daily_aide_Content }}" + mode: "{{ rhel7STIG_stigrule_204445__etc_cron_daily_aide_Mode }}" + when: + - rhel7STIG_stigrule_204445_Manage +# R-204445 RHEL-07-020030 +# Edit email address. +- name: stigrule_204445_aide + yum: + name: aide + state: "{{ rhel7STIG_stigrule_204445_aide_State }}" + when: rhel7STIG_stigrule_204445_Manage +# R-204446 RHEL-07-020040 +# Edit email address. +- name: stigrule_204446__etc_cron_daily_aide_notify + copy: + dest: "{{ rhel7STIG_stigrule_204446__etc_cron_daily_aide_notify_Dest }}" + content: "{{ rhel7STIG_stigrule_204446__etc_cron_daily_aide_notify_Content }}" + mode: "{{ rhel7STIG_stigrule_204446__etc_cron_daily_aide_notify_Mode }}" + when: + - rhel7STIG_stigrule_204446_Manage +# R-204446 RHEL-07-020040 +# Edit email address. +- name: stigrule_204446_aide_notify + yum: + name: aide + state: "{{ rhel7STIG_stigrule_204446_aide_notify_State }}" + when: rhel7STIG_stigrule_204446_Manage +# R-204447 RHEL-07-020050 +- name: stigrule_204447__etc_yum_conf + ini_file: + path: /etc/yum.conf + section: main + option: gpgcheck + value: "{{ rhel7STIG_stigrule_204447__etc_yum_conf_Value }}" + no_extra_spaces: yes + when: + - rhel7STIG_stigrule_204447_Manage +# R-204448 RHEL-07-020060 +- name: stigrule_204448__etc_yum_conf + ini_file: + path: /etc/yum.conf + section: main + option: localpkg_gpgcheck + value: "{{ rhel7STIG_stigrule_204448__etc_yum_conf_Value }}" + no_extra_spaces: yes + when: + - rhel7STIG_stigrule_204448_Manage +# R-204449 RHEL-07-020100 +- name: stigrule_204449__etc_modprobe_d_blacklist_conf + lineinfile: + path: /etc/modprobe.d/blacklist.conf + regexp: '^blacklist usb-storage' + line: "{{ rhel7STIG_stigrule_204449__etc_modprobe_d_blacklist_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204449_Manage +# R-204449 RHEL-07-020100 +- name: stigrule_204449__etc_modprobe_d_usb_storage_conf + lineinfile: + path: /etc/modprobe.d/usb-storage.conf + regexp: '^install usb-storage' + line: "{{ rhel7STIG_stigrule_204449__etc_modprobe_d_usb_storage_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204449_Manage +# R-204450 RHEL-07-020101 +- name: stigrule_204450__etc_modprobe_d_dccp_conf + copy: + dest: "{{ rhel7STIG_stigrule_204450__etc_modprobe_d_dccp_conf_Dest }}" + content: "{{ rhel7STIG_stigrule_204450__etc_modprobe_d_dccp_conf_Content }}" + when: + - rhel7STIG_stigrule_204450_Manage +# R-204450 RHEL-07-020101 +- name: stigrule_204450__etc_modprobe_d_blacklist_conf + lineinfile: + path: /etc/modprobe.d/blacklist.conf + regexp: '^\s*blacklist dccp' + line: "{{ rhel7STIG_stigrule_204450__etc_modprobe_d_blacklist_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204450_Manage +# R-204451 RHEL-07-020110 +- name: check if autofs.service is installed + shell: ! systemctl list-unit-files | grep "^autofs.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204451_autofs_disable + service: + name: autofs.service + enabled: "{{ rhel7STIG_stigrule_204451_autofs_disable_Enabled }}" + when: + - rhel7STIG_stigrule_204451_Manage + - result.rc == 0 +# R-204451 RHEL-07-020110 +- name: check if autofs.service is installed + shell: ! systemctl list-unit-files | grep "^autofs.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204451_autofs_stop + service: + name: autofs.service + state: "{{ rhel7STIG_stigrule_204451_autofs_stop_State }}" + when: + - rhel7STIG_stigrule_204451_Manage + - result.rc == 0 +# R-204452 RHEL-07-020200 +- name: stigrule_204452__etc_yum_conf + ini_file: + path: /etc/yum.conf + section: main + option: clean_requirements_on_remove + value: "{{ rhel7STIG_stigrule_204452__etc_yum_conf_Value }}" + no_extra_spaces: yes + when: + - rhel7STIG_stigrule_204452_Manage +# R-204453 RHEL-07-020210 +- name: stigrule_204453__etc_selinux_config + lineinfile: + path: /etc/selinux/config + regexp: '^SELINUX=' + line: "{{ rhel7STIG_stigrule_204453__etc_selinux_config_Line }}" + create: yes + notify: do_reboot + when: + - rhel7STIG_stigrule_204453_Manage +# R-204454 RHEL-07-020220 +- name: stigrule_204454__etc_selinux_config + lineinfile: + path: /etc/selinux/config + regexp: '^SELINUXTYPE=' + line: "{{ rhel7STIG_stigrule_204454__etc_selinux_config_Line }}" + create: yes + notify: do_reboot + when: + - rhel7STIG_stigrule_204454_Manage +# R-204455 RHEL-07-020230 +- name: stigrule_204455_systemctl_mask_ctrl_alt_del_target + systemd: + name: ctrl-alt-del.target + enabled: no + masked: yes + when: + - rhel7STIG_stigrule_204455_Manage +# R-204457 RHEL-07-020240 +- name: stigrule_204457__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^UMASK' + line: "{{ rhel7STIG_stigrule_204457__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204457_Manage +# R-204466 RHEL-07-020610 +- name: stigrule_204466__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^CREATE_HOME' + line: "{{ rhel7STIG_stigrule_204466__etc_login_defs_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204466_Manage +# R-204489 RHEL-07-021100 +- name: stigrule_204489__etc_rsyslog_conf + lineinfile: + path: /etc/rsyslog.conf + regexp: '^cron\.\* ' + line: "{{ rhel7STIG_stigrule_204489__etc_rsyslog_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204489_Manage +# R-204490 RHEL-07-021110 +- name: check that the /etc/cron.allow exists + stat: + path: /etc/cron.allow + changed_when: False + check_mode: no + register: stat_result +- name: stigrule_204490__etc_cron_allow + file: + dest: "{{ rhel7STIG_stigrule_204490__etc_cron_allow_Dest }}" + owner: "{{ rhel7STIG_stigrule_204490__etc_cron_allow_Owner }}" + when: + - stat_result.stat.exists == True + - rhel7STIG_stigrule_204490_Manage +# R-204491 RHEL-07-021120 +- name: check that the /etc/cron.allow exists + stat: + path: /etc/cron.allow + changed_when: False + check_mode: no + register: stat_result +- name: stigrule_204491__etc_cron_allow + file: + dest: "{{ rhel7STIG_stigrule_204491__etc_cron_allow_Dest }}" + group: "{{ rhel7STIG_stigrule_204491__etc_cron_allow_Group }}" + when: + - stat_result.stat.exists == True + - rhel7STIG_stigrule_204491_Manage +# R-204492 RHEL-07-021300 +# If kernel core dumps are required, document the need with the ISSO. +- name: check if kdump.service is installed + shell: ! systemctl list-unit-files | grep "^kdump.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204492_kdump_disable + service: + name: kdump.service + enabled: "{{ rhel7STIG_stigrule_204492_kdump_disable_Enabled }}" + when: + - rhel7STIG_stigrule_204492_Manage + - result.rc == 0 +# R-204492 RHEL-07-021300 +# If kernel core dumps are required, document the need with the ISSO. +- name: check if kdump.service is installed + shell: ! systemctl list-unit-files | grep "^kdump.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204492_kdump_stop + service: + name: kdump.service + state: "{{ rhel7STIG_stigrule_204492_kdump_stop_State }}" + when: + - rhel7STIG_stigrule_204492_Manage + - result.rc == 0 +# R-204496 RHEL-07-021340 +- name: check if tmp.mount is installed + shell: ! systemctl list-unit-files | grep "^tmp.mount[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204496_tmp_mount + service: + name: tmp.mount + enabled: "{{ rhel7STIG_stigrule_204496_tmp_mount_Enabled }}" + when: + - rhel7STIG_stigrule_204496_Manage + - result.rc == 0 +# R-204502 RHEL-07-021710 +- name: stigrule_204502_telnet_server + yum: + name: telnet-server + state: "{{ rhel7STIG_stigrule_204502_telnet_server_State }}" + when: rhel7STIG_stigrule_204502_Manage +# R-204503 RHEL-07-030000 +- name: check if auditd.service is installed + shell: ! systemctl list-unit-files | grep "^auditd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204503_auditd_enable + service: + name: auditd.service + enabled: "{{ rhel7STIG_stigrule_204503_auditd_enable_Enabled }}" + when: + - rhel7STIG_stigrule_204503_Manage + - result.rc == 0 +# R-204503 RHEL-07-030000 +- name: check if auditd.service is installed + shell: ! systemctl list-unit-files | grep "^auditd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204503_auditd_start + service: + name: auditd.service + state: "{{ rhel7STIG_stigrule_204503_auditd_start_State }}" + when: + - rhel7STIG_stigrule_204503_Manage + - result.rc == 0 +# R-204504 RHEL-07-030010 +- name: stigrule_204504__etc_audit_rules_d_audit_rules_critical_error + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-f ' + line: "{{ rhel7STIG_stigrule_204504__etc_audit_rules_d_audit_rules_critical_error_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204504_Manage +# R-204506 RHEL-07-030201 +- name: stigrule_204506__etc_audisp_plugins_d_au_remote_conf_direction + lineinfile: + path: /etc/audisp/plugins.d/au-remote.conf + regexp: '^direction = ' + line: "{{ rhel7STIG_stigrule_204506__etc_audisp_plugins_d_au_remote_conf_direction_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204506_Manage +# R-204506 RHEL-07-030201 +- name: stigrule_204506__etc_audisp_plugins_d_au_remote_conf_path + lineinfile: + path: /etc/audisp/plugins.d/au-remote.conf + regexp: '^path = ' + line: "{{ rhel7STIG_stigrule_204506__etc_audisp_plugins_d_au_remote_conf_path_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204506_Manage +# R-204506 RHEL-07-030201 +- name: stigrule_204506__etc_audisp_plugins_d_au_remote_conf_type + lineinfile: + path: /etc/audisp/plugins.d/au-remote.conf + regexp: '^type = ' + line: "{{ rhel7STIG_stigrule_204506__etc_audisp_plugins_d_au_remote_conf_type_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204506_Manage +# R-204507 RHEL-07-030210 +- name: stigrule_204507__etc_audisp_audispd_conf + lineinfile: + path: /etc/audisp/audispd.conf + regexp: '^overflow_action = ' + line: "{{ rhel7STIG_stigrule_204507__etc_audisp_audispd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204507_Manage +# R-204508 RHEL-07-030211 +- name: stigrule_204508__etc_audisp_audispd_conf + lineinfile: + path: /etc/audisp/audispd.conf + regexp: '^name_format = ' + line: "{{ rhel7STIG_stigrule_204508__etc_audisp_audispd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204508_Manage +# R-204509 RHEL-07-030300 +# Ensure to set the IP address of the log aggregation server. +- name: stigrule_204509__etc_audisp_audisp_remote_conf + lineinfile: + path: /etc/audisp/audisp-remote.conf + regexp: '^remote_server = ' + line: "{{ rhel7STIG_stigrule_204509__etc_audisp_audisp_remote_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204509_Manage +# R-204510 RHEL-07-030310 +# Ensure to set the IP address of the log aggregation server. +- name: stigrule_204510__etc_audisp_audisp_remote_conf + lineinfile: + path: /etc/audisp/audisp-remote.conf + regexp: '^enable_krb5 = ' + line: "{{ rhel7STIG_stigrule_204510__etc_audisp_audisp_remote_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204510_Manage +# R-204511 RHEL-07-030320 +- name: stigrule_204511__etc_audisp_audisp_remote_conf + lineinfile: + path: /etc/audisp/audisp-remote.conf + regexp: '^disk_full_action = ' + line: "{{ rhel7STIG_stigrule_204511__etc_audisp_audisp_remote_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204511_Manage +# R-204512 RHEL-07-030321 +- name: stigrule_204512__etc_audisp_audisp_remote_conf + lineinfile: + path: /etc/audisp/audisp-remote.conf + regexp: '^network_failure_action = ' + line: "{{ rhel7STIG_stigrule_204512__etc_audisp_audisp_remote_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204512_Manage +# R-204514 RHEL-07-030340 +- name: stigrule_204514__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^space_left_action = ' + line: "{{ rhel7STIG_stigrule_204514__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204514_Manage +# R-204515 RHEL-07-030350 +- name: stigrule_204515__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^action_mail_acct = ' + line: "{{ rhel7STIG_stigrule_204515__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel7STIG_stigrule_204515_Manage +# R-204516 RHEL-07-030360 +- name : stigrule_204516__etc_audit_rules_d_audit_rules_euid_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k setuid$' + line: "{{ rhel7STIG_stigrule_204516__etc_audit_rules_d_audit_rules_euid_b32_Line }}" + when: rhel7STIG_stigrule_204516_Manage +# R-204516 RHEL-07-030360 +- name : stigrule_204516__etc_audit_rules_d_audit_rules_euid_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k setuid$' + line: "{{ rhel7STIG_stigrule_204516__etc_audit_rules_d_audit_rules_euid_b64_Line }}" + when: rhel7STIG_stigrule_204516_Manage +# R-204516 RHEL-07-030360 +- name : stigrule_204516__etc_audit_rules_d_audit_rules_egid_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k setgid$' + line: "{{ rhel7STIG_stigrule_204516__etc_audit_rules_d_audit_rules_egid_b32_Line }}" + when: rhel7STIG_stigrule_204516_Manage +# R-204516 RHEL-07-030360 +- name : stigrule_204516__etc_audit_rules_d_audit_rules_egid_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k setgid$' + line: "{{ rhel7STIG_stigrule_204516__etc_audit_rules_d_audit_rules_egid_b64_Line }}" + when: rhel7STIG_stigrule_204516_Manage +# R-204517 RHEL-07-030370 +- name : stigrule_204517__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204517__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204517_Manage +# R-204517 RHEL-07-030370 +- name : stigrule_204517__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204517__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204517_Manage +# R-204521 RHEL-07-030410 +- name : stigrule_204521__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204521__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204521_Manage +# R-204521 RHEL-07-030410 +- name : stigrule_204521__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204521__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204521_Manage +# R-204524 RHEL-07-030440 +- name : stigrule_204524__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204524__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204524_Manage +# R-204524 RHEL-07-030440 +- name : stigrule_204524__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel7STIG_stigrule_204524__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204524_Manage +# R-204531 RHEL-07-030510 +- name : stigrule_204531__etc_audit_rules_d_audit_rules_EPERM_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access$' + line: "{{ rhel7STIG_stigrule_204531__etc_audit_rules_d_audit_rules_EPERM_b32_Line }}" + when: rhel7STIG_stigrule_204531_Manage +# R-204531 RHEL-07-030510 +- name : stigrule_204531__etc_audit_rules_d_audit_rules_EPERM_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=unset -k access$' + line: "{{ rhel7STIG_stigrule_204531__etc_audit_rules_d_audit_rules_EPERM_b64_Line }}" + when: rhel7STIG_stigrule_204531_Manage +# R-204531 RHEL-07-030510 +- name : stigrule_204531__etc_audit_rules_d_audit_rules_EACCES_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access$' + line: "{{ rhel7STIG_stigrule_204531__etc_audit_rules_d_audit_rules_EACCES_b32_Line }}" + when: rhel7STIG_stigrule_204531_Manage +# R-204531 RHEL-07-030510 +- name : stigrule_204531__etc_audit_rules_d_audit_rules_EACCES_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S creat,open,openat,open_by_handle_at,truncate,ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=unset -k access$' + line: "{{ rhel7STIG_stigrule_204531__etc_audit_rules_d_audit_rules_EACCES_b64_Line }}" + when: rhel7STIG_stigrule_204531_Manage +# R-204536 RHEL-07-030560 +- name : stigrule_204536__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/semanage -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204536__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204536_Manage +# R-204537 RHEL-07-030570 +- name : stigrule_204537__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/setsebool -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204537__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204537_Manage +# R-204538 RHEL-07-030580 +- name : stigrule_204538__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chcon -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204538__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204538_Manage +# R-204539 RHEL-07-030590 +- name : stigrule_204539__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/setfiles -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204539__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204539_Manage +# R-204540 RHEL-07-030610 +- name : stigrule_204540__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /var/run/faillock -p wa -k logins$' + line: "{{ rhel7STIG_stigrule_204540__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204540_Manage +# R-204541 RHEL-07-030620 +- name : stigrule_204541__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /var/log/lastlog -p wa -k logins$' + line: "{{ rhel7STIG_stigrule_204541__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204541_Manage +# R-204542 RHEL-07-030630 +- name : stigrule_204542__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/passwd -F auid>=1000 -F auid!=4294967295 -k privileged-passwd$' + line: "{{ rhel7STIG_stigrule_204542__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204542_Manage +# R-204543 RHEL-07-030640 +- name : stigrule_204543__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/unix_chkpwd -F auid>=1000 -F auid!=4294967295 -k privileged-passwd$' + line: "{{ rhel7STIG_stigrule_204543__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204543_Manage +# R-204544 RHEL-07-030650 +- name : stigrule_204544__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/gpasswd -F auid>=1000 -F auid!=4294967295 -k privileged-passwd$' + line: "{{ rhel7STIG_stigrule_204544__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204544_Manage +# R-204545 RHEL-07-030660 +- name : stigrule_204545__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chage -F auid>=1000 -F auid!=4294967295 -k privileged-passwd$' + line: "{{ rhel7STIG_stigrule_204545__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204545_Manage +# R-204546 RHEL-07-030670 +- name : stigrule_204546__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/userhelper -F auid>=1000 -F auid!=4294967295 -k privileged-passwd$' + line: "{{ rhel7STIG_stigrule_204546__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204546_Manage +# R-204547 RHEL-07-030680 +- name : stigrule_204547__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/su -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204547__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204547_Manage +# R-204548 RHEL-07-030690 +- name : stigrule_204548__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/sudo -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204548__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204548_Manage +# R-204549 RHEL-07-030700 +- name : stigrule_204549__etc_audit_rules_d_audit_rules_sudoers + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/sudoers -p wa -k privileged-actions$' + line: "{{ rhel7STIG_stigrule_204549__etc_audit_rules_d_audit_rules_sudoers_Line }}" + when: rhel7STIG_stigrule_204549_Manage +# R-204549 RHEL-07-030700 +- name : stigrule_204549__etc_audit_rules_d_audit_rules_sudoers_d + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/sudoers.d/ -p wa -k privileged-actions$' + line: "{{ rhel7STIG_stigrule_204549__etc_audit_rules_d_audit_rules_sudoers_d_Line }}" + when: rhel7STIG_stigrule_204549_Manage +# R-204550 RHEL-07-030710 +- name : stigrule_204550__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/newgrp -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204550__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204550_Manage +# R-204551 RHEL-07-030720 +- name : stigrule_204551__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chsh -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change$' + line: "{{ rhel7STIG_stigrule_204551__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204551_Manage +# R-204552 RHEL-07-030740 +- name : stigrule_204552__etc_audit_rules_d_audit_rules_mount_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=4294967295 -k privileged-mount$' + line: "{{ rhel7STIG_stigrule_204552__etc_audit_rules_d_audit_rules_mount_b32_Line }}" + when: rhel7STIG_stigrule_204552_Manage +# R-204552 RHEL-07-030740 +- name : stigrule_204552__etc_audit_rules_d_audit_rules_mount_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=4294967295 -k privileged-mount$' + line: "{{ rhel7STIG_stigrule_204552__etc_audit_rules_d_audit_rules_mount_b64_Line }}" + when: rhel7STIG_stigrule_204552_Manage +# R-204552 RHEL-07-030740 +- name : stigrule_204552__etc_audit_rules_d_audit_rules__usr_bin_mount + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/mount -F auid>=1000 -F auid!=4294967295 -k privileged-mount$' + line: "{{ rhel7STIG_stigrule_204552__etc_audit_rules_d_audit_rules__usr_bin_mount_Line }}" + when: rhel7STIG_stigrule_204552_Manage +# R-204553 RHEL-07-030750 +- name : stigrule_204553__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/bin/umount -F auid>=1000 -F auid!=4294967295 -k privileged-mount$' + line: "{{ rhel7STIG_stigrule_204553__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204553_Manage +# R-204554 RHEL-07-030760 +- name : stigrule_204554__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/postdrop -F auid>=1000 -F auid!=4294967295 -k privileged-postfix$' + line: "{{ rhel7STIG_stigrule_204554__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204554_Manage +# R-204555 RHEL-07-030770 +- name : stigrule_204555__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/postqueue -F auid>=1000 -F auid!=4294967295 -k privileged-postfix$' + line: "{{ rhel7STIG_stigrule_204555__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204555_Manage +# R-204556 RHEL-07-030780 +- name : stigrule_204556__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F auid>=1000 -F auid!=4294967295 -k privileged-ssh$' + line: "{{ rhel7STIG_stigrule_204556__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204556_Manage +# R-204557 RHEL-07-030800 +- name : stigrule_204557__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/crontab -F auid>=1000 -F auid!=4294967295 -k privileged-cron$' + line: "{{ rhel7STIG_stigrule_204557__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204557_Manage +# R-204558 RHEL-07-030810 +- name : stigrule_204558__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/pam_timestamp_check -F auid>=1000 -F auid!=4294967295 -k privileged-pam$' + line: "{{ rhel7STIG_stigrule_204558__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204558_Manage +# R-204559 RHEL-07-030819 +- name : stigrule_204559__etc_audit_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S create_module -k module-change$' + line: "{{ rhel7STIG_stigrule_204559__etc_audit_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204559_Manage +# R-204559 RHEL-07-030819 +- name : stigrule_204559__etc_audit_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S create_module -k module-change$' + line: "{{ rhel7STIG_stigrule_204559__etc_audit_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204559_Manage +# R-204560 RHEL-07-030820 +- name : stigrule_204560__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S init_module,finit_module -k modulechange$' + line: "{{ rhel7STIG_stigrule_204560__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204560_Manage +# R-204560 RHEL-07-030820 +- name : stigrule_204560__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S init_module,finit_module -k modulechange$' + line: "{{ rhel7STIG_stigrule_204560__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204560_Manage +# R-204562 RHEL-07-030830 +- name : stigrule_204562__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S delete_module -k module-change$' + line: "{{ rhel7STIG_stigrule_204562__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204562_Manage +# R-204562 RHEL-07-030830 +- name : stigrule_204562__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S delete_module -k module-change$' + line: "{{ rhel7STIG_stigrule_204562__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204562_Manage +# R-204563 RHEL-07-030840 +- name : stigrule_204563__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules$' + line: "{{ rhel7STIG_stigrule_204563__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204563_Manage +# R-204564 RHEL-07-030870 +- name : stigrule_204564__etc_audit_rules_d_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/passwd -p wa -k identity$' + line: "{{ rhel7STIG_stigrule_204564__etc_audit_rules_d_audit_rules_Line }}" + when: rhel7STIG_stigrule_204564_Manage +# R-204565 RHEL-07-030871 +- name : stigrule_204565__etc_audit_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/group -p wa -k identity$' + line: "{{ rhel7STIG_stigrule_204565__etc_audit_audit_rules_Line }}" + when: rhel7STIG_stigrule_204565_Manage +# R-204566 RHEL-07-030872 +- name : stigrule_204566__etc_audit_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/gshadow -p wa -k identity$' + line: "{{ rhel7STIG_stigrule_204566__etc_audit_audit_rules_Line }}" + when: rhel7STIG_stigrule_204566_Manage +# R-204567 RHEL-07-030873 +- name : stigrule_204567__etc_audit_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/shadow -p wa -k identity$' + line: "{{ rhel7STIG_stigrule_204567__etc_audit_audit_rules_Line }}" + when: rhel7STIG_stigrule_204567_Manage +# R-204568 RHEL-07-030874 +- name : stigrule_204568__etc_audit_audit_rules + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/security/opasswd -p wa -k identity$' + line: "{{ rhel7STIG_stigrule_204568__etc_audit_audit_rules_Line }}" + when: rhel7STIG_stigrule_204568_Manage +# R-204572 RHEL-07-030910 +- name : stigrule_204572__etc_audit_rules_d_audit_rules_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete$' + line: "{{ rhel7STIG_stigrule_204572__etc_audit_rules_d_audit_rules_b32_Line }}" + when: rhel7STIG_stigrule_204572_Manage +# R-204572 RHEL-07-030910 +- name : stigrule_204572__etc_audit_rules_d_audit_rules_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat,rmdir -F auid>=1000 -F auid!=unset -k delete$' + line: "{{ rhel7STIG_stigrule_204572__etc_audit_rules_d_audit_rules_b64_Line }}" + when: rhel7STIG_stigrule_204572_Manage +# R-204576 RHEL-07-040000 +- name: stigrule_204576__etc_security_limits_conf + lineinfile: + path: /etc/security/limits.conf + regexp: '^\* hard maxlogins' + line: "{{ rhel7STIG_stigrule_204576__etc_security_limits_conf_Line }}" + create: yes + when: + - rhel7STIG_stigrule_204576_Manage +# R-204578 RHEL-07-040110 +- name: stigrule_204578_Ciphers + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)Ciphers\s+' + line: "{{ rhel7STIG_stigrule_204578_Ciphers_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204578_Manage + - "'openssh-server' in packages" +# R-204579 RHEL-07-040160 +- name: stigrule_204579__etc_profile_d_tmout_sh + copy: + dest: "{{ rhel7STIG_stigrule_204579__etc_profile_d_tmout_sh_Dest }}" + content: "{{ rhel7STIG_stigrule_204579__etc_profile_d_tmout_sh_Content }}" + when: + - rhel7STIG_stigrule_204579_Manage +# R-204580 RHEL-07-040170 +- name: stigrule_204580_banner + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)banner\s+' + line: "{{ rhel7STIG_stigrule_204580_banner_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204580_Manage + - "'openssh-server' in packages" +# R-204584 RHEL-07-040201 +- name: stigrule_204584_kernel_randomize_va_space + sysctl: + name: kernel.randomize_va_space + value: "{{ rhel7STIG_stigrule_204584_kernel_randomize_va_space_Value }}" + when: + - rhel7STIG_stigrule_204584_Manage +# R-204585 RHEL-07-040300 +- name: stigrule_204585_openssh_clients_x86_64 + yum: + name: openssh-clients.x86_64 + state: "{{ rhel7STIG_stigrule_204585_openssh_clients_x86_64_State }}" + when: rhel7STIG_stigrule_204585_Manage +# R-204585 RHEL-07-040300 +- name: stigrule_204585_openssh_server_x86_64 + yum: + name: openssh-server.x86_64 + state: "{{ rhel7STIG_stigrule_204585_openssh_server_x86_64_State }}" + when: rhel7STIG_stigrule_204585_Manage +# R-204586 RHEL-07-040310 +- name: check if sshd.service is installed + shell: ! systemctl list-unit-files | grep "^sshd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204586_sshd_enable + service: + name: sshd.service + enabled: "{{ rhel7STIG_stigrule_204586_sshd_enable_Enabled }}" + when: + - rhel7STIG_stigrule_204586_Manage + - result.rc == 0 +# R-204586 RHEL-07-040310 +- name: check if sshd.service is installed + shell: ! systemctl list-unit-files | grep "^sshd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204586_sshd_start + service: + name: sshd.service + state: "{{ rhel7STIG_stigrule_204586_sshd_start_State }}" + when: + - rhel7STIG_stigrule_204586_Manage + - result.rc == 0 +# R-204587 RHEL-07-040320 +- name: stigrule_204587_ClientAliveInterval + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)ClientAliveInterval\s+' + line: "{{ rhel7STIG_stigrule_204587_ClientAliveInterval_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204587_Manage + - "'openssh-server' in packages" +# R-204588 RHEL-07-040330 +- name: stigrule_204588_RhostsRSAAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)RhostsRSAAuthentication\s+' + line: "{{ rhel7STIG_stigrule_204588_RhostsRSAAuthentication_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204588_Manage + - "'openssh-server' in packages" +# R-204589 RHEL-07-040340 +- name: stigrule_204589_ClientAliveCountMax + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)ClientAliveCountMax\s+' + line: "{{ rhel7STIG_stigrule_204589_ClientAliveCountMax_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204589_Manage + - "'openssh-server' in packages" +# R-204590 RHEL-07-040350 +- name: stigrule_204590_IgnoreRhosts + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)IgnoreRhosts\s+' + line: "{{ rhel7STIG_stigrule_204590_IgnoreRhosts_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204590_Manage + - "'openssh-server' in packages" +# R-204591 RHEL-07-040360 +- name: stigrule_204591_PrintLastLog + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PrintLastLog\s+' + line: "{{ rhel7STIG_stigrule_204591_PrintLastLog_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204591_Manage + - "'openssh-server' in packages" +# R-204592 RHEL-07-040370 +- name: stigrule_204592_PermitRootLogin + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PermitRootLogin\s+' + line: "{{ rhel7STIG_stigrule_204592_PermitRootLogin_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204592_Manage + - "'openssh-server' in packages" +# R-204593 RHEL-07-040380 +- name: stigrule_204593_IgnoreUserKnownHosts + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)IgnoreUserKnownHosts\s+' + line: "{{ rhel7STIG_stigrule_204593_IgnoreUserKnownHosts_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204593_Manage + - "'openssh-server' in packages" +# R-204594 RHEL-07-040390 +- name: stigrule_204594_Protocol + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)Protocol\s+' + line: "{{ rhel7STIG_stigrule_204594_Protocol_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204594_Manage + - "'openssh-server' in packages" +# R-204595 RHEL-07-040400 +- name: stigrule_204595_MACs + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)MACs\s+' + line: "{{ rhel7STIG_stigrule_204595_MACs_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204595_Manage + - "'openssh-server' in packages" +# R-204598 RHEL-07-040430 +- name: stigrule_204598_GSSAPIAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)GSSAPIAuthentication\s+' + line: "{{ rhel7STIG_stigrule_204598_GSSAPIAuthentication_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204598_Manage + - "'openssh-server' in packages" +# R-204599 RHEL-07-040440 +- name: stigrule_204599_KerberosAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)KerberosAuthentication\s+' + line: "{{ rhel7STIG_stigrule_204599_KerberosAuthentication_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204599_Manage + - "'openssh-server' in packages" +# R-204600 RHEL-07-040450 +- name: stigrule_204600_StrictModes + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)StrictModes\s+' + line: "{{ rhel7STIG_stigrule_204600_StrictModes_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204600_Manage + - "'openssh-server' in packages" +# R-204601 RHEL-07-040460 +- name: stigrule_204601_UsePrivilegeSeparation + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)UsePrivilegeSeparation\s+' + line: "{{ rhel7STIG_stigrule_204601_UsePrivilegeSeparation_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204601_Manage + - "'openssh-server' in packages" +# R-204602 RHEL-07-040470 +- name: stigrule_204602_Compression + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)Compression\s+' + line: "{{ rhel7STIG_stigrule_204602_Compression_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204602_Manage + - "'openssh-server' in packages" +# R-204604 RHEL-07-040520 +- name: stigrule_204604_firewalld_service + yum: + name: firewalld + state: "{{ rhel7STIG_stigrule_204604_firewalld_service_State }}" + when: rhel7STIG_stigrule_204604_Manage +# R-204604 RHEL-07-040520 +- name: check if firewalld.service is installed + shell: ! systemctl list-unit-files | grep "^firewalld.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204604_firewalld_active + service: + name: firewalld.service + enabled: "{{ rhel7STIG_stigrule_204604_firewalld_active_Enabled }}" + when: + - rhel7STIG_stigrule_204604_Manage + - result.rc == 0 +# R-204604 RHEL-07-040520 +- name: check if firewalld.service is installed + shell: ! systemctl list-unit-files | grep "^firewalld.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_204604_firewalld_start + service: + name: firewalld.service + state: "{{ rhel7STIG_stigrule_204604_firewalld_start_State }}" + when: + - rhel7STIG_stigrule_204604_Manage + - result.rc == 0 +# R-204609 RHEL-07-040610 +- name: stigrule_204609_net_ipv4_conf_all_accept_source_route + sysctl: + name: net.ipv4.conf.all.accept_source_route + value: "{{ rhel7STIG_stigrule_204609_net_ipv4_conf_all_accept_source_route_Value }}" + when: + - rhel7STIG_stigrule_204609_Manage +# R-204610 RHEL-07-040611 +- name: stigrule_204610_net_ipv4_conf_all_rp_filter + sysctl: + name: net.ipv4.conf.all.rp_filter + value: "{{ rhel7STIG_stigrule_204610_net_ipv4_conf_all_rp_filter_Value }}" + when: + - rhel7STIG_stigrule_204610_Manage +# R-204610 RHEL-07-040611 +- name: stigrule_204610_net_ipv4_conf_default_rp_filter + sysctl: + name: net.ipv4.conf.default.rp_filter + value: "{{ rhel7STIG_stigrule_204610_net_ipv4_conf_default_rp_filter_Value }}" + when: + - rhel7STIG_stigrule_204610_Manage +# R-204612 RHEL-07-040620 +- name: stigrule_204612_net_ipv4_conf_default_accept_source_route + sysctl: + name: net.ipv4.conf.default.accept_source_route + value: "{{ rhel7STIG_stigrule_204612_net_ipv4_conf_default_accept_source_route_Value }}" + when: + - rhel7STIG_stigrule_204612_Manage +# R-204613 RHEL-07-040630 +- name: stigrule_204613_net_ipv4_icmp_echo_ignore_broadcasts + sysctl: + name: net.ipv4.icmp_echo_ignore_broadcasts + value: "{{ rhel7STIG_stigrule_204613_net_ipv4_icmp_echo_ignore_broadcasts_Value }}" + when: + - rhel7STIG_stigrule_204613_Manage +# R-204614 RHEL-07-040640 +- name: stigrule_204614_net_ipv4_conf_default_accept_redirects + sysctl: + name: net.ipv4.conf.default.accept_redirects + value: "{{ rhel7STIG_stigrule_204614_net_ipv4_conf_default_accept_redirects_Value }}" + when: + - rhel7STIG_stigrule_204614_Manage +# R-204615 RHEL-07-040641 +- name: stigrule_204615_net_ipv4_conf_all_accept_redirects + sysctl: + name: net.ipv4.conf.all.accept_redirects + value: "{{ rhel7STIG_stigrule_204615_net_ipv4_conf_all_accept_redirects_Value }}" + when: + - rhel7STIG_stigrule_204615_Manage +# R-204616 RHEL-07-040650 +- name: stigrule_204616_net_ipv4_conf_default_send_redirects + sysctl: + name: net.ipv4.conf.default.send_redirects + value: "{{ rhel7STIG_stigrule_204616_net_ipv4_conf_default_send_redirects_Value }}" + when: + - rhel7STIG_stigrule_204616_Manage +# R-204617 RHEL-07-040660 +- name: stigrule_204617_net_ipv4_conf_all_send_redirects + sysctl: + name: net.ipv4.conf.all.send_redirects + value: "{{ rhel7STIG_stigrule_204617_net_ipv4_conf_all_send_redirects_Value }}" + when: + - rhel7STIG_stigrule_204617_Manage +# R-204619 RHEL-07-040680 +- name: check if postfix is installed and configured + shell: "yum list installed postfix | grep -q postfix && ! postconf -n smtpd_client_restrictions | grep -q '^smtpd_client_restrictions = permit_mynetworks,reject$'" + args: + warn: no + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_204619_postconf__e__smtpd_client_restrictions___permit_mynetworks_reject_ + shell: "{{ rhel7STIG_stigrule_204619_postconf__e__smtpd_client_restrictions___permit_mynetworks_reject__Command }}" + when: + - rhel7STIG_stigrule_204619_Manage + - cmd_result.rc == 0 +# R-204620 RHEL-07-040690 +- name: stigrule_204620_vsftpd + yum: + name: vsftpd + state: "{{ rhel7STIG_stigrule_204620_vsftpd_State }}" + when: rhel7STIG_stigrule_204620_Manage +# R-204621 RHEL-07-040700 +- name: stigrule_204621_tftp_server + yum: + name: tftp-server + state: "{{ rhel7STIG_stigrule_204621_tftp_server_State }}" + when: rhel7STIG_stigrule_204621_Manage +# R-204622 RHEL-07-040710 +- name: stigrule_204622_X11Forwarding + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)X11Forwarding\s+' + line: "{{ rhel7STIG_stigrule_204622_X11Forwarding_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_204622_Manage + - "'openssh-server' in packages" +# R-204624 RHEL-07-040730 +# Document the requirement for an X Windows server with the ISSO or remove. +- name: stigrule_204624_xorg_x11_server_common + yum: + name: xorg-x11-server-common + state: "{{ rhel7STIG_stigrule_204624_xorg_x11_server_common_State }}" + when: rhel7STIG_stigrule_204624_Manage +# R-204625 RHEL-07-040740 +- name: stigrule_204625_net_ipv4_ip_forward + sysctl: + name: net.ipv4.ip_forward + value: "{{ rhel7STIG_stigrule_204625_net_ipv4_ip_forward_Value }}" + when: + - rhel7STIG_stigrule_204625_Manage +# R-204630 RHEL-07-040830 +- name: stigrule_204630_net_ipv6_conf_all_accept_source_route + sysctl: + name: net.ipv6.conf.all.accept_source_route + value: "{{ rhel7STIG_stigrule_204630_net_ipv6_conf_all_accept_source_route_Value }}" + when: + - rhel7STIG_stigrule_204630_Manage +# R-204631 RHEL-07-041001 +- name: stigrule_204631_pam_pkcs11 + yum: + name: pam_pkcs11 + state: "{{ rhel7STIG_stigrule_204631_pam_pkcs11_State }}" + when: rhel7STIG_stigrule_204631_Manage +# R-204634 RHEL-07-041010 +- name: check if wireless network adapters are disabled + shell: "[[ $(nmcli radio wifi) == 'enabled' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_204634_nmcli_radio_wifi_off + shell: "{{ rhel7STIG_stigrule_204634_nmcli_radio_wifi_off_Command }}" + when: + - rhel7STIG_stigrule_204634_Manage + - cmd_result.rc == 0 +# R-214937 RHEL-07-010062 +- name: stigrule_214937__etc_dconf_db_local_d_locks_session + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel7STIG_stigrule_214937__etc_dconf_db_local_d_locks_session_Line }}" + create: yes + notify: dconf_update + when: + - rhel7STIG_stigrule_214937_Manage + - "'dconf' in packages" +# R-233307 RHEL-07-040711 +- name: stigrule_233307_X11UseLocalhost + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)X11UseLocalhost\s+' + line: "{{ rhel7STIG_stigrule_233307_X11UseLocalhost_Line }}" + notify: ssh_restart + when: + - rhel7STIG_stigrule_233307_Manage + - "'openssh-server' in packages" diff --git a/collections/ansible_collections/demo/compliance/roles/rhel8STIG/callback_plugins/stig_xml.py b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/callback_plugins/stig_xml.py new file mode 100644 index 0000000..cfff078 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/callback_plugins/stig_xml.py @@ -0,0 +1,86 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.plugins.callback import CallbackBase +from time import gmtime, strftime +import platform +import tempfile +import re +import sys +import os +import xml.etree.ElementTree as ET +import xml.dom.minidom + +class CallbackModule(CallbackBase): + CALLBACK_VERSION = 2.0 + CALLBACK_TYPE = 'xml' + CALLBACK_NAME = 'stig_xml' + + CALLBACK_NEEDS_WHITELIST = True + + def _get_STIG_path(self): + cwd = os.path.abspath('.') + for dirpath, dirs, files in os.walk(cwd): + if os.path.sep + 'files' in dirpath and '.xml' in files[0]: + return os.path.join(cwd, dirpath, files[0]) + + def __init__(self): + super(CallbackModule, self).__init__() + self.rules = {} + self.stig_path = os.environ.get('STIG_PATH') + self.XML_path = os.environ.get('XML_PATH') + if self.stig_path is None: + self.stig_path = self._get_STIG_path() + self._display.display('Using STIG_PATH: {}'.format(self.stig_path)) + if self.XML_path is None: + self.XML_path = tempfile.mkdtemp() + "/xccdf-results.xml" + self._display.display('Using XML_PATH: {}'.format(self.XML_path)) + + print("Writing: {}".format(self.XML_path)) + STIG_name = os.path.basename(self.stig_path) + ET.register_namespace('cdf', 'http://checklists.nist.gov/xccdf/1.2') + self.tr = ET.Element('{http://checklists.nist.gov/xccdf/1.2}TestResult') + self.tr.set('id', 'xccdf_mil.disa.stig_testresult_scap_mil.disa_comp_{}'.format(STIG_name)) + endtime = strftime("%Y-%m-%dT%H:%M:%S", gmtime()) + self.tr.set('end-time', endtime) + tg = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}target') + tg.text = platform.node() + + def _get_rev(self, nid): + with open(self.stig_path, 'r') as f: + r = 'SV-{}r(?P\d+)_rule'.format(nid) + m = re.search(r, f.read()) + if m: + rev = m.group('rev') + else: + rev = '0' + return rev + + def v2_runner_on_ok(self, result): + name = result._task.get_name() + m = re.search('stigrule_(?P\d+)', name) + if m: + nid = m.group('id') + else: + return + rev = self._get_rev(nid) + key = "{}r{}".format(nid, rev) + if self.rules.get(key, 'Unknown') != False: + self.rules[key] = result.is_changed() + + def v2_playbook_on_stats(self, stats): + for rule, changed in self.rules.items(): + state = 'fail' if changed else 'pass' + rr = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}rule-result') + rr.set('idref', 'xccdf_mil.disa.stig_rule_SV-{}_rule'.format(rule)) + rs = ET.SubElement(rr, '{http://checklists.nist.gov/xccdf/1.2}result') + rs.text = state + passing = len(self.rules) - sum(self.rules.values()) + sc = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}score') + sc.set('maximum', str(len(self.rules))) + sc.set('system', 'urn:xccdf:scoring:flat-unweighted') + sc.text = str(passing) + with open(self.XML_path, 'wb') as f: + out = ET.tostring(self.tr) + pretty = xml.dom.minidom.parseString(out).toprettyxml(encoding='utf-8') + f.write(pretty) diff --git a/collections/ansible_collections/demo/compliance/roles/rhel8STIG/defaults/main.yml b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/defaults/main.yml new file mode 100644 index 0000000..f11ea09 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/defaults/main.yml @@ -0,0 +1,571 @@ +# R-230225 RHEL-08-010040 +rhel8STIG_stigrule_230225_Manage: True +rhel8STIG_stigrule_230225_banner_Line: banner /etc/issue +# R-230226 RHEL-08-010050 +rhel8STIG_stigrule_230226_Manage: True +rhel8STIG_stigrule_230226__etc_dconf_db_local_d_01_banner_message_Value: '''You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.''' +# R-230227 RHEL-08-010060 +rhel8STIG_stigrule_230227_Manage: True +rhel8STIG_stigrule_230227__etc_issue_Dest: /etc/issue +rhel8STIG_stigrule_230227__etc_issue_Content: 'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. + +' +# R-230228 RHEL-08-010070 +rhel8STIG_stigrule_230228_Manage: True +rhel8STIG_stigrule_230228__etc_rsyslog_conf_Line: 'auth.*;authpriv.*;daemon.* /var/log/secure' +# R-230231 RHEL-08-010110 +rhel8STIG_stigrule_230231_Manage: True +rhel8STIG_stigrule_230231__etc_login_defs_Line: 'ENCRYPT_METHOD SHA512' +# R-230236 RHEL-08-010151 +rhel8STIG_stigrule_230236_Manage: True +rhel8STIG_stigrule_230236__usr_lib_systemd_system_rescue_service_Value: '-/usr/lib/systemd/systemd-sulogin-shell rescue' +# R-230239 RHEL-08-010162 +rhel8STIG_stigrule_230239_Manage: True +rhel8STIG_stigrule_230239_krb5_workstation_State: removed +# R-230240 RHEL-08-010170 +rhel8STIG_stigrule_230240_Manage: True +rhel8STIG_stigrule_230240__etc_selinux_config_Line: 'SELINUX=enforcing' +# R-230241 RHEL-08-010171 +rhel8STIG_stigrule_230241_Manage: True +rhel8STIG_stigrule_230241_policycoreutils_State: installed +# R-230244 RHEL-08-010200 +rhel8STIG_stigrule_230244_Manage: True +rhel8STIG_stigrule_230244_ClientAliveCountMax_Line: ClientAliveCountMax 1 +# R-230252 RHEL-08-010291 +rhel8STIG_stigrule_230252_Manage: True +rhel8STIG_stigrule_230252__etc_sysconfig_sshd_Line: '# CRYPTO_POLICY=' +# R-230255 RHEL-08-010294 +rhel8STIG_stigrule_230255_Manage: True +rhel8STIG_stigrule_230255__etc_crypto_policies_back_ends_opensslcnf_config_Line: 'MinProtocol = TLSv1.2' +# R-230256 RHEL-08-010295 +rhel8STIG_stigrule_230256_Manage: True +rhel8STIG_stigrule_230256__etc_crypto_policies_back_ends_gnutls_config_Line: '+VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0' +# R-230265 RHEL-08-010371 +rhel8STIG_stigrule_230265_Manage: True +rhel8STIG_stigrule_230265__etc_dnf_dnf_conf_Value: '1' +# R-230266 RHEL-08-010372 +rhel8STIG_stigrule_230266_Manage: True +rhel8STIG_stigrule_230266__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.kexec_load_disabled = 1' +# R-230267 RHEL-08-010373 +rhel8STIG_stigrule_230267_Manage: True +rhel8STIG_stigrule_230267__etc_sysctl_d_99_sysctl_conf_Line: 'fs.protected_symlinks = 1' +# R-230268 RHEL-08-010374 +rhel8STIG_stigrule_230268_Manage: True +rhel8STIG_stigrule_230268__etc_sysctl_d_99_sysctl_conf_Line: 'fs.protected_hardlinks = 1' +# R-230269 RHEL-08-010375 +rhel8STIG_stigrule_230269_Manage: True +rhel8STIG_stigrule_230269__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.dmesg_restrict = 1' +# R-230270 RHEL-08-010376 +rhel8STIG_stigrule_230270_Manage: True +rhel8STIG_stigrule_230270__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.perf_event_paranoid = 2' +# R-230273 RHEL-08-010390 +rhel8STIG_stigrule_230273_Manage: True +rhel8STIG_stigrule_230273_esc_State: installed +rhel8STIG_stigrule_230273_openssl_pkcs11_State: installed +# R-230275 RHEL-08-010410 +rhel8STIG_stigrule_230275_Manage: True +rhel8STIG_stigrule_230275_opensc_State: installed +# R-230280 RHEL-08-010430 +rhel8STIG_stigrule_230280_Manage: True +rhel8STIG_stigrule_230280__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.randomize_va_space = 2' +# R-230281 RHEL-08-010440 +rhel8STIG_stigrule_230281_Manage: True +rhel8STIG_stigrule_230281__etc_dnf_dnf_conf_Value: 'True' +# R-230282 RHEL-08-010450 +rhel8STIG_stigrule_230282_Manage: True +rhel8STIG_stigrule_230282__etc_selinux_config_Line: 'SELINUXTYPE=targeted' +# R-230285 RHEL-08-010471 +rhel8STIG_stigrule_230285_Manage: True +rhel8STIG_stigrule_230285_rngd_enable_Enabled: yes +rhel8STIG_stigrule_230285_rngd_start_State: started +# R-230288 RHEL-08-010500 +rhel8STIG_stigrule_230288_Manage: True +rhel8STIG_stigrule_230288_StrictModes_Line: StrictModes yes +# R-230290 RHEL-08-010520 +rhel8STIG_stigrule_230290_Manage: True +rhel8STIG_stigrule_230290_IgnoreUserKnownHosts_Line: IgnoreUserKnownHosts yes +# R-230291 RHEL-08-010521 +rhel8STIG_stigrule_230291_Manage: True +rhel8STIG_stigrule_230291_KerberosAuthentication_Line: KerberosAuthentication no +# R-230296 RHEL-08-010550 +rhel8STIG_stigrule_230296_Manage: True +rhel8STIG_stigrule_230296_PermitRootLogin_Line: PermitRootLogin no +# R-230298 RHEL-08-010561 +rhel8STIG_stigrule_230298_Manage: True +rhel8STIG_stigrule_230298_rsyslog_enable_Enabled: yes +rhel8STIG_stigrule_230298_rsyslog_start_State: started +# R-230310 RHEL-08-010670 +# If kernel core dumps are required, document the need with the ISSO. +rhel8STIG_stigrule_230310_Manage: True +rhel8STIG_stigrule_230310_kdump_disable_Enabled: no +# R-230311 RHEL-08-010671 +rhel8STIG_stigrule_230311_Manage: True +rhel8STIG_stigrule_230311__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.core_pattern=|/bin/false' +rhel8STIG_stigrule_230311_kernel_core_pattern_Value: '|/bin/false' +# R-230313 RHEL-08-010673 +rhel8STIG_stigrule_230313_Manage: True +rhel8STIG_stigrule_230313__etc_security_limits_conf_Line: '* hard core 0' +# R-230314 RHEL-08-010674 +rhel8STIG_stigrule_230314_Manage: True +rhel8STIG_stigrule_230314__etc_systemd_coredump_conf_Line: 'Storage=none' +# R-230315 RHEL-08-010675 +rhel8STIG_stigrule_230315_Manage: True +rhel8STIG_stigrule_230315__etc_systemd_coredump_conf_Line: 'ProcessSizeMax=0' +# R-230324 RHEL-08-010760 +rhel8STIG_stigrule_230324_Manage: True +rhel8STIG_stigrule_230324__etc_login_defs_Line: 'CREATE_HOME yes' +# R-230329 RHEL-08-010820 +rhel8STIG_stigrule_230329_Manage: True +rhel8STIG_stigrule_230329__etc_gdm_custom_conf_Value: 'false' +# R-230330 RHEL-08-010830 +rhel8STIG_stigrule_230330_Manage: True +rhel8STIG_stigrule_230330_PermitUserEnvironment_Line: PermitUserEnvironment no +# R-230346 RHEL-08-020024 +rhel8STIG_stigrule_230346_Manage: True +rhel8STIG_stigrule_230346__etc_security_limits_conf_Line: '* hard maxlogins 10' +# R-230347 RHEL-08-020030 +rhel8STIG_stigrule_230347_Manage: True +rhel8STIG_stigrule_230347__etc_dconf_db_local_d_00_screensaver_Value: 'true' +# R-230348 RHEL-08-020040 +rhel8STIG_stigrule_230348_Manage: True +rhel8STIG_stigrule_230348_ensure_tmux_is_installed_State: installed +rhel8STIG_stigrule_230348__etc_tmux_conf_Line: 'set -g lock-command vlock' +# R-230349 RHEL-08-020041 +rhel8STIG_stigrule_230349_Manage: True +rhel8STIG_stigrule_230349__etc_bashrc_Line: '[ -n "$PS1" -a -z "$TMUX" ] && exec tmux' +# R-230352 RHEL-08-020060 +rhel8STIG_stigrule_230352_Manage: True +rhel8STIG_stigrule_230352__etc_dconf_db_local_d_00_screensaver_Value: 'uint32 900' +# R-230353 RHEL-08-020070 +rhel8STIG_stigrule_230353_Manage: True +rhel8STIG_stigrule_230353__etc_tmux_conf_Line: 'set -g lock-after-time 900' +# R-230354 RHEL-08-020080 +rhel8STIG_stigrule_230354_Manage: True +rhel8STIG_stigrule_230354__etc_dconf_db_local_d_locks_session_Line: '/org/gnome/desktop/screensaver/lock-delay' +# R-230357 RHEL-08-020110 +rhel8STIG_stigrule_230357_Manage: True +rhel8STIG_stigrule_230357__etc_security_pwquality_conf_Line: 'ucredit = -1' +# R-230358 RHEL-08-020120 +rhel8STIG_stigrule_230358_Manage: True +rhel8STIG_stigrule_230358__etc_security_pwquality_conf_Line: 'lcredit = -1' +# R-230359 RHEL-08-020130 +rhel8STIG_stigrule_230359_Manage: True +rhel8STIG_stigrule_230359__etc_security_pwquality_conf_Line: 'dcredit = -1' +# R-230360 RHEL-08-020140 +rhel8STIG_stigrule_230360_Manage: True +rhel8STIG_stigrule_230360__etc_security_pwquality_conf_Line: 'maxclassrepeat = 4' +# R-230361 RHEL-08-020150 +rhel8STIG_stigrule_230361_Manage: True +rhel8STIG_stigrule_230361__etc_security_pwquality_conf_Line: 'maxrepeat = 3' +# R-230362 RHEL-08-020160 +rhel8STIG_stigrule_230362_Manage: True +rhel8STIG_stigrule_230362__etc_security_pwquality_conf_Line: 'minclass = 4' +# R-230363 RHEL-08-020170 +rhel8STIG_stigrule_230363_Manage: True +rhel8STIG_stigrule_230363__etc_security_pwquality_conf_Line: 'difok = 8' +# R-230365 RHEL-08-020190 +rhel8STIG_stigrule_230365_Manage: True +rhel8STIG_stigrule_230365__etc_login_defs_Line: 'PASS_MIN_DAYS 1' +# R-230366 RHEL-08-020200 +rhel8STIG_stigrule_230366_Manage: True +rhel8STIG_stigrule_230366__etc_login_defs_Line: 'PASS_MAX_DAYS 60' +# R-230369 RHEL-08-020230 +rhel8STIG_stigrule_230369_Manage: True +rhel8STIG_stigrule_230369__etc_security_pwquality_conf_Line: 'minlen = 15' +# R-230370 RHEL-08-020231 +rhel8STIG_stigrule_230370_Manage: True +rhel8STIG_stigrule_230370__etc_login_defs_Line: 'PASS_MIN_LEN 15' +# R-230375 RHEL-08-020280 +rhel8STIG_stigrule_230375_Manage: True +rhel8STIG_stigrule_230375__etc_security_pwquality_conf_Line: 'ocredit = -1' +# R-230377 RHEL-08-020300 +rhel8STIG_stigrule_230377_Manage: True +rhel8STIG_stigrule_230377__etc_security_pwquality_conf_Line: 'dictcheck = 1' +# R-230378 RHEL-08-020310 +rhel8STIG_stigrule_230378_Manage: True +rhel8STIG_stigrule_230378__etc_login_defs_Line: 'FAIL_DELAY 4' +# R-230382 RHEL-08-020350 +rhel8STIG_stigrule_230382_Manage: True +rhel8STIG_stigrule_230382_PrintLastLog_Line: PrintLastLog yes +# R-230383 RHEL-08-020351 +rhel8STIG_stigrule_230383_Manage: True +rhel8STIG_stigrule_230383__etc_login_defs_Line: 'UMASK 077' +# R-230386 RHEL-08-030000 +rhel8STIG_stigrule_230386_Manage: True +rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b32_Line: '-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv' +rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b64_Line: '-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv' +rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b32_Line: '-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv' +rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b64_Line: '-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv' +# R-230387 RHEL-08-030010 +rhel8STIG_stigrule_230387_Manage: True +rhel8STIG_stigrule_230387__etc_rsyslog_conf_Line: 'cron.* /var/log/cron' +# R-230388 RHEL-08-030020 +rhel8STIG_stigrule_230388_Manage: True +rhel8STIG_stigrule_230388__etc_audit_auditd_conf_Line: 'action_mail_acct = root' +# R-230389 RHEL-08-030030 +rhel8STIG_stigrule_230389_Manage: True +rhel8STIG_stigrule_230389__etc_aliases_Line: 'postmaster: root' +# R-230390 RHEL-08-030040 +rhel8STIG_stigrule_230390_Manage: True +rhel8STIG_stigrule_230390__etc_audit_auditd_conf_Line: 'disk_error_action = HALT' +# R-230392 RHEL-08-030060 +rhel8STIG_stigrule_230392_Manage: True +rhel8STIG_stigrule_230392__etc_audit_auditd_conf_Line: 'disk_full_action = HALT' +# R-230393 RHEL-08-030061 +rhel8STIG_stigrule_230393_Manage: True +rhel8STIG_stigrule_230393__etc_audit_auditd_conf_Line: 'local_events = yes' +# R-230394 RHEL-08-030062 +rhel8STIG_stigrule_230394_Manage: True +rhel8STIG_stigrule_230394__etc_audit_auditd_conf_Line: 'name_format = hostname' +# R-230395 RHEL-08-030063 +rhel8STIG_stigrule_230395_Manage: True +rhel8STIG_stigrule_230395__etc_audit_auditd_conf_Line: 'log_format = ENRICHED' +# R-230396 RHEL-08-030070 +rhel8STIG_stigrule_230396_Manage: True +rhel8STIG_stigrule_230396__etc_audit_auditd_conf_Line: 'log_group = root' +# R-230398 RHEL-08-030090 +# A duplicate of 230396 +# duplicate of 230396 +# R-230402 RHEL-08-030121 +rhel8STIG_stigrule_230402_Manage: True +rhel8STIG_stigrule_230402__etc_audit_rules_d_audit_rules_e2_Line: '-e 2' +# R-230403 RHEL-08-030122 +rhel8STIG_stigrule_230403_Manage: True +rhel8STIG_stigrule_230403__etc_audit_rules_d_audit_rules_loginuid_immutable_Line: '--loginuid-immutable' +# R-230404 RHEL-08-030130 +rhel8STIG_stigrule_230404_Manage: True +rhel8STIG_stigrule_230404__etc_audit_rules_d_audit_rules__etc_shadow_Line: '-w /etc/shadow -p wa -k identity' +# R-230405 RHEL-08-030140 +rhel8STIG_stigrule_230405_Manage: True +rhel8STIG_stigrule_230405__etc_audit_rules_d_audit_rules__etc_security_opasswd_Line: '-w /etc/security/opasswd -p wa -k identity' +# R-230406 RHEL-08-030150 +rhel8STIG_stigrule_230406_Manage: True +rhel8STIG_stigrule_230406__etc_audit_rules_d_audit_rules__etc_passwd_Line: '-w /etc/passwd -p wa -k identity' +# R-230407 RHEL-08-030160 +rhel8STIG_stigrule_230407_Manage: True +rhel8STIG_stigrule_230407__etc_audit_rules_d_audit_rules__etc_gshadow_Line: '-w /etc/gshadow -p wa -k identity' +# R-230408 RHEL-08-030170 +rhel8STIG_stigrule_230408_Manage: True +rhel8STIG_stigrule_230408__etc_audit_rules_d_audit_rules__etc_group_Line: '-w /etc/group -p wa -k identity' +# R-230409 RHEL-08-030171 +rhel8STIG_stigrule_230409_Manage: True +rhel8STIG_stigrule_230409__etc_audit_rules_d_audit_rules__etc_sudoers_Line: '-w /etc/sudoers -p wa -k identity' +# R-230410 RHEL-08-030172 +rhel8STIG_stigrule_230410_Manage: True +rhel8STIG_stigrule_230410__etc_audit_rules_d_audit_rules__etc_sudoers_d__Line: '-w /etc/sudoers.d/ -p wa -k identity' +# R-230411 RHEL-08-030180 +rhel8STIG_stigrule_230411_Manage: True +rhel8STIG_stigrule_230411_audit_State: installed +# R-230412 RHEL-08-030190 +rhel8STIG_stigrule_230412_Manage: True +rhel8STIG_stigrule_230412__etc_audit_rules_d_audit_rules__usr_bin_su_Line: '-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change' +# R-230413 RHEL-08-030200 +rhel8STIG_stigrule_230413_Manage: True +rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32_unset_Line: '-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod' +rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64_unset_Line: '-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod' +rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32_Line: '-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod' +rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64_Line: '-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod' +# R-230418 RHEL-08-030250 +rhel8STIG_stigrule_230418_Manage: True +rhel8STIG_stigrule_230418__etc_audit_rules_d_audit_rules__usr_bin_chage_Line: '-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage' +# R-230419 RHEL-08-030260 +rhel8STIG_stigrule_230419_Manage: True +rhel8STIG_stigrule_230419__etc_audit_rules_d_audit_rules__usr_bin_chcon_Line: '-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod' +# R-230421 RHEL-08-030280 +rhel8STIG_stigrule_230421_Manage: True +rhel8STIG_stigrule_230421__etc_audit_rules_d_audit_rules__usr_bin_ssh_agent_Line: '-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh' +# R-230422 RHEL-08-030290 +rhel8STIG_stigrule_230422_Manage: True +rhel8STIG_stigrule_230422__etc_audit_rules_d_audit_rules__usr_bin_passwd_Line: '-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd' +# R-230423 RHEL-08-030300 +rhel8STIG_stigrule_230423_Manage: True +rhel8STIG_stigrule_230423__etc_audit_rules_d_audit_rules__usr_bin_mount_Line: '-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount' +# R-230424 RHEL-08-030301 +rhel8STIG_stigrule_230424_Manage: True +rhel8STIG_stigrule_230424__etc_audit_rules_d_audit_rules__usr_bin_umount_Line: '-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount' +# R-230425 RHEL-08-030302 +rhel8STIG_stigrule_230425_Manage: True +rhel8STIG_stigrule_230425__etc_audit_rules_d_audit_rules_mount_b32_Line: '-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount' +rhel8STIG_stigrule_230425__etc_audit_rules_d_audit_rules_mount_b64_Line: '-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount' +# R-230426 RHEL-08-030310 +rhel8STIG_stigrule_230426_Manage: True +rhel8STIG_stigrule_230426__etc_audit_rules_d_audit_rules__usr_sbin_unix_update_Line: '-a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230427 RHEL-08-030311 +rhel8STIG_stigrule_230427_Manage: True +rhel8STIG_stigrule_230427__etc_audit_rules_d_audit_rules__usr_sbin_postdrop_Line: '-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230428 RHEL-08-030312 +rhel8STIG_stigrule_230428_Manage: True +rhel8STIG_stigrule_230428__etc_audit_rules_d_audit_rules__usr_sbin_postqueue_Line: '-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230429 RHEL-08-030313 +rhel8STIG_stigrule_230429_Manage: True +rhel8STIG_stigrule_230429__etc_audit_rules_d_audit_rules__usr_sbin_semanage_Line: '-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230430 RHEL-08-030314 +rhel8STIG_stigrule_230430_Manage: True +rhel8STIG_stigrule_230430__etc_audit_rules_d_audit_rules__usr_sbin_setfiles_Line: '-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230431 RHEL-08-030315 +rhel8STIG_stigrule_230431_Manage: True +rhel8STIG_stigrule_230431__etc_audit_rules_d_audit_rules__usr_sbin_userhelper_Line: '-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230432 RHEL-08-030316 +rhel8STIG_stigrule_230432_Manage: True +rhel8STIG_stigrule_230432__etc_audit_rules_d_audit_rules__usr_sbin_setsebool_Line: '-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230433 RHEL-08-030317 +rhel8STIG_stigrule_230433_Manage: True +rhel8STIG_stigrule_230433__etc_audit_rules_d_audit_rules__usr_sbin_unix_chkpwd_Line: '-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update' +# R-230434 RHEL-08-030320 +rhel8STIG_stigrule_230434_Manage: True +rhel8STIG_stigrule_230434__etc_audit_rules_d_audit_rules__usr_libexec_openssh_ssh_keysign_Line: '-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh' +# R-230435 RHEL-08-030330 +rhel8STIG_stigrule_230435_Manage: True +rhel8STIG_stigrule_230435__etc_audit_rules_d_audit_rules__usr_bin_setfacl_Line: '-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod' +# R-230436 RHEL-08-030340 +rhel8STIG_stigrule_230436_Manage: True +rhel8STIG_stigrule_230436__etc_audit_rules_d_audit_rules__usr_sbin_pam_timestamp_check_Line: '-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check' +# R-230437 RHEL-08-030350 +rhel8STIG_stigrule_230437_Manage: True +rhel8STIG_stigrule_230437__etc_audit_rules_d_audit_rules__usr_bin_newgrp_Line: '-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd' +# R-230438 RHEL-08-030360 +rhel8STIG_stigrule_230438_Manage: True +rhel8STIG_stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b32_Line: '-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng' +rhel8STIG_stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b64_Line: '-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng' +# R-230439 RHEL-08-030361 +rhel8STIG_stigrule_230439_Manage: True +rhel8STIG_stigrule_230439__etc_audit_rules_d_audit_rules_rename_b32_Line: '-a always,exit -F arch=b32 -S rename -F auid>=1000 -F auid!=unset -k module_chng' +rhel8STIG_stigrule_230439__etc_audit_rules_d_audit_rules_rename_b64_Line: '-a always,exit -F arch=b64 -S rename -F auid>=1000 -F auid!=unset -k module_chng' +# R-230444 RHEL-08-030370 +rhel8STIG_stigrule_230444_Manage: True +rhel8STIG_stigrule_230444__etc_audit_rules_d_audit_rules__usr_bin_gpasswd_Line: '-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd' +# R-230446 RHEL-08-030390 +rhel8STIG_stigrule_230446_Manage: True +rhel8STIG_stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b32_Line: '-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng' +rhel8STIG_stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b64_Line: '-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng' +# R-230447 RHEL-08-030400 +rhel8STIG_stigrule_230447_Manage: True +rhel8STIG_stigrule_230447__etc_audit_rules_d_audit_rules__usr_bin_crontab_Line: '-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab' +# R-230448 RHEL-08-030410 +rhel8STIG_stigrule_230448_Manage: True +rhel8STIG_stigrule_230448__etc_audit_rules_d_audit_rules__usr_bin_chsh_Line: '-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd' +# R-230449 RHEL-08-030420 +rhel8STIG_stigrule_230449_Manage: True +rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b32_Line: '-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access' +rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b64_Line: '-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access' +rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b32_Line: '-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access' +rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b64_Line: '-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access' +# R-230455 RHEL-08-030480 +rhel8STIG_stigrule_230455_Manage: True +rhel8STIG_stigrule_230455__etc_audit_rules_d_audit_rules_chown_b32_Line: '-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod' +rhel8STIG_stigrule_230455__etc_audit_rules_d_audit_rules_chown_b64_Line: '-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod' +# R-230456 RHEL-08-030490 +rhel8STIG_stigrule_230456_Manage: True +rhel8STIG_stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b32_Line: '-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod' +rhel8STIG_stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b64_Line: '-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod' +# R-230462 RHEL-08-030550 +rhel8STIG_stigrule_230462_Manage: True +rhel8STIG_stigrule_230462__etc_audit_rules_d_audit_rules__usr_bin_sudo_Line: '-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd' +# R-230463 RHEL-08-030560 +rhel8STIG_stigrule_230463_Manage: True +rhel8STIG_stigrule_230463__etc_audit_rules_d_audit_rules__usr_sbin_usermod_Line: '-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod' +# R-230464 RHEL-08-030570 +rhel8STIG_stigrule_230464_Manage: True +rhel8STIG_stigrule_230464__etc_audit_rules_d_audit_rules__usr_bin_chacl_Line: '-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod' +# R-230465 RHEL-08-030580 +rhel8STIG_stigrule_230465_Manage: True +rhel8STIG_stigrule_230465__etc_audit_rules_d_audit_rules__usr_bin_kmod_Line: '-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules' +# R-230466 RHEL-08-030590 +rhel8STIG_stigrule_230466_Manage: True +rhel8STIG_stigrule_230466__etc_audit_rules_d_audit_rules__var_log_faillock_Line: '-w /var/log/faillock -p wa -k logins' +# R-230467 RHEL-08-030600 +rhel8STIG_stigrule_230467_Manage: True +rhel8STIG_stigrule_230467__etc_audit_rules_d_audit_rules__var_log_lastlog_Line: '-w /var/log/lastlog -p wa -k logins' +# R-230477 RHEL-08-030670 +rhel8STIG_stigrule_230477_Manage: True +rhel8STIG_stigrule_230477_rsyslog_State: installed +# R-230478 RHEL-08-030680 +rhel8STIG_stigrule_230478_Manage: True +rhel8STIG_stigrule_230478_rsyslog_gnutls_State: installed +# R-230480 RHEL-08-030700 +rhel8STIG_stigrule_230480_Manage: True +rhel8STIG_stigrule_230480__etc_audit_auditd_conf_Line: 'overflow_action = syslog' +# R-230481 RHEL-08-030710 +rhel8STIG_stigrule_230481_Manage: True +rhel8STIG_stigrule_230481__etc_rsyslog_conf_DefaultNetstreamDriver_Line: '$DefaultNetstreamDriver gtls' +rhel8STIG_stigrule_230481__etc_rsyslog_conf_ActionSendStreamDriverMode_Line: '$ActionSendStreamDriverMode 1' +# R-230482 RHEL-08-030720 +rhel8STIG_stigrule_230482_Manage: True +rhel8STIG_stigrule_230482__etc_rsyslog_conf_DefaultNetstreamDriver_Line: '$ActionSendStreamDriverAuthMode x509/name' +# R-230483 RHEL-08-030730 +rhel8STIG_stigrule_230483_Manage: True +rhel8STIG_stigrule_230483__etc_audit_auditd_conf_space_left_Line: 'space_left = 25%' +# R-230487 RHEL-08-040000 +rhel8STIG_stigrule_230487_Manage: True +rhel8STIG_stigrule_230487_telnet_server_State: removed +# R-230488 RHEL-08-040001 +rhel8STIG_stigrule_230488_Manage: True +rhel8STIG_stigrule_230488_abrt__State: removed +# R-230489 RHEL-08-040002 +rhel8STIG_stigrule_230489_Manage: True +rhel8STIG_stigrule_230489_sendmail_State: removed +# R-230492 RHEL-08-040010 +rhel8STIG_stigrule_230492_Manage: True +rhel8STIG_stigrule_230492_rsh_server_State: removed +# R-230502 RHEL-08-040070 +rhel8STIG_stigrule_230502_Manage: True +rhel8STIG_stigrule_230502_autofs_stop_State: stopped +rhel8STIG_stigrule_230502_autofs_disable_Enabled: no +# R-230505 RHEL-08-040100 +rhel8STIG_stigrule_230505_Manage: True +rhel8STIG_stigrule_230505_firewalld_noarch_State: installed +# R-230506 RHEL-08-040110 +rhel8STIG_stigrule_230506_Manage: True +rhel8STIG_stigrule_230506_nmcli_radio_wifi_off_Command: nmcli radio wifi off +# R-230526 RHEL-08-040160 +rhel8STIG_stigrule_230526_Manage: True +rhel8STIG_stigrule_230526_ensure_openssh_server_x86_64_is_installed_State: installed +rhel8STIG_stigrule_230526_sshd_enable_Enabled: yes +# R-230527 RHEL-08-040161 +rhel8STIG_stigrule_230527_Manage: True +rhel8STIG_stigrule_230527_RekeyLimit_Line: RekeyLimit 1G 1h +# R-230529 RHEL-08-040170 +rhel8STIG_stigrule_230529_Manage: True +rhel8STIG_stigrule_230529_systemctl_mask_ctrl_alt_del_target_Command: systemctl mask ctrl-alt-del.target +# R-230531 RHEL-08-040172 +rhel8STIG_stigrule_230531_Manage: True +rhel8STIG_stigrule_230531__etc_systemd_system_conf_Value: 'none' +# R-230533 RHEL-08-040190 +rhel8STIG_stigrule_230533_Manage: True +rhel8STIG_stigrule_230533_tftp_server_State: removed +# R-230535 RHEL-08-040210 +rhel8STIG_stigrule_230535_Manage: True +rhel8STIG_stigrule_230535_net_ipv6_conf_default_accept_redirects_Value: 0 +# R-230536 RHEL-08-040220 +rhel8STIG_stigrule_230536_Manage: True +rhel8STIG_stigrule_230536_net_ipv4_conf_all_send_redirects_Value: 0 +# R-230537 RHEL-08-040230 +rhel8STIG_stigrule_230537_Manage: True +rhel8STIG_stigrule_230537_net_ipv4_icmp_echo_ignore_broadcasts_Value: 1 +# R-230538 RHEL-08-040240 +rhel8STIG_stigrule_230538_Manage: True +rhel8STIG_stigrule_230538_net_ipv6_conf_all_accept_source_route_Value: 0 +# R-230539 RHEL-08-040250 +rhel8STIG_stigrule_230539_Manage: True +rhel8STIG_stigrule_230539_net_ipv6_conf_default_accept_source_route_Value: 0 +# R-230540 RHEL-08-040260 +rhel8STIG_stigrule_230540_Manage: True +rhel8STIG_stigrule_230540_net_ipv4_ip_forward_Value: 0 +rhel8STIG_stigrule_230540_net_ipv6_conf_all_forwarding_Value: 0 +# R-230541 RHEL-08-040261 +rhel8STIG_stigrule_230541_Manage: True +rhel8STIG_stigrule_230541_net_ipv6_conf_all_accept_ra_Value: 0 +# R-230542 RHEL-08-040262 +rhel8STIG_stigrule_230542_Manage: True +rhel8STIG_stigrule_230542_net_ipv6_conf_default_accept_ra_Value: 0 +# R-230543 RHEL-08-040270 +rhel8STIG_stigrule_230543_Manage: True +rhel8STIG_stigrule_230543_net_ipv4_conf_default_send_redirects_Value: 0 +# R-230544 RHEL-08-040280 +rhel8STIG_stigrule_230544_Manage: True +rhel8STIG_stigrule_230544_net_ipv6_conf_all_accept_redirects_Value: 0 +# R-230545 RHEL-08-040281 +rhel8STIG_stigrule_230545_Manage: True +rhel8STIG_stigrule_230545__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.unprivileged_bpf_disabled = 1' +# R-230546 RHEL-08-040282 +rhel8STIG_stigrule_230546_Manage: True +rhel8STIG_stigrule_230546__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.yama.ptrace_scope = 1' +rhel8STIG_stigrule_230546_kernel_yama_ptrace_scope_Value: 1 +# R-230547 RHEL-08-040283 +rhel8STIG_stigrule_230547_Manage: True +rhel8STIG_stigrule_230547__etc_sysctl_d_99_sysctl_conf_Line: 'kernel.kptr_restrict = 1' +# R-230548 RHEL-08-040284 +rhel8STIG_stigrule_230548_Manage: True +rhel8STIG_stigrule_230548__etc_sysctl_d_99_sysctl_conf_Line: 'user.max_user_namespaces = 0' +rhel8STIG_stigrule_230548_user_max_user_namespaces_Value: 0 +# R-230549 RHEL-08-040285 +rhel8STIG_stigrule_230549_Manage: True +rhel8STIG_stigrule_230549__etc_sysctl_d_99_sysctl_conf_Line: 'net.ipv4.conf.all.rp_filter = 1' +# R-230555 RHEL-08-040340 +rhel8STIG_stigrule_230555_Manage: True +rhel8STIG_stigrule_230555_X11Forwarding_Line: X11Forwarding no +# R-230556 RHEL-08-040341 +rhel8STIG_stigrule_230556_Manage: True +rhel8STIG_stigrule_230556_X11UseLocalhost_Line: X11UseLocalhost yes +# R-230558 RHEL-08-040360 +rhel8STIG_stigrule_230558_Manage: True +rhel8STIG_stigrule_230558_vsftpd_State: removed +# R-230559 RHEL-08-040370 +rhel8STIG_stigrule_230559_Manage: True +rhel8STIG_stigrule_230559_gssproxy_State: removed +# R-230560 RHEL-08-040380 +rhel8STIG_stigrule_230560_Manage: True +rhel8STIG_stigrule_230560_iprutils_State: removed +# R-230561 RHEL-08-040390 +rhel8STIG_stigrule_230561_Manage: True +rhel8STIG_stigrule_230561_tuned_State: removed +# R-244519 RHEL-08-010049 +rhel8STIG_stigrule_244519_Manage: True +rhel8STIG_stigrule_244519__etc_dconf_db_local_d_01_banner_message_Value: 'true' +# R-244523 RHEL-08-010152 +rhel8STIG_stigrule_244523_Manage: True +rhel8STIG_stigrule_244523__usr_lib_systemd_system_emergency_service_Value: '-/usr/lib/systemd/systemd-sulogin-shell emergency' +# R-244525 RHEL-08-010201 +rhel8STIG_stigrule_244525_Manage: True +rhel8STIG_stigrule_244525_ClientAliveInterval_Line: ClientAliveInterval 600 +# R-244527 RHEL-08-010472 +rhel8STIG_stigrule_244527_Manage: True +rhel8STIG_stigrule_244527_rng_tools_State: installed +# R-244528 RHEL-08-010522 +rhel8STIG_stigrule_244528_Manage: True +rhel8STIG_stigrule_244528_GSSAPIAuthentication_Line: GSSAPIAuthentication no +# R-244535 RHEL-08-020031 +rhel8STIG_stigrule_244535_Manage: True +rhel8STIG_stigrule_244535__etc_dconf_db_local_d_00_screensaver_Value: 'uint32 5' +# R-244536 RHEL-08-020032 +rhel8STIG_stigrule_244536_Manage: True +rhel8STIG_stigrule_244536__etc_dconf_db_local_d_02_login_screen_Value: 'true' +# R-244537 RHEL-08-020039 +rhel8STIG_stigrule_244537_Manage: True +rhel8STIG_stigrule_244537_tmux_State: installed +# R-244538 RHEL-08-020081 +rhel8STIG_stigrule_244538_Manage: True +rhel8STIG_stigrule_244538__etc_dconf_db_local_d_locks_session_idle_delay_Line: '/org/gnome/desktop/session/idle-delay' +# R-244539 RHEL-08-020082 +rhel8STIG_stigrule_244539_Manage: True +rhel8STIG_stigrule_244539__etc_dconf_db_local_d_locks_session_lock_enabled_Line: '/org/gnome/desktop/screensaver/lock-enabled' +# R-244542 RHEL-08-030181 +rhel8STIG_stigrule_244542_Manage: True +rhel8STIG_stigrule_244542_auditd_enable_Enabled: yes +rhel8STIG_stigrule_244542_auditd_start_State: started +# R-244543 RHEL-08-030731 +rhel8STIG_stigrule_244543_Manage: True +rhel8STIG_stigrule_244543__etc_audit_auditd_conf_space_left_action_Line: 'space_left_action = email' +# R-244544 RHEL-08-040101 +rhel8STIG_stigrule_244544_Manage: True +rhel8STIG_stigrule_244544_firewalld_enable_Enabled: yes +# R-244549 RHEL-08-040159 +rhel8STIG_stigrule_244549_Manage: True +rhel8STIG_stigrule_244549_openssh_server_x86_64_State: installed +# R-244550 RHEL-08-040209 +rhel8STIG_stigrule_244550_Manage: True +rhel8STIG_stigrule_244550_net_ipv4_conf_default_accept_redirects_Value: 0 +# R-244551 RHEL-08-040239 +rhel8STIG_stigrule_244551_Manage: True +rhel8STIG_stigrule_244551_net_ipv4_conf_all_accept_source_route_Value: 0 +# R-244552 RHEL-08-040249 +rhel8STIG_stigrule_244552_Manage: True +rhel8STIG_stigrule_244552_net_ipv4_conf_default_accept_source_route_Value: 0 +# R-244553 RHEL-08-040279 +rhel8STIG_stigrule_244553_Manage: True +rhel8STIG_stigrule_244553_net_ipv4_conf_all_accept_redirects_Value: 0 +# R-244554 RHEL-08-040286 +rhel8STIG_stigrule_244554_Manage: True +rhel8STIG_stigrule_244554__etc_sysctl_d_99_sysctl_conf_Line: 'net.core.bpf_jit_harden = 2' diff --git a/collections/ansible_collections/demo/compliance/roles/rhel8STIG/files/U_RHEL_8_STIG_V1R9_Manual-xccdf.xml b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/files/U_RHEL_8_STIG_V1R9_Manual-xccdf.xml new file mode 100644 index 0000000..52e9e3d --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/files/U_RHEL_8_STIG_V1R9_Manual-xccdf.xml @@ -0,0 +1,7608 @@ +acceptedRed Hat Enterprise Linux 8 Security Technical Implementation GuideThis Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.DISASTIG.DOD.MILRelease: 9 Benchmark Date: 26 Jan 20233.4.0.342221.10.01I - Mission Critical Classified<ProfileDescription></ProfileDescription>I - Mission Critical Public<ProfileDescription></ProfileDescription>I - Mission Critical Sensitive<ProfileDescription></ProfileDescription>II - Mission Support Classified<ProfileDescription></ProfileDescription>II - Mission Support Public<ProfileDescription></ProfileDescription>II - Mission Support Sensitive<ProfileDescription></ProfileDescription>III - Administrative Classified<ProfileDescription></ProfileDescription>III - Administrative Public<ProfileDescription></ProfileDescription>III - Administrative Sensitive<ProfileDescription></ProfileDescription>SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010000RHEL 8 must be a vendor-supported release.<VulnDiscussion>An operating system release is considered "supported" if the vendor continues to provide security patches for the product. With an unsupported release, it will not be possible to resolve security issues discovered in the system software. + +Red Hat offers the Extended Update Support (EUS) add-on to a Red Hat Enterprise Linux subscription, for a fee, for those customers who wish to standardize on a specific minor release for an extended period. The RHEL 8 minor releases eligible for EUS are 8.1, 8.2, 8.4, 8.6, and 8.8. Each RHEL 8 EUS stream is available for 24 months from the availability of the minor release. RHEL 8.10 will be the final minor release overall. For more details on the Red Hat Enterprise Linux Life Cycle visit https://access.redhat.com/support/policy/updates/errata/. +Note: The life-cycle time spans and dates are subject to adjustment.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Upgrade to a supported version of RHEL 8.Verify the version of the operating system is vendor supported. + +Note: The lifecycle time spans and dates are subject to adjustment. + +Check the version of the operating system with the following command: + +$ sudo cat /etc/redhat-release + +Red Hat Enterprise Linux Server release 8.6 (Ootpa) + +Current End of Extended Update Support for RHEL 8.1 is 30 November 2021. + +Current End of Extended Update Support for RHEL 8.2 is 30 April 2022. + +Current End of Extended Update Support for RHEL 8.4 is 31 May 2023. + +Current End of Maintenance Support for RHEL 8.5 is 31 May 2022. + +Current End of Extended Update Support for RHEL 8.6 is 31 May 2024. + +Current End of Maintenance Support for RHEL 8.7 is 31 May 2023. + +Current End of Extended Update Support for RHEL 8.8 is 31 May 2025. + +Current End of Maintenance Support for RHEL 8.9 is 31 May 2024. + +Current End of Maintenance Support for RHEL 8.10 is 31 May 2029. + +If the release is not supported by the vendor, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010010RHEL 8 vendor packaged system security patches and updates must be installed and up to date.<VulnDiscussion>Timely patching is critical for maintaining the operational availability, confidentiality, and integrity of information technology (IT) systems. However, failure to keep operating system and application software patched is a common mistake made by IT professionals. New patches are released daily, and it is often difficult for even experienced System Administrators to keep abreast of all the new patches. When new weaknesses in an operating system exist, patches are usually made available by the vendor to resolve the problems. If the most recent security patches and updates are not installed, unauthorized users may take advantage of weaknesses in the unpatched software. The lack of prompt attention to patching could result in a system compromise.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Install the operating system patches or updated packages available from Red Hat within 30 days or sooner as local policy dictates.Verify the operating system security patches and updates are installed and up to date. Updates are required to be applied with a frequency determined by the site or Program Management Office (PMO). + +Obtain the list of available package security updates from Red Hat. The URL for updates is https://rhn.redhat.com/errata/. It is important to note that updates provided by Red Hat may not be present on the system if the underlying packages are not installed. + +Check that the available package security updates have been installed on the system with the following command: + +$ sudo yum history list | more + +Loaded plugins: langpacks, product-id, subscription-manager +ID | Command line | Date and time | Action(s) | Altered +------------------------------------------------------------------------------- +70 | install aide | 2020-03-05 10:58 | Install | 1 +69 | update -y | 2020-03-04 14:34 | Update | 18 EE +68 | install vlc | 2020-02-21 17:12 | Install | 21 +67 | update -y | 2020-02-21 17:04 | Update | 7 EE + +If package updates have not been performed on the system within the timeframe the site/program documentation requires, this is a finding. + +Typical update frequency may be overridden by Information Assurance Vulnerability Alert (IAVA) notifications from CYBERCOM. + +If the operating system is in non-compliance with the Information Assurance Vulnerability Management (IAVM) process, this is a finding.SRG-OS-000033-GPOS-00014<GroupDescription></GroupDescription>RHEL-08-010020RHEL 8 must implement NIST FIPS-validated cryptography for the following: to provision digital signatures, to generate cryptographic hashes, and to protect data requiring data-at-rest protections in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards.<VulnDiscussion>Use of weak or untested encryption algorithms undermines the purposes of using encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the Federal Government since this provides assurance they have been tested and validated. + +RHEL 8 utilizes GRUB 2 as the default bootloader. Note that GRUB 2 command-line parameters are defined in the "kernelopts" variable of the /boot/grub2/grubenv file for all kernel boot entries. The command "fips-mode-setup" modifies the "kernelopts" variable, which in turn updates all kernel boot entries. + +The fips=1 kernel option needs to be added to the kernel command line during system installation so that key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. Users must also ensure the system has plenty of entropy during the installation process by moving the mouse around, or if no mouse is available, ensuring that many keystrokes are typed. The recommended amount of keystrokes is 256 and more. Less than 256 keystrokes may generate a non-unique key. + +Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000125-GPOS-00065, SRG-OS-000396-GPOS-00176, SRG-OS-000423-GPOS-00187, SRG-OS-000478-GPOS-00223</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000068Configure the operating system to implement DoD-approved encryption by following the steps below: + +To enable strict FIPS compliance, the fips=1 kernel option needs to be added to the kernel boot parameters during system installation so key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. + +Enable FIPS mode after installation (not strict FIPS compliant) with the following command: + +$ sudo fips-mode-setup --enable + +Reboot the system for the changes to take effect.Verify the operating system implements DoD-approved encryption to protect the confidentiality of remote access sessions. + +Check to see if FIPS mode is enabled with the following command: + +$ fips-mode-setup --check + +FIPS mode is enabled + +If FIPS mode is "enabled", check to see if the kernel boot parameter is configured for FIPS mode with the following command: + +$ sudo grub2-editenv list | grep fips + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If the kernel boot parameter is configured to use FIPS mode, check to see if the system is in FIPS mode with the following command: + +$ sudo cat /proc/sys/crypto/fips_enabled + +1 + +If FIPS mode is not "on", the kernel boot parameter is not configured for FIPS mode, or the system does not have a value of "1" for "fips_enabled" in "/proc/sys/crypto", this is a finding.SRG-OS-000185-GPOS-00079<GroupDescription></GroupDescription>RHEL-08-010030All RHEL 8 local disk partitions must implement cryptographic mechanisms to prevent unauthorized disclosure or modification of all information that requires at rest protection.<VulnDiscussion>RHEL 8 systems handling data requiring "data at rest" protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. + +Selection of a cryptographic mechanism is based on the need to protect the integrity of organizational information. The strength of the mechanism is commensurate with the security category and/or classification of the information. Organizations have the flexibility to either encrypt all information on storage devices (i.e., full disk encryption) or encrypt specific data structures (e.g., files, records, or fields). + +Satisfies: SRG-OS-000185-GPOS-00079, SRG-OS-000404-GPOS-00183, SRG-OS-000405-GPOS-00184</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001199Configure RHEL 8 to prevent unauthorized modification of all information at rest by using disk encryption. + +Encrypting a partition in an already installed system is more difficult, because existing partitions will need to be resized and changed. To encrypt an entire partition, dedicate a partition for encryption in the partition layout.Verify RHEL 8 prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. + +If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. + +Verify all system partitions are encrypted with the following command: + +$ sudo blkid + +/dev/mapper/rhel-root: UUID="67b7d7fe-de60-6fd0-befb-e6748cf97743" TYPE="crypto_LUKS" + +Every persistent disk partition present must be of type "crypto_LUKS". If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not type "crypto_LUKS", ask the administrator to indicate how the partitions are encrypted. If there is no evidence that these partitions are encrypted, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-08-010040RHEL 8 must display the Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a ssh logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Use the following verbiage for operating systems that have severe limitations on the number of characters that can be displayed in the banner: + +"I've read & consent to terms in IS user agreem't." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000048Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via the ssh. + +Edit the "/etc/ssh/sshd_config" file to uncomment the banner keyword and configure it to point to a file that will contain the logon banner (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). An example configuration line is: + +banner /etc/issue + +Either create the file containing the banner or replace the text in the file with the Standard Mandatory DoD Notice and Consent Banner. The DoD-required text is: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +The SSH service must be restarted for changes to take effect.Verify any publicly accessible connection to the operating system displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the system. + +Check for the location of the banner file being used with the following command: + +$ sudo grep -ir banner /etc/ssh/sshd_config* + +banner /etc/issue + +This command will return the banner keyword and the name of the file that contains the ssh banner (in this case "/etc/issue"). + +If the line is commented out, this is a finding. +If conflicting results are returned, this is a finding. + +View the file specified by the banner keyword to check that it matches the text of the Standard Mandatory DoD Notice and Consent Banner: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +If the system does not display a graphical logon banner or the banner does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding. + +If the text in the file does not match the Standard Mandatory DoD Notice and Consent Banner, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-08-010050RHEL 8 must display the Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000048Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system. + +Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. + +Add the following lines to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": + +banner-message-text='You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' + +Note: The "\n " characters are for formatting only. They will not be displayed on the graphical interface. + +Run the following command to update the database: + +$ sudo dconf updateVerify RHEL 8 displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a graphical user logon. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Check that the operating system displays the exact Standard Mandatory DoD Notice and Consent Banner text with the command: + +$ sudo grep banner-message-text /etc/dconf/db/local.d/* + +banner-message-text= +'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' + +Note: The "\n " characters are for formatting only. They will not be displayed on the graphical interface. + +If the banner does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-08-010060RHEL 8 must display the Standard Mandatory DoD Notice and Consent Banner before granting local or remote access to the system via a command line user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +The banner must be formatted in accordance with applicable DoD policy. Use the following verbiage for operating systems that can accommodate banners of 1300 characters: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000048Configure RHEL 8 to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system via command line logon. + +Edit the "/etc/issue" file to replace the default text with the Standard Mandatory DoD Notice and Consent Banner. The DoD-required text is: + +"You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests -- not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details."Verify RHEL 8 displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a command line user logon. + +Check that RHEL 8 displays a banner at the command line login screen with the following command: + +$ sudo cat /etc/issue + +If the banner is set correctly it will return the following text: + +“You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. + +By using this IS (which includes any device attached to this IS), you consent to the following conditions: + +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. + +-At any time, the USG may inspect and seize data stored on this IS. + +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. + +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. + +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.” + +If the banner text does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding.SRG-OS-000032-GPOS-00013<GroupDescription></GroupDescription>RHEL-08-010070All RHEL 8 remote access methods must be monitored.<VulnDiscussion>Remote access services, such as those providing remote access to network devices and information systems, which lack automated monitoring capabilities, increase risk and make remote user access management difficult at best. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Automated monitoring of remote access sessions allows organizations to detect cyber attacks and ensure ongoing compliance with remote access policies by auditing connection activities of remote access capabilities, such as Remote Desktop Protocol (RDP), on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000067Configure RHEL 8 to monitor all remote access methods by installing rsyslog with the following command: + +$ sudo yum install rsyslog + +Then add or update the following lines to the "/etc/rsyslog.conf" file: + +auth.*;authpriv.*;daemon.* /var/log/secure + +The "rsyslog" service must be restarted for the changes to take effect. To restart the "rsyslog" service, run the following command: + +$ sudo systemctl restart rsyslog.serviceVerify that RHEL 8 monitors all remote access methods. + +Check that remote access methods are being logged by running the following command: + +$ sudo grep -E '(auth.*|authpriv.*|daemon.*)' /etc/rsyslog.conf + +auth.*;authpriv.*;daemon.* /var/log/secure + +If "auth.*", "authpriv.*" or "daemon.*" are not configured to be logged, this is a finding.SRG-OS-000066-GPOS-00034<GroupDescription></GroupDescription>RHEL-08-010090RHEL 8, for PKI-based authentication, must validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor.<VulnDiscussion>Without path validation, an informed trust decision by the relying party cannot be made when presented with any certificate not already explicitly trusted. + +A trust anchor is an authoritative entity represented via a public key and associated data. It is used in the context of public key infrastructures, X.509 digital certificates, and DNSSEC. + +When there is a chain of trust, usually the top entity to be trusted becomes the trust anchor; it can be, for example, a Certification Authority (CA). A certification path starts with the subject certificate and proceeds through a number of intermediate certificates up to a trusted root certificate, typically issued by a trusted CA. + +This requirement verifies that a certification path to an accepted trust anchor is used for certificate validation and that the path includes status information. Path validation is necessary for a relying party to make an informed trust decision when presented with any certificate not already explicitly trusted. Status information for certification paths includes certificate revocation lists or online certificate status protocol responses. Validation of the certificate status information is out of scope for this requirement. + +Satisfies: SRG-OS-000066-GPOS-00034, SRG-OS-000384-GPOS-00167</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000185Configure RHEL 8, for PKI-based authentication, to validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor. + +Obtain a valid copy of the DoD root CA file from the PKI CA certificate bundle at cyber.mil and copy into the following file: + +/etc/sssd/pki/sssd_auth_ca_db.pemVerify RHEL 8 for PKI-based authentication has valid certificates by constructing a certification path (which includes status information) to an accepted trust anchor. + +Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. + +Check that the system has a valid DoD root CA installed with the following command: + +$ sudo openssl x509 -text -in /etc/sssd/pki/sssd_auth_ca_db.pem + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = US, O = U.S. Government, OU = DoD, OU = PKI, CN = DoD Root CA 3 + Validity + Not Before: Mar 20 18:46:41 2012 GMT + Not After : Dec 30 18:46:41 2029 GMT + Subject: C = US, O = U.S. Government, OU = DoD, OU = PKI, CN = DoD Root CA 3 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + +If the root ca file is not a DoD-issued certificate with a valid date and installed in the /etc/sssd/pki/sssd_auth_ca_db.pem location, this is a finding.SRG-OS-000067-GPOS-00035<GroupDescription></GroupDescription>RHEL-08-010100RHEL 8, for certificate-based authentication, must enforce authorized access to the corresponding private key.<VulnDiscussion>If an unauthorized user obtains access to a private key without a passcode, that user would have unauthorized access to any system where the associated public key has been installed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000186Create a new private and public key pair that utilizes a passcode with the following command: + +$ sudo ssh-keygen -n [passphrase]Verify the SSH private key files have a passcode. + +For each private key stored on the system, use the following command: + +$ sudo ssh-keygen -y -f /path/to/file + +If the contents of the key are displayed, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-08-010110RHEL 8 must encrypt all stored passwords with a FIPS 140-2 approved cryptographic hashing algorithm.<VulnDiscussion>Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised. + +Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000196Configure RHEL 8 to encrypt all stored passwords. + +Edit/Modify the following line in the "/etc/login.defs" file and set "[ENCRYPT_METHOD]" to SHA512. + +ENCRYPT_METHOD SHA512Verify that the shadow password suite configuration is set to encrypt password with a FIPS 140-2 approved cryptographic hashing algorithm. + +Check the hashing algorithm that is being used to hash passwords with the following command: + +$ sudo grep -i crypt /etc/login.defs + +ENCRYPT_METHOD SHA512 + +If "ENCRYPT_METHOD" does not equal SHA512 or greater, this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-08-010120RHEL 8 must employ FIPS 140-2 approved cryptographic hashing algorithms for all stored passwords.<VulnDiscussion>The system must use a strong hashing algorithm to store the password. + +Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000196Lock all interactive user accounts not using SHA-512 hashing until the passwords can be regenerated with SHA-512.Confirm that the interactive user account passwords are using a strong password hash with the following command: + +$ sudo cut -d: -f2 /etc/shadow + +$6$kcOnRq/5$NUEYPuyL.wghQwWssXRcLRFiiru7f5JPV6GaJhNC2aK5F3PZpE/BCCtwrxRc/AInKMNX3CdMw11m9STiql12f/ + +Password hashes "!" or "*" indicate inactive accounts not available for logon and are not evaluated. If any interactive user password hash does not begin with "$6$", this is a finding.SRG-OS-000073-GPOS-00041<GroupDescription></GroupDescription>RHEL-08-010130The RHEL 8 shadow password suite must be configured to use a sufficient number of hashing rounds.<VulnDiscussion>The system must use a strong hashing algorithm to store the password. The system must use a sufficient number of hashing rounds to ensure the required level of entropy. + +Passwords need to be protected at all times, and encryption is the standard method for protecting passwords. If passwords are not encrypted, they can be plainly read (i.e., clear text) and easily compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000196Configure RHEL 8 to encrypt all stored passwords with a strong cryptographic hash. + +Edit/modify the following line in the "/etc/login.defs" file and set "SHA_CRYPT_MIN_ROUNDS" to a value no lower than "5000": + +SHA_CRYPT_MIN_ROUNDS 5000Check that a minimum number of hash rounds is configured by running the following command: + + $ sudo grep -E "^SHA_CRYPT_" /etc/login.defs + +If only one of "SHA_CRYPT_MIN_ROUNDS" or "SHA_CRYPT_MAX_ROUNDS" is set, and this value is below "5000", this is a finding. + +If both "SHA_CRYPT_MIN_ROUNDS" and "SHA_CRYPT_MAX_ROUNDS" are set, and the highest value for either is below "5000", this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010140RHEL 8 operating systems booted with United Extensible Firmware Interface (UEFI) must require authentication upon booting into single-user mode and maintenance.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 8 and is designed to require a password to boot into single-user mode or make modifications to the boot menu.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to require a grub bootloader password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/efi/EFI/redhat/user.cfg file. + +Generate an encrypted grub2 password for the grub superusers account with the following command: + +$ sudo grub2-setpassword +Enter password: +Confirm password:For systems that use BIOS, this is Not Applicable. + +Check to see if an encrypted grub superusers password is set. On systems that use UEFI, use the following command: + +$ sudo grep -iw grub2_password /boot/efi/EFI/redhat/user.cfg + +GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] + +If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010150RHEL 8 operating systems booted with a BIOS must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 8 and is designed to require a password to boot into single-user mode or make modifications to the boot menu.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to require a grub bootloader password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/grub2/user.cfg file. + +Generate an encrypted grub2 password for the grub superusers account with the following command: + +$ sudo grub2-setpassword +Enter password: +Confirm password:For systems that use UEFI, this is Not Applicable. + +Check to see if an encrypted grub superusers password is set. On systems that use a BIOS, use the following command: + +$ sudo grep -iw grub2_password /boot/grub2/user.cfg + +GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] + +If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010151RHEL 8 operating systems must require authentication upon booting into rescue mode.<VulnDiscussion>If the system does not require valid root authentication before it boots into emergency or rescue mode, anyone who invokes emergency or rescue mode is granted privileged access to all files on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to require authentication upon booting into rescue mode by adding the following line to the "/usr/lib/systemd/system/rescue.service" file. + +ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescueCheck to see if the system requires authentication for rescue mode with the following command: + +$ sudo grep sulogin-shell /usr/lib/systemd/system/rescue.service + +ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue + +If the "ExecStart" line is configured for anything other than "/usr/lib/systemd/systemd-sulogin-shell rescue", commented out, or missing, this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>RHEL-08-010160The RHEL 8 pam_unix.so module must be configured in the password-auth file to use a FIPS 140-2 approved cryptographic hashing algorithm for system authentication.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +RHEL 8 systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000803Configure RHEL 8 to use a FIPS 140-2 approved cryptographic hashing algorithm for system authentication. + +Edit/modify the following line in the "/etc/pam.d/password-auth" file to include the sha512 option for pam_unix.so: + +password sufficient pam_unix.so sha512Verify that the pam_unix.so module is configured to use sha512. + +Check that the pam_unix.so module is configured to use sha512 in /etc/pam.d/password-auth with the following command: + +$ sudo grep password /etc/pam.d/password-auth | grep pam_unix + +password sufficient pam_unix.so sha512 + +If "sha512" is missing, or is commented out, this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>RHEL-08-010161RHEL 8 must prevent system daemons from using Kerberos for authentication.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +RHEL 8 systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +The key derivation function (KDF) in Kerberos is not FIPS compatible. Ensuring the system does not have any keytab files present prevents system daemons from using Kerberos for authentication. A keytab is a file containing pairs of Kerberos principals and encrypted keys. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000803Configure RHEL 8 to prevent system daemons from using Kerberos for authentication. + +Remove any files with the .keytab extension from the operating system.Verify that RHEL 8 prevents system daemons from using Kerberos for authentication. + +If the system is a server utilizing krb5-server-1.17-18.el8.x86_64 or newer, this requirement is not applicable. +If the system is a workstation utilizing krb5-workstation-1.17-18.el8.x86_64 or newer, this requirement is not applicable. + +Check if there are available keytabs with the following command: + +$ sudo ls -al /etc/*.keytab + +If this command produces any file(s), this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>RHEL-08-010162The krb5-workstation package must not be installed on RHEL 8.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +RHEL 8 systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +Currently, Kerberos does not utilize FIPS 140-2 cryptography. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000803Document the krb5-workstation package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove krb5-workstationVerify the krb5-workstation package has not been installed on the system with the following commands: + +If the system is a server or is utilizing krb5-workstation-1.17-18.el8.x86_64 or newer, this is Not Applicable. + +$ sudo yum list installed krb5-workstation + +krb5-workstation.x86_64 1.17-9.el8 repository + +If the krb5-workstation package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>RHEL-08-010170RHEL 8 must use a Linux Security Module configured to enforce limits on system services.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to operating systems performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001084Configure the operating system to verify correct operation of all security functions. + +Set the "SELinux" status and the "Enforcing" mode by modifying the "/etc/selinux/config" file to have the following line: + +SELINUX=enforcing + +A reboot is required for the changes to take effect.Verify the operating system verifies correct operation of all security functions. + +Check if "SELinux" is active and in "Enforcing" mode with the following command: + +$ sudo getenforce +Enforcing + +If "SELinux" is not active and not in "Enforcing" mode, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>RHEL-08-010171RHEL 8 must have policycoreutils package installed.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +Policycoreutils contains the policy core utilities that are required for basic operation of an SELinux-enabled system. These utilities include load_policy to load SELinux policies, setfile to label filesystems, newrole to switch roles, and run_init to run /etc/init.d scripts in the proper context.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001084Configure the operating system to have the policycoreutils package installed with the following command: + +$ sudo yum install policycoreutilsVerify the operating system has the policycoreutils package installed with the following command: + +$ sudo yum list installed policycoreutils + +policycoreutils.x86_64 2.9-3.el8 @anaconda + +If the policycoreutils package is not installed, this is a finding.SRG-OS-000138-GPOS-00069<GroupDescription></GroupDescription>RHEL-08-010190A sticky bit must be set on all RHEL 8 public directories to prevent unauthorized and unintended information transferred via shared system resources.<VulnDiscussion>Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection. + +This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DoD or other government agencies. + +There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001090Configure all world-writable directories to have the sticky bit set to prevent unauthorized and unintended information transferred via shared system resources. + +Set the sticky bit on all world-writable directories using the command, replace "[World-Writable Directory]" with any directory path missing the sticky bit: + +$ sudo chmod 1777 [World-Writable Directory]Verify that all world-writable directories have the sticky bit set. + +Check to see that all world-writable directories have the sticky bit set by running the following command: + +$ sudo find / -type d \( -perm -0002 -a ! -perm -1000 \) -print 2>/dev/null + +drwxrwxrwt 7 root root 4096 Jul 26 11:19 /tmp + +If any of the returned directories are world-writable and do not have the sticky bit set, this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>RHEL-08-010200RHEL 8 must be configured so that all network connections associated with SSH traffic are terminated at the end of the session or after 10 minutes of inactivity, except to fulfill documented and validated mission requirements.<VulnDiscussion>Terminating an idle SSH session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle SSH session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +RHEL 8 utilizes /etc/ssh/sshd_config for configurations of OpenSSH. Within the sshd_config the product of the values of "ClientAliveInterval" and "ClientAliveCountMax" are used to establish the inactivity threshold. The "ClientAliveInterval" is a timeout interval in seconds after which if no data has been received from the client, sshd will send a message through the encrypted channel to request a response from the client. The "ClientAliveCountMax" is the number of client alive messages that may be sent without sshd receiving any messages back from the client. If this threshold is met, sshd will disconnect the client. For more information on these settings and others, refer to the sshd_config man pages. + +Satisfies: SRG-OS-000163-GPOS-00072, SRG-OS-000126-GPOS-00066, SRG-OS-000279-GPOS-00109</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001133Configure RHEL 8 to automatically terminate all network connections associated with SSH traffic at the end of a session or after 10 minutes of inactivity. + +Modify or append the following lines in the "/etc/ssh/sshd_config" file: + +ClientAliveCountMax 1 + +In order for the changes to take effect, the SSH daemon must be restarted. + +$ sudo systemctl restart sshd.serviceVerify all network connections associated with SSH traffic are automatically terminated at the end of the session or after 10 minutes of inactivity. + +Check that the "ClientAliveCountMax" is set to "1" by performing the following command: + +$ sudo grep -ir clientalive /etc/ssh/sshd_config* + +ClientAliveInterval 600 +ClientAliveCountMax 1 + +If "ClientAliveCountMax" do not exist, is not set to a value of "1" in "/etc/ssh/sshd_config", or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010210The RHEL 8 /var/log/messages file must have mode 0640 or less permissive.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the permissions of the file "/var/log/messages" to "0640" by running the following command: + +$ sudo chmod 0640 /var/log/messagesVerify that the "/var/log/messages" file has mode "0640" or less permissive with the following command: + +$ sudo stat -c "%a %n" /var/log/messages + +640 /var/log/messages + +If a value of "0640" or less permissive is not returned, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010220The RHEL 8 /var/log/messages file must be owned by root.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the owner of the file /var/log/messages to root by running the following command: + +$ sudo chown root /var/log/messagesVerify that the /var/log/messages file is owned by root with the following command: + +$ sudo stat -c "%U" /var/log/messages + +root + +If "root" is not returned as a result, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010230The RHEL 8 /var/log/messages file must be group-owned by root.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the group of the file "/var/log/messages" to "root" by running the following command: + +$ sudo chgrp root /var/log/messagesVerify the "/var/log/messages" file is group-owned by root with the following command: + +$ sudo stat -c "%G" /var/log/messages + +root + +If "root" is not returned as a result, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010240The RHEL 8 /var/log directory must have mode 0755 or less permissive.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the permissions of the directory "/var/log" to "0755" by running the following command: + +$ sudo chmod 0755 /var/logVerify that the "/var/log" directory has a mode of "0755" or less with the following command: + +$ sudo stat -c "%a %n" /var/log + +755 + +If a value of "0755" or less permissive is not returned, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010250The RHEL 8 /var/log directory must be owned by root.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the owner of the directory /var/log to root by running the following command: + +$ sudo chown root /var/logVerify the /var/log directory is owned by root with the following command: + +$ sudo stat -c "%U" /var/log + +root + +If "root" is not returned as a result, this is a finding.SRG-OS-000206-GPOS-00084<GroupDescription></GroupDescription>RHEL-08-010260The RHEL 8 /var/log directory must be group-owned by root.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001314Change the group of the directory "/var/log" to "root" by running the following command: + +$ sudo chgrp root /var/logVerify the "/var/log" directory is group-owned by root with the following command: + +$ sudo stat -c "%G" /var/log + +root + +If "root" is not returned as a result, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010290The RHEL 8 SSH server must be configured to use only Message Authentication Codes (MACs) employing FIPS 140-2 validated cryptographic hash algorithms.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +RHEL 8 incorporates system-wide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file. + +The system will attempt to use the first hash presented by the client that matches the server list. Listing the values "strongest to weakest" is a method to ensure the use of the strongest hash available to secure the SSH connection. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000125-GPOS-00065</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 SSH server to use only MACs employing FIPS 140-2-approved algorithms by updating the "/etc/crypto-policies/back-ends/opensshserver.config" file with the following line: + +-oMACS=hmac-sha2-512,hmac-sha2-256 + +A reboot is required for the changes to take effect.Verify the SSH server is configured to use only MACs employing FIPS 140-2-approved algorithms with the following command: + +$ sudo grep -i macs /etc/crypto-policies/back-ends/opensshserver.config + +-oMACS=hmac-sha2-512,hmac-sha2-256 + +If the MACs entries in the "opensshserver.config" file have any hashes other than "hmac-sha2-512" and "hmac-sha2-256", the order differs from the example above, they are missing, or commented out, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010291The RHEL 8 operating system must implement DoD-approved encryption to protect the confidentiality of SSH server connections.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +RHEL 8 incorporates system-wide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file. + +The system will attempt to use the first hash presented by the client that matches the server list. Listing the values "strongest to weakest" is a method to ensure the use of the strongest hash available to secure the SSH connection. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000125-GPOS-00065</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 SSH server to use only ciphers employing FIPS 140-2-approved algorithms by updating the "/etc/crypto-policies/back-ends/opensshserver.config" file with the following line: + +-oCiphers=aes256-ctr,aes192-ctr,aes128-ctr + +A reboot is required for the changes to take effect.Verify the SSH server is configured to use only ciphers employing FIPS 140-2-approved algorithms with the following command: + +$ sudo grep -i ciphers /etc/crypto-policies/back-ends/opensshserver.config + +CRYPTO_POLICY='-oCiphers=aes256-ctr,aes192-ctr,aes128-ctr' + +If the cipher entries in the "opensshserver.config" file have any ciphers other than "aes256-ctr,aes192-ctr,aes128-ctr", the order differs from the example above, they are missing, or commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010292RHEL 8 must ensure the SSH server uses strong entropy.<VulnDiscussion>The most important characteristic of a random number generator is its randomness, namely its ability to deliver random numbers that are impossible to predict. Entropy in computer security is associated with the unpredictability of a source of randomness. The random source with high entropy tends to achieve a uniform distribution of random values. Random number generators are one of the most important building blocks of cryptosystems. + +The SSH implementation in RHEL8 uses the OPENSSL library, which does not use high-entropy sources by default. By using the SSH_USE_STRONG_RNG environment variable the OPENSSL random generator is reseeded from /dev/random. This setting is not recommended on computers without the hardware random generator because insufficient entropy causes the connection to be blocked until enough entropy is available.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system SSH server to use strong entropy. + +Add or modify the following line in the "/etc/sysconfig/sshd" file. + +SSH_USE_STRONG_RNG=32 + +The SSH service must be restarted for changes to take effect.Verify the operating system SSH server uses strong entropy with the following command: + +Note: If the operating system is RHEL versions 8.0 or 8.1, this requirement is not applicable. + +$ sudo grep -i ssh_use_strong_rng /etc/sysconfig/sshd + +SSH_USE_STRONG_RNG=32 + +If the "SSH_USE_STRONG_RNG" line does not equal "32", is commented out or missing, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010293The RHEL 8 operating system must implement DoD-approved encryption in the OpenSSL package.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +RHEL 8 incorporates system-wide crypto policies by default. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/openssl.config file. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000125-GPOS-00065</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 OpenSSL library to use only ciphers employing FIPS 140-2-approved algorithms with the following command: + +$ sudo fips-mode-setup --enable + +A reboot is required for the changes to take effect.Verify the OpenSSL library is configured to use only ciphers employing FIPS 140-2-approved algorithms: + +Verify that system-wide crypto policies are in effect: + +$ sudo grep -i opensslcnf.config /etc/pki/tls/openssl.cnf + +.include /etc/crypto-policies/back-ends/opensslcnf.config + +If the "opensslcnf.config" is not defined in the "/etc/pki/tls/openssl.cnf" file, this is a finding. + +Verify which system-wide crypto policy is in use: + +$ sudo update-crypto-policies --show + +FIPS + +If the system-wide crypto policy is set to anything other than "FIPS", this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010294The RHEL 8 operating system must implement DoD-approved TLS encryption in the OpenSSL package.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +RHEL 8 incorporates system-wide crypto policies by default. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/openssl.config file. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000125-GPOS-00065</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 OpenSSL library to use only DoD-approved TLS encryption by editing the following line in the "/etc/crypto-policies/back-ends/opensslcnf.config" file: + +For versions prior to crypto-policies-20210617-1.gitc776d3e.el8.noarch: +MinProtocol = TLSv1.2 + +For version crypto-policies-20210617-1.gitc776d3e.el8.noarch and newer: +TLS.MinProtocol = TLSv1.2 +DTLS.MinProtocol = DTLSv1.2 +A reboot is required for the changes to take effect.Verify the OpenSSL library is configured to use only DoD-approved TLS encryption: + +For versions prior to crypto-policies-20210617-1.gitc776d3e.el8.noarch: + +$ sudo grep -i MinProtocol /etc/crypto-policies/back-ends/opensslcnf.config + +MinProtocol = TLSv1.2 + +If the "MinProtocol" is set to anything older than "TLSv1.2", this is a finding. + +For version crypto-policies-20210617-1.gitc776d3e.el8.noarch and newer: + +$ sudo grep -i MinProtocol /etc/crypto-policies/back-ends/opensslcnf.config + +TLS.MinProtocol = TLSv1.2 +DTLS.MinProtocol = DTLSv1.2 + +If the "TLS.MinProtocol" is set to anything older than "TLSv1.2" or the "DTLS.MinProtocol" is set to anything older than DTLSv1.2, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010295The RHEL 8 operating system must implement DoD-approved TLS encryption in the GnuTLS package.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Transport Layer Security (TLS) encryption is a required security setting as a number of known vulnerabilities have been reported against Secure Sockets Layer (SSL) and earlier versions of TLS. Encryption of private information is essential to ensuring data confidentiality. If private information is not encrypted, it can be intercepted and easily read by an unauthorized party. SQL Server must use a minimum of FIPS 140-2-approved TLS version 1.2, and all non-FIPS-approved SSL and TLS versions must be disabled. NIST SP 800-52 specifies the preferred configurations for government systems. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +The GnuTLS library offers an API to access secure communications protocols. SSLv2 is not available in the GnuTLS library. The RHEL 8 system-wide crypto policy defines employed algorithms in the /etc/crypto-policies/back-ends/gnutls.config file. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000423-GPOS-00187</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 GnuTLS library to use only DoD-approved encryption by adding the following line to "/etc/crypto-policies/back-ends/gnutls.config": + ++VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0 + +A reboot is required for the changes to take effect.Verify the GnuTLS library is configured to only allow DoD-approved SSL/TLS Versions: + +$ sudo grep -io +vers.* /etc/crypto-policies/back-ends/gnutls.config + ++VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0:+COMP-NULL:%PROFILE_MEDIUM + +If the "gnutls.config" does not list "-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0" to disable unapproved SSL/TLS versions, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010300RHEL 8 system commands must have mode 755 or less permissive.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system commands to be protected from unauthorized access. + +Run the following command, replacing "[FILE]" with any system command with a mode more permissive than "755". + +$ sudo chmod 755 [FILE]Verify the system commands contained in the following directories have mode "755" or less permissive with the following command: + +$ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -perm /022 -exec ls -l {} \; + +If any system commands are found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010310RHEL 8 system commands must be owned by root.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system commands to be protected from unauthorized access. + +Run the following command, replacing "[FILE]" with any system command file not owned by "root". + +$ sudo chown root [FILE]Verify the system commands contained in the following directories are owned by "root" with the following command: + +$ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -user root -exec ls -l {} \; + +If any system commands are returned, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010320RHEL 8 system commands must be group-owned by root or a system account.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system commands to be protected from unauthorized access. + +Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account. + +$ sudo chgrp root [FILE]Verify the system commands contained in the following directories are group-owned by "root", or a required system account, with the following command: + +$ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin ! -group root -exec ls -l {} \; + +If any system commands are returned and is not group-owned by a required system account, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010330RHEL 8 library files must have mode 755 or less permissive.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the library files to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any library file with a mode more permissive than 755. + +$ sudo chmod 755 [FILE]Verify the system-wide shared library files contained in the following directories have mode "755" or less permissive with the following command: + +$ sudo find -L /lib /lib64 /usr/lib /usr/lib64 -perm /022 -type f -exec ls -l {} \; + +If any system-wide shared library file is found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010340RHEL 8 library files must be owned by root.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system-wide shared library files (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. + +Run the following command, replacing "[FILE]" with any library file not owned by "root". + +$ sudo chown root [FILE]Verify the system-wide shared library files are owned by "root" with the following command: + +$ sudo find -L /lib /lib64 /usr/lib /usr/lib64 ! -user root -exec ls -l {} \; + +If any system wide shared library file is returned, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010350RHEL 8 library files must be group-owned by root or a system account.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system-wide shared library files (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. + +Run the following command, replacing "[FILE]" with any library file not group-owned by "root". + +$ sudo chgrp root [FILE]Verify the system-wide shared library files are group-owned by "root" with the following command: + +$ sudo find -L /lib /lib64 /usr/lib /usr/lib64 ! -group root -exec ls -l {} \; + +If any system wide shared library file is returned and is not group-owned by a required system account, this is a finding.SRG-OS-000363-GPOS-00150<GroupDescription></GroupDescription>RHEL-08-010360The RHEL 8 file integrity tool must notify the system administrator when changes to the baseline configuration or anomalies in the operation of any security functions are discovered within an organizationally defined frequency.<VulnDiscussion>Unauthorized changes to the baseline configuration could make the system vulnerable to various attacks or allow unauthorized access to the operating system. Changes to operating system configurations can have unintended side effects, some of which may be relevant to security. + +Detecting such changes and providing an automated response can help avoid unintended, negative consequences that could ultimately affect the security state of the operating system. The operating system's Information System Security Manager (ISSM)/Information System Security Officer (ISSO) and System Administrators (SAs) must be notified via email and/or monitoring system trap when there is an unauthorized modification of a configuration item. + +Notifications provided by information systems include messages to local computer consoles, and/or hardware indications, such as lights. + +This capability must take into account operational requirements for availability for selecting an appropriate response. The organization may choose to shut down or restart the information system upon security function anomaly detection. + +RHEL 8 comes with many optional software packages. A file integrity tool called Advanced Intrusion Detection Environment (AIDE) is one of those optional packages. This requirement assumes the use of AIDE; however, a different tool may be used if the requirements are met. Note that AIDE does not have a configuration that will send a notification, so a cron job is recommended that uses the mail application on the system to email the results of the file integrity check. + +Satisfies: SRG-OS-000363-GPOS-00150, SRG-OS-000446-GPOS-00200, SRG-OS-000447-GPOS-00201</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001744Configure the file integrity tool to run automatically on the system at least weekly and to notify designated personnel if baseline configurations are changed in an unauthorized manner. The AIDE tool can be configured to email designated personnel with the use of the cron system. + +The following example output is generic. It will set cron to run AIDE daily and to send email at the completion of the analysis. + + $ sudo more /etc/cron.daily/aide + + #!/bin/bash + + /usr/sbin/aide --check | /var/spool/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.milVerify the operating system routinely checks the baseline configuration for unauthorized changes and notifies the system administrator when anomalies in the operation of any security functions are discovered. + +Check that RHEL 8 routinely executes a file integrity scan for changes to the system baseline. The command used in the example will use a daily occurrence. + +Check the cron directories for scripts controlling the execution and notification of results of the file integrity application. For example, if AIDE is installed on the system, use the following commands: + + $ sudo ls -al /etc/cron.* | grep aide + + -rwxr-xr-x 1 root root 29 Nov 22 2015 aide + + $ sudo grep aide /etc/crontab /var/spool/cron/root + + /etc/crontab: 30 04 * * * root /usr/sbin/aide + /var/spool/cron/root: 30 04 * * * root /usr/sbin/aide + + $ sudo more /etc/cron.daily/aide + + #!/bin/bash + /usr/sbin/aide --check | /var/spool/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.mil + +If the file integrity application does not exist, or a script file controlling the execution of the file integrity application does not exist, or the file integrity application does not notify designated personnel of changes, this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>RHEL-08-010370RHEL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components from a repository without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. + +Accordingly, patches, service packs, device drivers, or operating system components must be signed with a certificate recognized and approved by the organization. + +Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This verifies the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001749Configure the operating system to verify the signature of packages from a repository prior to install by setting the following option in the "/etc/yum.repos.d/[your_repo_name].repo" file: + + gpgcheck=1Verify the operating system prevents the installation of patches, service packs, device drivers, or operating system components from a repository without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. + +Check that YUM verifies the signature of packages from a repository prior to install with the following command: + + $ sudo grep -E '^\[.*\]|gpgcheck' /etc/yum.repos.d/*.repo + + /etc/yum.repos.d/appstream.repo:[appstream] + /etc/yum.repos.d/appstream.repo:gpgcheck=1 + /etc/yum.repos.d/baseos.repo:[baseos] + /etc/yum.repos.d/baseos.repo:gpgcheck=1 + +If "gpgcheck" is not set to "1", or if options are missing or commented out, ask the System Administrator how the certificates for patches and other operating system components are verified. + +If there is no process to validate certificates that is approved by the organization, this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>RHEL-08-010371RHEL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. + +Accordingly, patches, service packs, device drivers, or operating system components must be signed with a certificate recognized and approved by the organization. + +Verifying the authenticity of the software prior to installation validates the integrity of the patch or upgrade received from a vendor. This verifies the software has not been tampered with and that it has been provided by a trusted vendor. Self-signed certificates are disallowed by this requirement. The operating system should not have to verify the software again. This requirement does not mandate DoD certificates for this purpose; however, the certificate used to verify the software must be from an approved CA.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001749Configure the operating system to remove all software components after updated versions have been installed. + +Set the "localpkg_gpgcheck" option to "True" in the "/etc/dnf/dnf.conf" file: + +localpkg_gpgcheck=TrueVerify the operating system prevents the installation of patches, service packs, device drivers, or operating system components from a repository without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. + +Check if YUM is configured to perform a signature check on local packages with the following command: + +$ sudo grep -i localpkg_gpgcheck /etc/dnf/dnf.conf + +localpkg_gpgcheck =True + +If "localpkg_gpgcheck" is not set to either "1", "True", or "yes", commented out, or is missing from "/etc/dnf/dnf.conf", this is a finding.SRG-OS-000366-GPOS-00153<GroupDescription></GroupDescription>RHEL-08-010372RHEL 8 must prevent the loading of a new kernel for later execution.<VulnDiscussion>Changes to any software components can have significant effects on the overall security of the operating system. This requirement ensures the software has not been tampered with and that it has been provided by a trusted vendor. + +Disabling kexec_load prevents an unsigned kernel image (that could be a windows kernel or modified vulnerable kernel) from being loaded. Kexec can be used subvert the entire secureboot process and should be avoided at all costs especially since it can load unsigned kernel images. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001749Configure the operating system to disable kernel image loading. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +kernel.kexec_load_disabled = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify the operating system is configured to disable kernel image loading with the following commands: + +Check the status of the kernel.kexec_load_disabled kernel parameter. + +$ sudo sysctl kernel.kexec_load_disabled + +kernel.kexec_load_disabled = 1 + +If "kernel.kexec_load_disabled" is not set to "1" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r kernel.kexec_load_disabled /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:kernel.kexec_load_disabled = 1 + +If "kernel.kexec_load_disabled" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000312-GPOS-00122<GroupDescription></GroupDescription>RHEL-08-010373RHEL 8 must enable kernel parameters to enforce discretionary access control on symlinks.<VulnDiscussion>Discretionary Access Control (DAC) is based on the notion that individual users are "owners" of objects and therefore have discretion over who should be authorized to access the object and in which mode (e.g., read or write). Ownership is usually acquired as a consequence of creating the object or via specified ownership assignment. DAC allows the owner to determine who will have access to objects they control. An example of DAC includes user-controlled file permissions. + +When discretionary access control policies are implemented, subjects are not constrained with regard to what actions they can take with information for which they have already been granted access. Thus, subjects that have been granted access to information are not prevented from passing (i.e., the subjects have the discretion to pass) the information to other subjects or objects. A subject that is constrained in its operation by Mandatory Access Control policies is still able to operate under the less rigorous constraints of this requirement. Thus, while Mandatory Access Control imposes constraints preventing a subject from passing information to another subject operating at a different sensitivity level, this requirement permits the subject to pass the information to any subject at the same sensitivity level. The policy is bounded by the information system boundary. Once the information is passed outside the control of the information system, additional means may be required to ensure the constraints remain in effect. While the older, more traditional definitions of discretionary access control require identity-based access control, that limitation is not required for this use of discretionary access control. + +By enabling the fs.protected_symlinks kernel parameter, symbolic links are permitted to be followed only when outside a sticky world-writable directory, or when the UID of the link and follower match, or when the directory owner matches the symlink's owner. Disallowing such symlinks helps mitigate vulnerabilities based on insecure file system accessed by privileged programs, avoiding an exploitation vector exploiting unsafe use of open() or creat(). + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf + +Satisfies: SRG-OS-000312-GPOS-00122, SRG-OS-000312-GPOS-00123, SRG-OS-000312-GPOS-00124, SRG-OS-000324-GPOS-00125</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002165Configure the operating system to enable DAC on symlinks. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +fs.protected_symlinks = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify the operating system is configured to enable DAC on symlinks with the following commands: + +Check the status of the fs.protected_symlinks kernel parameter. + +$ sudo sysctl fs.protected_symlinks + +fs.protected_symlinks = 1 + +If "fs.protected_symlinks" is not set to "1" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r fs.protected_symlinks /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:fs.protected_symlinks = 1 + +If "fs.protected_symlinks" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000312-GPOS-00122<GroupDescription></GroupDescription>RHEL-08-010374RHEL 8 must enable kernel parameters to enforce discretionary access control on hardlinks.<VulnDiscussion>Discretionary Access Control (DAC) is based on the notion that individual users are "owners" of objects and therefore have discretion over who should be authorized to access the object and in which mode (e.g., read or write). Ownership is usually acquired as a consequence of creating the object or via specified ownership assignment. DAC allows the owner to determine who will have access to objects they control. An example of DAC includes user-controlled file permissions. + +When discretionary access control policies are implemented, subjects are not constrained with regard to what actions they can take with information for which they have already been granted access. Thus, subjects that have been granted access to information are not prevented from passing (i.e., the subjects have the discretion to pass) the information to other subjects or objects. A subject that is constrained in its operation by Mandatory Access Control policies is still able to operate under the less rigorous constraints of this requirement. Thus, while Mandatory Access Control imposes constraints preventing a subject from passing information to another subject operating at a different sensitivity level, this requirement permits the subject to pass the information to any subject at the same sensitivity level. The policy is bounded by the information system boundary. Once the information is passed outside the control of the information system, additional means may be required to ensure the constraints remain in effect. While the older, more traditional definitions of discretionary access control require identity-based access control, that limitation is not required for this use of discretionary access control. + +By enabling the fs.protected_hardlinks kernel parameter, users can no longer create soft or hard links to files they do not own. Disallowing such hardlinks mitigate vulnerabilities based on insecure file system accessed by privileged programs, avoiding an exploitation vector exploiting unsafe use of open() or creat(). + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf + +Satisfies: SRG-OS-000312-GPOS-00122, SRG-OS-000312-GPOS-00123, SRG-OS-000312-GPOS-00124, SRG-OS-000324-GPOS-00125</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002165Configure the operating system to enable DAC on hardlinks. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +fs.protected_hardlinks = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify the operating system is configured to enable DAC on hardlinks with the following commands: + +Check the status of the fs.protected_hardlinks kernel parameter. + +$ sudo sysctl fs.protected_hardlinks + +fs.protected_hardlinks = 1 + +If "fs.protected_hardlinks" is not set to "1" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r fs.protected_hardlinks /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:fs.protected_hardlinks = 1 + +If "fs.protected_hardlinks" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000138-GPOS-00069<GroupDescription></GroupDescription>RHEL-08-010375RHEL 8 must restrict access to the kernel message buffer.<VulnDiscussion>Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection. + +This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DoD or other government agencies. + +There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components. + +Restricting access to the kernel message buffer limits access to only root. This prevents attackers from gaining additional system information as a non-privileged user. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001090Configure the operating system to restrict access to the kernel message buffer. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +kernel.dmesg_restrict = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify the operating system is configured to restrict access to the kernel message buffer with the following commands: + +Check the status of the kernel.dmesg_restrict kernel parameter. + +$ sudo sysctl kernel.dmesg_restrict + +kernel.dmesg_restrict = 1 + +If "kernel.dmesg_restrict" is not set to "1" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r kernel.dmesg_restrict /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:kernel.dmesg_restrict = 1 + +If "kernel.dmesg_restrict" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000138-GPOS-00069<GroupDescription></GroupDescription>RHEL-08-010376RHEL 8 must prevent kernel profiling by unprivileged users.<VulnDiscussion>Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection. + +This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DoD or other government agencies. + +There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components. + +Setting the kernel.perf_event_paranoid kernel parameter to "2" prevents attackers from gaining additional system information as a non-privileged user. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001090Configure the operating system to prevent kernel profiling by unprivileged users. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +kernel.perf_event_paranoid = 2 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify the operating system is configured to prevent kernel profiling by unprivileged users with the following commands: + +Check the status of the kernel.perf_event_paranoid kernel parameter. + +$ sudo sysctl kernel.perf_event_paranoid + +kernel.perf_event_paranoid = 2 + +If "kernel.perf_event_paranoid" is not set to "2" or is missing, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r kernel.perf_event_paranoid /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:kernel.perf_event_paranoid = 2 + +If "kernel.perf_event_paranoid" is not set to "2", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-08-010380RHEL 8 must require users to provide a password for privilege escalation.<VulnDiscussion>Without reauthentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user reauthenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002038Remove any occurrence of "NOPASSWD" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory.Verify that "/etc/sudoers" has no occurrences of "NOPASSWD". + +Check that the "/etc/sudoers" file has no occurrences of "NOPASSWD" by running the following command: + +$ sudo grep -i nopasswd /etc/sudoers /etc/sudoers.d/* + +%admin ALL=(ALL) NOPASSWD: ALL + +If any occurrences of "NOPASSWD" are returned from the command and have not been documented with the ISSO as an organizationally defined administrative group utilizing MFA, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-08-010381RHEL 8 must require users to reauthenticate for privilege escalation.<VulnDiscussion>Without reauthentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user reauthenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002038Remove any occurrence of "!authenticate" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory.Verify that "/etc/sudoers" has no occurrences of "!authenticate". + +Check that the "/etc/sudoers" file has no occurrences of "!authenticate" by running the following command: + +$ sudo grep -i !authenticate /etc/sudoers /etc/sudoers.d/* + +If any occurrences of "!authenticate" return from the command, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-08-010390RHEL 8 must have the packages required for multifactor authentication installed.<VulnDiscussion>Using an authentication device, such as a DoD Common Access Card (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, credentials stored on the authentication device will not be affected. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification (PIV) card and the DoD CAC. + +A privileged account is defined as an information system account with authorizations of a privileged user. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001948Configure the operating system to implement multifactor authentication by installing the required package with the following command: + +$ sudo yum install openssl-pkcs11Verify the operating system has the packages required for multifactor authentication installed with the following commands: + +$ sudo yum list installed openssl-pkcs11 + +openssl-pkcs11.x86_64 0.4.8-2.el8 @anaconda + +If the "openssl-pkcs11" package is not installed, ask the administrator to indicate what type of multifactor authentication is being utilized and what packages are installed to support it. If there is no evidence of multifactor authentication being used, this is a finding.SRG-OS-000375-GPOS-00160<GroupDescription></GroupDescription>RHEL-08-010400RHEL 8 must implement certificate status checking for multifactor authentication.<VulnDiscussion>Using an authentication device, such as a DoD Common Access Card (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, credentials stored on the authentication device will not be affected. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification (PIV) card and the DoD CAC. + +RHEL 8 includes multiple options for configuring certificate status checking, but for this requirement focuses on the System Security Services Daemon (SSSD). By default, sssd performs Online Certificate Status Protocol (OCSP) checking and certificate verification using a sha256 digest function. + +Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000377-GPOS-00162</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001948Configure the operating system to implement certificate status checking for multifactor authentication. + +Review the "/etc/sssd/sssd.conf" file to determine if the system is configured to prevent OCSP or certificate verification. + +Add the following line to the [sssd] section of the "/etc/sssd/sssd.conf" file: + +certificate_verification = ocsp_dgst=sha1 + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceVerify the operating system implements certificate status checking for multifactor authentication. + +Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. + +Check to see if Online Certificate Status Protocol (OCSP) is enabled and using the proper digest value on the system with the following command: + +$ sudo grep certificate_verification /etc/sssd/sssd.conf /etc/sssd/conf.d/*.conf | grep -v "^#" + +certificate_verification = ocsp_dgst=sha1 + +If the certificate_verification line is missing from the [sssd] section, or is missing "ocsp_dgst=sha1", ask the administrator to indicate what type of multifactor authentication is being utilized and how the system implements certificate status checking. If there is no evidence of certificate status checking being used, this is a finding.SRG-OS-000376-GPOS-00161<GroupDescription></GroupDescription>RHEL-08-010410RHEL 8 must accept Personal Identity Verification (PIV) credentials.<VulnDiscussion>The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access. + +The DoD has mandated the use of the Common Access Card (CAC) to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001953Configure RHEL 8 to accept PIV credentials. + +Install the "opensc" package using the following command: + +$ sudo yum install openscVerify RHEL 8 accepts PIV credentials. + +Check that the "opensc" package is installed on the system with the following command: + +$ sudo yum list installed opensc + +opensc.x86_64 0.19.0-5.el8 @anaconda + +Check that "opensc" accepts PIV cards with the following command: + +$ sudo opensc-tool --list-drivers | grep -i piv + + PIV-II Personal Identity Verification Card + +If the "opensc" package is not installed and the "opensc-tool" driver list does not include "PIV-II", this is a finding.SRG-OS-000433-GPOS-00192<GroupDescription></GroupDescription>RHEL-08-010420RHEL 8 must implement non-executable data to protect its memory from unauthorized code execution.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can be either hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Examples of attacks are buffer overflow attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002824The NX bit execute protection must be enabled in the system BIOS.Verify the NX (no-execution) bit flag is set on the system. + +Check that the no-execution bit flag is set with the following commands: + +$ sudo dmesg | grep NX + +[ 0.000000] NX (Execute Disable) protection: active + +If "dmesg" does not show "NX (Execute Disable) protection" active, check the cpuinfo settings with the following command: + +$ sudo less /proc/cpuinfo | grep -i flags +flags : fpu vme de pse tsc ms nx rdtscp lm constant_tsc + +If "flags" does not contain the "nx" flag, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>RHEL-08-010421RHEL 8 must clear the page allocator to prevent use-after-free attacks.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can be either hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Poisoning writes an arbitrary value to freed pages, so any modification or reference to that page after being freed or before being initialized will be detected and prevented. This prevents many types of use-after-free vulnerabilities at little performance cost. Also prevents leak of data and detection of corrupted memory. + +Satisfies: SRG-OS-000134-GPOS-00068, SRG-OS-000433-GPOS-00192</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001084Configure RHEL 8 to enable page poisoning with the following commands: + +$ sudo grubby --update-kernel=ALL --args="page_poison=1" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="page_poison=1"Verify that GRUB 2 is configured to enable page poisoning to mitigate use-after-free vulnerabilities with the following commands: + +Check that the current GRUB 2 configuration has page poisoning enabled: + +$ sudo grub2-editenv list | grep page_poison + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 page_poison=1 vsyscall=none audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If "page_poison" is not set to "1" or is missing, this is a finding. + +Check that page poisoning is enabled by default to persist in kernel updates: + +$ sudo grep page_poison /etc/default/grub + +GRUB_CMDLINE_LINUX="page_poison=1" + +If "page_poison" is not set to "1", is missing or commented out, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>RHEL-08-010422RHEL 8 must disable virtual syscalls.<VulnDiscussion>Syscalls are special routines in the Linux kernel, which userspace applications ask to do privileged tasks. Invoking a system call is an expensive operation because the processor must interrupt the currently executing task and switch context to kernel mode and then back to userspace after the system call completes. Virtual Syscalls map into user space a page that contains some variables and the implementation of some system calls. This allows the system calls to be executed in userspace to alleviate the context switching expense. + +Virtual Syscalls provide an opportunity of attack for a user who has control of the return instruction pointer. Disabling vsyscalls help to prevent return oriented programming (ROP) attacks via buffer overflows and overruns. If the system intends to run containers based on RHEL 6 components, then virtual syscalls will need enabled so the components function properly. + +Satisfies: SRG-OS-000134-GPOS-00068, SRG-OS-000433-GPOS-00192</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001084Document the use of vsyscalls with the ISSO as an operational requirement or disable them with the following command: + +$ sudo grubby --update-kernel=ALL --args="vsyscall=none" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="vsyscall=none"Verify that GRUB 2 is configured to disable vsyscalls with the following commands: + +Check that the current GRUB 2 configuration disables vsyscalls: + +$ sudo grub2-editenv list | grep vsyscall + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 page_poison=1 vsyscall=none audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If "vsyscall" is not set to "none" or is missing, this is a finding. + +Check that vsyscalls are disabled by default to persist in kernel updates: + +$ sudo grep vsyscall /etc/default/grub + +GRUB_CMDLINE_LINUX="vsyscall=none" + +If "vsyscall" is not set to "none", is missing or commented out and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000134-GPOS-00068<GroupDescription></GroupDescription>RHEL-08-010423RHEL 8 must clear SLUB/SLAB objects to prevent use-after-free attacks.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can be either hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Poisoning writes an arbitrary value to freed pages, so any modification or reference to that page after being freed or before being initialized will be detected and prevented. This prevents many types of use-after-free vulnerabilities at little performance cost. Also prevents leak of data and detection of corrupted memory. + +SLAB objects are blocks of physically-contiguous memory. SLUB is the unqueued SLAB allocator. + +Satisfies: SRG-OS-000134-GPOS-00068, SRG-OS-000433-GPOS-00192</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001084Configure RHEL 8 to enable poisoning of SLUB/SLAB objects with the following commands: + +$ sudo grubby --update-kernel=ALL --args="slub_debug=P" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="slub_debug=P"Verify that GRUB 2 is configured to enable poisoning of SLUB/SLAB objects to mitigate use-after-free vulnerabilities with the following commands: + +Check that the current GRUB 2 configuration has poisoning of SLUB/SLAB objects enabled: + +$ sudo grub2-editenv list | grep slub_debug + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 slub_debug=P page_poison=1 vsyscall=none audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If "slub_debug" is not set to "P" or is missing, this is a finding. + +Check that poisoning of SLUB/SLAB objects is enabled by default to persist in kernel updates: + +$ sudo grep slub_debug /etc/default/grub + +GRUB_CMDLINE_LINUX="slub_debug=P" + +If "slub_debug" is not set to "P", is missing or commented out, this is a finding.SRG-OS-000433-GPOS-00193<GroupDescription></GroupDescription>RHEL-08-010430RHEL 8 must implement address space layout randomization (ASLR) to protect its memory from unauthorized code execution.<VulnDiscussion>Some adversaries launch attacks with the intent of executing code in non-executable regions of memory or in memory locations that are prohibited. Security safeguards employed to protect memory include, for example, data execution prevention and address space layout randomization. Data execution prevention safeguards can be either hardware-enforced or software-enforced with hardware providing the greater strength of mechanism. + +Examples of attacks are buffer overflow attacks. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002824Configure the operating system to implement virtual address space randomization. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +kernel.randomize_va_space=2 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Issue the following command to make the changes take effect: + +$ sudo sysctl --systemVerify RHEL 8 implements ASLR with the following command: + +$ sudo sysctl kernel.randomize_va_space + +kernel.randomize_va_space = 2 + +If "kernel.randomize_va_space" is not set to "2", this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r kernel.randomize_va_space /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:kernel.randomize_va_space = 2 + +If "kernel.randomize_va_space" is not set to "2", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000437-GPOS-00194<GroupDescription></GroupDescription>RHEL-08-010440YUM must remove all software components after updated versions have been installed on RHEL 8.<VulnDiscussion>Previous versions of software components that are not removed from the information system after updates have been installed may be exploited by adversaries. Some information technology products may remove older versions of software automatically from the information system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002617Configure the operating system to remove all software components after updated versions have been installed. + +Set the "clean_requirements_on_remove" option to "True" in the "/etc/dnf/dnf.conf" file: + +clean_requirements_on_remove=TrueVerify the operating system removes all software components after updated versions have been installed. + +Check if YUM is configured to remove unneeded packages with the following command: + +$ sudo grep -i clean_requirements_on_remove /etc/dnf/dnf.conf + +clean_requirements_on_remove=True + +If "clean_requirements_on_remove" is not set to either "1", "True", or "yes", commented out, or is missing from "/etc/dnf/dnf.conf", this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>RHEL-08-010450RHEL 8 must enable the SELinux targeted policy.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to operating systems performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002696Configure the operating system to verify correct operation of all security functions. + +Set the "SELinuxtype" to the "targeted" policy by modifying the "/etc/selinux/config" file to have the following line: + +SELINUXTYPE=targeted + +A reboot is required for the changes to take effect.Ensure the operating system verifies correct operation of all security functions. + +Check if "SELinux" is active and is enforcing the targeted policy with the following command: + +$ sudo sestatus + +SELinux status: enabled +SELinuxfs mount: /sys/fs/selinux +SELinux root directory: /etc/selinux +Loaded policy name: targeted +Current mode: enforcing +Mode from config file: enforcing +Policy MLS status: enabled +Policy deny_unknown status: allowed +Memory protection checking: actual (secure) +Max kernel policy version: 31 + +If the "Loaded policy name" is not set to "targeted", this is a finding. + +Verify that the /etc/selinux/config file is configured to the "SELINUXTYPE" to "targeted": + +$ sudo grep -i "selinuxtype" /etc/selinux/config | grep -v '^#' + +SELINUXTYPE = targeted + +If no results are returned or "SELINUXTYPE" is not set to "targeted", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010460There must be no shosts.equiv files on the RHEL 8 operating system.<VulnDiscussion>The "shosts.equiv" files are used to configure host-based authentication for the system via SSH. Host-based authentication is not sufficient for preventing unauthorized access to the system, as it does not require interactive identification and authentication of a connection request, or for the use of two-factor authentication.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove any found "shosts.equiv" files from the system. + +$ sudo rm /etc/ssh/shosts.equivVerify there are no "shosts.equiv" files on RHEL 8 with the following command: + +$ sudo find / -name shosts.equiv + +If a "shosts.equiv" file is found, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010470There must be no .shosts files on the RHEL 8 operating system.<VulnDiscussion>The ".shosts" files are used to configure host-based authentication for individual users or the system via SSH. Host-based authentication is not sufficient for preventing unauthorized access to the system, as it does not require interactive identification and authentication of a connection request, or for the use of two-factor authentication.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove any found ".shosts" files from the system. + +$ sudo rm /[path]/[to]/[file]/.shostsVerify there are no ".shosts" files on RHEL 8 with the following command: + +$ sudo find / -name '*.shosts' + +If any ".shosts" files are found, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010471RHEL 8 must enable the hardware random number generator entropy gatherer service.<VulnDiscussion>The most important characteristic of a random number generator is its randomness, namely its ability to deliver random numbers that are impossible to predict. Entropy in computer security is associated with the unpredictability of a source of randomness. The random source with high entropy tends to achieve a uniform distribution of random values. Random number generators are one of the most important building blocks of cryptosystems. + +The rngd service feeds random data from hardware device to kernel random device. Quality (non-predictable) random number generation is important for several security functions (i.e., ciphers).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Start the rngd service, and enable the rngd service with the following commands: + +$ sudo systemctl start rngd.service + +$ sudo systemctl enable rngd.serviceCheck that RHEL 8 has enabled the hardware random number generator entropy gatherer service. + +Verify the rngd service is enabled and active with the following commands: + +$ sudo systemctl is-enabled rngd + +enabled + +$ sudo systemctl is-active rngd + +active + +If the service is not "enable and "active", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010480The RHEL 8 SSH public host key files must have mode 0644 or less permissive.<VulnDiscussion>If a public host key file is modified by an unauthorized user, the SSH service may be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Change the mode of public host key files under "/etc/ssh" to "0644" with the following command: + +$ sudo chmod 0644 /etc/ssh/*key.pub + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify the SSH public host key files have mode "0644" or less permissive with the following command: + +$ sudo ls -l /etc/ssh/*.pub + +-rw-r--r-- 1 root root 618 Nov 28 06:43 ssh_host_dsa_key.pub +-rw-r--r-- 1 root root 347 Nov 28 06:43 ssh_host_key.pub +-rw-r--r-- 1 root root 238 Nov 28 06:43 ssh_host_rsa_key.pub + +If any key.pub file has a mode more permissive than "0644", this is a finding. + +Note: SSH public key files may be found in other directories on the system depending on the installation.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010490The RHEL 8 SSH private host key files must have mode 0640 or less permissive.<VulnDiscussion>If an unauthorized user obtains the private SSH host key file, the host could be impersonated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the mode of SSH private host key files under "/etc/ssh" to "0640" with the following command: + + $ sudo chmod 0640 /etc/ssh/ssh_host*key + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + + $ sudo systemctl restart sshd.serviceVerify the SSH private host key files have mode "0640" or less permissive with the following command: + + $ sudo ls -l /etc/ssh/ssh_host*key + + -rw-r----- 1 root ssh_keys 668 Nov 28 06:43 ssh_host_dsa_key + -rw-r----- 1 root ssh_keys 582 Nov 28 06:43 ssh_host_key + -rw-r----- 1 root ssh_keys 887 Nov 28 06:43 ssh_host_rsa_key + +If any private host key file has a mode more permissive than "0640", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010500The RHEL 8 SSH daemon must perform strict mode checking of home directory configuration files.<VulnDiscussion>If other users have access to modify user-specific SSH configuration files, they may be able to log on to the system as another user.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure SSH to perform strict mode checking of home directory configuration files. Uncomment the "StrictModes" keyword in "/etc/ssh/sshd_config" and set the value to "yes": + +StrictModes yes + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify the SSH daemon performs strict mode checking of home directory configuration files with the following command: + +$ sudo grep -ir strictmodes /etc/ssh/sshd_config* + +StrictModes yes + +If "StrictModes" is set to "no", is missing, or the returned line is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010520The RHEL 8 SSH daemon must not allow authentication using known host’s authentication.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the SSH daemon to not allow authentication using known host’s authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "yes": + +IgnoreUserKnownHosts yes + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify the SSH daemon does not allow authentication using known host’s authentication with the following command: + +$ sudo grep -ir IgnoreUserKnownHosts /etc/ssh/sshd_config* + +IgnoreUserKnownHosts yes + +If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010521The RHEL 8 SSH daemon must not allow Kerberos authentication, except to fulfill documented and validated mission requirements.<VulnDiscussion>Configuring these settings for the SSH daemon provides additional assurance that remote logon via SSH will not use unused methods of authentication, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the SSH daemon to not allow Kerberos authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "no": + +KerberosAuthentication no + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify the SSH daemon does not allow Kerberos authentication with the following command: + +$ sudo grep -ir KerberosAuthentication /etc/ssh/sshd_config* + +KerberosAuthentication no + +If the value is returned as "yes", the returned line is commented out, no output is returned, or has not been documented with the ISSO, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010540RHEL 8 must use a separate file system for /var.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the "/var" path onto a separate file system.Verify that a separate file system/partition has been created for "/var". + +Check that a file system/partition has been created for "/var" with the following command: + +$ sudo grep /var /etc/fstab + +UUID=c274f65f /var xfs noatime,nobarrier 1 2 + +If a separate entry for "/var" is not in use, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010541RHEL 8 must use a separate file system for /var/log.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the "/var/log" path onto a separate file system.Verify that a separate file system/partition has been created for "/var/log". + +Check that a file system/partition has been created for "/var/log" with the following command: + +$ sudo grep /var/log /etc/fstab + +UUID=c274f65f /var/log xfs noatime,nobarrier 1 2 + +If a separate entry for "/var/log" is not in use, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010542RHEL 8 must use a separate file system for the system audit data path.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the system audit data path onto a separate file system.Verify that a separate file system/partition has been created for the system audit data path with the following command: + +Note: /var/log/audit is used as the example as it is a common location. + +$ sudo grep /var/log/audit /etc/fstab + +UUID=3645951a /var/log/audit xfs defaults 1 2 + +If an entry for "/var/log/audit" does not exist, ask the System Administrator if the system audit logs are being written to a different file system/partition on the system, then grep for that file system/partition. + +If a separate file system/partition does not exist for the system audit data path, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010543A separate RHEL 8 filesystem must be used for the /tmp directory.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the "/tmp" directory onto a separate file system/partition.Verify that a separate file system/partition has been created for non-privileged local interactive user home directories. + +$ sudo grep /tmp /etc/fstab + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If a separate entry for the file system/partition "/tmp" does not exist, this is a finding.SRG-OS-000109-GPOS-00056<GroupDescription></GroupDescription>RHEL-08-010550RHEL 8 must not permit direct logons to the root account using remote access via SSH.<VulnDiscussion>Even though the communications channel may be encrypted, an additional layer of security is gained by extending the policy of not logging on directly as root. In addition, logging on with a user-specific account provides individual accountability of actions performed on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000770Configure RHEL 8 to stop users from logging on remotely as the "root" user via SSH. + +Edit the appropriate "/etc/ssh/sshd_config" file to uncomment or add the line for the "PermitRootLogin" keyword and set its value to "no": + +PermitRootLogin no + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify remote access using SSH prevents users from logging on directly as "root". + +Check that SSH prevents users from logging on directly as "root" with the following command: + +$ sudo grep -ir PermitRootLogin /etc/ssh/sshd_config* + +PermitRootLogin no + +If the "PermitRootLogin" keyword is set to "yes", is missing, or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010561The rsyslog service must be running in RHEL 8.<VulnDiscussion>Configuring RHEL 8 to implement organization-wide security implementation guides and security checklists ensures compliance with federal standards and establishes a common security baseline across the DoD that reflects the most restrictive security posture consistent with operational requirements. + +Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example: registry settings; account, file, directory permission settings; and settings for functions, ports, protocols, services, and remote connections.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Start the auditd service, and enable the rsyslog service with the following commands: + +$ sudo systemctl start rsyslog.service + +$ sudo systemctl enable rsyslog.serviceVerify the rsyslog service is enabled and active with the following commands: + +$ sudo systemctl is-enabled rsyslog + +enabled + +$ sudo systemctl is-active rsyslog + +active + +If the service is not "enabled" and "active" this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010570RHEL 8 must prevent files with the setuid and setgid bit set from being executed on file systems that contain user home directories.<VulnDiscussion>The "nosuid" mount option causes the system not to execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that contain user home directories for interactive users.Verify file systems that contain user home directories are mounted with the "nosuid" option. + +Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is automatically a finding as the "nosuid" option cannot be used on the "/" system. + +Find the file system(s) that contain the user home directories with the following command: + +$ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd + +smithj:1001: /home/smithj +robinst:1002: /home/robinst + +Check the file systems that are mounted at boot time with the following command: + +$ sudo more /etc/fstab + +UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /home xfs rw,relatime,discard,data=ordered,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to the user home directory file system and it does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010571RHEL 8 must prevent files with the setuid and setgid bit set from being executed on the /boot directory.<VulnDiscussion>The "nosuid" mount option causes the system not to execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on the /boot directory.For systems that use UEFI, this is Not Applicable. + +Verify the /boot directory is mounted with the "nosuid" option with the following command: + +$ sudo mount | grep '\s/boot\s' + +/dev/sda1 on /boot type xfs (rw,nosuid,relatime,seclabe,attr2,inode64,noquota) + +If the /boot file system does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010580RHEL 8 must prevent special devices on non-root local partitions.<VulnDiscussion>The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. The only legitimate location for device files is the /dev directory located on the root partition.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nodev" option on all non-root local partitions.Verify all non-root local partitions are mounted with the "nodev" option with the following command: + +$ sudo mount | grep '^/dev\S* on /\S' | grep --invert-match 'nodev' + +If any output is produced, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010590RHEL 8 must prevent code from being executed on file systems that contain user home directories.<VulnDiscussion>The "noexec" mount option causes the system not to execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "noexec" option on file systems that contain user home directories for interactive users.Verify file systems that contain user home directories are mounted with the "noexec" option. + +Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is automatically a finding as the "noexec" option cannot be used on the "/" system. + +Find the file system(s) that contain the user home directories with the following command: + +$ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd + +smithj:1001: /home/smithj +robinst:1002: /home/robinst + +Check the file systems that are mounted at boot time with the following command: + +$ sudo more /etc/fstab + +UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /home ext4 rw,relatime,discard,data=ordered,nosuid,nodev,noexec 0 2 + +If a file system found in "/etc/fstab" refers to the user home directory file system and it does not have the "noexec" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010600RHEL 8 must prevent special devices on file systems that are used with removable media.<VulnDiscussion>The "nodev" mount option causes the system not to interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nodev" option on file systems that are associated with removable media.Verify file systems that are used for removable media are mounted with the "nodev" option with the following command: + +$ sudo more /etc/fstab + +UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to removable media and it does not have the "nodev" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010610RHEL 8 must prevent code from being executed on file systems that are used with removable media.<VulnDiscussion>The "noexec" mount option causes the system not to execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "noexec" option on file systems that are associated with removable media.Verify file systems that are used for removable media are mounted with the "noexec" option with the following command: + +$ sudo more /etc/fstab + +UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to removable media and it does not have the "noexec" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010620RHEL 8 must prevent files with the setuid and setgid bit set from being executed on file systems that are used with removable media.<VulnDiscussion>The "nosuid" mount option causes the system not to execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that are associated with removable media.Verify file systems that are used for removable media are mounted with the "nosuid" option with the following command: + +$ sudo more /etc/fstab + +UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to removable media and it does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010630RHEL 8 must prevent code from being executed on file systems that are imported via Network File System (NFS).<VulnDiscussion>The "noexec" mount option causes the system not to execute binary files. This option must be used for mounting any file system not containing approved binary as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "noexec" option on file systems that are being imported via NFS.Verify that file systems being imported via NFS are mounted with the "noexec" option with the following command: + +$ sudo grep nfs /etc/fstab | grep noexec + +UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to NFS and it does not have the "noexec" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010640RHEL 8 must prevent special devices on file systems that are imported via Network File System (NFS).<VulnDiscussion>The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nodev" option on file systems that are being imported via NFS.Verify file systems that are being NFS-imported are mounted with the "nodev" option with the following command: + +$ sudo grep nfs /etc/fstab | grep nodev + +UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to NFS and it does not have the "nodev" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010650RHEL 8 must prevent files with the setuid and setgid bit set from being executed on file systems that are imported via Network File System (NFS).<VulnDiscussion>The "nosuid" mount option causes the system not to execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on file systems that are being imported via NFS.Verify that file systems being imported via NFS are mounted with the "nosuid" option with the following command: + +$ sudo grep nfs /etc/fstab | grep nosuid + +UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 + +If a file system found in "/etc/fstab" refers to NFS and it does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010660Local RHEL 8 initialization files must not execute world-writable programs.<VulnDiscussion>If user start-up files execute world-writable programs, especially in unprotected directories, they could be maliciously modified to destroy user files or otherwise compromise the system at the user level. If the system is compromised at the user level, it is easier to elevate privileges to eventually compromise the system at the root and network level.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Set the mode on files being executed by the local initialization files with the following command: + +$ sudo chmod 0755 <file>Verify that local initialization files do not execute world-writable programs. + +Check the system for world-writable files. + +The following command will discover and print world-writable files. Run it once for each local partition [PART]: + +$ sudo find [PART] -xdev -type f -perm -0002 -print + +For all files listed, check for their presence in the local initialization files with the following commands: + +Note: The example will be for a system that is configured to create user home directories in the "/home" directory. + +$ sudo grep <file> /home/*/.* + +If any local initialization files are found to reference world-writable files, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010670RHEL 8 must disable kernel dumps unless needed.<VulnDiscussion>Kernel core dumps may contain the full contents of system memory at the time of the crash. Kernel core dumps may consume a considerable amount of disk space and may result in denial of service by exhausting the available space on the target file system partition. + +RHEL 8 installation media presents the option to enable or disable the kdump service at the time of system installation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366If kernel core dumps are not required, disable the "kdump" service with the following command: + +# systemctl disable kdump.service + +If kernel core dumps are required, document the need with the ISSO.Verify that kernel core dumps are disabled unless needed with the following command: + +$ sudo systemctl status kdump.service + +kdump.service - Crash recovery kernel arming +Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled) +Active: active (exited) since Mon 2020-05-04 16:08:09 EDT; 3min ago +Main PID: 1130 (code=exited, status=0/SUCCESS) + +If the "kdump" service is active, ask the System Administrator if the use of the service is required and documented with the Information System Security Officer (ISSO). + +If the service is active and is not documented, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010671RHEL 8 must disable the kernel.core_pattern.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to disable storing core dumps. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +kernel.core_pattern = |/bin/false + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 disables storing core dumps with the following commands: + +$ sudo sysctl kernel.core_pattern + +kernel.core_pattern = |/bin/false + +If the returned line does not have a value of "|/bin/false", or a line is not returned and the need for core dumps is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Check that the configuration files are present to enable this kernel parameter. + +$ sudo grep -r kernel.core_pattern /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf:kernel.core_pattern = |/bin/false + +If "kernel.core_pattern" is not set to "|/bin/false", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010672RHEL 8 must disable acquiring, saving, and processing core dumps.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +A core dump includes a memory image taken at the time the operating system terminates an application. The memory image could contain sensitive data and is generally useful only for developers trying to debug problems. + +When the kernel invokes systemd-coredumpt to handle a core dump, it runs in privileged mode, and will connect to the socket created by the systemd-coredump.socket unit. This, in turn, will spawn an unprivileged systemd-coredump@.service instance to process the core dump.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system to disable the systemd-coredump.socket with the following commands: + +$ sudo systemctl disable --now systemd-coredump.socket + +$ sudo systemctl mask systemd-coredump.socket + +Created symlink /etc/systemd/system/systemd-coredump.socket -> /dev/null + +Reload the daemon for this change to take effect. + +$ sudo systemctl daemon-reloadVerify RHEL 8 is not configured to acquire, save, or process core dumps with the following command: + +$ sudo systemctl status systemd-coredump.socket + +systemd-coredump.socket +Loaded: masked (Reason: Unit systemd-coredump.socket is masked.) +Active: inactive (dead) + +If the "systemd-coredump.socket" is loaded and not masked and the need for core dumps is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010673RHEL 8 must disable core dumps for all users.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +A core dump includes a memory image taken at the time the operating system terminates an application. The memory image could contain sensitive data and is generally useful only for developers trying to debug problems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to disable core dumps for all users. + +Add the following line to the top of the /etc/security/limits.conf or in a ".conf" file defined in /etc/security/limits.d/: + +* hard core 0Verify the operating system disables core dumps for all users by issuing the following command: + +$ sudo grep -r -s '^[^#].*core' /etc/security/limits.conf /etc/security/limits.d/*.conf + +* hard core 0 + +This can be set as a global domain (with the * wildcard) but may be set differently for multiple domains. + +If the "core" item is missing, commented out, or the value is anything other than "0" and the need for core dumps is not documented with the Information System Security Officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010674RHEL 8 must disable storing core dumps.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +A core dump includes a memory image taken at the time the operating system terminates an application. The memory image could contain sensitive data and is generally useful only for developers trying to debug problems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to disable storing core dumps for all users. + +Add or modify the following line in /etc/systemd/coredump.conf: + +Storage=noneVerify the operating system disables storing core dumps for all users by issuing the following command: + +$ sudo grep -i storage /etc/systemd/coredump.conf + +Storage=none + +If the "Storage" item is missing, commented out, or the value is anything other than "none" and the need for core dumps is not documented with the Information System Security Officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010675RHEL 8 must disable core dump backtraces.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +A core dump includes a memory image taken at the time the operating system terminates an application. The memory image could contain sensitive data and is generally useful only for developers trying to debug problems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to disable core dump backtraces. + +Add or modify the following line in /etc/systemd/coredump.conf: + +ProcessSizeMax=0Verify the operating system disables core dump backtraces by issuing the following command: + +$ sudo grep -i ProcessSizeMax /etc/systemd/coredump.conf + +ProcessSizeMax=0 + +If the "ProcessSizeMax" item is missing, commented out, or the value is anything other than "0" and the need for core dumps is not documented with the Information System Security Officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010680For RHEL 8 systems using Domain Name Servers (DNS) resolution, at least two name servers must be configured.<VulnDiscussion>To provide availability for name resolution services, multiple redundant name servers are mandated. A failure in name resolution could lead to the failure of security functions requiring name resolution, which may include time synchronization, centralized authentication, and remote system logging.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to use two or more name servers for DNS resolution. + +By default, "NetworkManager" on RHEL 8 dynamically updates the /etc/resolv.conf file with the DNS settings from active "NetworkManager" connection profiles. However, this feature can be disabled to allow manual configurations. + +If manually configuring DNS, edit the "/etc/resolv.conf" file to uncomment or add the two or more "nameserver" option lines with the IP address of local authoritative name servers. If local host resolution is being performed, the "/etc/resolv.conf" file must be empty. An empty "/etc/resolv.conf" file can be created as follows: + +$ sudo echo -n > /etc/resolv.confDetermine whether the system is using local or DNS name resolution with the following command: + +$ sudo grep hosts /etc/nsswitch.conf + +hosts: files dns + +If the DNS entry is missing from the host's line in the "/etc/nsswitch.conf" file, the "/etc/resolv.conf" file must be empty. + +Verify the "/etc/resolv.conf" file is empty with the following command: + +$ sudo ls -al /etc/resolv.conf + +-rw-r--r-- 1 root root 0 Aug 19 08:31 resolv.conf + +If local host authentication is being used and the "/etc/resolv.conf" file is not empty, this is a finding. + +If the DNS entry is found on the host's line of the "/etc/nsswitch.conf" file, verify the operating system is configured to use two or more name servers for DNS resolution. + +Determine the name servers used by the system with the following command: + +$ sudo grep nameserver /etc/resolv.conf + +nameserver 192.168.1.2 +nameserver 192.168.1.3 + +If less than two lines are returned that are not commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010690Executable search paths within the initialization files of all local interactive RHEL 8 users must only contain paths that resolve to the system default or the users home directory.<VulnDiscussion>The executable search path (typically the PATH environment variable) contains a list of directories for the shell to search to find executables. If this path includes the current working directory (other than the user's home directory), executables in these directories may be executed instead of system commands. This variable is formatted as a colon-separated list of directories. If there is an empty entry, such as a leading or trailing colon or two consecutive colons, this is interpreted as the current working directory. If deviations from the default system search path for the local interactive user are required, they must be documented with the Information System Security Officer (ISSO).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Edit the local interactive user initialization files to change any PATH variable statements that reference directories other than their home directory. + +If a local interactive user requires path variables to reference a directory owned by the application, it must be documented with the ISSO.Verify that all local interactive user initialization file executable search path statements do not contain statements that will reference a working directory other than user home directories with the following commands: + +$ sudo grep -i path= /home/*/.* + +/home/[localinteractiveuser]/.bash_profile:PATH=$PATH:$HOME/.local/bin:$HOME/bin + +If any local interactive user initialization files have executable search path statements that include directories outside of their home directory and is not documented with the ISSO as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010700All RHEL 8 world-writable directories must be owned by root, sys, bin, or an application user.<VulnDiscussion>If a world-writable directory is not owned by root, sys, bin, or an application User Identifier (UID), unauthorized users may be able to modify files created by others. + +The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage, (e.g., /tmp), and for directories requiring global read/write access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366All directories in local partitions which are world-writable should be owned by root or another system account. If any world-writable directories are not owned by a system account, this should be investigated. Following this, the files should be deleted or assigned to an appropriate group.The following command will discover and print world-writable directories that are not owned by a system account, given the assumption that only system accounts have a uid lower than 1000. Run it once for each local partition [PART]: + +$ sudo find [PART] -xdev -type d -perm -0002 -uid +999 -print + +If there is output, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010710All RHEL 8 world-writable directories must be group-owned by root, sys, bin, or an application group.<VulnDiscussion>If a world-writable directory is not group-owned by root, sys, bin, or an application Group Identifier (GID), unauthorized users may be able to modify files created by others. + +The only authorized public directories are those temporary directories supplied with the system or those designed to be temporary file repositories. The setting is normally reserved for directories used by the system and by users for temporary file storage, (e.g., /tmp), and for directories requiring global read/write access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366All directories in local partitions which are world-writable must be group-owned by root or another system account. If any world-writable directories are not group-owned by a system account, this must be investigated. Following this, the directories must be deleted or assigned to an appropriate group.The following command will discover and print world-writable directories that are not group-owned by a system account, given the assumption that only system accounts have a gid lower than 1000. Run it once for each local partition [PART]: + +$ sudo find [PART] -xdev -type d -perm -0002 -gid +999 -print + +If there is output, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010720All RHEL 8 local interactive users must have a home directory assigned in the /etc/passwd file.<VulnDiscussion>If local interactive users are not assigned a valid home directory, there is no place for the storage and control of files they should own.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Assign home directories to all local interactive users on RHEL 8 that currently do not have a home directory assigned.Verify local interactive users on RHEL 8 have a home directory assigned with the following command: + +$ sudo pwck -r + +user 'lp': directory '/var/spool/lpd' does not exist +user 'news': directory '/var/spool/news' does not exist +user 'uucp': directory '/var/spool/uucp' does not exist +user 'www-data': directory '/var/www' does not exist + +Ask the System Administrator (SA) if any users found without home directories are local interactive users. If the SA is unable to provide a response, check for users with a User Identifier (UID) of 1000 or greater with the following command: + +$ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd + +If any interactive users do not have a home directory assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010730All RHEL 8 local interactive user home directories must have mode 0750 or less permissive.<VulnDiscussion>Excessive permissions on local interactive user home directories may allow unauthorized access to user files by other users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Change the mode of interactive user’s home directories to "0750". To change the mode of a local interactive user’s home directory, use the following command: + +Note: The example will be for the user "smithj". + +$ sudo chmod 0750 /home/smithjVerify the assigned home directory of all local interactive users has a mode of "0750" or less permissive with the following command: + +Note: This may miss interactive users that have been assigned a privileged User Identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. + +$ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) + +drwxr-x--- 2 smithj admin 4096 Jun 5 12:41 smithj + +If home directories referenced in "/etc/passwd" do not have a mode of "0750" or less permissive, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010740All RHEL 8 local interactive user home directories must be group-owned by the home directory owner’s primary group.<VulnDiscussion>If the Group Identifier (GID) of a local interactive user’s home directory is not the same as the primary GID of the user, this would allow unauthorized access to the user’s files, and users that share the same group may not be able to access files that they legitimately should.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Change the group owner of a local interactive user’s home directory to the group found in "/etc/passwd". To change the group owner of a local interactive user’s home directory, use the following command: + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj", and has a primary group of users. + + $ sudo chgrp users /home/smithjVerify the assigned home directory of all local interactive users is group-owned by that user’s primary GID with the following command: + +Note: This may miss local interactive users that have been assigned a privileged UID. Evidence of interactive use may be obtained from a number of log files containing system logon information. The returned directory "/home/smithj" is used as an example. + + $ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) + + drwxr-x--- 2 smithj admin 4096 Jun 5 12:41 smithj + +Check the user's primary group with the following command: + + $ sudo grep $(grep smithj /etc/passwd | awk -F: '{print $4}') /etc/group + + admin:x:250:smithj,jonesj,jacksons + +If the user home directory referenced in "/etc/passwd" is not group-owned by that user’s primary GID, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010750All RHEL 8 local interactive user home directories defined in the /etc/passwd file must exist.<VulnDiscussion>If a local interactive user has a home directory defined that does not exist, the user may be given access to the "/" directory as the current working directory upon logon. This could create a denial of service because the user would not be able to access their logon configuration files, and it may give them visibility to system files they normally would not be able to access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Create home directories to all local interactive users that currently do not have a home directory assigned. Use the following commands to create the user home directory assigned in "/etc/ passwd": + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj", a UID of "smithj", and a Group Identifier (GID) of "users assigned" in "/etc/passwd". + +$ sudo mkdir /home/smithj +$ sudo chown smithj /home/smithj +$ sudo chgrp users /home/smithj +$ sudo chmod 0750 /home/smithjVerify the assigned home directory of all local interactive users on RHEL 8 exists with the following command: + +$ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) + +drwxr-xr-x 2 smithj admin 4096 Jun 5 12:41 smithj + +Note: This may miss interactive users that have been assigned a privileged User ID (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. + +Check that all referenced home directories exist with the following command: + +$ sudo pwck -r + +user 'smithj': directory '/home/smithj' does not exist + +If any home directories referenced in "/etc/passwd" are returned as not defined, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010760All RHEL 8 local interactive user accounts must be assigned a home directory upon creation.<VulnDiscussion>If local interactive users are not assigned a valid home directory, there is no place for the storage and control of files they should own.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to assign home directories to all new local interactive users by setting the "CREATE_HOME" parameter in "/etc/login.defs" to "yes" as follows. + +CREATE_HOME yesVerify all local interactive users on RHEL 8 are assigned a home directory upon creation with the following command: + +$ sudo grep -i create_home /etc/login.defs + +CREATE_HOME yes + +If the value for "CREATE_HOME" parameter is not set to "yes", the line is missing, or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010770All RHEL 8 local initialization files must have mode 0740 or less permissive.<VulnDiscussion>Local initialization files are used to configure the user's shell environment upon logon. Malicious modification of these files could compromise accounts upon logon.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Set the mode of the local initialization files to "0740" with the following command: + +Note: The example will be for the smithj user, who has a home directory of "/home/smithj". + +$ sudo chmod 0740 /home/smithj/.<INIT_FILE>Verify that all local initialization files have a mode of "0740" or less permissive with the following command: + +Note: The example will be for the "smithj" user, who has a home directory of "/home/smithj". + +$ sudo ls -al /home/smithj/.[^.]* | more + +-rwxr-xr-x 1 smithj users 896 Mar 10 2011 .profile +-rwxr-xr-x 1 smithj users 497 Jan 6 2007 .login +-rwxr-xr-x 1 smithj users 886 Jan 6 2007 .something + +If any local initialization files have a mode more permissive than "0740", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010780All RHEL 8 local files and directories must have a valid owner.<VulnDiscussion>Unowned files and directories may be unintentionally inherited if a user is assigned the same User Identifier "UID" as the UID of the un-owned files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Either remove all files and directories from the system that do not have a valid user, or assign a valid user to all unowned files and directories on RHEL 8 with the "chown" command: + +$ sudo chown <user> <file>Verify all local files and directories on RHEL 8 have a valid owner with the following command: + +Note: The value after -fstype must be replaced with the filesystem type. XFS is used as an example. + +$ sudo find / -fstype xfs -nouser + +If any files on the system do not have an assigned owner, this is a finding. + +Note: Command may produce error messages from the /proc and /sys directories.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010790All RHEL 8 local files and directories must have a valid group owner.<VulnDiscussion>Files without a valid group owner may be unintentionally inherited if a group is assigned the same Group Identifier (GID) as the GID of the files without a valid group owner.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Either remove all files and directories from RHEL 8 that do not have a valid group, or assign a valid group to all files and directories on the system with the "chgrp" command: + +$ sudo chgrp <group> <file>Verify all local files and directories on RHEL 8 have a valid group with the following command: + +Note: The value after -fstype must be replaced with the filesystem type. XFS is used as an example. + +$ sudo find / -fstype xfs -nogroup + +If any files on the system do not have an assigned group, this is a finding. + +Note: Command may produce error messages from the /proc and /sys directories.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010800A separate RHEL 8 filesystem must be used for user home directories (such as /home or an equivalent).<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the "/home" directory onto a separate file system/partition.Verify that a separate file system/partition has been created for non-privileged local interactive user home directories. + +Check the home directory assignment for all non-privileged users, users with a User Identifier (UID) greater than 1000, on the system with the following command: + +$ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd + +adamsj 1001 /home/adamsj +jacksonm 1002 /home/jacksonm +smithj 1003 /home/smithj + +The output of the command will give the directory/partition that contains the home directories for the non-privileged users on the system (in this example, "/home") and users’ shell. All accounts with a valid shell (such as /bin/bash) are considered interactive users. + +Check that a file system/partition has been created for the non-privileged interactive users with the following command: + +Note: The partition of "/home" is used in the example. + +$ sudo grep /home /etc/fstab + +UUID=333ada18 /home ext4 noatime,nobarrier,nodev 1 2 + +If a separate entry for the file system/partition containing the non-privileged interactive user home directories does not exist, this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-08-010820Unattended or automatic logon via the RHEL 8 graphical user interface must not be allowed.<VulnDiscussion>Failure to restrict system access to authenticated users negatively impacts operating system security.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to not allow an unattended or automatic logon to the system via a graphical user interface. + +Add or edit the line for the "AutomaticLoginEnable" parameter in the [daemon] section of the "/etc/gdm/custom.conf" file to "false": + +[daemon] +AutomaticLoginEnable=falseVerify the operating system does not allow an unattended or automatic logon to the system via a graphical user interface. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Check for the value of the "AutomaticLoginEnable" in the "/etc/gdm/custom.conf" file with the following command: + +$ sudo grep -i automaticloginenable /etc/gdm/custom.conf + +AutomaticLoginEnable=false + +If the value of "AutomaticLoginEnable" is not set to "false", this is a finding.SRG-OS-000480-GPOS-00229<GroupDescription></GroupDescription>RHEL-08-010830RHEL 8 must not allow users to override SSH environment variables.<VulnDiscussion>SSH environment options potentially allow users to bypass access restriction in some configurations.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to allow the SSH daemon to not allow unattended or automatic logon to the system. + +Add or edit the following line in the "/etc/ssh/sshd_config" file: + +PermitUserEnvironment no + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify that unattended or automatic logon via ssh is disabled with the following command: + +$ sudo grep -ir PermitUserEnvironment /etc/ssh/sshd_config* + +PermitUserEnvironment no + +If "PermitUserEnvironment" is set to "yes", is missing completely, or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000002-GPOS-00002<GroupDescription></GroupDescription>RHEL-08-020000RHEL 8 temporary user accounts must be provisioned with an expiration time of 72 hours or less.<VulnDiscussion>If temporary user accounts remain active when no longer needed or for an excessive period, these accounts may be used to gain unauthorized access. To mitigate this risk, automated termination of all temporary accounts must be set upon account creation. + +Temporary accounts are established as part of normal account activation procedures when there is a need for short-term accounts without the demand for immediacy in account activation. + +If temporary accounts are used, RHEL 8 must be configured to automatically terminate these types of accounts after a DoD-defined time period of 72 hours. + +To address access requirements, many RHEL 8 operating systems may be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000016If a temporary account must be created configure the system to terminate the account after a 72 hour time period with the following command to set an expiration date on it. Substitute "system_account_name" with the account to be created. + +$ sudo chage -E `date -d "+3 days" +%Y-%m-%d` system_account_nameVerify that temporary accounts have been provisioned with an expiration date of 72 hours. + +For every existing temporary account, run the following command to obtain its account expiration information. + +$ sudo chage -l system_account_name + +Verify each of these accounts has an expiration date set within 72 hours. + +If any temporary accounts have no expiration date set or do not expire within 72 hours, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020010RHEL 8 must automatically lock an account when three unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account when three unsuccessful logon attempts occur. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system locks an account after three unsuccessful logon attempts with the following commands: + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "deny" option is not set to "3" or less (but not "0") on the "preauth" line with the "pam_faillock.so" module, or is missing from this line, this is a finding. + +If any line referencing the "pam_faillock.so" module is commented out, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "deny" option is not set to "3" or less (but not "0") on the "preauth" line with the "pam_faillock.so" module, or is missing from this line, this is a finding. + +If any line referencing the "pam_faillock.so" module is commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020011RHEL 8 must automatically lock an account when three unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account when three unsuccessful logon attempts occur. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +deny = 3Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to lock an account after three unsuccessful logon attempts: + +$ sudo grep 'deny =' /etc/security/faillock.conf + +deny = 3 + +If the "deny" option is not set to "3" or less (but not "0"), is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020012RHEL 8 must automatically lock an account when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account when three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system locks an account after three unsuccessful logon attempts within a period of 15 minutes with the following commands: + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "fail_interval" option is not set to "900" or less (but not "0") on the "preauth" lines with the "pam_faillock.so" module, or is missing from this line, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "fail_interval" option is not set to "900" or less (but not "0") on the "preauth" lines with the "pam_faillock.so" module, or is missing from this line, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020013RHEL 8 must automatically lock an account when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account when three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +fail_interval = 900Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to lock an account after three unsuccessful logon attempts within 15 minutes: + +$ sudo grep 'fail_interval =' /etc/security/faillock.conf + +fail_interval = 900 + +If the "fail_interval" option is not set to "900" or more, is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020014RHEL 8 must automatically lock an account until the locked account is released by an administrator when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account until released by an administrator when three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system locks an account after three unsuccessful logon attempts within a period of 15 minutes until released by an administrator with the following commands: + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "unlock_time" option is not set to "0" on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "unlock_time" option is not set to "0" on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020015RHEL 8 must automatically lock an account until the locked account is released by an administrator when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to lock an account until released by an administrator when three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +unlock_time = 0Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to lock an account until released by an administrator after three unsuccessful logon attempts: + +$ sudo grep 'unlock_time =' /etc/security/faillock.conf + +unlock_time = 0 + +If the "unlock_time" option is not set to "0", is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020016RHEL 8 must ensure account lockouts persist.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system maintain the contents of the faillock directory after a reboot. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +Note: Using the default faillock directory of /var/run/faillock will result in the contents being cleared in the event of a reboot. + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the faillock directory contents persists after a reboot with the following commands: + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "dir" option is not set to a non-default documented tally log directory on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "dir" option is not set to a non-default documented tally log directory on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020017RHEL 8 must ensure account lockouts persist.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system maintain the contents of the faillock directory after a reboot. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +dir = /var/log/faillockNote: This check applies to RHEL versions 8.2 or newer. If the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured use a non-default faillock directory to ensure contents persist after reboot: + +$ sudo grep 'dir =' /etc/security/faillock.conf + +dir = /var/log/faillock + +If the "dir" option is not set to a non-default documented tally log directory, is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020018RHEL 8 must prevent system messages from being presented when three unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to prevent informative messages from being presented at logon attempts. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system prevents informative messages from being presented to the user pertaining to logon information with the following commands: + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "silent" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "silent" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020019RHEL 8 must prevent system messages from being presented when three unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to prevent informative messages from being presented at logon attempts. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +silentNote: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to prevent informative messages from being presented at logon attempts: + +$ sudo grep silent /etc/security/faillock.conf + +silent + +If the "silent" option is not set, is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020020RHEL 8 must log user name information when unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to log user name information when unsuccessful logon attempts occur. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system logs user name information when unsuccessful logon attempts occur with the following commands: + +If the system is RHEL version 8.2 or newer, this check is not applicable. + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "audit" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "audit" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020021RHEL 8 must log user name information when unsuccessful logon attempts occur.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to log user name information when unsuccessful logon attempts occur. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +auditNote: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to log user name information when unsuccessful logon attempts occur: + +$ sudo grep audit /etc/security/faillock.conf + +audit + +If the "audit" option is not set, is missing or commented out, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020022RHEL 8 must include root when automatically locking an account until the locked account is released by an administrator when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +RHEL 8 can utilize the "pam_faillock.so" for this purpose. Note that manual changes to the listed files may be overwritten by the "authselect" program. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to include root when locking an account after three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceCheck that the system includes the root account when locking an account after three unsuccessful logon attempts within a period of 15 minutes with the following commands: + +If the system is RHEL version 8.2 or newer, this check is not applicable. + +Note: If the System Administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is not applicable. + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "even_deny_root" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 +auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 +account required pam_faillock.so + +If the "even_deny_root" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020023RHEL 8 must include root when automatically locking an account until the locked account is released by an administrator when three unsuccessful logon attempts occur during a 15-minute time period.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to include root when locking an account after three unsuccessful logon attempts occur in 15 minutes. + +Add/Modify the "/etc/security/faillock.conf" file to match the following line: + +even_deny_rootNote: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the "/etc/security/faillock.conf" file is configured to log user name information when unsuccessful logon attempts occur: + +$ sudo grep even_deny_root /etc/security/faillock.conf + +even_deny_root + +If the "even_deny_root" option is not set, is missing or commented out, this is a finding.SRG-OS-000027-GPOS-00008<GroupDescription></GroupDescription>RHEL-08-020024RHEL 8 must limit the number of concurrent sessions to ten for all accounts and/or account types.<VulnDiscussion>Operating system management includes the ability to control the number of users and user sessions that utilize an operating system. Limiting the number of allowed users and sessions per user is helpful in reducing the risks related to DoS attacks. + +This requirement addresses concurrent sessions for information system accounts and does not address concurrent sessions by single users via multiple system accounts. The maximum number of concurrent sessions should be defined based on mission needs and the operational environment for each system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000054Configure the operating system to limit the number of concurrent sessions to "10" for all accounts and/or account types. + +Add the following line to the top of the /etc/security/limits.conf or in a ".conf" file defined in /etc/security/limits.d/: + +* hard maxlogins 10Verify the operating system limits the number of concurrent sessions to "10" for all accounts and/or account types by issuing the following command: + +$ sudo grep -r -s '^[^#].*maxlogins' /etc/security/limits.conf /etc/security/limits.d/*.conf + +* hard maxlogins 10 + +This can be set as a global domain (with the * wildcard) but may be set differently for multiple domains. + +If the "maxlogins" item is missing, commented out, or the value is set greater than "10" and is not documented with the Information System Security Officer (ISSO) as an operational requirement for all domains that have the "maxlogins" item assigned, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020030RHEL 8 must enable a user session lock until that user re-establishes access using established identification and authentication procedures for graphical user sessions.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. + +Regardless of where the session lock is determined and implemented, once invoked, the session lock must remain in place until the user reauthenticates. No other activity aside from reauthentication must unlock the system. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following example: + +$ sudo vi /etc/dconf/db/local.d/00-screensaver + +Edit the "[org/gnome/desktop/screensaver]" section of the database file and add or update the following lines: + +# Set this to true to lock the screen when the screensaver activates +lock-enabled=true + +Update the system databases: + +$ sudo dconf updateVerify the operating system enables a user's session lock until that user re-establishes access using established identification and authentication procedures with the following command: + +$ sudo gsettings get org.gnome.desktop.screensaver lock-enabled + +true + +If the setting is "false", this is a finding. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020040RHEL 8 must enable a user session lock until that user re-establishes access using established identification and authentication procedures for command line sessions.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. + +Tmux is a terminal multiplexer that enables a number of terminals to be created, accessed, and controlled from a single screen. Red Hat endorses tmux as the recommended session controlling package. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to enable a user to manually initiate a session lock via tmux. This configuration binds the uppercase letter "X" to manually initiate a session lock after the prefix key "Ctrl + b" has been sent. The complete key sequence is thus "Ctrl + b" then "Shift + x" to lock tmux. + +Create a global configuration file "/etc/tmux.conf" and add the following lines: + + set -g lock-command vlock + bind X lock-session + +Reload tmux configuration to take effect. This can be performed in tmux while it is running: + + $ tmux source-file /etc/tmux.confVerify the operating system enables the user to manually initiate a session lock with the following command: + + $ sudo grep -Ei lock-command|lock-session /etc/tmux.conf + + set -g lock-command vlock + bind X lock-session + +If the "lock-command" is not set and "lock-session" is not bound to a specific keyboard key in the global settings, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020041RHEL 8 must ensure session control is automatically started at shell initialization.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. + +Tmux is a terminal multiplexer that enables a number of terminals to be created, accessed, and controlled from a single screen. Red Hat endorses tmux as the recommended session controlling package. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to initialize the tmux terminal multiplexer as each shell is called by adding the following lines to a custom.sh shell script in the /etc/profile.d/ directory: + +if [ "$PS1" ]; then +parent=$(ps -o ppid= -p $$) +name=$(ps -o comm= -p $parent) +case "$name" in (sshd|login) tmux ;; esac +fi + +This setting will take effect at next logon.Verify the operating system shell initialization file is configured to start each shell with the tmux terminal multiplexer with the following commands: + +Determine if tmux is currently running: + $ sudo ps all | grep tmux | grep -v grep + +If the command does not produce output, this is a finding. + +Determine the location of the tmux script: + $ sudo grep -r tmux /etc/bashrc /etc/profile.d + + /etc/profile.d/tmux.sh: case "$name" in (sshd|login) tmux ;; esac + +Review the tmux script by using the following example: + $ sudo cat /etc/profile.d/tmux.sh + +if [ "$PS1" ]; then +parent=$(ps -o ppid= -p $$) +name=$(ps -o comm= -p $parent) +case "$name" in (sshd|login) tmux ;; esac +fi + +If "tmux" is not configured as the example above, is commented out, or is missing, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020042RHEL 8 must prevent users from disabling session control mechanisms.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. + +Tmux is a terminal multiplexer that enables a number of terminals to be created, accessed, and controlled from a single screen. Red Hat endorses tmux as the recommended session controlling package. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to prevent users from disabling the tmux terminal multiplexer by editing the "/etc/shells" configuration file to remove any instances of tmux.Verify the operating system prevents users from disabling the tmux terminal multiplexer with the following command: + +$ sudo grep -i tmux /etc/shells + +If any output is produced, this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020050RHEL 8 must be able to initiate directly a session lock for all connection types using smartcard when the smartcard is removed.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. + +Select/Create an authselect profile and incorporate the "with-smartcard-lock-on-removal" feature with the following example: + +$ sudo authselect select sssd with-smartcard with-smartcard-lock-on-removal + +Alternatively, the dconf settings can be edited in the /etc/dconf/db/* location. + +Edit or add the "[org/gnome/settings-daemon/peripherals/smartcard]" section of the database file and add or update the following lines: + +removal-action='lock-screen' + +Update the system databases: + +$ sudo dconf updateVerify the operating system enables a user's session lock until that user re-establishes access using established identification and authentication procedures with the following command: + +This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +$ sudo grep -R removal-action /etc/dconf/db/* + +/etc/dconf/db/distro.d/20-authselect:removal-action='lock-screen' + +If the "removal-action='lock-screen'" setting is missing or commented out from the dconf database files, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020060RHEL 8 must automatically lock graphical user sessions after 15 minutes of inactivity.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. + +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to initiate a screensaver after a 15-minute period of inactivity for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +$ sudo touch /etc/dconf/db/local.d/00-screensaver + +Edit /etc/dconf/db/local.d/00-screensaver and add or update the following lines: + +[org/gnome/desktop/session] +# Set the lock time out to 900 seconds before the session is considered idle +idle-delay=uint32 900 + +Update the system databases: + +$ sudo dconf updateVerify the operating system initiates a session lock after a 15-minute period of inactivity for graphical user interfaces with the following commands: + +This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +$ sudo gsettings get org.gnome.desktop.session idle-delay + +uint32 900 + +If "idle-delay" is set to "0" or a value greater than "900", this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020070RHEL 8 must automatically lock command line user sessions after 15 minutes of inactivity.<VulnDiscussion>Terminating an idle session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to enforce session lock after a period of 15 minutes of inactivity by adding the following line to the "/etc/tmux.conf" global configuration file: + +set -g lock-after-time 900Verify the operating system initiates a session lock after 15 minutes of inactivity. + +Check the value of the system inactivity timeout with the following command: + +$ sudo grep -i lock-after-time /etc/tmux.conf + +set -g lock-after-time 900 + +If "lock-after-time" is not set to "900" or less in the global tmux configuration file to enforce session lock after inactivity, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020080RHEL 8 must prevent a user from overriding the session lock-delay setting for the graphical user interface.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled. + +Implementing session settings will have little value if a user is able to manipulate these settings from the defaults prescribed in the other requirements of this implementation guide. + +Locking these settings from non-privileged users is crucial to maintaining a protected baseline. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to prevent a user from overriding settings for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +$ sudo touch /etc/dconf/db/local.d/locks/session + +Add the following setting to prevent non-privileged users from modifying it: + +/org/gnome/desktop/screensaver/lock-delayVerify the operating system prevents a user from overriding settings for graphical user interfaces. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + +$ sudo grep system-db /etc/dconf/profile/user + +system-db:local + +Check that graphical settings are locked from non-privileged user modification with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + +$ sudo grep -i lock-delay /etc/dconf/db/local.d/locks/* + +/org/gnome/desktop/screensaver/lock-delay + +If the command does not return at least the example result, this is a finding.SRG-OS-000068-GPOS-00036<GroupDescription></GroupDescription>RHEL-08-020090RHEL 8 must map the authenticated identity to the user or group account for PKI-based authentication.<VulnDiscussion>Without mapping the certificate used to authenticate to the user account, the ability to determine the identity of the individual user or group will not be available for forensic analysis. + +There are various methods of mapping certificates to user/group accounts for RHEL 8. For the purposes of this requirement, the check and fix will account for Active Directory mapping. Some of the other possible methods include joining the system to a domain and utilizing a Red Hat idM server, or a local system mapping, where the system is not part of a domain.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000187Configure the operating system to map the authenticated identity to the user or group account by adding or modifying the certmap section of the "/etc/sssd/sssd.conf file based on the following example: + +[certmap/testing.test/rule_name] +matchrule =<SAN>.*EDIPI@mil +maprule = (userCertificate;binary={cert!bin}) +domains = testing.test + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceVerify the certificate of the user or group is mapped to the corresponding user or group in the "sssd.conf" file with the following command: + +Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. + +$ sudo cat /etc/sssd/sssd.conf + +[sssd] +config_file_version = 2 +services = pam, sudo, ssh +domains = testing.test + +[pam] +pam_cert_auth = True + +[domain/testing.test] +id_provider = ldap + +[certmap/testing.test/rule_name] +matchrule =<SAN>.*EDIPI@mil +maprule = (userCertificate;binary={cert!bin}) +domains = testing.test + +If the certmap section does not exist, ask the System Administrator to indicate how certificates are mapped to accounts. If there is no evidence of certificate mapping, this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>RHEL-08-020100RHEL 8 must ensure the password complexity module is enabled in the password-auth file.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to use "pwquality" to enforce password complexity rules. + +Add the following line to the "/etc/pam.d/password-auth" file (or modify the line to have the required value): + +password required pam_pwquality.soVerify the operating system uses "pwquality" to enforce the password complexity rules. + +Check for the use of "pwquality" in the password-auth file with the following command: + +$ sudo cat /etc/pam.d/password-auth | grep pam_pwquality + +password required pam_pwquality.so + +If the command does not return a line containing the value "pam_pwquality.so", or the line is commented out, this is a finding.SRG-OS-000069-GPOS-00037<GroupDescription></GroupDescription>RHEL-08-020110RHEL 8 must enforce password complexity by requiring that at least one uppercase character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes pwquality as a mechanism to enforce password complexity. Note that in order to require uppercase characters, without degrading the "minlen" value, the credit value must be expressed as a negative number in "/etc/security/pwquality.conf".</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000192Configure the operating system to enforce password complexity by requiring that at least one uppercase character be used by setting the "ucredit" option. + +Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): + +ucredit = -1 + +Remove any configurations that conflict with the above value.Verify the value for "ucredit" with the following command: + +$ sudo grep -r ucredit /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:ucredit = -1 + +If the value of "ucredit" is a positive number or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000070-GPOS-00038<GroupDescription></GroupDescription>RHEL-08-020120RHEL 8 must enforce password complexity by requiring that at least one lower-case character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes pwquality as a mechanism to enforce password complexity. Note that in order to require lower-case characters without degrading the "minlen" value, the credit value must be expressed as a negative number in "/etc/security/pwquality.conf".</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000193Configure the operating system to enforce password complexity by requiring that at least one lower-case character be used by setting the "lcredit" option. + +Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): + +lcredit = -1 + +Remove any configurations that conflict with the above value.Verify the value for "lcredit" with the following command: + +$ sudo grep -r lcredit /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:lcredit = -1 + +If the value of "lcredit" is a positive number or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000071-GPOS-00039<GroupDescription></GroupDescription>RHEL-08-020130RHEL 8 must enforce password complexity by requiring that at least one numeric character be used.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. Note that in order to require numeric characters, without degrading the minlen value, the credit value must be expressed as a negative number in "/etc/security/pwquality.conf".</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000194Configure the operating system to enforce password complexity by requiring that at least one numeric character be used by setting the "dcredit" option. + +Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): + +dcredit = -1 + +Remove any configurations that conflict with the above value.Verify the value for "dcredit" with the following command: + +$ sudo grep -r dcredit /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:dcredit = -1 + +If the value of "dcredit" is a positive number or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-08-020140RHEL 8 must require the maximum number of repeating characters of the same character class be limited to four when passwords are changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. The "maxclassrepeat" option sets the maximum number of allowed same consecutive characters in the same class in the new password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000195Configure the operating system to require the change of the number of repeating characters of the same character class when passwords are changed by setting the "maxclassrepeat" option. + +Add the following line to "/etc/security/pwquality.conf" conf (or modify the line to have the required value): + +maxclassrepeat = 4 + +Remove any configurations that conflict with the above value.Check for the value of the "maxclassrepeat" option with the following command: + +$ sudo grep -r maxclassrepeat /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:maxclassrepeat = 4 + +If the value of "maxclassrepeat" is set to "0", more than "4" or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-08-020150RHEL 8 must require the maximum number of repeating characters be limited to three when passwords are changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. The "maxrepeat" option sets the maximum number of allowed same consecutive characters in a new password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000195Configure the operating system to require the change of the number of repeating consecutive characters when passwords are changed by setting the "maxrepeat" option. + +Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): + +maxrepeat = 3 + +Remove any configurations that conflict with the above value.Check for the value of the "maxrepeat" option with the following command: + +$ sudo grep -r maxrepeat /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:maxrepeat = 3 + +If the value of "maxrepeat" is set to more than "3" or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-08-020160RHEL 8 must require the change of at least four character classes when passwords are changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. The "minclass" option sets the minimum number of required classes of characters for the new password (digits, uppercase, lowercase, others).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000195Configure the operating system to require the change of at least four character classes when passwords are changed by setting the "minclass" option. + +Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): + +minclass = 4 + +Remove any configurations that conflict with the above value.Verify the value of the "minclass" option with the following command: + +$ sudo grep -r minclass /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:minclass = 4 + +If the value of "minclass" is set to less than "4" or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000072-GPOS-00040<GroupDescription></GroupDescription>RHEL-08-020170RHEL 8 must require the change of at least 8 characters when passwords are changed.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. The "difok" option sets the number of characters in a password that must not be present in the old password.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000195Configure the operating system to require the change of at least eight of the total number of characters when passwords are changed by setting the "difok" option. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +difok = 8 + +Remove any configurations that conflict with the above value.Verify the value of the "difok" option with the following command: + +$ sudo grep -r difok /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:difok = 8 + +If the value of "difok" is set to less than "8" or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000075-GPOS-00043<GroupDescription></GroupDescription>RHEL-08-020180RHEL 8 passwords must have a 24 hours/1 day minimum password lifetime restriction in /etc/shadow.<VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000198Configure non-compliant accounts to enforce a 24 hours/1 day minimum password lifetime: + +$ sudo chage -m 1 [user]Check whether the minimum time period between password changes for each user account is one day or greater. + +$ sudo awk -F: '$4 < 1 {print $1 " " $4}' /etc/shadow + +If any results are returned that are not associated with a system account, this is a finding.SRG-OS-000075-GPOS-00043<GroupDescription></GroupDescription>RHEL-08-020190RHEL 8 passwords for new users or password changes must have a 24 hours/1 day minimum password lifetime restriction in /etc/login.defs.<VulnDiscussion>Enforcing a minimum password lifetime helps to prevent repeated password changes to defeat the password reuse or history enforcement requirement. If users are allowed to immediately and continually change their password, the password could be repeatedly changed in a short period of time to defeat the organization's policy regarding password reuse.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000198Configure the operating system to enforce 24 hours/1 day as the minimum password lifetime. + +Add the following line in "/etc/login.defs" (or modify the line to have the required value): + +PASS_MIN_DAYS 1Verify the operating system enforces 24 hours/1 day as the minimum password lifetime for new user accounts. + +Check for the value of "PASS_MIN_DAYS" in "/etc/login.defs" with the following command: + +$ sudo grep -i pass_min_days /etc/login.defs +PASS_MIN_DAYS 1 + +If the "PASS_MIN_DAYS" parameter value is not "1" or greater, or is commented out, this is a finding.SRG-OS-000076-GPOS-00044<GroupDescription></GroupDescription>RHEL-08-020200RHEL 8 user account passwords must have a 60-day maximum password lifetime restriction.<VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If RHEL 8 does not limit the lifetime of passwords and force users to change their passwords, there is the risk that RHEL 8 passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000199Configure RHEL 8 to enforce a 60-day maximum password lifetime. + +Add, or modify the following line in the "/etc/login.defs" file: + +PASS_MAX_DAYS 60Verify that RHEL 8 enforces a 60-day maximum password lifetime for new user accounts by running the following command: + +$ sudo grep -i pass_max_days /etc/login.defs +PASS_MAX_DAYS 60 + +If the "PASS_MAX_DAYS" parameter value is greater than "60", or commented out, this is a finding.SRG-OS-000076-GPOS-00044<GroupDescription></GroupDescription>RHEL-08-020210RHEL 8 user account passwords must be configured so that existing passwords are restricted to a 60-day maximum lifetime.<VulnDiscussion>Any password, no matter how complex, can eventually be cracked. Therefore, passwords need to be changed periodically. If RHEL 8 does not limit the lifetime of passwords and force users to change their passwords, there is the risk that RHEL 8 passwords could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000199Configure non-compliant accounts to enforce a 60-day maximum password lifetime restriction. + +$ sudo chage -M 60 [user]Check whether the maximum time period for existing passwords is restricted to 60 days with the following commands: + +$ sudo awk -F: '$5 > 60 {print $1 " " $5}' /etc/shadow + +$ sudo awk -F: '$5 <= 0 {print $1 " " $5}' /etc/shadow + +If any results are returned that are not associated with a system account, this is a finding.SRG-OS-000077-GPOS-00045<GroupDescription></GroupDescription>RHEL-08-020220RHEL 8 must be configured in the password-auth file to prohibit password reuse for a minimum of five generations.<VulnDiscussion>Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to reuse their password consecutively when that password has exceeded its defined lifetime, the end result is a password that is not changed per policy requirements. + +RHEL 8 uses "pwhistory" consecutively as a mechanism to prohibit password reuse. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth. + +Note that manual changes to the listed files may be overwritten by the "authselect" program.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000200Configure the operating system in the password-auth file to prohibit password reuse for a minimum of five generations. + +Add the following line in "/etc/pam.d/password-auth" (or modify the line to have the required value): + +password required pam_pwhistory.so use_authtok remember=5 retry=3Verify the operating system is configured in the password-auth file to prohibit password reuse for a minimum of five generations. + +Check for the value of the "remember" argument in "/etc/pam.d/password-auth" with the following command: + +$ sudo grep -i remember /etc/pam.d/password-auth + +password required pam_pwhistory.so use_authtok remember=5 retry=3 + +If the line containing "pam_pwhistory.so" does not have the "remember" module argument set, is commented out, or the value of the "remember" module argument is set to less than "5", this is a finding.SRG-OS-000078-GPOS-00046<GroupDescription></GroupDescription>RHEL-08-020230RHEL 8 passwords must have a minimum of 15 characters.<VulnDiscussion>The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised. + +Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to increase exponentially the time and/or resources required to compromise the password. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. Configurations are set in the "etc/security/pwquality.conf" file. + +The "minlen", sometimes noted as minimum length, acts as a "score" of complexity based on the credit components of the "pwquality" module. By setting the credit components to a negative value, not only will those components be required, they will not count towards the total "score" of "minlen". This will enable "minlen" to require a 15-character minimum. + +The DoD minimum password requirement is 15 characters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000205Configure operating system to enforce a minimum 15-character password length. + +Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): + +minlen = 15 + +Remove any configurations that conflict with the above value.Verify the operating system enforces a minimum 15-character password length. The "minlen" option sets the minimum number of characters in a new password. + +Check for the value of the "minlen" option with the following command: + +$ sudo grep -r minlen /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:minlen = 15 + +If the command does not return a "minlen" value of 15 or greater, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000078-GPOS-00046<GroupDescription></GroupDescription>RHEL-08-020231RHEL 8 passwords for new users must have a minimum of 15 characters.<VulnDiscussion>The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised. + +Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to increase exponentially the time and/or resources required to compromise the password. + +The DoD minimum password requirement is 15 characters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000205Configure operating system to enforce a minimum 15-character password length for new user accounts. + +Add, or modify the following line in the "/etc/login.defs" file: + +PASS_MIN_LEN 15Verify that RHEL 8 enforces a minimum 15-character password length for new user accounts by running the following command: + +$ sudo grep -i pass_min_len /etc/login.defs + +PASS_MIN_LEN 15 + +If the "PASS_MIN_LEN" parameter value is less than "15", or commented out, this is a finding.SRG-OS-000104-GPOS-00051<GroupDescription></GroupDescription>RHEL-08-020240RHEL 8 duplicate User IDs (UIDs) must not exist for interactive users.<VulnDiscussion>To ensure accountability and prevent unauthenticated access, interactive users must be identified and authenticated to prevent potential misuse and compromise of the system. + +Interactive users include organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors). Interactive users (and processes acting on behalf of users) must be uniquely identified and authenticated to all accesses, except for the following: + +1) Accesses explicitly identified and documented by the organization. Organizations document specific user actions that can be performed on the information system without identification or authentication; and + +2) Accesses that occur through authorized use of group authenticators without individual authentication. Organizations may require unique identification of individuals in group accounts (e.g., shared privilege accounts) or for detailed accountability of individual activity. + +Satisfies: SRG-OS-000104-GPOS-00051, SRG-OS-000121-GPOS-00062, SRG-OS-000042-GPOS-00020</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000764Edit the file "/etc/passwd" and provide each interactive user account that has a duplicate User ID (UID) with a unique UID.Verify that RHEL 8 contains no duplicate User IDs (UIDs) for interactive users. + +Check that the operating system contains no duplicate UIDs for interactive users with the following command: + +$ sudo awk -F ":" 'list[$3]++{print $1, $3}' /etc/passwd + +If output is produced, and the accounts listed are interactive user accounts, this is a finding.SRG-OS-000105-GPOS-00052<GroupDescription></GroupDescription>RHEL-08-020250RHEL 8 must implement smart card logon for multifactor authentication for access to interactive accounts.<VulnDiscussion>Using an authentication device, such as a Common Access Card (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device. + +Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DoD CAC. + +There are various methods of implementing multifactor authentication for RHEL 8. Some methods include a local system multifactor account mapping or joining the system to a domain and utilizing a Red Hat idM server or Microsoft Windows Active Directory server. Any of these methods will require that the client operating system handle the multifactor authentication correctly. + +Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000765Configure RHEL 8 to use multifactor authentication for local access to accounts. + +Add or update the "pam_cert_auth" setting in the "/etc/sssd/sssd.conf" file to match the following line: + +[pam] +pam_cert_auth = True + +Add or update "pam_sss.so" with "try_cert_auth" or "require_cert_auth" in the "/etc/pam.d/system-auth" and "/etc/pam.d/smartcard-auth" files based on the following examples: + +/etc/pam.d/smartcard-auth:auth sufficient pam_sss.so try_cert_auth + +/etc/pam.d/system-auth:auth [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth + +The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: + +$ sudo systemctl restart sssd.serviceVerify RHEL 8 uses multifactor authentication for local access to accounts. + +Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. + +Check that the "pam_cert_auth" setting is set to "true" in the "/etc/sssd/sssd.conf" file. + +Check that the "try_cert_auth" or "require_cert_auth" options are configured in both "/etc/pam.d/system-auth" and "/etc/pam.d/smartcard-auth" files with the following command: + +$ sudo grep cert_auth /etc/sssd/sssd.conf /etc/pam.d/* + +/etc/sssd/sssd.conf:pam_cert_auth = True +/etc/pam.d/smartcard-auth:auth sufficient pam_sss.so try_cert_auth +/etc/pam.d/system-auth:auth [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth + +If "pam_cert_auth" is not set to "true" in "/etc/sssd/sssd.conf", this is a finding. + +If "pam_sss.so" is not set to "try_cert_auth" or "require_cert_auth" in both the "/etc/pam.d/smartcard-auth" and "/etc/pam.d/system-auth" files, this is a finding.SRG-OS-000118-GPOS-00060<GroupDescription></GroupDescription>RHEL-08-020260RHEL 8 account identifiers (individuals, groups, roles, and devices) must be disabled after 35 days of inactivity.<VulnDiscussion>Inactive identifiers pose a risk to systems and applications because attackers may exploit an inactive identifier and potentially obtain undetected access to the system. Owners of inactive accounts will not notice if unauthorized access to their user account has been obtained. + +RHEL 8 needs to track periods of inactivity and disable application identifiers after 35 days of inactivity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000795Configure RHEL 8 to disable account identifiers after 35 days of inactivity after the password expiration. + +Run the following command to change the configuration for useradd: + +$ sudo useradd -D -f 35 + +DoD recommendation is 35 days, but a lower value is acceptable. The value "-1" will disable this feature, and "0" will disable the account immediately after the password expires.Verify the account identifiers (individuals, groups, roles, and devices) are disabled after 35 days of inactivity with the following command: + +Check the account inactivity value by performing the following command: + +$ sudo grep -i inactive /etc/default/useradd + +INACTIVE=35 + +If "INACTIVE" is set to "-1", a value greater than "35", or is commented out, this is a finding.SRG-OS-000123-GPOS-00064<GroupDescription></GroupDescription>RHEL-08-020270RHEL 8 emergency accounts must be automatically removed or disabled after the crisis is resolved or within 72 hours.<VulnDiscussion>Emergency accounts are privileged accounts established in response to crisis situations where the need for rapid account activation is required. Therefore, emergency account activation may bypass normal account authorization processes. If these accounts are automatically disabled, system maintenance during emergencies may not be possible, thus adversely affecting system availability. + +Emergency accounts are different from infrequently used accounts (i.e., local logon accounts used by the organization's system administrators when network or normal logon/access is not available). Infrequently used accounts are not subject to automatic termination dates. Emergency accounts are accounts created in response to crisis situations, usually for use by maintenance personnel. The automatic expiration or disabling time period may be extended as needed until the crisis is resolved; however, it must not be extended indefinitely. A permanent account should be established for privileged users who need long-term maintenance accounts. + +To address access requirements, many RHEL 8 systems can be integrated with enterprise-level authentication/access mechanisms that meet or exceed access control policy requirements.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001682If an emergency account must be created, configure the system to terminate the account after 72 hours with the following command to set an expiration date for the account. Substitute "system_account_name" with the account to be created. + +$ sudo chage -E `date -d "+3 days" +%Y-%m-%d` system_account_name + +The automatic expiration or disabling time period may be extended as needed until the crisis is resolved.Verify emergency accounts have been provisioned with an expiration date of 72 hours. + +For every existing emergency account, run the following command to obtain its account expiration information. + +$ sudo chage -l system_account_name + +Verify each of these accounts has an expiration date set within 72 hours. +If any emergency accounts have no expiration date set or do not expire within 72 hours, this is a finding.SRG-OS-000266-GPOS-00101<GroupDescription></GroupDescription>RHEL-08-020280All RHEL 8 passwords must contain at least one special character.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. + +Password complexity is one factor of several that determines how long it takes to crack a password. The more complex the password, the greater the number of possible combinations that need to be tested before the password is compromised. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. Note that to require special characters without degrading the "minlen" value, the credit value must be expressed as a negative number in "/etc/security/pwquality.conf".</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001619Configure the operating system to enforce password complexity by requiring that at least one special character be used by setting the "ocredit" option. + +Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): + +ocredit = -1 + +Remove any configurations that conflict with the above value.Verify the value for "ocredit" with the following command: + +$ sudo grep -r ocredit /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:ocredit = -1 + +If the value of "ocredit" is a positive number or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000383-GPOS-00166<GroupDescription></GroupDescription>RHEL-08-020290RHEL 8 must prohibit the use of cached authentications after one day.<VulnDiscussion>If cached authentication information is out-of-date, the validity of the authentication information may be questionable. + +RHEL 8 includes multiple options for configuring authentication, but this requirement will be focus on the System Security Services Daemon (SSSD). By default sssd does not cache credentials.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002007Configure the SSSD to prohibit the use of cached authentications after one day. + +Add or change the following line in "/etc/sssd/sssd.conf" just below the line "[pam]". + +offline_credentials_expiration = 1Verify that the SSSD prohibits the use of cached authentications after one day. + +Note: If smart card authentication is not being used on the system this item is Not Applicable. + +Check that SSSD allows cached authentications with the following command: + +$ sudo grep cache_credentials /etc/sssd/sssd.conf + +cache_credentials = true + +If "cache_credentials" is set to "false" or missing from the configuration file, this is not a finding and no further checks are required. + +If "cache_credentials" is set to "true", check that SSSD prohibits the use of cached authentications after one day with the following command: + +$ sudo grep offline_credentials_expiration /etc/sssd/sssd.conf + +offline_credentials_expiration = 1 + +If "offline_credentials_expiration" is not set to a value of "1", this is a finding.SRG-OS-000480-GPOS-00225<GroupDescription></GroupDescription>RHEL-08-020300RHEL 8 must prevent the use of dictionary words for passwords.<VulnDiscussion>If RHEL 8 allows the user to select passwords based on dictionary words, this increases the chances of password compromise by increasing the opportunity for successful guesses, and brute-force attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to prevent the use of dictionary words for passwords. + +Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the /etc/pwquality.conf.d/ directory to contain the "dictcheck" parameter: + +dictcheck=1 + +Remove any configurations that conflict with the above value.Verify RHEL 8 prevents the use of dictionary words for passwords. + +Determine if the field "dictcheck" is set with the following command: + +$ sudo grep -r dictcheck /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:dictcheck=1 + +If the "dictcheck" parameter is not set to "1", or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00226<GroupDescription></GroupDescription>RHEL-08-020310RHEL 8 must enforce a delay of at least four seconds between logon prompts following a failed logon attempt.<VulnDiscussion>Configuring the operating system to implement organization-wide security implementation guides and security checklists verifies compliance with federal standards and establishes a common security baseline across the DoD that reflects the most restrictive security posture consistent with operational requirements. + +Configuration settings are the set of parameters that can be changed in hardware, software, or firmware components of the system that affect the security posture and/or functionality of the system. Security-related parameters are those parameters impacting the security state of the system, including the parameters required to satisfy other security control requirements. Security-related parameters include, for example, registry settings; account, file, and directory permission settings; and settings for functions, ports, protocols, services, and remote connections.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to enforce a delay of at least four seconds between logon prompts following a failed console logon attempt. + +Modify the "/etc/login.defs" file to set the "FAIL_DELAY" parameter to "4" or greater: + +FAIL_DELAY 4Verify the operating system enforces a delay of at least four seconds between console logon prompts following a failed logon attempt with the following command: + +$ sudo grep -i fail_delay /etc/login.defs + +FAIL_DELAY 4 + +If the value of "FAIL_DELAY" is not set to "4" or greater, or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020320RHEL 8 must not have unnecessary accounts.<VulnDiscussion>Accounts providing no operational purpose provide additional opportunities for system compromise. Unnecessary accounts include user accounts for individuals not requiring access to the system and application accounts for applications not installed on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system so all accounts on the system are assigned to an active system, application, or user account. + +Remove accounts that do not support approved system activities or that allow for a normal user to perform administrative-level actions. + +Document all authorized accounts on the system.Verify all accounts on the system are assigned to an active system, application, or user account. + +Obtain the list of authorized system accounts from the Information System Security Officer (ISSO). + +Check the system accounts on the system with the following command: + +$ sudo more /etc/passwd + +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/sbin/nologin +daemon:x:2:2:daemon:/sbin:/sbin/nologin +sync:x:5:0:sync:/sbin:/bin/sync +shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown +halt:x:7:0:halt:/sbin:/sbin/halt +games:x:12:100:games:/usr/games:/sbin/nologin +gopher:x:13:30:gopher:/var/gopher:/sbin/nologin + +Accounts such as "games" and "gopher" are not authorized accounts as they do not support authorized system functions. + +If the accounts on the system do not match the provided documentation, or accounts that do not support an authorized system function are present, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020330RHEL 8 must not allow accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Edit the following line in "etc/ssh/sshd_config" to prevent logons with empty passwords. + +PermitEmptyPasswords no + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceTo verify that null passwords cannot be used, run the following command: + +$ sudo grep -ir permitemptypasswords /etc/ssh/sshd_config* + +PermitEmptyPasswords no + +If "PermitEmptyPasswords" is set to "yes", this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020340RHEL 8 must display the date and time of the last successful account logon upon logon.<VulnDiscussion>Providing users with feedback on when account accesses last occurred facilitates user recognition and reporting of unauthorized account use.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000052Configure the operating system to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/postlogin". + +Add the following line to the top of "/etc/pam.d/postlogin": + +session required pam_lastlog.so showfailedVerify users are provided with feedback on when account accesses last occurred with the following command: + +$ sudo grep pam_lastlog /etc/pam.d/postlogin + +session required pam_lastlog.so showfailed + +If "pam_lastlog" is missing from "/etc/pam.d/postlogin" file, or the silent option is present, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020350RHEL 8 must display the date and time of the last successful account logon upon an SSH logon.<VulnDiscussion>Providing users with feedback on when account accesses via SSH last occurred facilitates user recognition and reporting of unauthorized account use.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000052Configure SSH to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/sshd" or in the "sshd_config" file used by the system ("/etc/ssh/sshd_config" will be used in the example) (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). + +Modify the "PrintLastLog" line in "/etc/ssh/sshd_config" to match the following: + +PrintLastLog yes + +The SSH service must be restarted for changes to "sshd_config" to take effect.Verify SSH provides users with feedback on when account accesses last occurred with the following command: + +$ sudo grep -ir printlastlog /etc/ssh/sshd_config* + +PrintLastLog yes + +If the "PrintLastLog" keyword is set to "no", is missing, or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00228<GroupDescription></GroupDescription>RHEL-08-020351RHEL 8 must define default permissions for all authenticated users in such a way that the user can only read and modify their own files.<VulnDiscussion>Setting the most restrictive default permissions ensures that when new accounts are created, they do not have unnecessary access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to define default permissions for all authenticated users in such a way that the user can only read and modify their own files. + +Add or edit the line for the "UMASK" parameter in "/etc/login.defs" file to "077": + +UMASK 077Verify the operating system defines default permissions for all authenticated users in such a way that the user can only read and modify their own files. + +Check for the value of the "UMASK" parameter in "/etc/login.defs" file with the following command: + +Note: If the value of the "UMASK" parameter is set to "000" in "/etc/login.defs" file, the Severity is raised to a CAT I. + +# grep -i umask /etc/login.defs + +UMASK 077 + +If the value for the "UMASK" parameter is not "077", or the "UMASK" parameter is missing or is commented out, this is a finding.SRG-OS-000480-GPOS-00228<GroupDescription></GroupDescription>RHEL-08-020352RHEL 8 must set the umask value to 077 for all local interactive user accounts.<VulnDiscussion>The umask controls the default access mode assigned to newly created files. A umask of 077 limits new files to mode 600 or less permissive. Although umask can be represented as a four-digit number, the first digit representing special access modes is typically ignored or required to be "0". This requirement applies to the globally configured system defaults and the local interactive user defaults for each account on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove the umask statement from all local interactive user's initialization files. + +If the account is for an application, the requirement for a umask less restrictive than "077" can be documented with the Information System Security Officer, but the user agreement for access to the account must specify that the local interactive user must log on to their account first and then switch the user to the application account with the correct option to gain the account's environment variables.Verify that the default umask for all local interactive users is "077". + +Identify the locations of all local interactive user home directories by looking at the "/etc/passwd" file. + +Check all local interactive user initialization files for interactive users with the following command: + +Note: The example is for a system that is configured to create users home directories in the "/home" directory. + +$ sudo grep -ir ^umask /home | grep -v '.bash_history' + +If any local interactive user initialization files are found to have a umask statement that has a value less restrictive than "077", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020353RHEL 8 must define default permissions for logon and non-logon shells.<VulnDiscussion>The umask controls the default access mode assigned to newly created files. A umask of 077 limits new files to mode 600 or less permissive. Although umask can be represented as a four-digit number, the first digit representing special access modes is typically ignored or required to be "0". This requirement applies to the globally configured system defaults and the local interactive user defaults for each account on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to define default permissions for all authenticated users in such a way that the user can only read and modify their own files. + +Add or edit the lines for the "UMASK" parameter in the "/etc/bashrc", "/etc/csh.cshrc" and "/etc/profile"files to "077": + +UMASK 077Verify that the umask default for installed shells is "077". + +Check for the value of the "UMASK" parameter in the "/etc/bashrc", "/etc/csh.cshrc" and "/etc/profile" files with the following command: + +Note: If the value of the "UMASK" parameter is set to "000" in the "/etc/bashrc" the "/etc/csh.cshrc" or the "/etc/profile" files, the Severity is raised to a CAT I. + +# grep -i umask /etc/bashrc /etc/csh.cshrc /etc/profile + +/etc/bashrc: umask 077 +/etc/bashrc: umask 077 +/etc/csh.cshrc: umask 077 +/etc/csh.cshrc: umask 077 +/etc/profile: umask 077 +/etc/profile: umask 077 + +If the value for the "UMASK" parameter is not "077", or the "UMASK" parameter is missing or is commented out, this is a finding.SRG-OS-000326-GPOS-00126<GroupDescription></GroupDescription>RHEL-08-030000The RHEL 8 audit system must be configured to audit the execution of privileged functions and prevent all software from executing at higher privilege levels than users executing the software.<VulnDiscussion>Misuse of privileged functions, either intentionally or unintentionally by authorized users, or by unauthorized external entities that have compromised information system accounts, is a serious and ongoing concern and can have significant adverse impacts on organizations. Auditing the use of privileged functions is one way to detect such misuse and identify the risk from insider threats and the advanced persistent threat. + +Satisfies: SRG-OS-000326-GPOS-00126, SRG-OS-000327-GPOS-00127</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002233Configure RHEL 8 to audit the execution of the "execve" system call. + +Add or update the following file system rules to "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv +-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv + +-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv +-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 audits the execution of privileged functions. + +Check if RHEL 8 is configured to audit the execution of the "execve" system call, by running the following command: + +$ sudo grep execve /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv +-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv + +-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv +-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv + +If the command does not return all lines, or the lines are commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-030010Cron logging must be implemented in RHEL 8.<VulnDiscussion>Cron logging can be used to trace the successful or unsuccessful execution of cron jobs. It can also be used to spot intrusions into the use of the cron facility by unauthorized and malicious users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure "rsyslog" to log all cron messages by adding or updating the following line to "/etc/rsyslog.conf" or a configuration file in the /etc/rsyslog.d/ directory: + +cron.* /var/log/cron + +The rsyslog daemon must be restarted for the changes to take effect: +$ sudo systemctl restart rsyslog.serviceVerify that "rsyslog" is configured to log cron events with the following command: + +Note: If another logging package is used, substitute the utility configuration file for "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files. + +$ sudo grep -s cron /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:*.info;mail.none;authpriv.none;cron.none /var/log/messages +/etc/rsyslog.conf:# Log cron stuff +/etc/rsyslog.conf:cron.* /var/log/cron + +If the command does not return a response, check for cron logging all facilities with the following command. + +$ sudo grep -s /var/log/messages /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:*.info;mail.none;authpriv.none;cron.none /var/log/messages + +If "rsyslog" is not logging messages for the cron facility or all facilities, this is a finding.SRG-OS-000046-GPOS-00022<GroupDescription></GroupDescription>RHEL-08-030020The RHEL 8 System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) must be alerted of an audit processing failure event.<VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. + +Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. + +This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000139Configure "auditd" service to notify the SA and ISSO in the event of an audit processing failure. + +Edit the following line in "/etc/audit/auditd.conf" to ensure that administrators are notified via email for those situations: + +action_mail_acct = rootVerify that the SA and ISSO (at a minimum) are notified in the event of an audit processing failure. + +Check that RHEL 8 notifies the SA and ISSO (at a minimum) in the event of an audit processing failure with the following command: + +$ sudo grep action_mail_acct /etc/audit/auditd.conf + +action_mail_acct = root + +If the value of the "action_mail_acct" keyword is not set to "root" and/or other accounts for security personnel, the "action_mail_acct" keyword is missing, or the retuned line is commented out, ask the system administrator to indicate how they and the ISSO are notified of an audit process failure. If there is no evidence of the proper personnel being notified of an audit processing failure, this is a finding.SRG-OS-000046-GPOS-00022<GroupDescription></GroupDescription>RHEL-08-030030The RHEL 8 Information System Security Officer (ISSO) and System Administrator (SA) (at a minimum) must have mail aliases to be notified of an audit processing failure.<VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. + +Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. + +This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000139Configure RHEL 8 to notify administrators in the event of an audit processing failure. + +Add/update the following line in "/etc/aliases": + +postmaster: rootVerify that the administrators are notified in the event of an audit processing failure. + +Check that the "/etc/aliases" file has a defined value for "root". + +$ sudo grep "postmaster:\s*root$" /etc/aliases + +If the command does not return a line, or the line is commented out, ask the system administrator to indicate how they and the ISSO are notified of an audit process failure. If there is no evidence of the proper personnel being notified of an audit processing failure, this is a finding.SRG-OS-000047-GPOS-00023<GroupDescription></GroupDescription>RHEL-08-030040The RHEL 8 System must take appropriate action when an audit processing failure occurs.<VulnDiscussion>It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without this notification, the security personnel may be unaware of an impending failure of the audit capability, and system operation may be adversely affected. + +Audit processing failures include software/hardware errors, failures in the audit capturing mechanisms, and audit storage capacity being reached or exceeded. + +This requirement applies to each audit data storage repository (i.e., distinct information system component where audit records are stored), the centralized audit storage capacity of organizations (i.e., all audit data storage repositories combined), or both.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000140Configure RHEL 8 to shut down by default upon audit failure (unless availability is an overriding concern). + +Add or update the following line (depending on configuration "disk_error_action" can be set to "SYSLOG" or "SINGLE" depending on configuration) in "/etc/audit/auditd.conf" file: + +disk_error_action = HALT + +If availability has been determined to be more important, and this decision is documented with the ISSO, configure the operating system to notify system administration staff and ISSO staff in the event of an audit processing failure by setting the "disk_error_action" to "SYSLOG".Verify RHEL 8 takes the appropriate action when an audit processing failure occurs. + +Check that RHEL 8 takes the appropriate action when an audit processing failure occurs with the following command: + +$ sudo grep disk_error_action /etc/audit/auditd.conf + +disk_error_action = HALT + +If the value of the "disk_error_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, ask the system administrator to indicate how the system takes appropriate action when an audit process failure occurs. If there is no evidence of appropriate action, this is a finding.SRG-OS-000047-GPOS-00023<GroupDescription></GroupDescription>RHEL-08-030060The RHEL 8 audit system must take appropriate action when the audit storage volume is full.<VulnDiscussion>It is critical that when RHEL 8 is at risk of failing to process audit logs as required, it takes action to mitigate the failure. Audit processing failures include software/hardware errors; failures in the audit capturing mechanisms; and audit storage capacity being reached or exceeded. Responses to audit failure depend upon the nature of the failure mode. + +When availability is an overriding concern, other approved actions in response to an audit failure are as follows: + +1) If the failure was caused by the lack of audit record storage capacity, RHEL 8 must continue generating audit records if possible (automatically restarting the audit service if necessary) and overwriting the oldest audit records in a first-in-first-out manner. + +2) If audit records are sent to a centralized collection server and communication with this server is lost or the server fails, RHEL 8 must queue audit records locally until communication is restored or until the audit records are retrieved manually. Upon restoration of the connection to the centralized collection server, action should be taken to synchronize the local audit data with the collection server.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000140Configure RHEL 8 to shut down by default upon audit failure (unless availability is an overriding concern). + +Add or update the following line (depending on configuration "disk_full_action" can be set to "SYSLOG" or "SINGLE" depending on configuration) in "/etc/audit/auditd.conf" file: + +disk_full_action = HALT + +If availability has been determined to be more important, and this decision is documented with the ISSO, configure the operating system to notify system administration staff and ISSO staff in the event of an audit processing failure by setting the "disk_full_action" to "SYSLOG".Verify RHEL 8 takes the appropriate action when the audit storage volume is full. + +Check that RHEL 8 takes the appropriate action when the audit storage volume is full with the following command: + +$ sudo grep disk_full_action /etc/audit/auditd.conf + +disk_full_action = HALT + +If the value of the "disk_full_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, ask the system administrator to indicate how the system takes appropriate action when an audit storage volume is full. If there is no evidence of appropriate action, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-030061The RHEL 8 audit system must audit local events.<VulnDiscussion>Without establishing what type of events occurred, the source of events, where events occurred, and the outcome of events, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to audit local events on the system. + +Add or update the following line in "/etc/audit/auditd.conf" file: + +local_events = yesVerify the RHEL 8 Audit Daemon is configured to include local events, with the following command: + +$ sudo grep local_events /etc/audit/auditd.conf + +local_events = yes + +If the value of the "local_events" option is not set to "yes", or the line is commented out, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-08-030062RHEL 8 must label all off-loaded audit logs before sending them to the central log server.<VulnDiscussion>Without establishing what type of events occurred, the source of events, where events occurred, and the outcome of events, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. + +Enriched logging is needed to determine who, what, and when events occur on a system. Without this, determining root cause of an event will be much more difficult. + +When audit logs are not labeled before they are sent to a central log server, the audit data will not be able to be analyzed and tied back to the correct system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001851Edit the /etc/audit/auditd.conf file and add or update the "name_format" option: + +name_format = hostname + +The audit daemon must be restarted for changes to take effect.Verify the RHEL 8 Audit Daemon is configured to label all off-loaded audit logs, with the following command: + +$ sudo grep "name_format" /etc/audit/auditd.conf + +name_format = hostname + +If the "name_format" option is not "hostname", "fqd", or "numeric", or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-030063RHEL 8 must resolve audit information before writing to disk.<VulnDiscussion>Without establishing what type of events occurred, the source of events, where events occurred, and the outcome of events, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. + +Enriched logging aids in making sense of who, what, and when events occur on a system. Without this, determining root cause of an event will be much more difficult.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Edit the /etc/audit/auditd.conf file and add or update the "log_format" option: + +log_format = ENRICHED + +The audit daemon must be restarted for changes to take effect.Verify the RHEL 8 Audit Daemon is configured to resolve audit information before writing to disk, with the following command: + +$ sudo grep "log_format" /etc/audit/auditd.conf + +log_format = ENRICHED + +If the "log_format" option is not "ENRICHED", or the line is commented out, this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030070RHEL 8 audit logs must have a mode of 0600 or less permissive to prevent unauthorized read access.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029, SRG-OS-000206-GPOS-00084</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log to be protected from unauthorized read access by configuring the log group in the /etc/audit/auditd.conf file: + +log_group = rootVerify the audit logs have a mode of "0600" or less permissive. + +First, determine where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Using the location of the audit log file, check if the audit log has a mode of "0600" or less permissive with the following command: + +$ sudo stat -c "%a %n" /var/log/audit/audit.log + +600 /var/log/audit/audit.log + +If the audit log has a mode more permissive than "0600", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030080RHEL 8 audit logs must be owned by root to prevent unauthorized read access.<VulnDiscussion>Only authorized personnel should be aware of errors and the details of the errors. Error messages are an indicator of an organization's operational state or can identify the RHEL 8 system or platform. Additionally, Personally Identifiable Information (PII) and operational information must not be revealed through error messages to unauthorized personnel or their designated representatives. + +The structure and content of error messages must be carefully considered by the organization and development team. The extent to which the information system is able to identify and handle error conditions is guided by organizational policy and operational requirements. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029, SRG-OS-000206-GPOS-00084</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log to be protected from unauthorized read access, by setting the correct owner as "root" with the following command: + +$ sudo chown root [audit_log_file] + +Replace "[audit_log_file]" to the correct audit log path, by default this location is "/var/log/audit/audit.log".Verify the audit logs are owned by "root". First, determine where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Using the location of the audit log file, determine if the audit log is owned by "root" using the following command: + +$ sudo ls -al /var/log/audit/audit.log + +rw------- 2 root root 23 Jun 11 11:56 /var/log/audit/audit.log + +If the audit log is not owned by "root", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030090RHEL 8 audit logs must be group-owned by root to prevent unauthorized read access.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 activity. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log to be owned by root by configuring the log group in the /etc/audit/auditd.conf file: + +log_group = rootVerify the audit logs are group-owned by "root". First determine where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Using the location of the audit log file, determine if the audit log is group-owned by "root" using the following command: + +$ sudo ls -al /var/log/audit/audit.log + +rw------- 2 root root 23 Jun 11 11:56 /var/log/audit/audit.log + +If the audit log is not group-owned by "root", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030100RHEL 8 audit log directory must be owned by root to prevent unauthorized read access.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 activity. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log to be protected from unauthorized read access, by setting the correct owner as "root" with the following command: + +$ sudo chown root [audit_log_directory] + +Replace "[audit_log_directory]" with the correct audit log directory path, by default this location is usually "/var/log/audit".Verify the audit log directory is owned by "root" to prevent unauthorized read access. + +Determine where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Determine the owner of the audit log directory by using the output of the above command (ex: "/var/log/audit/"). Run the following command with the correct audit log directory path: + +$ sudo ls -ld /var/log/audit + +drw------- 2 root root 23 Jun 11 11:56 /var/log/audit + +If the audit log directory is not owned by "root", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030110RHEL 8 audit log directory must be group-owned by root to prevent unauthorized read access.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 activity. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log to be protected from unauthorized read access by setting the correct group-owner as "root" with the following command: + +$ sudo chgrp root [audit_log_directory] + +Replace "[audit_log_directory]" with the correct audit log directory path, by default this location is usually "/var/log/audit".Verify the audit log directory is group-owned by "root" to prevent unauthorized read access. + +Determine where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Determine the group owner of the audit log directory by using the output of the above command (ex: "/var/log/audit/"). Run the following command with the correct audit log directory path: + +$ sudo ls -ld /var/log/audit + +drw------- 2 root root 23 Jun 11 11:56 /var/log/audit + +If the audit log directory is not group-owned by "root", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030120RHEL 8 audit log directory must have a mode of 0700 or less permissive to prevent unauthorized read access.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 system activity. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit log directory to be protected from unauthorized read access by setting the correct permissive mode with the following command: + +$ sudo chmod 0700 [audit_log_directory] + +Replace "[audit_log_directory]" to the correct audit log directory path, by default this location is "/var/log/audit".Verify the audit log directories have a mode of "0700" or less permissive by first determining where the audit logs are stored with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf + +log_file = /var/log/audit/audit.log + +Using the location of the audit log, determine the directory where the audit logs are stored (ex: "/var/log/audit"). Run the following command to determine the permissions for the audit log folder: + +$ sudo stat -c "%a %n" /var/log/audit + +700 /var/log/audit + +If the audit log directory has a mode more permissive than "0700", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030121RHEL 8 audit system must protect auditing rules from unauthorized change.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 system activity. + +In immutable mode, unauthorized users cannot execute changes to the audit system to potentially hide malicious activity and then put the audit rules back. A system reboot would be noticeable and a system administrator could then investigate the unauthorized changes. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit system to set the audit rules to be immutable by adding the following line to "/etc/audit/rules.d/audit.rules" + +-e 2 + +Note: Once set, the system must be rebooted for auditing to be changed. It is recommended to add this option as the last step in securing the system.Verify the audit system prevents unauthorized changes with the following command: + +$ sudo grep "^\s*[^#]" /etc/audit/audit.rules | tail -1 + +-e 2 + +If the audit system is not set to be immutable by adding the "-e 2" option to the "/etc/audit/audit.rules", this is a finding.SRG-OS-000057-GPOS-00027<GroupDescription></GroupDescription>RHEL-08-030122RHEL 8 audit system must protect logon UIDs from unauthorized change.<VulnDiscussion>Unauthorized disclosure of audit records can reveal system and configuration data to attackers, thus compromising its confidentiality. + +Audit information includes all information (e.g., audit records, audit settings, audit reports) needed to successfully audit RHEL 8 system activity. + +In immutable mode, unauthorized users cannot execute changes to the audit system to potentially hide malicious activity and then put the audit rules back. A system reboot would be noticeable and a system administrator could then investigate the unauthorized changes. + +Satisfies: SRG-OS-000057-GPOS-00027, SRG-OS-000058-GPOS-00028, SRG-OS-000059-GPOS-00029</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000162Configure the audit system to set the logon UIDs to be immutable by adding the following line to "/etc/audit/rules.d/audit.rules" + +--loginuid-immutableVerify the audit system prevents unauthorized changes to logon UIDs with the following command: + +$ sudo grep -i immutable /etc/audit/audit.rules + +--loginuid-immutable + +If the login UIDs are not set to be immutable by adding the "--loginuid-immutable" option to the "/etc/audit/audit.rules", this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030130RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/shadow.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/shadow -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/shadow /etc/audit/audit.rules + +-w /etc/shadow -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030140RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/security/opasswd.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/security/opasswd -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/security/opasswd /etc/audit/audit.rules + +-w /etc/security/opasswd -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030150RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/passwd.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/passwd -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/passwd /etc/audit/audit.rules + +-w /etc/passwd -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030160RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/gshadow.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/gshadow -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/gshadow /etc/audit/audit.rules + +-w /etc/gshadow -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030170RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/group.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, CCI-002884, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/group -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/group /etc/audit/audit.rules + +-w /etc/group -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030171RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/sudoers.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, CCI-002884, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/sudoers -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/sudoers /etc/audit/audit.rules + +-w /etc/sudoers -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030172RHEL 8 must generate audit records for all account creations, modifications, disabling, and termination events that affect /etc/sudoers.d/.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000004-GPOS-00004, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000304-GPOS-00121, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000470-GPOS-00214, SRG-OS-000471-GPOS-00215, SRG-OS-000239-GPOS-00089, SRG-OS-000240-GPOS-00090, SRG-OS-000241-GPOS-00091, SRG-OS-000303-GPOS-00120, SRG-OS-000304-GPOS-00121, CCI-002884, SRG-OS-000466-GPOS-00210, SRG-OS-000476-GPOS-00221</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers.d/". + +Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": + +-w /etc/sudoers.d/ -p wa -k identity + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers.d/". + +Check the auditing rules in "/etc/audit/audit.rules" with the following command: + +$ sudo grep /etc/sudoers.d/ /etc/audit/audit.rules + +-w /etc/sudoers.d/ -p wa -k identity + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030180The RHEL 8 audit package must be installed.<VulnDiscussion>Without establishing what type of events occurred, the source of events, where events occurred, and the outcome of events, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. + +Associating event types with detected events in RHEL 8 audit logs provides a means of investigating an attack, recognizing resource utilization or capacity thresholds, or identifying an improperly configured RHEL 8 system. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00021, SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000122-GPOS-00063, SRG-OS-000254-GPOS-00095, SRG-OS-000255-GPOS-00096, SRG-OS-000337-GPOS-00129, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142, SRG-OS-000358-GPOS-00145, SRG-OS-000365-GPOS-00152, SRG-OS-000392-GPOS-00172, SRG-OS-000475-GPOS-00220</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred. + +Install the audit service (if the audit service is not already installed) with the following command: + +$ sudo yum install auditVerify the audit service is configured to produce audit records. + +Check that the audit service is installed with the following command: + +$ sudo yum list installed audit + +If the "audit" package is not installed, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030190Successful/unsuccessful uses of the su command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "su" command allows a user to run commands with a substitute user and group ID. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000064-GPOS-0003, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to generate audit records when successful/unsuccessful attempts to use the "su" command occur by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates audit records when successful/unsuccessful attempts to use the "su" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w /usr/bin/su /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030200The RHEL 8 audit system must be configured to audit any usage of the setxattr, fsetxattr, lsetxattr, removexattr, fremovexattr, and lremovexattr system calls.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +"Setxattr" is a system call used to set an extended attribute value. +"Fsetxattr" is a system call used to set an extended attribute value. This is used to set extended attributes on a file. +"Lsetxattr" is a system call used to set an extended attribute value. This is used to set extended attributes on a symbolic link. +"Removexattr" is a system call that removes extended attributes. +"Fremovexattr" is a system call that removes extended attributes. This is used for removal of extended attributes from a file. +"Lremovexattr" is a system call that removes extended attributes. This is used for removal of extended attributes from symbolic links. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000458-GPOS-00203, SRG-OS-000462-GPOS-00206, SRG-OS-000463-GPOS-00207, SRG-OS-000468-GPOS-00212, SRG-OS-000471-GPOS-00215, SRG-OS-000474-GPOS-00219, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to audit the execution of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls by adding or updating the following lines to "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify if RHEL 8 is configured to audit the execution of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls by running the following command: + +$ sudo grep xattr /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod + +-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod +-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod + +If the command does not return an audit rule for "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030250Successful/unsuccessful uses of the chage command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chage" command is used to change or view user password expiry information. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000468-GPOS-00212, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chage" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "chage" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w chage /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030260Successful/unsuccessful uses of the chcon command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chcon" command is used to change file SELinux security context. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000468-GPOS-00212, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chcon" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chcon" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w chcon /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030280Successful/unsuccessful uses of the ssh-agent in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "ssh-agent" is a program to hold private keys used for public key authentication. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-agent" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "ssh-agent" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep ssh-agent /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030290Successful/unsuccessful uses of the passwd command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "passwd" command is used to change passwords for user accounts. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "passwd" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "passwd" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w passwd /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030300Successful/unsuccessful uses of the mount command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "mount" command is used to mount a filesystem. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "mount" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w /usr/bin/mount /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030301Successful/unsuccessful uses of the umount command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "umount" command is used to unmount a filesystem. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount" command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "umount" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w /usr/bin/umount /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030302Successful/unsuccessful uses of the mount syscall in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "mount" syscall is used to mount a filesystem. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" syscall by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "mount" syscall by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "\-S mount" /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030310Successful/unsuccessful uses of the unix_update in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. "Unix_update" is a helper program for the "pam_unix" module that updates the password for a given user. It is not intended to be run directly from the command line and logs a security violation if done so. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_update" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "unix_update" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "unix_update" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030311Successful/unsuccessful uses of postdrop in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "postdrop" command creates a file in the maildrop directory and copies its standard input to the file. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "postdrop" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "postdrop" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "postdrop" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030312Successful/unsuccessful uses of postqueue in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "postqueue" command implements the Postfix user interface for queue management. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "postqueue" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "postqueue" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "postqueue" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030313Successful/unsuccessful uses of semanage in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "semanage" command is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "semanage" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "semanage" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "semanage" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030314Successful/unsuccessful uses of setfiles in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "setfiles" command is primarily used to initialize the security context fields (extended attributes) on one or more filesystems (or parts of them). Usually it is initially run as part of the SELinux installation process (a step commonly known as labeling). + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "setfiles" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "setfiles" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "setfiles" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030315Successful/unsuccessful uses of userhelper in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "userhelper" command is not intended to be run interactively. "Userhelper" provides a basic interface to change a user's password, gecos information, and shell. The main difference between this program and its traditional equivalents (passwd, chfn, chsh) is that prompts are written to standard out to make it easy for a graphical user interface wrapper to interface to it as a child process. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "userhelper" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "userhelper" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "userhelper" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030316Successful/unsuccessful uses of setsebool in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "setsebool" command sets the current state of a particular SELinux boolean or a list of booleans to a given value. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "setsebool" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "setsebool" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "setsebool" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030317Successful/unsuccessful uses of unix_chkpwd in RHEL 8 must generate an audit record.<VulnDiscussion>Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. + +At a minimum, the organization must audit the full-text recording of privileged commands. The organization must maintain audit trails in sufficient detail to reconstruct events to determine the cause and impact of compromise. The "unix_chkpwd" command is a helper program for the pam_unix module that verifies the password of the current user. It also checks password and account expiration dates in shadow. It is not intended to be run directly from the command line and logs a security violation if done so. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_chkpwd" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of "unix_chkpwd" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "unix_chkpwd" /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030320Successful/unsuccessful uses of the ssh-keysign in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "ssh-keysign" program is an SSH helper program for host-based authentication. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-keysign" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "ssh-keysign" by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep ssh-keysign /etc/audit/audit.rules + +-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030330Successful/unsuccessful uses of the setfacl command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "setfacl" command is used to set file access control lists. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setfacl" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "setfacl" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w setfacl /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030340Successful/unsuccessful uses of the pam_timestamp_check command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "pam_timestamp_check" command is used to check if the default timestamp is valid. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "pam_timestamp_check" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "pam_timestamp_check" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w pam_timestamp_check /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030350Successful/unsuccessful uses of the newgrp command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "newgrp" command is used to change the current group ID during a login session. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "newgrp" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "newgrp" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w newgrp /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030360Successful/unsuccessful uses of the init_module and finit_module system calls in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "init_module" and "finit_module" system calls are used to load a kernel module. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "init_module" and "finit_module" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng +-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "init_module" and "finit_module" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep init_module /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng +-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng + +If the command does not return an audit rule for "init_module" and "finit_module" or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030361Successful/unsuccessful uses of the rename, unlink, rmdir, renameat, and unlinkat system calls in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "rename" system call will rename the specified files by replacing the first occurrence of expression in their name by replacement. + +The "unlink" system call deletes a name from the filesystem. If that name was the last link to a file and no processes have the file open, the file is deleted and the space it was using is made available for reuse. +The "rmdir" system call removes empty directories. +The "renameat" system call renames a file, moving it between directories if required. +The "unlinkat" system call operates in exactly the same way as either "unlink" or "rmdir" except for the differences described in the manual page. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. Performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "rename", "unlink", "rmdir", "renameat", and "unlinkat" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F arch=b32 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete +-a always,exit -F arch=b64 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "rename", "unlink", "rmdir", "renameat", and "unlinkat" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep 'rename\|unlink\|rmdir' /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete +-a always,exit -F arch=b64 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete + +If the command does not return an audit rule for "rename", "unlink", "rmdir", "renameat", and "unlinkat" or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030370Successful/unsuccessful uses of the gpasswd command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "gpasswd" command is used to administer /etc/group and /etc/gshadow. Every group can have administrators, members and a password. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "gpasswd" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "gpasswd" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w gpasswd /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030390Successful/unsuccessful uses of the delete_module command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "delete_module" command is used to unload a kernel module. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "delete_module" command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng +-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "delete_module" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w "delete_module" /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng +-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030400Successful/unsuccessful uses of the crontab command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "crontab" command is used to maintain crontab files for individual users. Crontab is the program used to install, remove, or list the tables used to drive the cron daemon. This is similar to the task scheduler used in other operating systems. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "crontab" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "crontab" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w crontab /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030410Successful/unsuccessful uses of the chsh command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chsh" command is used to change the login shell. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chsh" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chsh" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w chsh /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030420Successful/unsuccessful uses of the truncate, ftruncate, creat, open, openat, and open_by_handle_at system calls in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "truncate" and "ftruncate" functions are used to truncate a file to a specified length. + +The "creat" system call is used to open and possibly create a file or device. +The "open" system call opens a file specified by a pathname. If the specified file does not exist, it may optionally be created by "open". +The "openat" system call opens a file specified by a relative pathname. +The "name_to_handle_at" and "open_by_handle_at" system calls split the functionality of "openat" into two parts: "name_to_handle_at" returns an opaque handle that corresponds to a specified file; "open_by_handle_at" opens the file corresponding to a handle returned by a previous call to "name_to_handle_at" and returns an open file descriptor. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000064-GPOS-00033</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access +-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access + +-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access +-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep 'open\|truncate\|creat' /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access +-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access + +-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access +-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access + +If the output does not produce rules containing "-F exit=-EPERM", this is a finding. +If the output does not produce rules containing "-F exit=-EACCES", this is a finding. +If the command does not return an audit rule for "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030480Successful/unsuccessful uses of the chown, fchown, fchownat, and lchown system calls in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chown" command is used to change file owner and group. + +The "fchown" system call is used to change the ownership of a file referred to by the open file descriptor. +The "fchownat" system call is used to change ownership of a file relative to a directory file descriptor. +The "lchown" system call is used to change the ownership of the file specified by a path, which does not dereference symbolic links. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. The performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000064-GPOS-00033, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chown", "fchown", "fchownat", and "lchown" system calls by adding or updating the following line to "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat" and "lchown" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep chown /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod + +If audit rules are not defined for "chown", "fchown", "fchownat", and "lchown" or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030490Successful/unsuccessful uses of the chmod, fchmod, and fchmodat system calls in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chmod" system call changes the file mode bits of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new mode bits. + +The "fchmod" system call is used to change permissions of a file. +The "fchmodat" system call is used to change permissions of a file relative to a directory file descriptor. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +The system call rules are loaded into a matching engine that intercepts each syscall made by all programs on the system. Therefore, it is very important to use syscall rules only when absolutely necessary since these affect performance. The more rules, the bigger the performance hit. Performance can be helped, however, by combining syscalls into one rule whenever possible. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000064-GPOS-00033, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chmod", "fchmod", and "fchmodat" syscalls by adding or updating the following line to "/etc/audit/rules.d/audit.rules": + +-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" syscalls by using the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep chmod /etc/audit/audit.rules + +-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod +-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod + +If the command does not return an audit rule for "chmod", "fchmod", and "fchmodat", or any of the lines returned are commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030550Successful/unsuccessful uses of the sudo command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "sudo" command allows a permitted user to execute a command as the superuser or another user, as specified by the security policy. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudo" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "sudo" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w sudo /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030560Successful/unsuccessful uses of the usermod command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "usermod" command modifies the system account files to reflect the changes that are specified on the command line. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "usermod" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod + +The audit daemon must be restarted for the changes to take effect.Verify that an audit event is generated for any successful/unsuccessful use of the "usermod" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w usermod /etc/audit/audit.rules + +-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030570Successful/unsuccessful uses of the chacl command in RHEL 8 must generate an audit record.<VulnDiscussion>Without generating audit records that are specific to the security and mission needs of the organization, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "chacl" command is used to change the access control list of a file or directory. + +When a user logs on, the AUID is set to the UID of the account that is being authenticated. Daemons are not user sessions and have the loginuid set to "-1". The AUID representation is an unsigned 32-bit integer, which equals "4294967295". The audit system interprets "-1", "4294967295", and "unset" in the same way. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000466-GPOS-00210</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chacl" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: + +-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chacl" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w chacl /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030580Successful/unsuccessful uses of the kmod command in RHEL 8 must generate an audit record.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). The "kmod" command is used to control Linux Kernel modules. + +The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records. + +DoD has defined the list of events for which RHEL 8 will provide an audit record generation capability as the following: + +1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels); + +2) Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system; + +3) All account creations, modifications, disabling, and terminations; and + +4) All kernel module load, unload, and restart actions. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000471-GPOS-00216, SRG-OS-000477-GPOS-00222</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to audit the execution of the module management program "kmod" by adding or updating the following line to "/etc/audit/rules.d/audit.rules": + +-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules + +The audit daemon must be restarted for the changes to take effect.Verify if RHEL 8 is configured to audit the execution of the module management program "kmod", by running the following command: + +$ sudo grep "/usr/bin/kmod" /etc/audit/audit.rules + +-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030590Successful/unsuccessful modifications to the faillock log file in RHEL 8 must generate an audit record.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records. + +DoD has defined the list of events for which RHEL 8 will provide an audit record generation capability as the following: + +1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels); + +2) Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system; + +3) All account creations, modifications, disabling, and terminations; and + +4) All kernel module load, unload, and restart actions. + +From "Pam_Faillock man" pages: Note the default directory that pam_faillock uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "faillock" file by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-w /var/log/faillock -p wa -k logins + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful modifications to the "faillock" file occur. First, determine where the faillock tallies are stored with the following commands: + +For RHEL versions 8.0 and 8.1: + +$ sudo grep -i pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock silent deny=3 fail_interval=900 even_deny_root + +For RHEL versions 8.2 and newer: + +$ sudo grep dir /etc/security/faillock.conf + +dir=/var/log/faillock + +Using the location of the faillock log file, check that the following calls are being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w faillock /etc/audit/audit.rules + +-w /var/log/faillock -p wa -k logins + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030600Successful/unsuccessful modifications to the lastlog file in RHEL 8 must generate an audit record.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records. + +DoD has defined the list of events for which RHEL 8 will provide an audit record generation capability as the following: + +1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels); + +2) Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system; + +3) All account creations, modifications, disabling, and terminations; and + +4) All kernel module load, unload, and restart actions. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "lastlog" file by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: + +-w /var/log/lastlog -p wa -k logins + +The audit daemon must be restarted for the changes to take effect.Verify RHEL 8 generates an audit record when successful/unsuccessful modifications to the "lastlog" file by performing the following command to check the file system rules in "/etc/audit/audit.rules": + +$ sudo grep -w lastlog /etc/audit/audit.rules + +-w /var/log/lastlog -p wa -k logins + +If the command does not return a line, or the line is commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030601RHEL 8 must enable auditing of processes that start prior to the audit daemon.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +If auditing is enabled late in the startup process, the actions of some startup processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records. + +DoD has defined the list of events for which RHEL 8 will provide an audit record generation capability as the following: + +1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels); + +2) Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system; + +3) All account creations, modifications, disabling, and terminations; and + +4) All kernel module load, unload, and restart actions. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000042-GPOS-00020, SRG-OS-000062-GPOS-00031, SRG-OS-000392-GPOS-00172, SRG-OS-000462-GPOS-00206, SRG-OS-000471-GPOS-00215, SRG-OS-000473-GPOS-00218</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to audit processes that start prior to the audit daemon with the following command: + +$ sudo grubby --update-kernel=ALL --args="audit=1" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="audit=1"Verify RHEL 8 enables auditing of processes that start prior to the audit daemon with the following commands: + +$ sudo grub2-editenv list | grep audit + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If the "audit" entry does not equal "1", is missing, or the line is commented out, this is a finding. + +Check that auditing is enabled by default to persist in kernel updates: + +$ sudo grep audit /etc/default/grub + +GRUB_CMDLINE_LINUX="audit=1" + +If "audit" is not set to "1", is missing or commented out, this is a finding.SRG-OS-000341-GPOS-00132<GroupDescription></GroupDescription>RHEL-08-030602RHEL 8 must allocate an audit_backlog_limit of sufficient size to capture processes that start prior to the audit daemon.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +If auditing is enabled late in the startup process, the actions of some startup processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +Allocating an audit_backlog_limit of sufficient size is critical in maintaining a stable boot process. With an insufficient limit allocated, the system is susceptible to boot failures and crashes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001849Configure RHEL 8 to allocate sufficient audit_backlog_limit to capture processes that start prior to the audit daemon with the following command: + +$ sudo grubby --update-kernel=ALL --args="audit_backlog_limit=8192" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="audit_backlog_limit=8192"Verify RHEL 8 allocates a sufficient audit_backlog_limit to capture processes that start prior to the audit daemon with the following commands: + +$ sudo grub2-editenv list | grep audit + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If the "audit_backlog_limit" entry does not equal "8192" or greater, is missing, or the line is commented out, this is a finding. + +Check the audit_backlog_limit is set to persist in kernel updates: + +$ sudo grep audit /etc/default/grub + +GRUB_CMDLINE_LINUX="audit_backlog_limit=8192" + +If "audit_backlog_limit" is not set to "8192" or greater, is missing or commented out, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030603RHEL 8 must enable Linux audit logging for the USBGuard daemon.<VulnDiscussion>Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. + +If auditing is enabled late in the startup process, the actions of some startup processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created. + +Audit records can be generated from various components within the information system (e.g., module or policy filter). + +The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records. + +DoD has defined the list of events for which RHEL 8 will provide an audit record generation capability as the following: + +1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels); + +2) Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system; + +3) All account creations, modifications, disabling, and terminations; and + +4) All kernel module load, unload, and restart actions. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000471-GPOS-00215</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure RHEL 8 to enable Linux audit logging of the USBGuard daemon by adding or modifying the following line in "/etc/usbguard/usbguard-daemon.conf": + +AuditBackend=LinuxAuditVerify RHEL 8 enables Linux audit logging of the USBGuard daemon with the following commands: + +Note: If the USBGuard daemon is not installed and enabled, this requirement is not applicable. + +$ sudo grep -i auditbackend /etc/usbguard/usbguard-daemon.conf + +AuditBackend=LinuxAudit + +If the "AuditBackend" entry does not equal "LinuxAudit", is missing, or the line is commented out, this is a finding.SRG-OS-000063-GPOS-00032<GroupDescription></GroupDescription>RHEL-08-030610RHEL 8 must allow only the Information System Security Manager (ISSM) (or individuals or roles appointed by the ISSM) to select which auditable events are to be audited.<VulnDiscussion>Without the capability to restrict the roles and individuals that can select which events are audited, unauthorized personnel may be able to prevent the auditing of critical events. Misconfigured audits may degrade the system's performance by overwhelming the audit log. Misconfigured audits may also make it more difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000171Configure the files in directory "/etc/audit/rules.d/" and the "/etc/audit/auditd.conf" file to have a mode of "0640" with the following commands: + +$ sudo chmod 0640 /etc/audit/rules.d/audit.rules +$ sudo chmod 0640 /etc/audit/rules.d/[customrulesfile].rules +$ sudo chmod 0640 /etc/audit/auditd.confVerify that the files in directory "/etc/audit/rules.d/" and "/etc/audit/auditd.conf" file have a mode of "0640" or less permissive by using the following commands: + +$ sudo ls -al /etc/audit/rules.d/*.rules + +-rw-r----- 1 root root 1280 Feb 16 17:09 audit.rules + +$ sudo ls -l /etc/audit/auditd.conf + +-rw-r----- 1 root root 621 Sep 22 17:19 auditd.conf + +If the files in the "/etc/audit/rules.d/" directory or the "/etc/audit/auditd.conf" file have a mode more permissive than "0640", this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>RHEL-08-030620RHEL 8 audit tools must have a mode of 0755 or less permissive.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. + +RHEL 8 systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools, and the corresponding rights the user enjoys, to make access decisions regarding the access to audit tools. + +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001493Configure the audit tools to be protected from unauthorized access by setting the correct permissive mode using the following command: + +$ sudo chmod 0755 [audit_tool] + +Replace "[audit_tool]" with the audit tool that does not have the correct permissive mode.Verify the audit tools are protected from unauthorized access, deletion, or modification by checking the permissive mode. + +Check the octal permission of each audit tool by running the following command: + +$ sudo stat -c "%a %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules + +755 /sbin/auditctl +755 /sbin/aureport +755 /sbin/ausearch +750 /sbin/autrace +755 /sbin/auditd +755 /sbin/rsyslogd +755 /sbin/augenrules + +If any of the audit tools has a mode more permissive than "0755", this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>RHEL-08-030630RHEL 8 audit tools must be owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. + +RHEL 8 systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools, and the corresponding rights the user enjoys, to make access decisions regarding the access to audit tools. + +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. + +Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098, SRG-OS-000258-GPOS-00099</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001493Configure the audit tools to be owned by "root", by running the following command: + +$ sudo chown root [audit_tool] + +Replace "[audit_tool]" with each audit tool not owned by "root".Verify the audit tools are owned by "root" to prevent any unauthorized access, deletion, or modification. + +Check the owner of each audit tool by running the following command: + +$ sudo stat -c "%U %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules + +root /sbin/auditctl +root /sbin/aureport +root /sbin/ausearch +root /sbin/autrace +root /sbin/auditd +root /sbin/rsyslogd +root /sbin/augenrules + +If any of the audit tools are not owned by "root", this is a finding.SRG-OS-000256-GPOS-00097<GroupDescription></GroupDescription>RHEL-08-030640RHEL 8 audit tools must be group-owned by root.<VulnDiscussion>Protecting audit information also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit information. + +RHEL 8 systems providing tools to interface with audit information will leverage user permissions and roles identifying the user accessing the tools, and the corresponding rights the user enjoys, to make access decisions regarding the access to audit tools. + +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. + +Satisfies: SRG-OS-000256-GPOS-00097, SRG-OS-000257-GPOS-00098, SRG-OS-000258-GPOS-00099</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001493Configure the audit tools to be group-owned by "root", by running the following command: + +$ sudo chgrp root [audit_tool] + +Replace "[audit_tool]" with each audit tool not group-owned by "root".Verify the audit tools are group-owned by "root" to prevent any unauthorized access, deletion, or modification. + +Check the owner of each audit tool by running the following commands: + +$ sudo stat -c "%G %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules + +root /sbin/auditctl +root /sbin/aureport +root /sbin/ausearch +root /sbin/autrace +root /sbin/auditd +root /sbin/rsyslogd +root /sbin/augenrules + +If any of the audit tools are not group-owned by "root", this is a finding.SRG-OS-000278-GPOS-00108<GroupDescription></GroupDescription>RHEL-08-030650RHEL 8 must use cryptographic mechanisms to protect the integrity of audit tools.<VulnDiscussion>Protecting the integrity of the tools used for auditing purposes is a critical step toward ensuring the integrity of audit information. Audit information includes all information (e.g., audit records, audit settings, and audit reports) needed to successfully audit information system activity. + +Audit tools include, but are not limited to, vendor-provided and open source audit tools needed to successfully view and manipulate audit information system activity and records. Audit tools include custom queries and report generators. + +It is not uncommon for attackers to replace the audit tools or inject code into the existing tools with the purpose of providing the capability to hide or erase system activity from the audit logs. + +To address this risk, audit tools must be cryptographically signed to provide the capability to identify when the audit tools have been modified, manipulated, or replaced. An example is a checksum hash of the file or files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001496Add or update the following lines to "/etc/aide.conf", to protect the integrity of the audit tools. + +# Audit Tools +/usr/sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/auditd p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/ausearch p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/rsyslogd p+i+n+u+g+s+b+acl+xattrs+sha512 +/usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512Verify that Advanced Intrusion Detection Environment (AIDE) is properly configured to use cryptographic mechanisms to protect the integrity of audit tools. + +If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. + +Check the selection lines to ensure AIDE is configured to add/check with the following command: + + $ sudo grep -E '(\/usr\/sbin\/(audit|au|rsys))' /etc/aide.conf + + /usr/sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/auditd p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/ausearch p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/rsyslogd p+i+n+u+g+s+b+acl+xattrs+sha512 + /usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512 + +If any of the audit tools listed above do not have an appropriate selection line, ask the system administrator to indicate what cryptographic mechanisms are being used to protect the integrity of the audit tools. If there is no evidence of integrity protection, this is a finding.SRG-OS-000341-GPOS-00132<GroupDescription></GroupDescription>RHEL-08-030660RHEL 8 must allocate audit record storage capacity to store at least one week of audit records, when audit records are not immediately sent to a central audit record storage facility.<VulnDiscussion>To ensure RHEL 8 systems have a sufficient storage capacity in which to write the audit logs, RHEL 8 needs to be able to allocate audit record storage capacity. + +The task of allocating audit record storage capacity is usually performed during initial installation of RHEL 8.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001849Allocate enough storage capacity for at least one week of audit records when audit records are not immediately sent to a central audit record storage facility. + +If audit records are stored on a partition made specifically for audit records, resize the partition with sufficient space to contain one week of audit records. + +If audit records are not stored on a partition made specifically for audit records, a new partition with sufficient space will need be to be created.Verify RHEL 8 allocates audit record storage capacity to store at least one week of audit records when audit records are not immediately sent to a central audit record storage facility. + +Determine to which partition the audit records are being written with the following command: + +$ sudo grep -iw log_file /etc/audit/auditd.conf +log_file = /var/log/audit/audit.log + +Check the size of the partition to which audit records are written (with the example being /var/log/audit/) with the following command: + +$ sudo df -h /var/log/audit/ +/dev/sda2 24G 10.4G 13.6G 43% /var/log/audit + +If the audit records are not written to a partition made specifically for audit records (/var/log/audit is a separate partition), determine the amount of space being used by other files in the partition with the following command: + +$ sudo du -sh [audit_partition] +1.8G /var/log/audit + +If the audit record partition is not allocated for sufficient storage capacity, this is a finding. + +Note: The partition size needed to capture a week of audit records is based on the activity level of the system and the total storage capacity available. Typically 10.0 GB of storage space for audit records should be sufficient.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-030670RHEL 8 must have the packages required for offloading audit logs installed.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +Rsyslog provides three ways to forward message: the traditional UDP transport, which is extremely lossy but standard; the plain TCP based transport, which loses messages only during certain situations but is widely available; and the RELP transport, which does not lose messages but is currently available only as part of the rsyslogd 3.15.0 and above. +Examples of each configuration: +UDP *.* @remotesystemname +TCP *.* @@remotesystemname +RELP *.* :omrelp:remotesystemname:2514 +Note that a port number was given as there is no standard port for RELP.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to offload audit logs by installing the required packages with the following command: + +$ sudo yum install rsyslogVerify the operating system has the packages required for offloading audit logs installed with the following commands: + +$ sudo yum list installed rsyslog + +rsyslog.x86_64 8.1911.0-3.el8 @AppStream + +If the "rsyslog" package is not installed, ask the administrator to indicate how audit logs are being offloaded and what packages are installed to support it. If there is no evidence of audit logs being offloaded, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-030680RHEL 8 must have the packages required for encrypting offloaded audit logs installed.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "rsyslog-gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +Rsyslog provides three ways to forward message: the traditional UDP transport, which is extremely lossy but standard; the plain TCP based transport, which loses messages only during certain situations but is widely available; and the RELP transport, which does not lose messages but is currently available only as part of the rsyslogd 3.15.0 and above. +Examples of each configuration: +UDP *.* @remotesystemname +TCP *.* @@remotesystemname +RELP *.* :omrelp:remotesystemname:2514 +Note that a port number was given as there is no standard port for RELP.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to encrypt offloaded audit logs by installing the required packages with the following command: + +$ sudo yum install rsyslog-gnutlsVerify the operating system has the packages required for encrypting offloaded audit logs installed with the following commands: + +$ sudo yum list installed rsyslog-gnutls + +rsyslog-gnutls.x86_64 8.1911.0-3.el8 @AppStream + +If the "rsyslog-gnutls" package is not installed, ask the administrator to indicate how audit logs are being encrypted during offloading and what packages are installed to support it. If there is no evidence of audit logs being encrypted during offloading, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-08-030690The RHEL 8 audit records must be off-loaded onto a different system or storage media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +Rsyslog provides three ways to forward message: the traditional UDP transport, which is extremely lossy but standard; the plain TCP based transport, which loses messages only during certain situations but is widely available; and the RELP transport, which does not lose messages but is currently available only as part of the rsyslogd 3.15.0 and above. +Examples of each configuration: +UDP *.* @remotesystemname +TCP *.* @@remotesystemname +RELP *.* :omrelp:remotesystemname:2514 +Note that a port number was given as there is no standard port for RELP. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001851Configure the operating system to off-load audit records onto a different system or media from the system being audited by specifying the remote logging server in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf" with the name or IP address of the log aggregation server. + +*.* @@[remoteloggingserver]:[port]Verify the audit system off-loads audit records onto a different system or media from the system being audited with the following command: + +$ sudo grep @@ /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:*.* @@[remoteloggingserver]:[port] + +If a remote server is not configured, or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the audit logs are being off-loaded to another system or media, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-08-030700RHEL 8 must take appropriate action when the internal event queue is full.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001851Edit the /etc/audit/auditd.conf file and add or update the "overflow_action" option: + +overflow_action = syslog + +The audit daemon must be restarted for changes to take effect.Verify the audit system is configured to take an appropriate action when the internal event queue is full: + +$ sudo grep -i overflow_action /etc/audit/auditd.conf + +overflow_action = syslog + +If the value of the "overflow_action" option is not set to "syslog", "single", "halt", or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the transfer of the audit logs being off-loaded to another system or media takes appropriate action if the internal event queue becomes full, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-08-030710RHEL 8 must encrypt the transfer of audit records off-loaded onto a different system or media from the system being audited.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001851Configure the operating system to encrypt off-loaded audit records by setting the following options in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": + +$DefaultNetstreamDriver gtls +$ActionSendStreamDriverMode 1Verify the operating system encrypts audit records off-loaded onto a different system or media from the system being audited with the following commands: + +$ sudo grep -i '$DefaultNetstreamDriver' /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:$DefaultNetstreamDriver gtls + +If the value of the "$DefaultNetstreamDriver" option is not set to "gtls" or the line is commented out, this is a finding. + +$ sudo grep -i '$ActionSendStreamDriverMode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:$ActionSendStreamDriverMode 1 + +If the value of the "$ActionSendStreamDriverMode" option is not set to "1" or the line is commented out, this is a finding. + +If neither of the definitions above are set, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the transfer of the audit logs being off-loaded to another system or media is encrypted, this is a finding.SRG-OS-000342-GPOS-00133<GroupDescription></GroupDescription>RHEL-08-030720RHEL 8 must authenticate the remote logging server for off-loading audit logs.<VulnDiscussion>Information stored in one location is vulnerable to accidental or incidental deletion or alteration. + +Off-loading is a common process in information systems with limited audit storage capacity. + +RHEL 8 installation media provides "rsyslogd". "rsyslogd" is a system utility providing support for message logging. Support for both internet and UNIX domain sockets enables this utility to support both local and remote logging. Couple this utility with "gnutls" (which is a secure communications library implementing the SSL, TLS and DTLS protocols), and you have a method to securely encrypt and off-load auditing. + +"Rsyslog" supported authentication modes include: +anon - anonymous authentication +x509/fingerprint - certificate fingerprint authentication +x509/certvalid - certificate validation only +x509/name - certificate validation and subject name authentication. + +Satisfies: SRG-OS-000342-GPOS-00133, SRG-OS-000479-GPOS-00224</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001851Configure the operating system to authenticate the remote logging server for off-loading audit logs by setting the following option in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": + +$ActionSendStreamDriverAuthMode x509/nameVerify the operating system authenticates the remote logging server for off-loading audit logs with the following command: + +$ sudo grep -i '$ActionSendStreamDriverAuthMode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf + +/etc/rsyslog.conf:$ActionSendStreamDriverAuthMode x509/name + +If the value of the "$ActionSendStreamDriverAuthMode" option is not set to "x509/name" or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. + +If there is no evidence that the transfer of the audit logs being off-loaded to another system or media is encrypted, this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>RHEL-08-030730RHEL 8 must take action when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity.<VulnDiscussion>If security personnel are not notified immediately when storage volume reaches 75 percent utilization, they are unable to plan for audit record storage capacity expansion.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001855Configure the operating system to initiate an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity by adding/modifying the following line in the /etc/audit/auditd.conf file. + +space_left = 25% + +Note: Option names and values in the auditd.conf file are case insensitive.Verify RHEL 8 takes action when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity with the following commands: + +$ sudo grep -w space_left /etc/audit/auditd.conf + +space_left = 25% + +If the value of the "space_left" keyword is not set to "25%" or if the line is commented out, ask the System Administrator to indicate how the system is providing real-time alerts to the SA and ISSO. + +If there is no evidence that real-time alerts are configured on the system, this is a finding.SRG-OS-000355-GPOS-00143<GroupDescription></GroupDescription>RHEL-08-030740RHEL 8 must securely compare internal information system clocks at least every 24 hours with a server synchronized to an authoritative time source, such as the United States Naval Observatory (USNO) time servers, or a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS).<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. + +Synchronizing internal information system clocks provides uniformity of time stamps for information systems with multiple system clocks and systems connected over a network. + +Organizations should consider endpoints that may not have regular access to the authoritative time server (e.g., mobile, teleworking, and tactical endpoints). + +If time stamps are not consistently applied and there is no common time reference, it is difficult to perform forensic analysis. + +Time stamps generated by the operating system include date and time. Time is commonly expressed in Coordinated Universal Time (UTC), a modern continuation of Greenwich Mean Time (GMT), or local time with an offset from UTC. + +RHEL 8 utilizes the "timedatectl" command to view the status of the "systemd-timesyncd.service". The "timedatectl" status will display the local time, UTC, and the offset from UTC. + +Note that USNO offers authenticated NTP service to DoD and U.S. Government agencies operating on the NIPR and SIPR networks. Visit https://www.usno.navy.mil/USNO/time/ntp/dod-customers for more information. + +Satisfies: SRG-OS-000355-GPOS-00143, SRG-OS-000356-GPOS-00144, SRG-OS-000359-GPOS-00146</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001891Configure the operating system to securely compare internal information system clocks at least every 24 hours with an NTP server by adding/modifying the following line in the /etc/chrony.conf file. + +server [ntp.server.name] iburst maxpoll 16Verify RHEL 8 is securely comparing internal information system clocks at least every 24 hours with an NTP server with the following commands: + +$ sudo grep maxpoll /etc/chrony.conf + +server 0.us.pool.ntp.mil iburst maxpoll 16 + +If the "maxpoll" option is set to a number greater than 16 or the line is commented out, this is a finding. + +Verify the "chrony.conf" file is configured to an authoritative DoD time source by running the following command: + +$ sudo grep -i server /etc/chrony.conf +server 0.us.pool.ntp.mil + +If the parameter "server" is not set or is not set to an authoritative DoD time source, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-030741RHEL 8 must disable the chrony daemon from acting as a server.<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. + +Minimizing the exposure of the server functionality of the chrony daemon diminishes the attack surface. + +RHEL 8 utilizes the "timedatectl" command to view the status of the "systemd-timesyncd.service". The "timedatectl" status will display the local time, UTC, and the offset from UTC. + +Note that USNO offers authenticated NTP service to DoD and U.S. Government agencies operating on the NIPR and SIPR networks. Visit https://www.usno.navy.mil/USNO/time/ntp/dod-customers for more information.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the chrony daemon from acting as a server by adding/modifying the following line in the /etc/chrony.conf file. + +port 0Verify RHEL 8 disables the chrony daemon from acting as a server with the following command: + +$ sudo grep -w 'port' /etc/chrony.conf + +port 0 + +If the "port" option is not set to "0", is commented out or missing, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-030742RHEL 8 must disable network management of the chrony daemon.<VulnDiscussion>Inaccurate time stamps make it more difficult to correlate events and can lead to an inaccurate analysis. Determining the correct time a particular event occurred on a system is critical when conducting forensic analysis and investigating system events. Sources outside the configured acceptable allowance (drift) may be inaccurate. + +Not exposing the management interface of the chrony daemon on the network diminishes the attack space. + +RHEL 8 utilizes the "timedatectl" command to view the status of the "systemd-timesyncd.service". The "timedatectl" status will display the local time, UTC, and the offset from UTC. + +Note that USNO offers authenticated NTP service to DoD and U.S. Government agencies operating on the NIPR and SIPR networks. Visit https://www.usno.navy.mil/USNO/time/ntp/dod-customers for more information.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system disable network management of the chrony daemon by adding/modifying the following line in the /etc/chrony.conf file. + +cmdport 0Verify RHEL 8 disables network management of the chrony daemon with the following command: + +$ sudo grep -w 'cmdport' /etc/chrony.conf + +cmdport 0 + +If the "cmdport" option is not set to "0", is commented out or missing, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040000RHEL 8 must not have the telnet-server package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled. + +Verify the operating system is configured to disable non-essential capabilities. The most secure way of ensuring a non-essential capability is disabled is to not have the capability installed. + +The telnet service provides an unencrypted remote access service that does not provide for the confidentiality and integrity of user passwords or the remote session. + +If a privileged user were to log on using this service, the privileged user password could be compromised.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable non-essential capabilities by removing the telnet-server package from the system with the following command: + +$ sudo yum remove telnet-serverCheck to see if the telnet-server package is installed with the following command: + +$ sudo yum list installed telnet-server + +If the telnet-server package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040001RHEL 8 must not have any automated bug reporting tools installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled. + +Verify the operating system is configured to disable non-essential capabilities. The most secure way of ensuring a non-essential capability is disabled is to not have the capability installed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable non-essential capabilities by removing automated bug reporting packages from the system with the following command: + +$ sudo yum remove abrt*Check to see if any automated bug reporting packages are installed with the following command: + +$ sudo yum list installed abrt* + +If any automated bug reporting package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040002RHEL 8 must not have the sendmail package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled. + +Verify the operating system is configured to disable non-essential capabilities. The most secure way of ensuring a non-essential capability is disabled is to not have the capability installed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable non-essential capabilities by removing the sendmail package from the system with the following command: + +$ sudo yum remove sendmailCheck to see if the sendmail package is installed with the following command: + +$ sudo yum list installed sendmail + +If the sendmail package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040004RHEL 8 must enable mitigations against processor-based vulnerabilities.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +Examples of non-essential capabilities include, but are not limited to, games, software packages, tools, and demonstration software not related to requirements or providing a wide array of functionality not required for every mission, but which cannot be disabled. + +Verify the operating system is configured to disable non-essential capabilities. The most secure way of ensuring a non-essential capability is disabled is to not have the capability installed. + +Kernel page-table isolation is a kernel feature that mitigates the Meltdown security vulnerability and hardens the kernel against attempts to bypass kernel address space layout randomization (KASLR).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure RHEL 8 to enable kernel page-table isolation with the following command: + +$ sudo grubby --update-kernel=ALL --args="pti=on" + +Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: + +GRUB_CMDLINE_LINUX="pti=on"Verify RHEL 8 enables kernel page-table isolation with the following commands: + +$ sudo grub2-editenv list | grep pti + +kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 pti=on boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 + +If the "pti" entry does not equal "on", is missing, or the line is commented out, this is a finding. + +Check that kernel page-table isolation is enabled by default to persist in kernel updates: + +$ sudo grep pti /etc/default/grub + +GRUB_CMDLINE_LINUX="pti=on" + +If "pti" is not set to "on", is missing or commented out, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040010RHEL 8 must not have the rsh-server package installed.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +The rsh-server service provides an unencrypted remote access service that does not provide for the confidentiality and integrity of user passwords or the remote session and has very weak authentication. + +If a privileged user were to log on using this service, the privileged user password could be compromised. + +Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000074-GPOS-00042</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable non-essential capabilities by removing the rsh-server package from the system with the following command: + +$ sudo yum remove rsh-serverCheck to see if the rsh-server package is installed with the following command: + +$ sudo yum list installed rsh-server + +If the rsh-server package is installed, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040020RHEL 8 must cover or disable the built-in or attached camera when not in use.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Failing to disconnect from collaborative computing devices (i.e., cameras) can result in subsequent compromises of organizational information. Providing easy methods to physically disconnect from such devices after a collaborative computing session helps to ensure participants actually carry out the disconnect activity without having to go through complex and tedious procedures. + +Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000370-GPOS-00155</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the built-in or attached camera when not in use. + +Build or modify the "/etc/modprobe.d/blacklist.conf" file by using the following example: + +install uvcvideo /bin/true +blacklist uvcvideo + +Reboot the system for the settings to take effect.If the device or operating system does not have a camera installed, this requirement is not applicable. + +This requirement is not applicable to mobile devices (smartphones and tablets), where the use of the camera is a local AO decision. + +This requirement is not applicable to dedicated VTC suites located in approved VTC locations that are centrally managed. + +For an external camera, if there is not a method for the operator to manually disconnect the camera at the end of collaborative computing sessions, this is a finding. + +For a built-in camera, the camera must be protected by a camera cover (e.g., laptop camera cover slide) when not in use. If the built-in camera is not protected with a camera cover, or is not physically disabled, this is a finding. + +If the camera is not disconnected, covered, or physically disabled, determine if it is being disabled via software with the following commands: + +Verify the operating system disables the ability to load the uvcvideo kernel module. + +$ sudo grep -r uvcvideo /etc/modprobe.d/* | grep "/bin/true" + +install uvcvideo /bin/true + +If the command does not return any output, or the line is commented out, and the collaborative computing device has not been authorized for use, this is a finding. + +Verify the camera is disabled via blacklist with the following command: + +$ sudo grep -r uvcvideo /etc/modprobe.d/* | grep "blacklist" + +blacklist uvcvideo + +If the command does not return any output or the output is not "blacklist uvcvideo", and the collaborative computing device has not been authorized for use, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040021RHEL 8 must disable the asynchronous transfer mode (ATM) protocol.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Failing to disconnect unused protocols can result in a system compromise. + +The Asynchronous Transfer Mode (ATM) is a protocol operating on network, data link, and physical layers, based on virtual circuits and virtual paths. Disabling ATM protects the system against exploitation of any laws in its implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the ATM protocol kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install atm /bin/true +blacklist atm + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the ATM protocol kernel module. + +$ sudo grep -r atm /etc/modprobe.d/* | grep "/bin/true" + +install atm /bin/true + +If the command does not return any output, or the line is commented out, and use of the ATM protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the ATM protocol. + +Check to see if the ATM protocol is disabled with the following command: + +$ sudo grep -r atm /etc/modprobe.d/* | grep "blacklist" + +blacklist atm + +If the command does not return any output or the output is not "blacklist atm", and use of the ATM protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040022RHEL 8 must disable the controller area network (CAN) protocol.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Failing to disconnect unused protocols can result in a system compromise. + +The Controller Area Network (CAN) is a serial communications protocol, which was initially developed for automotive and is now also used in marine, industrial, and medical applications. Disabling CAN protects the system against exploitation of any flaws in its implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the CAN protocol kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install can /bin/true +blacklist can + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the CAN protocol kernel module. + +$ sudo grep -r can /etc/modprobe.d/* | grep "/bin/true" + +install can /bin/true + +If the command does not return any output, or the line is commented out, and use of the CAN protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the CAN protocol. + +Check to see if the CAN protocol is disabled with the following command: + +$ sudo grep -r can /etc/modprobe.d/* | grep "blacklist" + +blacklist can + +If the command does not return any output or the output is not "blacklist can", and use of the CAN protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040023RHEL 8 must disable the stream control transmission protocol (SCTP).<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Failing to disconnect unused protocols can result in a system compromise. + +The Stream Control Transmission Protocol (SCTP) is a transport layer protocol, designed to support the idea of message-oriented communication, with several streams of messages within one connection. Disabling SCTP protects the system against exploitation of any flaws in its implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the SCTP kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install sctp /bin/true +blacklist sctp + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the SCTP kernel module. + +$ sudo grep -r sctp /etc/modprobe.d/* | grep "/bin/true" + +install sctp /bin/true + +If the command does not return any output, or the line is commented out, and use of the SCTP is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the SCTP. + +Check to see if the SCTP is disabled with the following command: + +$ sudo grep -r sctp /etc/modprobe.d/* | grep "blacklist" + +blacklist sctp + +If the command does not return any output or the output is not "blacklist sctp", and use of the SCTP is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040024RHEL 8 must disable the transparent inter-process communication (TIPC) protocol.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Failing to disconnect unused protocols can result in a system compromise. + +The Transparent Inter-Process Communication (TIPC) protocol is designed to provide communications between nodes in a cluster. Disabling TIPC protects the system against exploitation of any flaws in its implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the TIPC protocol kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install tipc /bin/true +blacklist tipc + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the TIPC protocol kernel module. + +$ sudo grep -r tipc /etc/modprobe.d/* | grep "/bin/true" + +install tipc /bin/true + +If the command does not return any output, or the line is commented out, and use of the TIPC protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the TIPC protocol. + +Check to see if the TIPC protocol is disabled with the following command: + +$ sudo grep -r tipc /etc/modprobe.d/* | grep "blacklist" + +blacklist tipc + +If the command does not return any output or the output is not "blacklist tipc", and use of the TIPC protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040025RHEL 8 must disable mounting of cramfs.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Removing support for unneeded filesystem types reduces the local attack surface of the server. + +Compressed ROM/RAM file system (or cramfs) is a read-only file system designed for simplicity and space-efficiency. It is mainly used in embedded and small-footprint systems.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the cramfs kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install cramfs /bin/true +blacklist cramfs + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the cramfs kernel module. + +$ sudo grep -r cramfs /etc/modprobe.d/* | grep "/bin/true" + +install cramfs /bin/true + +If the command does not return any output, or the line is commented out, and use of the cramfs protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the cramfs kernel module. + +Check to see if the cramfs kernel module is disabled with the following command: + +$ sudo grep -r cramfs /etc/modprobe.d/* | grep "blacklist" + +blacklist cramfs + +If the command does not return any output or the output is not "blacklist cramfs", and use of the cramfs kernel module is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000095-GPOS-00049<GroupDescription></GroupDescription>RHEL-08-040026RHEL 8 must disable IEEE 1394 (FireWire) Support.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The IEEE 1394 (FireWire) is a serial bus standard for high-speed real-time communication. Disabling FireWire protects the system against exploitation of any flaws in its implementation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Configure the operating system to disable the ability to use the firewire-core kernel module. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install firewire-core /bin/true +blacklist firewire-core + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the firewire-core kernel module. + +$ sudo grep -r firewire-core /etc/modprobe.d/* | grep "/bin/true" + +install firewire-core /bin/true + +If the command does not return any output, or the line is commented out, and use of the firewire-core protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use the firewire-core kernel module. + +Check to see if the firewire-core kernel module is disabled with the following command: + +$ sudo grep -r firewire-core /etc/modprobe.d/* | grep "blacklist" + +blacklist firewire-core + +If the command does not return any output or the output is not "blacklist firewire-core", and use of the firewire-core kernel module is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000096-GPOS-00050<GroupDescription></GroupDescription>RHEL-08-040030RHEL 8 must be configured to prohibit or restrict the use of functions, ports, protocols, and/or services, as defined in the Ports, Protocols, and Services Management (PPSM) Category Assignments List (CAL) and vulnerability assessments.<VulnDiscussion>To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/protocols on information systems. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services provided by default may not be necessary to support essential organizational operations. Additionally, it is sometimes convenient to provide multiple services from a single component (e.g., VPN and IPS); however, doing so increases risk over limiting the services provided by any one component. + +To support the requirements and principles of least functionality, the operating system must support the organizational requirements, providing only essential capabilities and limiting the use of ports, protocols, and/or services to only those required, authorized, and approved to conduct official business or to address authorized quality-of-life issues.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000382Update the host's firewall settings and/or running services to comply with the PPSM Component Local Service Assessment (CLSA) for the site or program and the PPSM CAL.Inspect the firewall configuration and running services to verify it is configured to prohibit or restrict the use of functions, ports, protocols, and/or services that are unnecessary or prohibited. + +Check which services are currently active with the following command: + +$ sudo firewall-cmd --list-all-zones + +custom (active) +target: DROP +icmp-block-inversion: no +interfaces: ens33 +sources: +services: dhcpv6-client dns http https ldaps rpc-bind ssh +ports: +masquerade: no +forward-ports: +icmp-blocks: +rich rules: + +Ask the System Administrator for the site or program Ports, Protocols, and Services Management Component Local Service Assessment (PPSM CLSA). Verify the services allowed by the firewall match the PPSM CLSA. + +If there are additional ports, protocols, or services that are not in the PPSM CLSA, or there are ports, protocols, or services that are prohibited by the PPSM Category Assurance List (CAL), this is a finding.SRG-OS-000114-GPOS-00059<GroupDescription></GroupDescription>RHEL-08-040070The RHEL 8 file system automounter must be disabled unless required.<VulnDiscussion>Automatically mounting file systems permits easy introduction of unknown devices, thereby facilitating malicious activity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000778Configure the operating system to disable the ability to automount devices. + +Turn off the automount service with the following commands: + +$ sudo systemctl stop autofs +$ sudo systemctl disable autofs + +If "autofs" is required for Network File System (NFS), it must be documented with the ISSO.Verify the operating system disables the ability to automount devices. + +Check to see if automounter service is active with the following command: + +Note: If the autofs service is not installed, this requirement is not applicable. + +$ sudo systemctl status autofs + +autofs.service - Automounts filesystems on demand +Loaded: loaded (/usr/lib/systemd/system/autofs.service; disabled) +Active: inactive (dead) + +If the "autofs" status is set to "active" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000114-GPOS-00059<GroupDescription></GroupDescription>RHEL-08-040080RHEL 8 must be configured to disable USB mass storage.<VulnDiscussion>USB mass storage permits easy introduction of unknown devices, thereby facilitating malicious activity. + +Satisfies: SRG-OS-000114-GPOS-00059, SRG-OS-000378-GPOS-00163</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000778Configure the operating system to disable the ability to use the USB Storage kernel module and the ability to use USB mass storage devices. + +Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": + +install usb-storage /bin/true +blacklist usb-storage + +Reboot the system for the settings to take effect.Verify the operating system disables the ability to load the USB Storage kernel module. + +$ sudo grep -r usb-storage /etc/modprobe.d/* | grep -i "/bin/true" + +install usb-storage /bin/true + +If the command does not return any output, or the line is commented out, and use of USB Storage is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Verify the operating system disables the ability to use USB mass storage devices. + +Check to see if USB mass storage is disabled with the following command: + +$ sudo grep usb-storage /etc/modprobe.d/* | grep -i "blacklist" + +blacklist usb-storage + +If the command does not return any output or the output is not "blacklist usb-storage" and use of USB storage devices is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000297-GPOS-00115<GroupDescription></GroupDescription>RHEL-08-040090A RHEL 8 firewall must employ a deny-all, allow-by-exception policy for allowing connections to other systems.<VulnDiscussion>Failure to restrict network connectivity only to authorized systems permits inbound connections from malicious systems. It also permits outbound connections that may facilitate exfiltration of DoD data. + +RHEL 8 incorporates the "firewalld" daemon, which allows for many different configurations. One of these configurations is zones. Zones can be utilized to a deny-all, allow-by-exception approach. The default "drop" zone will drop all incoming network packets unless it is explicitly allowed by the configuration file or is related to an outgoing network connection.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002314Configure the "firewalld" daemon to employ a deny-all, allow-by-exception with the following commands: + +$ sudo firewall-cmd --permanent --new-zone=[custom] + +$ sudo cp /usr/lib/firewalld/zones/drop.xml /etc/firewalld/zones/[custom].xml + +This will provide a clean configuration file to work with that employs a deny-all approach. Note: Add the exceptions that are required for mission functionality and update the short title in the xml file to match the [custom] zone name. + +Reload the firewall rules to make the new [custom] zone available to load: +$ sudo firewall-cmd --reload + +Set the default zone to the new [custom] zone: +$ sudo firewall-cmd --set-default-zone=[custom] + +Note: This is a runtime and permanent change. +Add any interfaces to the new [custom] zone: +$ sudo firewall-cmd --permanent --zone=[custom] --change-interface=ens33 + +Reload the firewall rules for changes to take effect: +$ sudo firewall-cmd --reloadVerify "firewalld" is configured to employ a deny-all, allow-by-exception policy for allowing connections to other systems with the following commands: + +$ sudo firewall-cmd --state + +running + +$ sudo firewall-cmd --get-active-zones + +[custom] + interfaces: ens33 + +$ sudo firewall-cmd --info-zone=[custom] | grep target + + target: DROP + +If no zones are active on the RHEL 8 interfaces or if the target is set to a different option other than "DROP", this is a finding.SRG-OS-000297-GPOS-00115<GroupDescription></GroupDescription>RHEL-08-040100A firewall must be installed on RHEL 8.<VulnDiscussion>"Firewalld" provides an easy and effective way to block/limit remote access to the system via ports, services, and protocols. + +Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +RHEL 8 functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002314Install "firewalld" with the following command: + +$ sudo yum install firewalld.noarchVerify that "firewalld" is installed with the following commands: + +$ sudo yum list installed firewalld + +firewalld.noarch 0.7.0-5.el8 + +If the "firewalld" package is not installed, ask the System Administrator if another firewall is installed. If no firewall is installed this is a finding.SRG-OS-000299-GPOS-00117<GroupDescription></GroupDescription>RHEL-08-040110RHEL 8 wireless network adapters must be disabled.<VulnDiscussion>Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the RHEL 8 operating system. + +This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with RHEL 8 systems. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR Keyboards, Mice, and Pointing Devices and Near Field Communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DoD requirements for wireless data transmission and be approved for use by the Authorizing Official (AO). Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the RHEL 8 operating system. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required. + +Satisfies: SRG-OS-000299-GPOS-00117, SRG-OS-000300-GPOS-00118, SRG-OS-000481-GPOS-000481</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001444Configure the system to disable all wireless network interfaces with the following command: + +$ sudo nmcli radio all offVerify there are no wireless interfaces configured on the system with the following command: + +Note: This requirement is Not Applicable for systems that do not have physical wireless network radios. + +$ sudo nmcli device status + +DEVICE TYPE STATE CONNECTION +virbr0 bridge connected virbr0 +wlp7s0 wifi connected wifiSSID +enp6s0 ethernet disconnected -- +p2p-dev-wlp7s0 wifi-p2p disconnected -- +lo loopback unmanaged -- +virbr0-nic tun unmanaged -- + +If a wireless interface is configured and has not been documented and approved by the Information System Security Officer (ISSO), this is a finding.SRG-OS-000300-GPOS-00118<GroupDescription></GroupDescription>RHEL-08-040111RHEL 8 Bluetooth must be disabled.<VulnDiscussion>Without protection of communications with wireless peripherals, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read, altered, or used to compromise the RHEL 8 operating system. + +This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with RHEL 8 systems. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR Keyboards, Mice, and Pointing Devices and Near Field Communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DoD requirements for wireless data transmission and be approved for use by the Authorizing Official (AO). Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the RHEL 8 operating system. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of communications with wireless peripherals can be accomplished by physical means (e.g., employing physical barriers to wireless radio frequencies) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. If the wireless peripheral is only passing telemetry data, encryption of the data may not be required.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001443Configure the operating system to disable the Bluetooth adapter when not in use. + +Build or modify the "/etc/modprobe.d/bluetooth.conf" file with the following line: + +install bluetooth /bin/true + +Disable the ability to use the Bluetooth kernel module. + +$ sudo vi /etc/modprobe.d/blacklist.conf + +Add or update the line: + +blacklist bluetooth + +Reboot the system for the settings to take effect.If the device or operating system does not have a Bluetooth adapter installed, this requirement is not applicable. + +This requirement is not applicable to mobile devices (smartphones and tablets), where the use of Bluetooth is a local AO decision. + +Determine if Bluetooth is disabled with the following command: + +$ sudo grep bluetooth /etc/modprobe.d/* + +/etc/modprobe.d/bluetooth.conf:install bluetooth /bin/true + +If the Bluetooth driver blacklist entry is missing, a Bluetooth driver is determined to be in use, and the collaborative computing device has not been authorized for use, this is a finding. + +Verify the operating system disables the ability to use Bluetooth with the following command: + +$ sudo grep -r bluetooth /etc/modprobe.d | grep -i "blacklist" | grep -v "^#" + +blacklist bluetooth + +If the command does not return any output or the output is not "blacklist bluetooth", and use of Bluetooth is not documented with the ISSO as an operational requirement, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040120RHEL 8 must mount /dev/shm with the nodev option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /dev/shm is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0Verify "/dev/shm" is mounted with the "nodev" option: + +$ sudo mount | grep /dev/shm + +tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nodev"option is configured for /dev/shm: + +$ sudo cat /etc/fstab | grep /dev/shm + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev" option is missing, or if /dev/shm is mounted without the "nodev" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040121RHEL 8 must mount /dev/shm with the nosuid option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /dev/shm is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0Verify "/dev/shm" is mounted with the "nosuid" option: + +$ sudo mount | grep /dev/shm + +tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nosuid" option is configured for /dev/shm: + +$ sudo cat /etc/fstab | grep /dev/shm + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nosuid" option is missing, or if /dev/shm is mounted without the "nosuid" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040122RHEL 8 must mount /dev/shm with the noexec option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /dev/shm is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0Verify "/dev/shm" is mounted with the "noexec" option: + +$ sudo mount | grep /dev/shm + +tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "noexec" options is configured for /dev/shm: + +$ sudo cat /etc/fstab | grep /dev/shm + +tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "noexec" option is missing, or if /dev/shm is mounted without the "noexec" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040123RHEL 8 must mount /tmp with the nodev option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /tmp is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/tmp" is mounted with the "nodev" option: + +$ sudo mount | grep /tmp + +/dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nodev" option is configured for /tmp: + +$ sudo cat /etc/fstab | grep /tmp + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev" option is missing, or if /tmp is mounted without the "nodev" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040124RHEL 8 must mount /tmp with the nosuid option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /tmp is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/tmp" is mounted with the "nosuid" option: + +$ sudo mount | grep /tmp + +/dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nosuid" option is configured for /tmp: + +$ sudo cat /etc/fstab | grep /tmp + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nosuid" option is missing, or if /tmp is mounted without the "nosuid" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040125RHEL 8 must mount /tmp with the noexec option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /tmp is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/tmp" is mounted with the "noexec" option: + +$ sudo mount | grep /tmp + +/dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "noexec" option is configured for /tmp: + +$ sudo cat /etc/fstab | grep /tmp + +/dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "noexec" option is missing, or if /tmp is mounted without the "noexec" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040126RHEL 8 must mount /var/log with the nodev option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log" is mounted with the "nodev" option: + +$ sudo mount | grep /var/log + +/dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nodev" option is configured for /var/log: + +$ sudo cat /etc/fstab | grep /var/log + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev" option is missing, or if /var/log is mounted without the "nodev" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040127RHEL 8 must mount /var/log with the nosuid option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log" is mounted with the "nosuid" option: + +$ sudo mount | grep /var/log + +/dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nosuid" option is configured for /var/log: + +$ sudo cat /etc/fstab | grep /var/log + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nosuid" option is missing, or if /var/log is mounted without the "nosuid" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040128RHEL 8 must mount /var/log with the noexec option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log" is mounted with the "noexec" option: + +$ sudo mount | grep /var/log + +/dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "noexec" option is configured for /var/log: + +$ sudo cat /etc/fstab | grep /var/log + +/dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "noexec" option is missing, or if /var/log is mounted without the "noexec" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040129RHEL 8 must mount /var/log/audit with the nodev option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log/audit is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log/audit" is mounted with the "nodev" option: + +$ sudo mount | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nodev" option is configured for /var/log/audit: + +$ sudo cat /etc/fstab | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev" option is missing, or if /var/log/audit is mounted without the "nodev" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040130RHEL 8 must mount /var/log/audit with the nosuid option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log/audit is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log/audit" is mounted with the "nosuid" option: + +$ sudo mount | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nosuid" option is configured for /var/log/audit: + +$ sudo cat /etc/fstab | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nosuid" option is missing, or if /var/log/audit is mounted without the "nosuid" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040131RHEL 8 must mount /var/log/audit with the noexec option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/log/audit is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/log/audit" is mounted with the "noexec" option: + +$ sudo mount | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "noexec" option is configured for /var/log/audit: + +$ sudo cat /etc/fstab | grep /var/log/audit + +/dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "noexec" option is missing, or if /var/log/audit is mounted without the "noexec" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040132RHEL 8 must mount /var/tmp with the nodev option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/tmp is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/tmp" is mounted with the "nodev" option: + +$ sudo mount | grep /var/tmp + +/dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nodev" option is configured for /var/tmp: + +$ sudo cat /etc/fstab | grep /var/tmp + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nodev" option is missing, or if /var/tmp is mounted without the "nodev" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040133RHEL 8 must mount /var/tmp with the nosuid option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/tmp is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/tmp" is mounted with the "nosuid" option: + +$ sudo mount | grep /var/tmp + +/dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "nosuid" option is configured for /var/tmp: + +$ sudo cat /etc/fstab | grep /var/tmp + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "nosuid" option is missing, or if /var/tmp is mounted without the "nosuid" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040134RHEL 8 must mount /var/tmp with the noexec option.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +The "noexec" mount option causes the system to not execute binary files. This option must be used for mounting any file system not containing approved binary files, as they may be incompatible. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nodev" mount option causes the system to not interpret character or block special devices. Executing character or block special devices from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access. + +The "nosuid" mount option causes the system to not execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure the system so that /var/tmp is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0Verify "/var/tmp" is mounted with the "noexec" option: + +$ sudo mount | grep /var/tmp + +/dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) + +Verify that the "noexec" option is configured for /var/tmp: + +$ sudo cat /etc/fstab | grep /var/tmp + +/dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 + +If results are returned and the "noexec" option is missing, or if /var/tmp is mounted without the "noexec" option, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040135The RHEL 8 fapolicy module must be installed.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +Utilizing a whitelist provides a configuration management method for allowing the execution of only authorized software. Using only authorized software decreases risk by limiting the number of potential vulnerabilities. Verification of whitelisted software occurs prior to execution or at system startup. + +User home directories/folders may contain information of a sensitive nature. Non-privileged users should coordinate any sharing of information with an SA through shared resources. + +RHEL 8 ships with many optional packages. One such package is a file access policy daemon called "fapolicyd". "fapolicyd" is a userspace daemon that determines access rights to files based on attributes of the process and file. It can be used to either blacklist or whitelist processes or file access. + +Proceed with caution with enforcing the use of this daemon. Improper configuration may render the system non-functional. The "fapolicyd" API is not namespace aware and can cause issues when launching or running containers. + +Satisfies: SRG-OS-000368-GPOS-00154, SRG-OS-000370-GPOS-00155, SRG-OS-000480-GPOS-00232</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Install "fapolicyd" with the following command: + +$ sudo yum install fapolicyd.x86_64Verify the RHEL 8 "fapolicyd" is installed. + +Check that "fapolicyd" is installed with the following command: + +$ sudo yum list installed fapolicyd + +Installed Packages +fapolicyd.x86_64 + +If fapolicyd is not installed, this is a finding.SRG-OS-000378-GPOS-00163<GroupDescription></GroupDescription>RHEL-08-040140RHEL 8 must block unauthorized peripherals before establishing a connection.<VulnDiscussion>Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. + +Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers. + +A new feature that RHEL 8 provides is the USBGuard software framework. The USBguard-daemon is the main component of the USBGuard software framework. It runs as a service in the background and enforces the USB device authorization policy for all USB devices. The policy is defined by a set of rules using a rule language described in the usbguard-rules.conf file. The policy and the authorization state of USB devices can be modified during runtime using the usbguard tool. + +The System Administrator (SA) must work with the site Information System Security Officer (ISSO) to determine a list of authorized peripherals and establish rules within the USBGuard software framework to allow only authorized devices.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001958Configure the operating system to enable the blocking of unauthorized peripherals with the following command: +This command must be run from a root shell and will create an allow list for any usb devices currently connect to the system. + +# usbguard generate-policy > /etc/usbguard/rules.conf + +Note: Enabling and starting usbguard without properly configuring it for an individual system will immediately prevent any access over a usb device such as a keyboard or mouseVerify the USBGuard has a policy configured with the following command: + +$ sudo usbguard list-rules + +If the command does not return results or an error is returned, ask the SA to indicate how unauthorized peripherals are being blocked. + +If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding.SRG-OS-000420-GPOS-00186<GroupDescription></GroupDescription>RHEL-08-040150A firewall must be able to protect against or limit the effects of Denial of Service (DoS) attacks by ensuring RHEL 8 can implement rate-limiting measures on impacted network interfaces.<VulnDiscussion>DoS is a condition when a resource is not available for legitimate users. When this occurs, the organization either cannot accomplish its mission or must operate at degraded capacity. + +This requirement addresses the configuration of RHEL 8 to mitigate the impact of DoS attacks that have occurred or are ongoing on system availability. For each system, known and potential DoS attacks must be identified and solutions for each type implemented. A variety of technologies exists to limit or, in some cases, eliminate the effects of DoS attacks (e.g., limiting processes or establishing memory partitions). Employing increased capacity and bandwidth, combined with service redundancy, may reduce the susceptibility to some DoS attacks. + +Since version 0.6.0, "firewalld" has incorporated "nftables" as its backend support. Utilizing the limit statement in "nftables" can help to mitigate DoS attacks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002385Configure "nftables" to be the default "firewallbackend" for "firewalld" by adding or editing the following line in "etc/firewalld/firewalld.conf": + +FirewallBackend=nftables + +Establish rate-limiting rules based on organization-defined types of DoS attacks on impacted network interfaces.Verify "nftables" is configured to allow rate limits on any connection to the system with the following command: + +Verify "firewalld" has "nftables" set as the default backend: + +$ sudo grep -i firewallbackend /etc/firewalld/firewalld.conf + +# FirewallBackend +FirewallBackend=nftables + +If the "nftables" is not set as the "firewallbackend" default, this is a finding.SRG-OS-000423-GPOS-00187<GroupDescription></GroupDescription>RHEL-08-040160All RHEL 8 networked systems must have and implement SSH to protect the confidentiality and integrity of transmitted and received information, as well as information during preparation for transmission.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. + +This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. + +Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000424-GPOS-00188, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002418Configure the SSH service to automatically start after reboot with the following command: + +$ sudo systemctl enable sshd.serviceVerify SSH is loaded and active with the following command: + +$ sudo systemctl status sshd + +sshd.service - OpenSSH server daemon +Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) +Active: active (running) since Tue 2015-11-17 15:17:22 EST; 4 weeks 0 days ago +Main PID: 1348 (sshd) +CGroup: /system.slice/sshd.service +1053 /usr/sbin/sshd -D + +If "sshd" does not show a status of "active" and "running", this is a finding.SRG-OS-000033-GPOS-00014<GroupDescription></GroupDescription>RHEL-08-040161RHEL 8 must force a frequent session key renegotiation for SSH connections to the server.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. + +This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. + +Session key regeneration limits the chances of a session key becoming compromised. + +Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000420-GPOS-00186, SRG-OS-000424-GPOS-00188</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000068Configure the system to force a frequent session key renegotiation for SSH connections to the server by add or modifying the following line in the "/etc/ssh/sshd_config" file: + +RekeyLimit 1G 1h + +Restart the SSH daemon for the settings to take effect. + +$ sudo systemctl restart sshd.serviceVerify the SSH server is configured to force frequent session key renegotiation with the following command: + +$ sudo grep -ir RekeyLimit /etc/ssh/sshd_config* + +RekeyLimit 1G 1h + +If "RekeyLimit" does not have a maximum data amount and maximum time defined, is missing or commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040170The x86 Ctrl-Alt-Delete key sequence must be disabled on RHEL 8.<VulnDiscussion>A locally logged-on user, who presses Ctrl-Alt-Delete when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In a graphical user environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence for the command line with the following commands: + +$ sudo systemctl disable ctrl-alt-del.target + +$ sudo systemctl mask ctrl-alt-del.target + +Created symlink /etc/systemd/system/ctrl-alt-del.target -> /dev/null + +Reload the daemon for this change to take effect. + +$ sudo systemctl daemon-reloadVerify RHEL 8 is not configured to reboot the system when Ctrl-Alt-Delete is pressed with the following command: + +$ sudo systemctl status ctrl-alt-del.target + +ctrl-alt-del.target +Loaded: masked (Reason: Unit ctrl-alt-del.target is masked.) +Active: inactive (dead) + +If the "ctrl-alt-del.target" is loaded and not masked, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040171The x86 Ctrl-Alt-Delete key sequence in RHEL 8 must be disabled if a graphical user interface is installed.<VulnDiscussion>A locally logged-on user, who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In a graphical user environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system to disable the Ctrl-Alt-Delete sequence when using a graphical user interface by creating or editing the /etc/dconf/db/local.d/00-disable-CAD file. + +Add the setting to disable the Ctrl-Alt-Delete sequence for a graphical user interface: + +[org/gnome/settings-daemon/plugins/media-keys] +logout='' + +Note: The value above is set to two single quotations. + +Then update the dconf settings: + +$ sudo dconf updateVerify RHEL 8 is not configured to reboot the system when Ctrl-Alt-Delete is pressed when using a graphical user interface with the following command: + +This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +$ sudo grep logout /etc/dconf/db/local.d/* + +logout='' + +If the "logout" key is bound to an action, is commented out, or is missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040172The systemd Ctrl-Alt-Delete burst key sequence in RHEL 8 must be disabled.<VulnDiscussion>A locally logged-on user who presses Ctrl-Alt-Delete when at the console can reboot the system. If accidentally pressed, as could happen in the case of a mixed OS environment, this can create the risk of short-term loss of availability of systems due to unintentional reboot. In a graphical user environment, risk of unintentional reboot from the Ctrl-Alt-Delete sequence is reduced because the user will be prompted before any action is taken.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system to disable the CtrlAltDelBurstAction by added or modifying the following line in the "/etc/systemd/system.conf" configuration file: + +CtrlAltDelBurstAction=none + +Reload the daemon for this change to take effect. + +$ sudo systemctl daemon-reloadVerify RHEL 8 is not configured to reboot the system when Ctrl-Alt-Delete is pressed seven times within two seconds with the following command: + +$ sudo grep -i ctrl /etc/systemd/system.conf + +CtrlAltDelBurstAction=none + +If the "CtrlAltDelBurstAction" is not set to "none", commented out, or is missing, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040180The debug-shell systemd service must be disabled on RHEL 8.<VulnDiscussion>The debug-shell requires no authentication and provides root privileges to anyone who has physical access to the machine. While this feature is disabled by default, masking it adds an additional layer of assurance that it will not be enabled via a dependency in systemd. This also prevents attackers with physical access from trivially bypassing security on the machine through valid troubleshooting configurations and gaining root access when the system is rebooted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the system to mask the debug-shell systemd service with the following command: + +$ sudo systemctl mask debug-shell.service + +Created symlink /etc/systemd/system/debug-shell.service -> /dev/null + +Reload the daemon to take effect. + +$ sudo systemctl daemon-reloadVerify RHEL 8 is configured to mask the debug-shell systemd service with the following command: + +$ sudo systemctl status debug-shell.service + +debug-shell.service +Loaded: masked (Reason: Unit debug-shell.service is masked.) +Active: inactive (dead) + +If the "debug-shell.service" is loaded and not masked, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040190The Trivial File Transfer Protocol (TFTP) server package must not be installed if not required for RHEL 8 operational support.<VulnDiscussion>If TFTP is required for operational support (such as the transmission of router configurations) its use must be documented with the Information System Security Officer (ISSO), restricted to only authorized personnel, and have access control rules established.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove the TFTP package from the system with the following command: + +$ sudo yum remove tftp-serverVerify a TFTP server has not been installed on the system with the following command: + +$ sudo yum list installed tftp-server + +tftp-server.x86_64 5.2-24.el8 + +If TFTP is installed and the requirement for TFTP is not documented with the ISSO, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040200The root account must be the only account having unrestricted access to the RHEL 8 system.<VulnDiscussion>If an account other than root also has a User Identifier (UID) of "0", it has root authority, giving that account unrestricted access to the entire operating system. Multiple accounts with a UID of "0" afford an opportunity for potential intruders to guess a password for a privileged account.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Change the UID of any account on the system, other than root, that has a UID of "0". + +If the account is associated with system commands or applications, the UID should be changed to one greater than "0" but less than "1000". Otherwise, assign a UID of greater than "1000" that has not already been assigned.Check the system for duplicate UID "0" assignments with the following command: + +$ sudo awk -F: '$3 == 0 {print $1}' /etc/passwd + +If any accounts other than root have a UID of "0", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040210RHEL 8 must prevent IPv6 Internet Control Message Protocol (ICMP) redirect messages from being accepted.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to prevent IPv6 ICMP redirect messages from being accepted. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.default.accept_redirects = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 will not accept IPv6 ICMP redirect messages. + +Note: If IPv6 is disabled on the system, this requirement is Not Applicable. + +Check the value of the default "accept_redirects" variables with the following command: + +$ sudo sysctl net.ipv6.conf.default.accept_redirects + +net.ipv6.conf.default.accept_redirects = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.default.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_redirects = 0 + +If "net.ipv6.conf.default.accept_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040220RHEL 8 must not send Internet Control Message Protocol (ICMP) redirects.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages contain information from the system's route table, possibly revealing portions of the network topology. + +There are notable differences between Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6). There is only a directive to disable sending of IPv4 redirected packets. Refer to RFC4294 for an explanation of "IPv6 Node Requirements", which resulted in this difference between IPv4 and IPv6. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not allow interfaces to perform IPv4 ICMP redirects. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.all.send_redirects=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not IPv4 ICMP redirect messages. + +Check the value of the "all send_redirects" variables with the following command: + +$ sudo sysctl net.ipv4.conf.all.send_redirects + +net.ipv4.conf.all.send_redirects = 0 + +If the returned line does not have a value of "0", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.all.send_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.send_redirects = 0 + +If "net.ipv4.conf.all.send_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040230RHEL 8 must not respond to Internet Control Message Protocol (ICMP) echoes sent to a broadcast address.<VulnDiscussion>Responding to broadcast ICMP echoes facilitates network mapping and provides a vector for amplification attacks. + +There are notable differences between Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6). IPv6 does not implement the same method of broadcast as IPv4. Instead, IPv6 uses multicast addressing to the all-hosts multicast group. Refer to RFC4294 for an explanation of "IPv6 Node Requirements", which resulted in this difference between IPv4 and IPv6. +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not respond to IPv4 ICMP echoes sent to a broadcast address. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.icmp_echo_ignore_broadcasts=1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not respond to ICMP echoes sent to a broadcast address. + +Check the value of the "icmp_echo_ignore_broadcasts" variable with the following command: + +$ sudo sysctl net.ipv4.icmp_echo_ignore_broadcasts + +net.ipv4.icmp_echo_ignore_broadcasts = 1 + +If the returned line does not have a value of "1", a line is not returned, or the retuned line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.icmp_echo_ignore_broadcasts /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.icmp_echo_ignore_broadcasts = 1 + +If "net.ipv4.icmp_echo_ignore_broadcasts" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040240RHEL 8 must not forward IPv6 source-routed packets.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when forwarding is enabled and the system is functioning as a router. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not forward IPv6 source-routed packets. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.all.accept_source_route=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept IPv6 source-routed packets. + +Note: If IPv6 is disabled on the system, this requirement is Not Applicable. + +Check the value of the accept source route variable with the following command: + +$ sudo sysctl net.ipv6.conf.all.accept_source_route + +net.ipv6.conf.all.accept_source_route = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.all.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_source_route = 0 + +If "net.ipv6.conf.all.accept_source_route" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040250RHEL 8 must not forward IPv6 source-routed packets by default.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when forwarding is enabled and the system is functioning as a router. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not forward IPv6 source-routed packets by default. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.default.accept_source_route=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept IPv6 source-routed packets by default. + +Note: If IPv6 is disabled on the system, this requirement is Not Applicable. + +Check the value of the accept source route variable with the following command: + +$ sudo sysctl net.ipv6.conf.default.accept_source_route + +net.ipv6.conf.default.accept_source_route = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.default.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_source_route = 0 + +If "net.ipv6.conf.default.accept_source_route" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040260RHEL 8 must not enable IPv6 packet forwarding unless the system is a router.<VulnDiscussion>Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not allow IPv6 packet forwarding, unless the system is a router. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.all.forwarding=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 is not performing IPv6 packet forwarding, unless the system is a router. + +Note: If IPv6 is disabled on the system, this requirement is Not Applicable. + +Check that IPv6 forwarding is disabled using the following commands: + +$ sudo sysctl net.ipv6.conf.all.forwarding + +net.ipv6.conf.all.forwarding = 0 + +If the IPv6 forwarding value is not "0" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.all.forwarding /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.forwarding = 0 + +If "net.ipv6.conf.all.forwarding" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040261RHEL 8 must not accept router advertisements on all IPv6 interfaces.<VulnDiscussion>Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network. + +An illicit router advertisement message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not accept router advertisements on all IPv6 interfaces unless the system is a router. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.all.accept_ra=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept router advertisements on all IPv6 interfaces, unless the system is a router. + +Note: If IPv6 is disabled on the system, this requirement is not applicable. + +Check to see if router advertisements are not accepted by using the following command: + +$ sudo sysctl net.ipv6.conf.all.accept_ra + +net.ipv6.conf.all.accept_ra = 0 + +If the "accept_ra" value is not "0" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.all.accept_ra /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_ra = 0 + +If "net.ipv6.conf.all.accept_ra" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040262RHEL 8 must not accept router advertisements on all IPv6 interfaces by default.<VulnDiscussion>Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network. + +An illicit router advertisement message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not accept router advertisements on all IPv6 interfaces by default unless the system is a router. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.default.accept_ra=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept router advertisements on all IPv6 interfaces by default, unless the system is a router. + +Note: If IPv6 is disabled on the system, this requirement is not applicable. + +Check to see if router advertisements are not accepted by default by using the following command: + +$ sudo sysctl net.ipv6.conf.default.accept_ra + +net.ipv6.conf.default.accept_ra = 0 + +If the "accept_ra" value is not "0" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.default.accept_ra /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_ra = 0 + +If "net.ipv6.conf.default.accept_ra" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040270RHEL 8 must not allow interfaces to perform Internet Control Message Protocol (ICMP) redirects by default.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages contain information from the system's route table, possibly revealing portions of the network topology. + +There are notable differences between Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6). There is only a directive to disable sending of IPv4 redirected packets. Refer to RFC4294 for an explanation of "IPv6 Node Requirements", which resulted in this difference between IPv4 and IPv6. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not allow interfaces to perform Internet Protocol version 4 (IPv4) ICMP redirects by default. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.default.send_redirects = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not allow interfaces to perform Internet Protocol version 4 (IPv4) ICMP redirects by default. + +Check the value of the "default send_redirects" variables with the following command: + +$ sudo sysctl net.ipv4.conf.default.send_redirects + +net.ipv4.conf.default.send_redirects=0 + +If the returned line does not have a value of "0", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.default.send_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.default.send_redirects = 0 + +If "net.ipv4.conf.default.send_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040280RHEL 8 must ignore IPv6 Internet Control Message Protocol (ICMP) redirect messages.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to ignore IPv6 ICMP redirect messages. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv6.conf.all.accept_redirects = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 ignores IPv6 ICMP redirect messages. + +Note: If IPv6 is disabled on the system, this requirement is Not Applicable. + +Check the value of the "accept_redirects" variables with the following command: + +$ sudo sysctl net.ipv6.conf.all.accept_redirects + +net.ipv6.conf.all.accept_redirects = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv6.conf.all.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_redirects = 0 + +If "net.ipv6.conf.all.accept_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040281RHEL 8 must disable access to network bpf syscall from unprivileged processes.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to prevent privilege escalation thru the kernel by disabling access to the bpf syscall by adding the following line to a file, in the "/etc/sysctl.d" directory: + +kernel.unprivileged_bpf_disabled = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 prevents privilege escalation thru the kernel by disabling access to the bpf syscall with the following commands: + +$ sudo sysctl kernel.unprivileged_bpf_disabled + +kernel.unprivileged_bpf_disabled = 1 + +If the returned line does not have a value of "1", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r kernel.unprivileged_bpf_disabled /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: kernel.unprivileged_bpf_disabled = 1 + +If "kernel.unprivileged_bpf_disabled" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040282RHEL 8 must restrict usage of ptrace to descendant processes.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to restrict usage of ptrace to descendant processes by adding the following line to a file, in the "/etc/sysctl.d" directory: + +kernel.yama.ptrace_scope = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 restricts usage of ptrace to descendant processes with the following commands: + +$ sudo sysctl kernel.yama.ptrace_scope + +kernel.yama.ptrace_scope = 1 + +If the returned line does not have a value of "1", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r kernel.yama.ptrace_scope /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: kernel.yama.ptrace_scope = 1 + +If "kernel.yama.ptrace_scope" is not set to "1", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040283RHEL 8 must restrict exposed kernel pointer addresses access.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to restrict exposed kernel pointer addresses access by adding the following line to a file, in the "/etc/sysctl.d" directory: + +kernel.kptr_restrict = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 restricts exposed kernel pointer addresses access with the following commands: + +$ sudo sysctl kernel.kptr_restrict + +kernel.kptr_restrict = 1 + +If the returned line does not have a value of "1" or "2", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r kernel.kptr_restrict /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: kernel.kptr_restrict = 1 + +If "kernel.kptr_restrict" is not set to "1" or "2", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040284RHEL 8 must disable the use of user namespaces.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to disable the use of user namespaces by adding the following line to a file, in the "/etc/sysctl.d" directory: + +Note: User namespaces are used primarily for Linux containers. If containers are in use, this requirement is not applicable. + +user.max_user_namespaces = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 disables the use of user namespaces with the following commands: + +Note: User namespaces are used primarily for Linux containers. If containers are in use, this requirement is not applicable. + +$ sudo sysctl user.max_user_namespaces + +user.max_user_namespaces = 0 + +If the returned line does not have a value of "0", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r user.max_user_namespaces /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: user.max_user_namespaces = 0 + +If "user.max_user_namespaces" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040285RHEL 8 must use reverse path filtering on all IPv4 interfaces.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to use reverse path filtering on all IPv4 interfaces by adding the following line to a file, in the "/etc/sysctl.d" directory: + +net.ipv4.conf.all.rp_filter = 1 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 uses reverse path filtering on all IPv4 interfaces with the following commands: + +$ sudo sysctl net.ipv4.conf.all.rp_filter + +net.ipv4.conf.all.rp_filter = 1 + +If the returned line does not have a value of "1" or "2", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.all.rp_filter /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.rp_filter = 1 + +If "net.ipv4.conf.all.rp_filter" is not set to "1" or "2", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040290RHEL 8 must be configured to prevent unrestricted mail relaying.<VulnDiscussion>If unrestricted mail relaying is permitted, unauthorized senders could use this host as a mail relay for the purpose of sending spam or other unauthorized activity.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366If "postfix" is installed, modify the "/etc/postfix/main.cf" file to restrict client connections to the local network with the following command: + +$ sudo postconf -e 'smtpd_client_restrictions = permit_mynetworks,reject'Verify the system is configured to prevent unrestricted mail relaying. + +Determine if "postfix" is installed with the following commands: + +$ sudo yum list installed postfix + +postfix.x86_64 2:3.3.1-9.el8 + +If postfix is not installed, this is Not Applicable. + +If postfix is installed, determine if it is configured to reject connections from unknown or untrusted networks with the following command: + +$ sudo postconf -n smtpd_client_restrictions + +smtpd_client_restrictions = permit_mynetworks, reject + +If the "smtpd_client_restrictions" parameter contains any entries other than "permit_mynetworks" and "reject", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040300The RHEL 8 file integrity tool must be configured to verify extended attributes.<VulnDiscussion>Extended attributes in file systems are used to contain arbitrary data and file metadata with security implications. + +RHEL 8 installation media come with a file integrity tool, Advanced Intrusion Detection Environment (AIDE).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the file integrity tool to check file and directory extended attributes. + +If AIDE is installed, ensure the "xattrs" rule is present on all uncommented file and directory selection lists.Verify the file integrity tool is configured to verify extended attributes. + +If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. + +Note: AIDE is highly configurable at install time. This requirement assumes the "aide.conf" file is under the "/etc" directory. + +Use the following command to determine if the file is in another location: + +$ sudo find / -name aide.conf + +Check the "aide.conf" file to determine if the "xattrs" rule has been added to the rule list being applied to the files and directories selection lists. + +An example rule that includes the "xattrs" rule follows: + +All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux +/bin All # apply the custom rule to the files in bin +/sbin All # apply the same custom rule to the files in sbin + +If the "xattrs" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or extended attributes are not being checked by another file integrity tool, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040310The RHEL 8 file integrity tool must be configured to verify Access Control Lists (ACLs).<VulnDiscussion>ACLs can provide permissions beyond those permitted through the file mode and must be verified by file integrity tools. + +RHEL 8 installation media come with a file integrity tool, Advanced Intrusion Detection Environment (AIDE).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the file integrity tool to check file and directory ACLs. + +If AIDE is installed, ensure the "acl" rule is present on all file and directory selection lists.Verify the file integrity tool is configured to verify ACLs. + +Note: AIDE is highly configurable at install time. This requirement assumes the "aide.conf" file is under the "/etc" directory. + +If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. + +Use the following command to determine if the file is in a location other than "/etc/aide/aide.conf": + + $ sudo find / -name aide.conf + +Check the "aide.conf" file to determine if the "acl" rule has been added to the rule list being applied to the files and directories selection lists with the following command: + + $ sudo grep -E "[+]?acl" /etc/aide.conf + + VarFile = OwnerMode+n+l+X+acl + +If the "acl" rule is not being used on all selection lines in the "/etc/aide.conf" file, is commented out, or ACLs are not being checked by another file integrity tool, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040320The graphical display manager must not be installed on RHEL 8 unless approved.<VulnDiscussion>Internet services that are not required for system or application processes must not be active to decrease the attack surface of the system. Graphical display managers have a long history of security vulnerabilities and must not be used, unless approved and documented.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Document the requirement for a graphical user interface with the ISSO or reinstall the operating system without the graphical user interface. If reinstallation is not feasible, then continue with the following procedure: + +Open an SSH session and enter the following commands: + +$ sudo yum remove xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-server-utils xorg-x11-server-Xwayland + +A reboot is required for the changes to take effect.Verify that a graphical user interface is not installed: + +$ rpm -qa | grep xorg | grep server + +Ask the System Administrator if use of a graphical user interface is an operational requirement. + +If the use of a graphical user interface on the system is not documented with the ISSO, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040330RHEL 8 network interfaces must not be in promiscuous mode.<VulnDiscussion>Network interfaces in promiscuous mode allow for the capture of all network traffic visible to the system. If unauthorized individuals can access these applications, it may allow them to collect information such as logon IDs, passwords, and key exchanges between systems. + +If the system is being used to perform a network troubleshooting function, the use of these tools must be documented with the Information System Security Officer (ISSO) and restricted to only authorized personnel.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure network interfaces to turn off promiscuous mode unless approved by the ISSO and documented. + +Set the promiscuous mode of an interface to off with the following command: + +$ sudo ip link set dev <devicename> multicast off promisc offVerify network interfaces are not in promiscuous mode unless approved by the ISSO and documented. + +Check for the status with the following command: + +$ sudo ip link | grep -i promisc + +If network interfaces are found on the system in promiscuous mode and their use has not been approved by the ISSO and documented, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040340RHEL 8 remote X connections for interactive users must be disabled unless to fulfill documented and validated mission requirements.<VulnDiscussion>The security risk of using X11 forwarding is that the client's X11 display server may be exposed to attack when the SSH client requests forwarding. A system administrator may have a stance in which they want to protect clients that may expose themselves to attack by unwittingly requesting X11 forwarding, which can warrant a "no" setting. + +X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user's X11 authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring if the ForwardX11Trusted option is also enabled. + +If X11 services are not required for the system's intended function, they should be disabled or restricted as appropriate to the system’s needs.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11Forwarding" keyword and set its value to "no" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +X11Forwarding no + +The SSH service must be restarted for changes to take effect: + +$ sudo systemctl restart sshdVerify X11Forwarding is disabled with the following command: + +$ sudo grep -ir x11forwarding /etc/ssh/sshd_config* | grep -v "^#" + +X11Forwarding no + +If the "X11Forwarding" keyword is set to "yes" and is not documented with the Information System Security Officer (ISSO) as an operational requirement or is missing, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040341The RHEL 8 SSH daemon must prevent remote hosts from connecting to the proxy display.<VulnDiscussion>When X11 forwarding is enabled, there may be additional exposure to the server and client displays if the sshd proxy display is configured to listen on the wildcard address. By default, sshd binds the forwarding server to the loopback address and sets the hostname part of the DIPSLAY environment variable to localhost. This prevents remote hosts from connecting to the proxy display.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. + +Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11UseLocalhost" keyword and set its value to "yes" (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor): + +X11UseLocalhost yesVerify the SSH daemon prevents remote hosts from connecting to the proxy display. + +Check the SSH X11UseLocalhost setting with the following command: + +# sudo grep -ir x11uselocalhost /etc/ssh/sshd_config* +X11UseLocalhost yes + +If the "X11UseLocalhost" keyword is set to "no", is missing, or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040350If the Trivial File Transfer Protocol (TFTP) server is required, the RHEL 8 TFTP daemon must be configured to operate in secure mode.<VulnDiscussion>Restricting TFTP to a specific directory prevents remote users from copying, transferring, or overwriting system files.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the TFTP daemon to operate in secure mode by adding the following line to "/etc/xinetd.d/tftp" (or modify the line to have the required value): + +server_args = -s /var/lib/tftpbootVerify the TFTP daemon is configured to operate in secure mode with the following commands: + +$ sudo yum list installed tftp-server + +tftp-server.x86_64 x.x-x.el8 + +If a TFTP server is not installed, this is Not Applicable. + +If a TFTP server is installed, check for the server arguments with the following command: + +$ sudo grep server_args /etc/xinetd.d/tftp + +server_args = -s /var/lib/tftpboot + +If the "server_args" line does not have a "-s" option, and a subdirectory is not assigned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040360A File Transfer Protocol (FTP) server package must not be installed unless mission essential on RHEL 8.<VulnDiscussion>The FTP service provides an unencrypted remote access that does not provide for the confidentiality and integrity of user passwords or the remote session. If a privileged user were to log on using this service, the privileged user password could be compromised. SSH or other encrypted file transfer methods must be used in place of this service.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Document the FTP server package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove vsftpdVerify an FTP server has not been installed on the system with the following commands: + +$ sudo yum list installed *ftpd* + +vsftpd.x86_64 3.0.3-28.el8 appstream + +If an FTP server is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040370The gssproxy package must not be installed unless mission essential on RHEL 8.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +The gssproxy package is a proxy for GSS API credential handling and could expose secrets on some networks. It is not needed for normal function of the OS.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000381Document the gssproxy package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove gssproxyVerify the gssproxy package has not been installed on the system with the following commands: + +$ sudo yum list installed gssproxy + +gssproxy.x86_64 0.8.0-14.el8 @anaconda + +If the gssproxy package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040380The iprutils package must not be installed unless mission essential on RHEL 8.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +The iprutils package provides a suite of utilities to manage and configure SCSI devices supported by the ipr SCSI storage device driver.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Document the iprutils package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove iprutilsVerify the iprutils package has not been installed on the system with the following commands: + +$ sudo yum list installed iprutils + +iprutils.x86_64 2.4.18.1-1.el8 @anaconda + +If the iprutils package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040390The tuned package must not be installed unless mission essential on RHEL 8.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Operating systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). + +The tuned package contains a daemon that tunes the system settings dynamically. It does so by monitoring the usage of several system components periodically. Based on that information, components will then be put into lower or higher power savings modes to adapt to the current usage. The tuned package is not needed for normal OS operations.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Document the tuned package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove tunedVerify the tuned package has not been installed on the system with the following commands: + +$ sudo yum list installed tuned + +tuned.noarch 2.12.0-3.el8 @anaconda + +If the tuned package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>RHEL-08-010163The krb5-server package must not be installed on RHEL 8.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +RHEL 8 systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +Currently, Kerberos does not utilize FIPS 140-2 cryptography. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000803Document the krb5-server package with the ISSO as an operational requirement or remove it from the system with the following command: + +$ sudo yum remove krb5-serverVerify the krb5-server package has not been installed on the system with the following commands: + +If the system is a workstation or is utilizing krb5-server-1.17-18.el8.x86_64 or newer, this is Not Applicable + +$ sudo yum list installed krb5-server + +krb5-server.x86_64 1.17-9.el8 repository + +If the krb5-server package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010382RHEL 8 must restrict privilege elevation to authorized personnel.<VulnDiscussion>The sudo command allows a user to execute programs with elevated (administrator) privileges. It prompts the user for their password and confirms your request to execute a command by checking a file, called sudoers. If the "sudoers" file is not configured correctly, any user defined on the system can initiate privileged actions on the target system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove the following entries from the sudoers file: +ALL ALL=(ALL) ALL +ALL ALL=(ALL:ALL) ALLVerify the "sudoers" file restricts sudo access to authorized personnel. +$ sudo grep -iw 'ALL' /etc/sudoers /etc/sudoers.d/* + +If the either of the following entries are returned, this is a finding: +ALL ALL=(ALL) ALL +ALL ALL=(ALL:ALL) ALLSRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010383RHEL 8 must use the invoking user's password for privilege escalation when using "sudo".<VulnDiscussion>The sudoers security policy requires that users authenticate themselves before they can use sudo. When sudoers requires authentication, it validates the invoking user's credentials. If the rootpw, targetpw, or runaspw flags are defined and not disabled, by default the operating system will prompt the invoking user for the "root" user password. +For more information on each of the listed configurations, reference the sudoers(5) manual page.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002227Define the following in the Defaults section of the /etc/sudoers file or a configuration file in the /etc/sudoers.d/ directory: + Defaults !targetpw + Defaults !rootpw + Defaults !runaspw + +Remove any configurations that conflict with the above from the following locations: + /etc/sudoers + /etc/sudoers.d/Verify that the sudoers security policy is configured to use the invoking user's password for privilege escalation. + + $ sudo grep -Eir '(rootpw|targetpw|runaspw)' /etc/sudoers /etc/sudoers.d* | grep -v '#' + + /etc/sudoers:Defaults !targetpw + /etc/sudoers:Defaults !rootpw + /etc/sudoers:Defaults !runaspw + +If conflicting results are returned, this is a finding. +If "Defaults !targetpw" is not defined, this is a finding. +If "Defaults !rootpw" is not defined, this is a finding. +If "Defaults !runaspw" is not defined, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-08-010384RHEL 8 must require re-authentication when using the "sudo" command.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the organization requires the user to re-authenticate when using the "sudo" command. + +If the value is set to an integer less than 0, the user's time stamp will not expire and the user will not have to re-authenticate for privileged actions until the user's session is terminated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002038Configure the "sudo" command to require re-authentication. +Edit the /etc/sudoers file: +$ sudo visudo + +Add or modify the following line: +Defaults timestamp_timeout=[value] +Note: The "[value]" must be a number that is greater than or equal to "0". + +Remove any duplicate or conflicting lines from /etc/sudoers and /etc/sudoers.d/ files.Verify the operating system requires re-authentication when using the "sudo" command to elevate privileges. + +$ sudo grep -ir 'timestamp_timeout' /etc/sudoers /etc/sudoers.d +/etc/sudoers:Defaults timestamp_timeout=0 + +If conflicting results are returned, this is a finding. + +If "timestamp_timeout" is set to a negative number, is commented out, or no results are returned, this is a finding.SRG-OS-000023-GPOS-00006<GroupDescription></GroupDescription>RHEL-08-010049RHEL 8 must display a banner before granting local or remote access to the system via a graphical user logon.<VulnDiscussion>Display of a standardized and approved use notification before granting access to the operating system ensures privacy and security notification verbiage used is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. + +System use notifications are required only for access via logon interfaces with human users and are not required when such human interfaces do not exist. + +Satisfies: SRG-OS-000023-GPOS-00006, SRG-OS-000228-GPOS-00088</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000048Configure the operating system to display a banner before granting access to the system. + +Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. + +Create a database to contain the system-wide graphical user logon settings (if it does not already exist) with the following command: + +$ sudo touch /etc/dconf/db/local.d/01-banner-message + +Add the following lines to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": + +[org/gnome/login-screen] + +banner-message-enable=true + +Run the following command to update the database: + +$ sudo dconf updateVerify RHEL 8 displays a banner before granting access to the operating system via a graphical user logon. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Check to see if the operating system displays a banner at the logon screen with the following command: + +$ sudo grep banner-message-enable /etc/dconf/db/local.d/* + +banner-message-enable=true + +If "banner-message-enable" is set to "false" or is missing, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010141RHEL 8 operating systems booted with United Extensible Firmware Interface (UEFI) must require a unique superusers name upon booting into single-user mode and maintenance.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 8 and is designed to require a password to boot into single-user mode or make modifications to the boot menu. + +The GRUB 2 superuser account is an account of last resort. Establishing a unique username for this account hardens the boot loader against brute force attacks. Due to the nature of the superuser account database being distinct from the OS account database, this allows the use of a username that is not among those within the OS account database. Examples of non-unique superusers names are root, superuser, unlock, etc.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to have a unique name for the grub superusers account. + +Edit the /etc/grub.d/01_users file and add or modify the following lines: + +set superusers="[someuniquestringhere]" +export superusers +password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} + +Generate a new grub.cfg file with the following command: + +$ sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgFor systems that use BIOS, this is Not Applicable. + +Verify that a unique name is set as the "superusers" account: + +$ sudo grep -iw "superusers" /boot/efi/EFI/redhat/grub.cfg +set superusers="[someuniquestringhere]" +export superusers + +If "superusers" is identical to any OS account name or is missing a name, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010149RHEL 8 operating systems booted with a BIOS must require a unique superusers name upon booting into single-user and maintenance modes.<VulnDiscussion>If the system does not require valid authentication before it boots into single-user or maintenance mode, anyone who invokes single-user or maintenance mode is granted privileged access to all files on the system. GRUB 2 is the default boot loader for RHEL 8 and is designed to require a password to boot into single-user mode or make modifications to the boot menu. + +The GRUB 2 superuser account is an account of last resort. Establishing a unique username for this account hardens the boot loader against brute force attacks. Due to the nature of the superuser account database being distinct from the OS account database, this allows the use of a username that is not among those within the OS account database. Examples of non-unique superusers names are root, superuser, unlock, etc.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to have a unique name for the grub superusers account. + +Edit the /etc/grub.d/01_users file and add or modify the following lines: + +set superusers="[someuniquestringhere]" +export superusers +password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} + +Generate a new grub.cfg file with the following command: + +$ sudo grub2-mkconfig -o /boot/grub2/grub.cfgFor systems that use UEFI, this is Not Applicable. + +Verify that a unique name is set as the "superusers" account: + +$ sudo grep -iw "superusers" /boot/grub2/grub.cfg +set superusers="[someuniquestringhere]" +export superusers + +If "superusers" is identical to any OS account name or is missing a name, this is a finding.SRG-OS-000080-GPOS-00048<GroupDescription></GroupDescription>RHEL-08-010152RHEL 8 operating systems must require authentication upon booting into emergency mode.<VulnDiscussion>If the system does not require valid root authentication before it boots into emergency or rescue mode, anyone who invokes emergency or rescue mode is granted privileged access to all files on the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000213Configure the system to require authentication upon booting into emergency mode by adding the following line to the "/usr/lib/systemd/system/emergency.service" file. + +ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergencyCheck to see if the system requires authentication for emergency mode with the following command: + +$ sudo grep sulogin-shell /usr/lib/systemd/system/emergency.service + +ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency + +If the "ExecStart" line is configured for anything other than "/usr/lib/systemd/systemd-sulogin-shell emergency", commented out, or missing, this is a finding.SRG-OS-000120-GPOS-00061<GroupDescription></GroupDescription>RHEL-08-010159The RHEL 8 pam_unix.so module must be configured in the system-auth file to use a FIPS 140-2 approved cryptographic hashing algorithm for system authentication.<VulnDiscussion>Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore cannot be relied upon to provide confidentiality or integrity, and DoD data may be compromised. + +RHEL 8 systems utilizing encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules. + +FIPS 140-2 is the current standard for validating that mechanisms used to access cryptographic modules utilize authentication that meets DoD requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000803Configure RHEL 8 to use a FIPS 140-2 approved cryptographic hashing algorithm for system authentication. + +Edit/modify the following line in the "/etc/pam.d/system-auth" file to include the sha512 option for pam_unix.so: + +password sufficient pam_unix.so sha512Verify that pam_unix.so module is configured to use sha512. + +Check that pam_unix.so module is configured to use sha512 in /etc/pam.d/system-auth with the following command: + +$ sudo grep password /etc/pam.d/system-auth | grep pam_unix + +password sufficient pam_unix.so sha512 + +If "sha512" is missing, or is commented out, this is a finding.SRG-OS-000163-GPOS-00072<GroupDescription></GroupDescription>RHEL-08-010201The RHEL 8 SSH daemon must be configured with a timeout interval.<VulnDiscussion>Terminating an idle SSH session within a short time period reduces the window of opportunity for unauthorized personnel to take control of a management session enabled on the console or console port that has been left unattended. In addition, quickly terminating an idle SSH session will also free up resources committed by the managed network element. + +Terminating network connections associated with communications sessions includes, for example, de-allocating associated TCP/IP address/port pairs at the operating system level and de-allocating networking assignments at the application level if multiple application sessions are using a single operating system-level network connection. This does not mean that the operating system terminates all sessions or network access; it only ends the inactive session and releases the resources associated with that session. + +RHEL 8 utilizes /etc/ssh/sshd_config for configurations of OpenSSH. Within the sshd_config the product of the values of "ClientAliveInterval" and "ClientAliveCountMax" are used to establish the inactivity threshold. The "ClientAliveInterval" is a timeout interval in seconds after which if no data has been received from the client, sshd will send a message through the encrypted channel to request a response from the client. The "ClientAliveCountMax" is the number of client alive messages that may be sent without sshd receiving any messages back from the client. If this threshold is met, sshd will disconnect the client. For more information on these settings and others, refer to the sshd_config man pages. + +Satisfies: SRG-OS-000163-GPOS-00072, SRG-OS-000126-GPOS-00066, SRG-OS-000279-GPOS-00109</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001133Configure RHEL 8 to automatically terminate all network connections associated with SSH traffic at the end of a session or after 10 minutes of inactivity. + +Modify or append the following lines in the "/etc/ssh/sshd_config" file: + +ClientAliveInterval 600 + +In order for the changes to take effect, the SSH daemon must be restarted. + +$ sudo systemctl restart sshd.serviceVerify all network connections associated with SSH traffic are automatically terminated at the end of the session or after 10 minutes of inactivity. + +Check that the "ClientAliveInterval" variable is set to a value of "600" or less by performing the following command: + +$ sudo grep -ir clientalive /etc/ssh/sshd_config* + +ClientAliveInterval 600 +ClientAliveCountMax 1 + +If "ClientAliveInterval" does not exist, does not have a value of "600" or less in "/etc/ssh/sshd_config", or is commented out, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-010287The RHEL 8 SSH daemon must be configured to use system-wide crypto policies.<VulnDiscussion>Without cryptographic integrity protections, information can be altered by unauthorized users without detection. + +Remote access (e.g., RDP) is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. + +Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash. + +RHEL 8 incorporates system-wide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/ directory. + +Satisfies: SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000125-GPOS-00065</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the RHEL 8 SSH daemon to use system-wide crypto policies by adding the following line to /etc/sysconfig/sshd: + +# CRYPTO_POLICY= + +A reboot is required for the changes to take effect.Verify that system-wide crypto policies are in effect: + +$ sudo grep CRYPTO_POLICY /etc/sysconfig/sshd + +# CRYPTO_POLICY= + +If the "CRYPTO_POLICY " is uncommented, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010472RHEL 8 must have the packages required to use the hardware random number generator entropy gatherer service.<VulnDiscussion>The most important characteristic of a random number generator is its randomness, namely its ability to deliver random numbers that are impossible to predict. Entropy in computer security is associated with the unpredictability of a source of randomness. The random source with high entropy tends to achieve a uniform distribution of random values. Random number generators are one of the most important building blocks of cryptosystems. + +The rngd service feeds random data from hardware device to kernel random device. Quality (non-predictable) random number generation is important for several security functions (i.e., ciphers).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Install the packages required to enabled the hardware random number generator entropy gatherer service with the following command: + +$ sudo yum install rng-toolsCheck that RHEL 8 has the packages required to enabled the hardware random number generator entropy gatherer service with the following command: + +$ sudo yum list installed rng-tools + +rng-tools.x86_64 6.8-3.el8 @anaconda + +If the "rng-tools" package is not installed, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010522The RHEL 8 SSH daemon must not allow GSSAPI authentication, except to fulfill documented and validated mission requirements.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote logon via SSH will require a password, even in the event of misconfiguration elsewhere.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the SSH daemon to not allow GSSAPI authentication. + +Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "no": + +GSSAPIAuthentication no + +The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: + +$ sudo systemctl restart sshd.serviceVerify the SSH daemon does not allow GSSAPI authentication with the following command: + +$ sudo grep -ir GSSAPIAuthentication /etc/ssh/sshd_config* + +GSSAPIAuthentication no + +If the value is returned as "yes", the returned line is commented out, no output is returned, or has not been documented with the ISSO, this is a finding. +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010544RHEL 8 must use a separate file system for /var/tmp.<VulnDiscussion>The use of separate file systems for different paths can protect the system from failures resulting from a file system becoming full or failing.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Migrate the "/var/tmp" path onto a separate file system.Verify that a separate file system/partition has been created for "/var/tmp". + +Check that a file system/partition has been created for "/var/tmp" with the following command: + +$ sudo grep /var/tmp /etc/fstab + +UUID=c274f65f /var/tmp xfs noatime,nobarrier 1 2 + +If a separate entry for "/var/tmp" is not in use, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010572RHEL 8 must prevent files with the setuid and setgid bit set from being executed on the /boot/efi directory.<VulnDiscussion>The "nosuid" mount option causes the system not to execute "setuid" and "setgid" files with owner privileges. This option must be used for mounting any file system not containing approved "setuid" and "setguid" files. Executing files from untrusted file systems increases the opportunity for unprivileged users to attain unauthorized administrative access.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the "/etc/fstab" to use the "nosuid" option on the /boot/efi directory.For systems that use BIOS, this is Not Applicable. + +Verify the /boot/efi directory is mounted with the "nosuid" option with the following command: + +$ sudo mount | grep '\s/boot/efi\s' + +/dev/sda1 on /boot/efi type vfat (rw,nosuid,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro) + +If the /boot/efi file system does not have the "nosuid" option set, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010731All RHEL 8 local interactive user home directory files must have mode 0750 or less permissive.<VulnDiscussion>Excessive permissions on local interactive user home directories may allow unauthorized access to user files by other users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Set the mode on files and directories in the local interactive user home directory with the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. + +$ sudo chmod 0750 /home/smithj/<file or directory>Verify all files and directories contained in a local interactive user home directory, excluding local initialization files, have a mode of "0750". +Files that begin with a "." are excluded from this requirement. + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". + +$ sudo ls -lLR /home/smithj +-rwxr-x--- 1 smithj smithj 18 Mar 5 17:06 file1 +-rwxr----- 1 smithj smithj 193 Mar 5 17:06 file2 +-rw-r-x--- 1 smithj smithj 231 Mar 5 17:06 file3 + +If any files or directories are found with a mode more permissive than "0750", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010741RHEL 8 must be configured so that all files and directories contained in local interactive user home directories are group-owned by a group of which the home directory owner is a member.<VulnDiscussion>If a local interactive user's files are group-owned by a group of which the user is not a member, unintended users may be able to access them.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Change the group of a local interactive user's files and directories to a group that the interactive user is a member. To change the group owner of a local interactive user's files and directories, use the following command: + +Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. + +$ sudo chgrp smithj /home/smithj/<file or directory>Verify all files and directories in a local interactive user home directory are group-owned by a group that the user is a member. + +Check the group owner of all files and directories in a local interactive user's home directory with the following command: + +Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". + +$ sudo ls -lLR /<home directory>/<users home directory>/ +-rw-r--r-- 1 smithj smithj 18 Mar 5 17:06 file1 +-rw-r--r-- 1 smithj smithj 193 Mar 5 17:06 file2 +-rw-r--r-- 1 smithj sa 231 Mar 5 17:06 file3 + +If any files found with a group-owner different from the home directory user private group, check to see if the user is a member of that group with the following command: + +$ sudo grep smithj /etc/group +sa:x:100:juan,shelley,bob,smithj +smithj:x:521:smithj + +If any files or directories are group owned by a group that the directory owner is not a member of, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020025RHEL 8 must configure the use of the pam_faillock.so module in the /etc/pam.d/system-auth file.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. +The preauth argument must be used when the module is called before the modules which ask for the user credentials such as the password. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to include the use of the pam_faillock.so module in the /etc/pam.d/system-auth file. + +Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" file to match the following lines: +Note: The "preauth" line must be listed before pam_unix.so. + +auth required pam_faillock.so preauth +auth required pam_faillock.so authfail +account required pam_faillock.soNote: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the pam_faillock.so module is present in the "/etc/pam.d/system-auth" file: + +$ sudo grep pam_faillock.so /etc/pam.d/system-auth + +auth required pam_faillock.so preauth +auth required pam_faillock.so authfail +account required pam_faillock.so +If the pam_faillock.so module is not present in the "/etc/pam.d/system-auth" file with the "preauth" line listed before pam_unix.so, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020026RHEL 8 must configure the use of the pam_faillock.so module in the /etc/pam.d/password-auth file.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +In RHEL 8.2 the "/etc/security/faillock.conf" file was incorporated to centralize the configuration of the pam_faillock.so module. Also introduced is a "local_users_only" option that will only track failed user authentication attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users to allow the centralized platform to solely manage user lockout. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable a different tally directory must be set with the "dir" option. +The preauth argument must be used when the module is called before the modules which ask for the user credentials such as the password. + +Satisfies: SRG-OS-000021-GPOS-00005, SRG-OS-000329-GPOS-00128</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044Configure the operating system to include the use of the pam_faillock.so module in the /etc/pam.d/password-auth file. + +Add/Modify the appropriate sections of the "/etc/pam.d/password-auth" file to match the following lines: +Note: The "preauth" line must be listed before pam_unix.so. + +auth required pam_faillock.so preauth +auth required pam_faillock.so authfail +account required pam_faillock.soNote: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the pam_faillock.so module is present in the "/etc/pam.d/password-auth" file: + +$ sudo grep pam_faillock.so /etc/pam.d/password-auth + +auth required pam_faillock.so preauth +auth required pam_faillock.so authfail +account required pam_faillock.so + +If the pam_faillock.so module is not present in the "/etc/pam.d/password-auth" file with the "preauth" line listed before pam_unix.so, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020031RHEL 8 must initiate a session lock for graphical user interfaces when the screensaver is activated.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to initiate a session lock for graphical user interfaces when a screensaver is activated. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +$ sudo touch /etc/dconf/db/local.d/00-screensaver + +[org/gnome/desktop/screensaver] +lock-delay=uint32 5 + +The "uint32" must be included along with the integer key values as shown. + +Update the system databases: + +$ sudo dconf updateVerify the operating system initiates a session lock a for graphical user interfaces when the screensaver is activated with the following command: + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +$ sudo gsettings get org.gnome.desktop.screensaver lock-delay + +uint32 5 + +If the "uint32" setting is missing, or is not set to "5" or less, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020032RHEL 8 must disable the user list at logon for graphical user interfaces.<VulnDiscussion>Leaving the user list enabled is a security risk since it allows anyone with physical access to the system to enumerate known user accounts without authenticated access to the system.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to disable the user list at logon for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +$ sudo touch /etc/dconf/db/local.d/02-login-screen + +[org/gnome/login-screen] +disable-user-list=true + +Update the system databases: +$ sudo dconf updateVerify the operating system disables the user logon list for graphical user interfaces with the following command: +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +$ sudo gsettings get org.gnome.login-screen disable-user-list +true + +If the setting is "false", this is a finding.SRG-OS-000028-GPOS-00009<GroupDescription></GroupDescription>RHEL-08-020039RHEL 8 must have the tmux package installed.<VulnDiscussion>A session lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not want to log out because of the temporary nature of the absence. +The session lock is implemented at the point where session activity can be determined. Rather than be forced to wait for a period of time to expire before the user session can be locked, RHEL 8 needs to provide users with the ability to manually invoke a session lock so users can secure their session if it is necessary to temporarily vacate the immediate physical vicinity. +Tmux is a terminal multiplexer that enables a number of terminals to be created, accessed, and controlled from a single screen. Red Hat endorses tmux as the recommended session controlling package. + +Satisfies: SRG-OS-000028-GPOS-00009, SRG-OS-000030-GPOS-00011</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000056Configure the operating system to enable a user to initiate a session lock via tmux. + +Install the "tmux" package, if it is not already installed, by running the following command: + +$ sudo yum install tmuxVerify RHEL 8 has the "tmux" package installed, by running the following command: + +$ sudo yum list installed tmux + +tmux.x86.64 2.7-1.el8 @repository + +If "tmux" is not installed, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020081RHEL 8 must prevent a user from overriding the session idle-delay setting for the graphical user interface.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled. + +Implementing session settings will have little value if a user is able to manipulate these settings from the defaults prescribed in the other requirements of this implementation guide. + +Locking these settings from non-privileged users is crucial to maintaining a protected baseline. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to prevent a user from overriding settings for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +$ sudo touch /etc/dconf/db/local.d/locks/session + +Add the following setting to prevent non-privileged users from modifying it: + +/org/gnome/desktop/session/idle-delayVerify the operating system prevents a user from overriding settings for graphical user interfaces. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + +$ sudo grep system-db /etc/dconf/profile/user + +system-db:local + +Check that graphical settings are locked from non-privileged user modification with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + +$ sudo grep -i idle /etc/dconf/db/local.d/locks/* + +/org/gnome/desktop/session/idle-delay + +If the command does not return at least the example result, this is a finding.SRG-OS-000029-GPOS-00010<GroupDescription></GroupDescription>RHEL-08-020082RHEL 8 must prevent a user from overriding the screensaver lock-enabled setting for the graphical user interface.<VulnDiscussion>A session time-out lock is a temporary action taken when a user stops work and moves away from the immediate physical vicinity of the information system but does not log out because of the temporary nature of the absence. Rather than relying on the user to manually lock their operating system session prior to vacating the vicinity, operating systems need to be able to identify when a user's session has idled and take action to initiate the session lock. + +The session lock is implemented at the point where session activity can be determined and/or controlled. + +Implementing session settings will have little value if a user is able to manipulate these settings from the defaults prescribed in the other requirements of this implementation guide. + +Locking these settings from non-privileged users is crucial to maintaining a protected baseline. + +Satisfies: SRG-OS-000029-GPOS-00010, SRG-OS-000031-GPOS-00012, SRG-OS-000480-GPOS-00227</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000057Configure the operating system to prevent a user from overriding settings for graphical user interfaces. + +Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: + +Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. + +$ sudo touch /etc/dconf/db/local.d/locks/session + +Add the following setting to prevent non-privileged users from modifying it: + +/org/gnome/desktop/screensaver/lock-enabledVerify the operating system prevents a user from overriding settings for graphical user interfaces. + +Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. + +Determine which profile the system database is using with the following command: + +$ sudo grep system-db /etc/dconf/profile/user + +system-db:local + +Check that graphical settings are locked from non-privileged user modification with the following command: + +Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. + +$ sudo grep -i lock-enabled /etc/dconf/db/local.d/locks/* + +/org/gnome/desktop/screensaver/lock-enabled + +If the command does not return at least the example result, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020331RHEL 8 must not allow blank or null passwords in the system-auth file.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove any instances of the "nullok" option in the "/etc/pam.d/system-auth" file to prevent logons with empty passwords. + +Note: Manual changes to the listed file may be overwritten by the "authselect" program.To verify that null passwords cannot be used, run the following command: + +$ sudo grep -i nullok /etc/pam.d/system-auth + +If output is produced, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020332RHEL 8 must not allow blank or null passwords in the password-auth file.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Remove any instances of the "nullok" option in the "/etc/pam.d/password-auth" file to prevent logons with empty passwords. + +Note: Manual changes to the listed file may be overwritten by the "authselect" program.To verify that null passwords cannot be used, run the following command: + +$ sudo grep -i nullok /etc/pam.d/password-auth + +If output is produced, this is a finding.SRG-OS-000062-GPOS-00031<GroupDescription></GroupDescription>RHEL-08-030181RHEL 8 audit records must contain information to establish what type of events occurred, the source of events, where events occurred, and the outcome of events.<VulnDiscussion>Without establishing what type of events occurred, the source of events, where events occurred, and the outcome of events, it would be difficult to establish, correlate, and investigate the events leading up to an outage or attack. + +Audit record content that may be necessary to satisfy this requirement includes, for example, time stamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, filenames involved, and access control or flow control rules invoked. + +Associating event types with detected events in RHEL 8 audit logs provides a means of investigating an attack, recognizing resource utilization or capacity thresholds, or identifying an improperly configured RHEL 8 system. + +Satisfies: SRG-OS-000062-GPOS-00031, SRG-OS-000037-GPOS-00015, SRG-OS-000038-GPOS-00016, SRG-OS-000039-GPOS-00017, SRG-OS-000040-GPOS-00018, SRG-OS-000041-GPOS-00019, SRG-OS-000042-GPOS-00021, SRG-OS-000051-GPOS-00024, SRG-OS-000054-GPOS-00025, SRG-OS-000122-GPOS-00063, SRG-OS-000254-GPOS-00095, SRG-OS-000255-GPOS-00096, SRG-OS-000337-GPOS-00129, SRG-OS-000348-GPOS-00136, SRG-OS-000349-GPOS-00137, SRG-OS-000350-GPOS-00138, SRG-OS-000351-GPOS-00139, SRG-OS-000352-GPOS-00140, SRG-OS-000353-GPOS-00141, SRG-OS-000354-GPOS-00142, SRG-OS-000358-GPOS-00145, SRG-OS-000365-GPOS-00152, SRG-OS-000392-GPOS-00172, SRG-OS-000475-GPOS-00220</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000169Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred with the following commands: + +$ sudo systemctl enable auditd.service + +$ sudo systemctl start auditd.serviceVerify the audit service is configured to produce audit records with the following command: + +$ sudo systemctl status auditd.service + +auditd.service - Security Auditing Service +Loaded:loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) +Active: active (running) since Tues 2020-12-11 12:56:56 EST; 4 weeks 0 days ago + +If the audit service is not "active" and "running", this is a finding.SRG-OS-000343-GPOS-00134<GroupDescription></GroupDescription>RHEL-08-030731RHEL 8 must notify the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when allocated audit record storage volume 75 percent utilization.<VulnDiscussion>If security personnel are not notified immediately when storage volume reaches 75 percent utilization, they are unable to plan for audit record storage capacity expansion.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001855Configure the operating system to initiate an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity by adding/modifying the following line in the /etc/audit/auditd.conf file. + +space_left_action = email + +Note: Option names and values in the auditd.conf file are case insensitive.Verify RHEL 8 notifies the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity with the following command: + +$ sudo grep -w space_left_action /etc/audit/auditd.conf + +space_left_action = email + +If the value of the "space_left_action" is not set to "email", or if the line is commented out, ask the System Administrator to indicate how the system is providing real-time alerts to the SA and ISSO. + +If there is no evidence that real-time alerts are configured on the system, this is a finding.SRG-OS-000297-GPOS-00115<GroupDescription></GroupDescription>RHEL-08-040101A firewall must be active on RHEL 8.<VulnDiscussion>"Firewalld" provides an easy and effective way to block/limit remote access to the system via ports, services, and protocols. + +Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best. + +Remote access is access to DoD nonpublic information systems by an authorized user (or an information system) communicating through an external, non-organization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless. +RHEL 8 functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002314Configure "firewalld" to protect the operating system with the following command: + +$ sudo systemctl enable firewalldVerify that "firewalld" is active with the following commands: + +$ sudo systemctl is-active firewalld + +active + +If the "firewalld" package is not "active", ask the System Administrator if another firewall is installed. If no firewall is installed and active this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040136The RHEL 8 fapolicy module must be enabled.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +Utilizing a whitelist provides a configuration management method for allowing the execution of only authorized software. Using only authorized software decreases risk by limiting the number of potential vulnerabilities. Verification of whitelisted software occurs prior to execution or at system startup. + +User home directories/folders may contain information of a sensitive nature. Non-privileged users should coordinate any sharing of information with an SA through shared resources. + +RHEL 8 ships with many optional packages. One such package is a file access policy daemon called "fapolicyd". "fapolicyd" is a userspace daemon that determines access rights to files based on attributes of the process and file. It can be used to either blacklist or whitelist processes or file access. + +Proceed with caution with enforcing the use of this daemon. Improper configuration may render the system non-functional. The "fapolicyd" API is not namespace aware and can cause issues when launching or running containers. + +Satisfies: SRG-OS-000368-GPOS-00154, SRG-OS-000370-GPOS-00155, SRG-OS-000480-GPOS-00232</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Enable "fapolicyd" using the following command: + +$ sudo systemctl enable --now fapolicydVerify the RHEL 8 "fapolicyd" is enabled and running with the following command: + +$ sudo systemctl status fapolicyd.service + +fapolicyd.service - File Access Policy Daemon +Loaded: loaded (/usr/lib/systemd/system/fapolicyd.service; enabled; vendor preset: disabled) +Active: active (running) + +If fapolicyd is not enabled and running, this is a finding.SRG-OS-000368-GPOS-00154<GroupDescription></GroupDescription>RHEL-08-040137The RHEL 8 fapolicy module must be configured to employ a deny-all, permit-by-exception policy to allow the execution of authorized software programs.<VulnDiscussion>The organization must identify authorized software programs and permit execution of authorized software. The process used to identify software programs that are authorized to execute on organizational information systems is commonly referred to as whitelisting. + +Utilizing a whitelist provides a configuration management method for allowing the execution of only authorized software. Using only authorized software decreases risk by limiting the number of potential vulnerabilities. Verification of whitelisted software occurs prior to execution or at system startup. + +User home directories/folders may contain information of a sensitive nature. Non-privileged users should coordinate any sharing of information with an SA through shared resources. + +RHEL 8 ships with many optional packages. One such package is a file access policy daemon called "fapolicyd". "fapolicyd" is a userspace daemon that determines access rights to files based on attributes of the process and file. It can be used to either blacklist or whitelist processes or file access. + +Proceed with caution with enforcing the use of this daemon. Improper configuration may render the system non-functional. The "fapolicyd" API is not namespace aware and can cause issues when launching or running containers. + +Satisfies: SRG-OS-000368-GPOS-00154, SRG-OS-000370-GPOS-00155, SRG-OS-000480-GPOS-00232</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001764Configure RHEL 8 to employ a deny-all, permit-by-exception application whitelisting policy with "fapolicyd". + +With the "fapolicyd" installed and enabled, configure the daemon to function in permissive mode until the whitelist is built correctly to avoid system lockout. Do this by editing the "/etc/fapolicyd/fapolicyd.conf" file with the following line: + +permissive = 1 + +For RHEL 8.4 systems and older: +Build the whitelist in the "/etc/fapolicyd/fapolicyd.rules" file ensuring the last rule is "deny perm=any all : all". + +For RHEL 8.5 systems and newer: +Build the whitelist in a file within the "/etc/fapolicyd/rules.d" directory ensuring the last rule is "deny perm=any all : all". + +Once it is determined the whitelist is built correctly, set the fapolicyd to enforcing mode by editing the "permissive" line in the /etc/fapolicyd/fapolicyd.conf file. + +permissive = 0Verify the RHEL 8 "fapolicyd" employs a deny-all, permit-by-exception policy. + +Check that "fapolicyd" is in enforcement mode with the following command: + +$ sudo grep permissive /etc/fapolicyd/fapolicyd.conf + +permissive = 0 + +Check that fapolicyd employs a deny-all policy on system mounts with the following commands: + +For RHEL 8.4 systems and older: +$ sudo tail /etc/fapolicyd/fapolicyd.rules + +For RHEL 8.5 systems and newer: +$ sudo tail /etc/fapolicyd/compiled.rules + +allow exe=/usr/bin/python3.7 : ftype=text/x-python +deny_audit perm=any pattern=ld_so : all +deny perm=any all : all + +If fapolicyd is not running in enforcement mode with a deny-all, permit-by-exception policy, this is a finding.SRG-OS-000378-GPOS-00163<GroupDescription></GroupDescription>RHEL-08-040139RHEL 8 must have the USBGuard installed.<VulnDiscussion>Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. +Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers. +A new feature that RHEL 8 provides is the USBGuard software framework. The USBguard-daemon is the main component of the USBGuard software framework. It runs as a service in the background and enforces the USB device authorization policy for all USB devices. The policy is defined by a set of rules using a rule language described in the usbguard-rules.conf file. The policy and the authorization state of USB devices can be modified during runtime using the usbguard tool. + +The System Administrator (SA) must work with the site Information System Security Officer (ISSO) to determine a list of authorized peripherals and establish rules within the USBGuard software framework to allow only authorized devices.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001958Install the USBGuard package with the following command: + +$ sudo yum install usbguard.x86_64Verify USBGuard is installed on the operating system with the following command: + +$ sudo yum list installed usbguard + +Installed Packages +usbguard.x86_64 0.7.8-7.el8 @ol8_appstream + +If the USBGuard package is not installed, ask the SA to indicate how unauthorized peripherals are being blocked. +If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding.SRG-OS-000378-GPOS-00163<GroupDescription></GroupDescription>RHEL-08-040141RHEL 8 must enable the USBGuard.<VulnDiscussion>Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. + +Peripherals include, but are not limited to, such devices as flash drives, external storage, and printers. + +A new feature that RHEL 8 provides is the USBGuard software framework. The USBguard-daemon is the main component of the USBGuard software framework. It runs as a service in the background and enforces the USB device authorization policy for all USB devices. The policy is defined by a set of rules using a rule language described in the usbguard-rules.conf file. The policy and the authorization state of USB devices can be modified during runtime using the usbguard tool. + +The System Administrator (SA) must work with the site Information System Security Officer (ISSO) to determine a list of authorized peripherals and establish rules within the USBGuard software framework to allow only authorized devices.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001958Configure the operating system to enable the blocking of unauthorized peripherals with the following commands: + +$ sudo systemctl enable usbguard.service + +$ sudo systemctl start usbguard.service + +Note: Enabling and starting usbguard without properly configuring it for an individual system will immediately prevent any access over a usb device such as a keyboard or mouseVerify the operating system has enabled the use of the USBGuard with the following command: + +$ sudo systemctl status usbguard.service + +usbguard.service - USBGuard daemon +Loaded: loaded (/usr/lib/systemd/system/usbguard.service; enabled; vendor preset: disabled) +Active: active (running) + +If the usbguard.service is not enabled and active, ask the SA to indicate how unauthorized peripherals are being blocked. +If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding.SRG-OS-000423-GPOS-00187<GroupDescription></GroupDescription>RHEL-08-040159All RHEL 8 networked systems must have SSH installed.<VulnDiscussion>Without protection of the transmitted information, confidentiality and integrity may be compromised because unprotected communications can be intercepted and either read or altered. + +This requirement applies to both internal and external networks and all types of information system components from which information can be transmitted (e.g., servers, mobile devices, notebook computers, printers, copiers, scanners, and facsimile machines). Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. + +Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. + +Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000424-GPOS-00188, SRG-OS-000425-GPOS-00189, SRG-OS-000426-GPOS-00190</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002418Install SSH packages onto the host with the following command: + +$ sudo yum install openssh-server.x86_64Verify SSH is installed with the following command: + +$ sudo yum list installed openssh-server + +openssh-server.x86_64 8.0p1-5.el8 @anaconda + +If the "SSH server" package is not installed, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040209RHEL 8 must prevent IPv4 Internet Control Message Protocol (ICMP) redirect messages from being accepted.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to prevent IPv4 ICMP redirect messages from being accepted. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.default.accept_redirects = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 will not accept IPv4 ICMP redirect messages. + +Check the value of the default "accept_redirects" variables with the following command: + +$ sudo sysctl net.ipv4.conf.default.accept_redirects + +net.ipv4.conf.default.accept_redirects = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.default.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.default.accept_redirects = 0 + +If "net.ipv4.conf.default.accept_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040239RHEL 8 must not forward IPv4 source-routed packets.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when forwarding is enabled and the system is functioning as a router. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not forward IPv4 source-routed packets. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.all.accept_source_route=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept IPv4 source-routed packets. + +Check the value of the accept source route variable with the following command: + +$ sudo sysctl net.ipv4.conf.all.accept_source_route + +net.ipv4.conf.all.accept_source_route = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.all.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.accept_source_route = 0 + +If "net.ipv4.conf.all.accept_source_route" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040249RHEL 8 must not forward IPv4 source-routed packets by default.<VulnDiscussion>Source-routed packets allow the source of the packet to suggest that routers forward the packet along a different path than configured on the router, which can be used to bypass network security measures. This requirement applies only to the forwarding of source-routed traffic, such as when forwarding is enabled and the system is functioning as a router. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not forward IPv4 source-routed packets by default. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.default.accept_source_route=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 does not accept IPv4 source-routed packets by default. + +Check the value of the accept source route variable with the following command: + +$ sudo sysctl net.ipv4.conf.default.accept_source_route + +net.ipv4.conf.default.accept_source_route = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.default.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.default.accept_source_route = 0 + +If "net.ipv4.conf.default.accept_source_route" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040279RHEL 8 must ignore IPv4 Internet Control Message Protocol (ICMP) redirect messages.<VulnDiscussion>ICMP redirect messages are used by routers to inform hosts that a more direct route exists for a particular destination. These messages modify the host's route table and are unauthenticated. An illicit ICMP redirect message could result in a man-in-the-middle attack. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to ignore IPv4 ICMP redirect messages. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.all.accept_redirects = 0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 ignores IPv4 ICMP redirect messages. + +Check the value of the "accept_redirects" variables with the following command: + +$ sudo sysctl net.ipv4.conf.all.accept_redirects + +net.ipv4.conf.all.accept_redirects = 0 + +If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.all.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.accept_redirects = 0 + +If "net.ipv4.conf.all.accept_redirects" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040286RHEL 8 must enable hardening for the Berkeley Packet Filter Just-in-time compiler.<VulnDiscussion>It is detrimental for operating systems to provide, or install by default, functionality exceeding requirements or mission objectives. These unnecessary capabilities or services are often overlooked and therefore may remain unsecured. They increase the risk to the platform by providing additional attack vectors. + +Enabling hardening for the Berkeley Packet Filter (BPF) Just-in-time (JIT) compiler aids in mitigating JIT spraying attacks. Setting the value to "2" enables JIT hardening for all users. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to enable hardening for the BPF JIT compiler by adding the following line to a file, in the "/etc/sysctl.d" directory: + +net.core.bpf_jit_harden = 2 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: + +$ sudo sysctl --systemVerify RHEL 8 enables hardening for the BPF JIT with the following commands: + +$ sudo sysctl net.core.bpf_jit_harden + +net.core.bpf_jit_harden = 2 + +If the returned line does not have a value of "2", or a line is not returned, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.core.bpf_jit_harden /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.core.bpf_jit_harden = 2 + +If "net.core.bpf_jit_harden" is not set to "2", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000191-GPOS-00080<GroupDescription></GroupDescription>RHEL-08-010001The RHEL 8 operating system must implement the Endpoint Security for Linux Threat Prevention tool.<VulnDiscussion>Adding endpoint security tools can provide the capability to automatically take actions in response to malicious behavior, which can provide additional agility in reacting to network threats. These tools also often include a reporting capability to provide network awareness of the system, which may not otherwise exist in an organization's systems management regime.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001233Install and enable the latest McAfee ENSLTP package.Per OPORD 16-0080, the preferred endpoint security tool is McAfee Endpoint Security for Linux (ENSL) in conjunction with SELinux. + +Procedure: +Check that the following package has been installed: + +$ sudo rpm -qa | grep -i mcafeetp + +If the "mcafeetp" package is not installed, this is a finding. + +Verify that the daemon is running: + +$ sudo ps -ef | grep -i mfetpd + +If the daemon is not running, this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020027RHEL 8 systems, versions 8.2 and above, must configure SELinux context type to allow the use of a non-default faillock tally directory.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +From "faillock.conf" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be re-enabled after system reboot. If that is undesirable, a different tally directory must be set with the "dir" option. + +SELinux, enforcing a targeted policy, will require any non-default tally directory's security context type to match the default directory's security context type. Without updating the security context type, the pam_faillock module will not write failed login attempts to the non-default tally directory.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044CCI-002238Configure RHEL 8 to allow the use of a non-default faillock tally directory while SELinux enforces a targeted policy. + +Create a non-default faillock tally directory (if it does not already exist) with the following example: + +$ sudo mkdir /var/log/faillock + +Update the /etc/selinux/targeted/contexts/files/file_contexts.local with "faillog_t" context type for the non-default faillock tally directory with the following command: + +$ sudo semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?" + +Next, update the context type of the non-default faillock directory/subdirectories and files with the following command: + +$ sudo restorecon -R -v /var/log/faillockIf the system does not have SELinux enabled and enforcing a targeted policy, or if the pam_faillock module is not configured for use, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.2 or newer. If the system is RHEL version 8.0 or 8.1, this check is not applicable. + +Verify the location of the non-default tally directory for the pam_faillock module with the following command: + +$ sudo grep -w dir /etc/security/faillock.conf + +dir = /var/log/faillock + +Check the security context type of the non-default tally directory with the following command: + +$ sudo ls -Zd /var/log/faillock + +unconfined_u:object_r:faillog_t:s0 /var/log/faillock + +If the security context type of the non-default tally directory is not "faillog_t", this is a finding.SRG-OS-000021-GPOS-00005<GroupDescription></GroupDescription>RHEL-08-020028RHEL 8 systems below version 8.2 must configure SELinux context type to allow the use of a non-default faillock tally directory.<VulnDiscussion>By limiting the number of failed logon attempts, the risk of unauthorized system access via user password guessing, otherwise known as brute-force attacks, is reduced. Limits are imposed by locking the account. + +From "Pam_Faillock" man pages: Note that the default directory that "pam_faillock" uses is usually cleared on system boot so the access will be reenabled after system reboot. If that is undesirable, a different tally directory must be set with the "dir" option. + +SELinux, enforcing a targeted policy, will require any non-default tally directory's security context type to match the default directory's security context type. Without updating the security context type, the pam_faillock module will not write failed login attempts to the non-default tally directory.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000044CCI-002238Configure RHEL 8 to allow the use of a non-default faillock tally directory while SELinux enforces a targeted policy. + +Update the /etc/selinux/targeted/contexts/files/file_contexts.local with "faillog_t" context type for the non-default faillock tally directory with the following command: + +$ sudo semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?" + +Next, update the context type of the non-default faillock directory/subdirectories and files with the following command: + +$ sudo restorecon -R -v /var/log/faillockIf the system does not have SELinux enabled and enforcing a targeted policy, or if the pam_faillock module is not configured for use, this requirement is not applicable. + +Note: This check applies to RHEL versions 8.0 and 8.1. If the system is RHEL version 8.2 or newer, this check is not applicable. + +Verify the location of the non-default tally directory for the pam_faillock module with the following command: + +$ sudo grep -w dir /etc/pam.d/password-auth + +auth required pam_faillock.so preauth dir=/var/log/faillock +auth required pam_faillock.so authfail dir=/var/log/faillock + +Check the security context type of the non-default tally directory with the following command: + +$ sudo ls -Zd /var/log/faillock + +unconfined_u:object_r:faillog_t:s0 /var/log/faillock + +If the security context type of the non-default tally directory is not "faillog_t", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040259RHEL 8 must not enable IPv4 packet forwarding unless the system is a router.<VulnDiscussion>Routing protocol daemons are typically used on routers to exchange network topology information with other routers. If this software is used when not required, system network information may be unnecessarily transmitted across the network. + +The sysctl --system command will load settings from all system configuration files. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in. If multiple files specify the same option, the entry in the file with the lexicographically latest name will take precedence. Files are read from directories in the following list from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. +/etc/sysctl.d/*.conf +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure RHEL 8 to not allow IPv4 packet forwarding, unless the system is a router. + +Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: + +net.ipv4.conf.all.forwarding=0 + +Remove any configurations that conflict with the above from the following locations: +/run/sysctl.d/*.conf +/usr/local/lib/sysctl.d/*.conf +/usr/lib/sysctl.d/*.conf +/lib/sysctl.d/*.conf +/etc/sysctl.conf +/etc/sysctl.d/*.conf + +Load settings from all system configuration files with the following command: + +$ sudo sysctl --systemVerify RHEL 8 is not performing IPv4 packet forwarding, unless the system is a router. + +Check that IPv4 forwarding is disabled using the following command: + +$ sudo sysctl net.ipv4.conf.all.forwarding + +net.ipv4.conf.all.forwarding = 0 +If the IPv4 forwarding value is not "0" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding. + +Check that the configuration files are present to enable this network parameter. + +$ sudo grep -r net.ipv4.conf.all.forwarding /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf + +/etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.forwarding = 0 + +If "net.ipv4.conf.all.forwarding" is not set to "0", is missing or commented out, this is a finding. + +If conflicting results are returned, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010121The RHEL 8 operating system must not have accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log on and run commands with the privileges of that account. Accounts with empty passwords should never be used in operational environments.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure all accounts on the system to have a password or lock the account with the following commands: + +Perform a password reset: +$ sudo passwd [username] +Lock an account: +$ sudo passwd -l [username]Check the "/etc/shadow" file for blank passwords with the following command: + +$ sudo awk -F: '!$2 {print $1}' /etc/shadow + +If the command returns any results, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010331RHEL 8 library directories must have mode 755 or less permissive.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the library directories to be protected from unauthorized access. Run the following command, replacing "[DIRECTORY]" with any library directory with a mode more permissive than 755. + +$ sudo chmod 755 [DIRECTORY]Verify the system-wide shared library directories within "/lib", "/lib64", "/usr/lib" and "/usr/lib64" have mode "755" or less permissive with the following command: + +$ sudo find /lib /lib64 /usr/lib /usr/lib64 -perm /022 -type d -exec stat -c "%n %a" '{}' \; + +If any system-wide shared library directories are found to be group-writable or world-writable, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010341RHEL 8 library directories must be owned by root.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system-wide shared library directories within (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. + +Run the following command, replacing "[DIRECTORY]" with any library directory not owned by "root". + +$ sudo chown root [DIRECTORY]Verify the system-wide shared library directories are owned by "root" with the following command: + +$ sudo find /lib /lib64 /usr/lib /usr/lib64 ! -user root -type d -exec stat -c "%n %U" '{}' \; + +If any system-wide shared library directory is returned, this is a finding.SRG-OS-000259-GPOS-00100<GroupDescription></GroupDescription>RHEL-08-010351RHEL 8 library directories must be group-owned by root or a system account.<VulnDiscussion>If RHEL 8 were to allow any user to make changes to software libraries, then those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust change management process. + +This requirement applies to RHEL 8 with software libraries that are accessible and configurable, as in the case of interpreted languages. Software libraries also include privileged programs that execute with escalated privileges. Only qualified and authorized individuals will be allowed to obtain access to information system components for purposes of initiating changes, including upgrades and modifications.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001499Configure the system-wide shared library directories (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. + +Run the following command, replacing "[DIRECTORY]" with any library directory not group-owned by "root". + +$ sudo chgrp root [DIRECTORY]Verify the system-wide shared library directories are group-owned by "root" with the following command: + +$ sudo find /lib /lib64 /usr/lib /usr/lib64 ! -group root -type d -exec stat -c "%n %G" '{}' \; + +If any system-wide shared library directory is returned and is not group-owned by a required system account, this is a finding.SRG-OS-000445-GPOS-00199<GroupDescription></GroupDescription>RHEL-08-010359The RHEL 8 operating system must use a file integrity tool to verify correct operation of all security functions.<VulnDiscussion>Without verification of the security functions, security functions may not operate correctly, and the failure may go unnoticed. Security function is defined as the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based. Security functionality includes, but is not limited to, establishing system accounts, configuring access authorizations (i.e., permissions, privileges), setting events to be audited, and setting intrusion detection parameters. + +This requirement applies to the RHEL 8 operating system performing security function verification/testing and/or systems and environments that require this functionality.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002696Install AIDE, initialize it, and perform a manual check. + +Install AIDE: + $ sudo yum install aide + +Initialize it: + $ sudo /usr/sbin/aide --init + +Example output: + Number of entries: 48623 + + --------------------------------------------------- + The attributes of the (uncompressed) database(s): + --------------------------------------------------- + + /var/lib/aide/aide.db.new.gz + SHA1 : LTAVQ8tFJthsrf4m9gfRpnf1vyc= + SHA256 : NJ9+uzRQKSwmLQ8A6IpKNvYjVKGbhSjt + BeJBVcmOVrI= + SHA512 : 7d8I/F6A1b07E4ZuGeilZjefRgJJ/F20 + eC2xoag1OsOVpctt3Mi7Jjjf3vFW4xoY + 5mdS6/ImQpm0xtlTLOPeQQ== + + End timestamp: 2022-10-20 10:50:52 -0700 (run time: 0m 46s) + +The new database will need to be renamed to be read by AIDE: + $ sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz + +Perform a manual check: + $ sudo /usr/sbin/aide --check + +Example output: + Start timestamp: 2022-10-20 11:03:16 -0700 (AIDE 0.16) + AIDE found differences between database and filesystem!! + ... + +Done.Verify that Advanced Intrusion Detection Environment (AIDE) is installed and verifies the correct operation of all security functions. + +Check that the AIDE package is installed with the following command: + $ sudo rpm -q aide + + aide-0.16-14.el8_5.1.x86_64 + +If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. + +If there is no application installed to perform integrity checks, this is a finding. + +If AIDE is installed, check if it has been initialized with the following command: + $ sudo /usr/sbin/aide --check + +If the output is "Couldn't open file /var/lib/aide/aide.db.gz for reading", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-010379RHEL 8 must specify the default "include" directory for the /etc/sudoers file.<VulnDiscussion>The "sudo" command allows authorized users to run programs (including shells) as other users, system users, and root. The "/etc/sudoers" file is used to configure authorized "sudo" users as well as the programs they are allowed to run. Some configuration options in the "/etc/sudoers" file allow configured users to run programs without re-authenticating. Use of these configuration options makes it easier for one compromised account to be used to compromise other accounts. + +It is possible to include other sudoers files from within the sudoers file currently being parsed using the #include and #includedir directives. When sudo reaches this line it will suspend processing of the current file (/etc/sudoers) and switch to the specified file/directory. Once the end of the included file(s) is reached, the rest of /etc/sudoers will be processed. Files that are included may themselves include other files. A hard limit of 128 nested include files is enforced to prevent include file loops.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the /etc/sudoers file to only include the /etc/sudoers.d directory. + +Edit the /etc/sudoers file with the following command: + +$ sudo visudo + +Add or modify the following line: +#includedir /etc/sudoers.dNote: If the "include" and "includedir" directives are not present in the /etc/sudoers file, this requirement is not applicable. + +Verify the operating system specifies only the default "include" directory for the /etc/sudoers file with the following command: + +$ sudo grep include /etc/sudoers + +#includedir /etc/sudoers.d + +If the results are not "/etc/sudoers.d" or additional files or directories are specified, this is a finding. + +Verify the operating system does not have nested "include" files or directories within the /etc/sudoers.d directory with the following command: + +$ sudo grep -r include /etc/sudoers.d + +If results are returned, this is a finding.SRG-OS-000373-GPOS-00156<GroupDescription></GroupDescription>RHEL-08-010385The RHEL 8 operating system must not be configured to bypass password requirements for privilege escalation.<VulnDiscussion>Without re-authentication, users may access resources or perform tasks for which they do not have authorization. + +When operating systems provide the capability to escalate a functional capability, it is critical the user re-authenticate. + +Satisfies: SRG-OS-000373-GPOS-00156, SRG-OS-000373-GPOS-00157, SRG-OS-000373-GPOS-00158</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002038Configure the operating system to require users to supply a password for privilege escalation. + +Check the configuration of the "/etc/ pam.d/sudo" file with the following command: +$ sudo vi /etc/pam.d/sudo + +Remove any occurrences of "pam_succeed_if" in the file.Verify the operating system is not be configured to bypass password requirements for privilege escalation. + +Check the configuration of the "/etc/pam.d/sudo" file with the following command: + +$ sudo grep pam_succeed_if /etc/pam.d/sudo + +If any occurrences of "pam_succeed_if" is returned from the command, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020101RHEL 8 must ensure the password complexity module is enabled in the system-auth file.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system. + +RHEL 8 uses "pwquality" as a mechanism to enforce password complexity. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to use "pwquality" to enforce password complexity rules. + +Add the following line to the "/etc/pam.d/system-auth" file(or modify the line to have the required value): + +password required pam_pwquality.soVerify the operating system uses "pwquality" to enforce the password complexity rules. + +Check for the use of "pwquality" in the system-auth file with the following command: + +$ sudo cat /etc/pam.d/system-auth | grep pam_pwquality + +password required pam_pwquality.so + +If the command does not return a line containing the value "pam_pwquality.so", or the line is commented out, this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020102RHEL 8 systems below version 8.4 must ensure the password complexity module in the system-auth file is configured for three retries or less.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system. + +RHEL 8 uses "pwquality" as a mechanism to enforce password complexity. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth + +By limiting the number of attempts to meet the pwquality module complexity requirements before returning with an error, the system will audit abnormal attempts at password changes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to limit the "pwquality" retry option to 3. + +Add the following line to the "/etc/pam.d/system-auth" file (or modify the line to have the required value): + +password required pam_pwquality.so retry=3Note: This requirement applies to RHEL versions 8.0 through 8.3. If the system is RHEL version 8.4 or newer, this requirement is not applicable. + +Verify the operating system is configured to limit the "pwquality" retry option to 3. + +Check for the use of the "pwquality" retry option in the system-auth file with the following command: + +$ sudo cat /etc/pam.d/system-auth | grep pam_pwquality + +password required pam_pwquality.so retry=3 + +If the value of "retry" is set to "0" or greater than "3", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020103RHEL 8 systems below version 8.4 must ensure the password complexity module in the password-auth file is configured for three retries or less.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system. + +RHEL 8 uses "pwquality" as a mechanism to enforce password complexity. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth + +By limiting the number of attempts to meet the pwquality module complexity requirements before returning with an error, the system will audit abnormal attempts at password changes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to limit the "pwquality" retry option to 3. + +Add the following line to the "/etc/pam.d/password-auth" file (or modify the line to have the required value): + +password required pam_pwquality.so retry=3Note: This requirement applies to RHEL versions 8.0 through 8.3. If the system is RHEL version 8.4 or newer, this requirement is not applicable. + +Verify the operating system is configured to limit the "pwquality" retry option to 3. + +Check for the use of the "pwquality" retry option in the password-auth file with the following command: + +$ sudo cat /etc/pam.d/password-auth | grep pam_pwquality + +password required pam_pwquality.so retry=3 + +If the value of "retry" is set to "0" or greater than "3", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-020104RHEL 8 systems, version 8.4 and above, must ensure the password complexity module is configured for three retries or less.<VulnDiscussion>Use of a complex password helps to increase the time and resources required to compromise the password. Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. "pwquality" enforces complex password construction configuration and has the ability to limit brute-force attacks on the system. + +RHEL 8 utilizes "pwquality" as a mechanism to enforce password complexity. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth +By limiting the number of attempts to meet the pwquality module complexity requirements before returning with an error, the system will audit abnormal attempts at password changes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Configure the operating system to limit the "pwquality" retry option to 3. + +Add the following line to the "/etc/security/pwquality.conf" file(or modify the line to have the required value): + +retry = 3 + +Remove any configurations that conflict with the above value.Note: This requirement applies to RHEL versions 8.4 or newer. If the system is RHEL below version 8.4, this requirement is not applicable. + +Verify the operating system is configured to limit the "pwquality" retry option to 3. + +Check for the use of the "pwquality" retry option with the following command: + +$ sudo grep -r retry /etc/security/pwquality.conf* + +/etc/security/pwquality.conf:retry = 3 + +If the value of "retry" is set to "0" or greater than "3", is commented out or missing, this is a finding. + +If conflicting results are returned, this is a finding. + +Check for the use of the "pwquality" retry option in the system-auth and password-auth files with the following command: + +$ sudo grep pwquality /etc/pam.d/system-auth /etc/pam.d/password-auth | grep retry + +If the command returns any results, this is a finding.SRG-OS-000077-GPOS-00045<GroupDescription></GroupDescription>RHEL-08-020221RHEL 8 must be configured in the system-auth file to prohibit password reuse for a minimum of five generations.<VulnDiscussion>Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. If the information system or application allows the user to reuse their password consecutively when that password has exceeded its defined lifetime, the end result is a password that is not changed per policy requirements. + +RHEL 8 uses "pwhistory" consecutively as a mechanism to prohibit password reuse. This is set in both: +/etc/pam.d/password-auth +/etc/pam.d/system-auth. + +Note that manual changes to the listed files may be overwritten by the "authselect" program.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000200Configure the operating system in the system-auth file to prohibit password reuse for a minimum of five generations. + +Add the following line in "/etc/pam.d/system-auth" (or modify the line to have the required value): + +password required pam_pwhistory.so use_authtok remember=5 retry=3Verify the operating system is configured in the system-auth file to prohibit password reuse for a minimum of five generations. + +Check for the value of the "remember" argument in "/etc/pam.d/system-auth" with the following command: + +$ sudo grep -i remember /etc/pam.d/system-auth + +password required pam_pwhistory.so use_authtok remember=5 retry=3 + +If the line containing "pam_pwhistory.so" does not have the "remember" module argument set, is commented out, or the value of the "remember" module argument is set to less than "5", this is a finding.SRG-OS-000480-GPOS-00227<GroupDescription></GroupDescription>RHEL-08-040321The graphical display manager must not be the default target on RHEL 8 unless approved.<VulnDiscussion>Internet services that are not required for system or application processes must not be active to decrease the attack surface of the system. Graphical display managers have a long history of security vulnerabilities and must not be used, unless approved and documented.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-000366Document the requirement for a graphical user interface with the ISSO or reinstall the operating system without the graphical user interface. If reinstallation is not feasible, then continue with the following procedure: + +Open an SSH session and enter the following commands: + +$ sudo systemctl set-default multi-user.target + +A reboot is required for the changes to take effect.Verify that the system is configured to boot to the command line: + +$ systemctl get-default +multi-user.target + +If the system default target is not set to "multi-user.target" and the Information System Security Officer (ISSO) lacks a documented requirement for a graphical user interface, this is a finding.SRG-OS-000324-GPOS-00125<GroupDescription></GroupDescription>RHEL-08-040400RHEL 8 must prevent non-privileged users from executing privileged functions, including disabling, circumventing, or altering implemented security safeguards/countermeasures.<VulnDiscussion>Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. + +Privileged functions include, for example, establishing accounts, performing system integrity checks, or administering cryptographic key management activities. Non-privileged users are individuals who do not possess appropriate authorizations. Circumventing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-002265Configure RHEL 8 to prevent non-privileged users from executing privileged functions, including disabling, circumventing, or altering implemented security safeguards/countermeasures. + +Use the following command to map a new user to the "sysadm_u" role: + +$ sudo semanage login -a -s sysadm_u <username> + +Use the following command to map an existing user to the "sysadm_u" role: + +$ sudo semanage login -m -s sysadm_u <username> + +Use the following command to map a new user to the "staff_u" role: + +$ sudo semanage login -a -s staff_u <username> + +Use the following command to map an existing user to the "staff_u" role: + +$ sudo semanage login -m -s staff_u <username> + +Use the following command to map a new user to the "user_u" role: + +$ sudo semanage login -a -s user_u <username> + +Use the following command to map an existing user to the "user_u" role: + +$ sudo semanage login -m -s user_u <username>Verify the operating system prevents non-privileged users from executing privileged functions, including disabling, circumventing, or altering implemented security safeguards/countermeasures. + +Obtain a list of authorized users (other than System Administrator and guest accounts) for the system. + +Check the list against the system by using the following command: + +$ sudo semanage login -l | more +Login Name SELinux User MLS/MCS Range Service +__default__ user_u s0-s0:c0.c1023 * +root unconfined_u s0-s0:c0.c1023 * +system_u system_u s0-s0:c0.c1023 * +joe staff_u s0-s0:c0.c1023 * + +All administrators must be mapped to the "sysadm_u", "staff_u", or an appropriately tailored confined role as defined by the organization. + +All authorized non-administrative users must be mapped to the "user_u" role. + +If they are not mapped in this way, this is a finding.SRG-OS-000250-GPOS-00093<GroupDescription></GroupDescription>RHEL-08-040342RHEL 8 SSH server must be configured to use only FIPS-validated key exchange algorithms.<VulnDiscussion>Without cryptographic integrity protections provided by FIPS-validated cryptographic algorithms, information can be viewed and altered by unauthorized users without detection. + +RHEL 8 incorporates system-wide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file. + +The system will attempt to use the first algorithm presented by the client that matches the server list. Listing the values "strongest to weakest" is a method to ensure the use of the strongest algorithm available to secure the SSH connection.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat Enterprise Linux 8DISADPMS TargetRed Hat Enterprise Linux 82921CCI-001453Configure the SSH server to use only FIPS-validated key exchange algorithms by adding or modifying the following line in "/etc/crypto-policies/back-ends/opensshserver.config": + +-oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 + +A reboot is required for the changes to take effect.Verify that the SSH server is configured to use only FIPS-validated key exchange algorithms: + + $ sudo grep -i kexalgorithms /etc/crypto-policies/back-ends/opensshserver.config + + CRYPTO_POLICY='-oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512' + +If the entries following "KexAlgorithms" have any algorithms defined other than "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512", appear in different order than shown, are missing, or commented out, this is a finding. \ No newline at end of file diff --git a/collections/ansible_collections/demo/compliance/roles/rhel8STIG/handlers/main.yml b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/handlers/main.yml new file mode 100644 index 0000000..54e5791 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/handlers/main.yml @@ -0,0 +1,11 @@ +- name: dconf_update + command: dconf update +- name: auditd_restart + command: /usr/sbin/service auditd restart +- name: ssh_restart + service: + name: sshd + state: restarted +- name: do_reboot + reboot: + pre_reboot_delay: 60 diff --git a/collections/ansible_collections/demo/compliance/roles/rhel8STIG/tasks/main.yml b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/tasks/main.yml new file mode 100644 index 0000000..bf49710 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/rhel8STIG/tasks/main.yml @@ -0,0 +1,1800 @@ +- name: populate package facts + package_facts: +# R-230225 RHEL-08-010040 +- name: stigrule_230225_banner + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)banner\s+' + line: "{{ rhel8STIG_stigrule_230225_banner_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230225_Manage + - "'openssh-server' in packages" +# R-230226 RHEL-08-010050 +- name: stigrule_230226__etc_dconf_db_local_d_01_banner_message + ini_file: + path: /etc/dconf/db/local.d/01-banner-message + section: org/gnome/login-screen + option: banner-message-text + value: "{{ rhel8STIG_stigrule_230226__etc_dconf_db_local_d_01_banner_message_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_230226_Manage + - "'dconf' in packages" +# R-230227 RHEL-08-010060 +- name: stigrule_230227__etc_issue + copy: + dest: "{{ rhel8STIG_stigrule_230227__etc_issue_Dest }}" + content: "{{ rhel8STIG_stigrule_230227__etc_issue_Content }}" + when: + - rhel8STIG_stigrule_230227_Manage +# R-230228 RHEL-08-010070 +- name: stigrule_230228__etc_rsyslog_conf + lineinfile: + path: /etc/rsyslog.conf + line: "{{ rhel8STIG_stigrule_230228__etc_rsyslog_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230228_Manage +# R-230231 RHEL-08-010110 +- name: stigrule_230231__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^ENCRYPT_METHOD' + line: "{{ rhel8STIG_stigrule_230231__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230231_Manage +# R-230236 RHEL-08-010151 +- name: stigrule_230236__usr_lib_systemd_system_rescue_service + ini_file: + path: /usr/lib/systemd/system/rescue.service + section: Service + option: ExecStart + value: "{{ rhel8STIG_stigrule_230236__usr_lib_systemd_system_rescue_service_Value }}" + no_extra_spaces: yes + when: + - rhel8STIG_stigrule_230236_Manage +# R-230239 RHEL-08-010162 +- name: stigrule_230239_krb5_workstation + yum: + name: krb5-workstation + state: "{{ rhel8STIG_stigrule_230239_krb5_workstation_State }}" + when: rhel8STIG_stigrule_230239_Manage +# R-230240 RHEL-08-010170 +- name: stigrule_230240__etc_selinux_config + lineinfile: + path: /etc/selinux/config + regexp: '^SELINUX=' + line: "{{ rhel8STIG_stigrule_230240__etc_selinux_config_Line }}" + create: yes + notify: do_reboot + when: + - rhel8STIG_stigrule_230240_Manage +# R-230241 RHEL-08-010171 +- name: stigrule_230241_policycoreutils + yum: + name: policycoreutils + state: "{{ rhel8STIG_stigrule_230241_policycoreutils_State }}" + when: rhel8STIG_stigrule_230241_Manage +# R-230244 RHEL-08-010200 +- name: stigrule_230244_ClientAliveCountMax + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)ClientAliveCountMax\s+' + line: "{{ rhel8STIG_stigrule_230244_ClientAliveCountMax_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230244_Manage + - "'openssh-server' in packages" +# R-230252 RHEL-08-010291 +- name: stigrule_230252__etc_sysconfig_sshd + lineinfile: + path: /etc/sysconfig/sshd + regexp: '^# CRYPTO_POLICY=' + line: "{{ rhel8STIG_stigrule_230252__etc_sysconfig_sshd_Line }}" + create: yes + notify: do_reboot + when: + - rhel8STIG_stigrule_230252_Manage +# R-230255 RHEL-08-010294 +- name: stigrule_230255__etc_crypto_policies_back_ends_opensslcnf_config + lineinfile: + path: /etc/crypto-policies/back-ends/opensslcnf.config + regexp: '^MinProtocol = ' + line: "{{ rhel8STIG_stigrule_230255__etc_crypto_policies_back_ends_opensslcnf_config_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230255_Manage +# R-230256 RHEL-08-010295 +- name: stigrule_230256__etc_crypto_policies_back_ends_gnutls_config + lineinfile: + path: /etc/crypto-policies/back-ends/gnutls.config + line: "{{ rhel8STIG_stigrule_230256__etc_crypto_policies_back_ends_gnutls_config_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230256_Manage +# R-230265 RHEL-08-010371 +- name: stigrule_230265__etc_dnf_dnf_conf + ini_file: + path: /etc/dnf/dnf.conf + section: main + option: localpkg_gpgcheck + value: "{{ rhel8STIG_stigrule_230265__etc_dnf_dnf_conf_Value }}" + no_extra_spaces: yes + when: + - rhel8STIG_stigrule_230265_Manage +# R-230266 RHEL-08-010372 +- name: stigrule_230266__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.kexec_load_disabled = ' + line: "{{ rhel8STIG_stigrule_230266__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230266_Manage +# R-230267 RHEL-08-010373 +- name: stigrule_230267__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^fs.protected_symlinks = ' + line: "{{ rhel8STIG_stigrule_230267__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230267_Manage +# R-230268 RHEL-08-010374 +- name: stigrule_230268__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^fs.protected_hardlinks = ' + line: "{{ rhel8STIG_stigrule_230268__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230268_Manage +# R-230269 RHEL-08-010375 +- name: stigrule_230269__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.dmesg_restrict = ' + line: "{{ rhel8STIG_stigrule_230269__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230269_Manage +# R-230270 RHEL-08-010376 +- name: stigrule_230270__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.perf_event_paranoid = ' + line: "{{ rhel8STIG_stigrule_230270__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230270_Manage +# R-230273 RHEL-08-010390 +- name: stigrule_230273_esc + yum: + name: esc + state: "{{ rhel8STIG_stigrule_230273_esc_State }}" + when: rhel8STIG_stigrule_230273_Manage +# R-230273 RHEL-08-010390 +- name: stigrule_230273_openssl_pkcs11 + yum: + name: openssl-pkcs11 + state: "{{ rhel8STIG_stigrule_230273_openssl_pkcs11_State }}" + when: rhel8STIG_stigrule_230273_Manage +# R-230275 RHEL-08-010410 +- name: stigrule_230275_opensc + yum: + name: opensc + state: "{{ rhel8STIG_stigrule_230275_opensc_State }}" + when: rhel8STIG_stigrule_230275_Manage +# R-230280 RHEL-08-010430 +- name: stigrule_230280__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.randomize_va_space = ' + line: "{{ rhel8STIG_stigrule_230280__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230280_Manage +# R-230281 RHEL-08-010440 +- name: stigrule_230281__etc_dnf_dnf_conf + ini_file: + path: /etc/dnf/dnf.conf + section: main + option: clean_requirements_on_remove + value: "{{ rhel8STIG_stigrule_230281__etc_dnf_dnf_conf_Value }}" + no_extra_spaces: yes + when: + - rhel8STIG_stigrule_230281_Manage +# R-230282 RHEL-08-010450 +- name: stigrule_230282__etc_selinux_config + lineinfile: + path: /etc/selinux/config + regexp: '^SELINUXTYPE=' + line: "{{ rhel8STIG_stigrule_230282__etc_selinux_config_Line }}" + create: yes + notify: do_reboot + when: + - rhel8STIG_stigrule_230282_Manage +# R-230285 RHEL-08-010471 +- name: check if rngd.service is installed + shell: ! systemctl list-unit-files | grep "^rngd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230285_rngd_enable + service: + name: rngd.service + enabled: "{{ rhel8STIG_stigrule_230285_rngd_enable_Enabled }}" + when: + - rhel8STIG_stigrule_230285_Manage + - result.rc == 0 +# R-230285 RHEL-08-010471 +- name: check if rngd.service is installed + shell: ! systemctl list-unit-files | grep "^rngd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230285_rngd_start + service: + name: rngd.service + state: "{{ rhel8STIG_stigrule_230285_rngd_start_State }}" + when: + - rhel8STIG_stigrule_230285_Manage + - result.rc == 0 +# R-230288 RHEL-08-010500 +- name: stigrule_230288_StrictModes + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)StrictModes\s+' + line: "{{ rhel8STIG_stigrule_230288_StrictModes_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230288_Manage + - "'openssh-server' in packages" +# R-230290 RHEL-08-010520 +- name: stigrule_230290_IgnoreUserKnownHosts + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)IgnoreUserKnownHosts\s+' + line: "{{ rhel8STIG_stigrule_230290_IgnoreUserKnownHosts_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230290_Manage + - "'openssh-server' in packages" +# R-230291 RHEL-08-010521 +- name: stigrule_230291_KerberosAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)KerberosAuthentication\s+' + line: "{{ rhel8STIG_stigrule_230291_KerberosAuthentication_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230291_Manage + - "'openssh-server' in packages" +# R-230296 RHEL-08-010550 +- name: stigrule_230296_PermitRootLogin + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PermitRootLogin\s+' + line: "{{ rhel8STIG_stigrule_230296_PermitRootLogin_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230296_Manage + - "'openssh-server' in packages" +# R-230298 RHEL-08-010561 +- name: check if rsyslog.service is installed + shell: ! systemctl list-unit-files | grep "^rsyslog.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230298_rsyslog_enable + service: + name: rsyslog.service + enabled: "{{ rhel8STIG_stigrule_230298_rsyslog_enable_Enabled }}" + when: + - rhel8STIG_stigrule_230298_Manage + - result.rc == 0 +# R-230298 RHEL-08-010561 +- name: check if rsyslog.service is installed + shell: ! systemctl list-unit-files | grep "^rsyslog.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230298_rsyslog_start + service: + name: rsyslog.service + state: "{{ rhel8STIG_stigrule_230298_rsyslog_start_State }}" + when: + - rhel8STIG_stigrule_230298_Manage + - result.rc == 0 +# R-230310 RHEL-08-010670 +# If kernel core dumps are required, document the need with the ISSO. +- name: check if kdump.service is installed + shell: ! systemctl list-unit-files | grep "^kdump.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230310_kdump_disable + service: + name: kdump.service + enabled: "{{ rhel8STIG_stigrule_230310_kdump_disable_Enabled }}" + when: + - rhel8STIG_stigrule_230310_Manage + - result.rc == 0 +# R-230311 RHEL-08-010671 +- name: stigrule_230311__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: 'kernel.core_pattern=' + line: "{{ rhel8STIG_stigrule_230311__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230311_Manage +# R-230311 RHEL-08-010671 +- name: stigrule_230311_kernel_core_pattern + sysctl: + name: kernel.core_pattern + value: "{{ rhel8STIG_stigrule_230311_kernel_core_pattern_Value }}" + when: + - rhel8STIG_stigrule_230311_Manage +# R-230313 RHEL-08-010673 +- name: stigrule_230313__etc_security_limits_conf + lineinfile: + path: /etc/security/limits.conf + regexp: '^\* hard core' + line: "{{ rhel8STIG_stigrule_230313__etc_security_limits_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230313_Manage +# R-230314 RHEL-08-010674 +- name: stigrule_230314__etc_systemd_coredump_conf + lineinfile: + path: /etc/systemd/coredump.conf + regexp: '^Storage=' + line: "{{ rhel8STIG_stigrule_230314__etc_systemd_coredump_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230314_Manage +# R-230315 RHEL-08-010675 +- name: stigrule_230315__etc_systemd_coredump_conf + lineinfile: + path: /etc/systemd/coredump.conf + regexp: '^ProcessSizeMax=' + line: "{{ rhel8STIG_stigrule_230315__etc_systemd_coredump_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230315_Manage +# R-230324 RHEL-08-010760 +- name: stigrule_230324__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^CREATE_HOME' + line: "{{ rhel8STIG_stigrule_230324__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230324_Manage +# R-230329 RHEL-08-010820 +- name: stigrule_230329__etc_gdm_custom_conf + ini_file: + path: /etc/gdm/custom.conf + section: daemon + option: AutomaticLoginEnable + value: "{{ rhel8STIG_stigrule_230329__etc_gdm_custom_conf_Value }}" + no_extra_spaces: yes + when: + - rhel8STIG_stigrule_230329_Manage + - "'gdm' in packages" +# R-230330 RHEL-08-010830 +- name: stigrule_230330_PermitUserEnvironment + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PermitUserEnvironment\s+' + line: "{{ rhel8STIG_stigrule_230330_PermitUserEnvironment_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230330_Manage + - "'openssh-server' in packages" +# R-230346 RHEL-08-020024 +- name: stigrule_230346__etc_security_limits_conf + lineinfile: + path: /etc/security/limits.conf + regexp: '^\* hard maxlogins' + line: "{{ rhel8STIG_stigrule_230346__etc_security_limits_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230346_Manage +# R-230347 RHEL-08-020030 +- name: stigrule_230347__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/screensaver + option: lock-enabled + value: "{{ rhel8STIG_stigrule_230347__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_230347_Manage + - "'dconf' in packages" +# R-230348 RHEL-08-020040 +- name: stigrule_230348_ensure_tmux_is_installed + yum: + name: tmux + state: "{{ rhel8STIG_stigrule_230348_ensure_tmux_is_installed_State }}" + when: rhel8STIG_stigrule_230348_Manage +# R-230348 RHEL-08-020040 +- name: stigrule_230348__etc_tmux_conf + lineinfile: + path: /etc/tmux.conf + line: "{{ rhel8STIG_stigrule_230348__etc_tmux_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230348_Manage +# R-230349 RHEL-08-020041 +- name: stigrule_230349__etc_bashrc + lineinfile: + path: /etc/bashrc + line: "{{ rhel8STIG_stigrule_230349__etc_bashrc_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230349_Manage +# R-230352 RHEL-08-020060 +- name: stigrule_230352__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/session + option: idle-delay + value: "{{ rhel8STIG_stigrule_230352__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_230352_Manage + - "'dconf' in packages" +# R-230353 RHEL-08-020070 +- name: stigrule_230353__etc_tmux_conf + lineinfile: + path: /etc/tmux.conf + line: "{{ rhel8STIG_stigrule_230353__etc_tmux_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230353_Manage +# R-230354 RHEL-08-020080 +- name: stigrule_230354__etc_dconf_db_local_d_locks_session + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel8STIG_stigrule_230354__etc_dconf_db_local_d_locks_session_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230354_Manage +# R-230357 RHEL-08-020110 +- name: stigrule_230357__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*ucredit' + line: "{{ rhel8STIG_stigrule_230357__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230357_Manage +# R-230358 RHEL-08-020120 +- name: stigrule_230358__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*lcredit' + line: "{{ rhel8STIG_stigrule_230358__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230358_Manage +# R-230359 RHEL-08-020130 +- name: stigrule_230359__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*dcredit' + line: "{{ rhel8STIG_stigrule_230359__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230359_Manage +# R-230360 RHEL-08-020140 +- name: stigrule_230360__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*maxclassrepeat' + line: "{{ rhel8STIG_stigrule_230360__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230360_Manage +# R-230361 RHEL-08-020150 +- name: stigrule_230361__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*maxrepeat' + line: "{{ rhel8STIG_stigrule_230361__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230361_Manage +# R-230362 RHEL-08-020160 +- name: stigrule_230362__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*minclass' + line: "{{ rhel8STIG_stigrule_230362__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230362_Manage +# R-230363 RHEL-08-020170 +- name: stigrule_230363__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*difok' + line: "{{ rhel8STIG_stigrule_230363__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230363_Manage +# R-230365 RHEL-08-020190 +- name: stigrule_230365__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^PASS_MIN_DAYS' + line: "{{ rhel8STIG_stigrule_230365__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230365_Manage +# R-230366 RHEL-08-020200 +- name: stigrule_230366__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^PASS_MAX_DAYS' + line: "{{ rhel8STIG_stigrule_230366__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230366_Manage +# R-230369 RHEL-08-020230 +- name: stigrule_230369__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*minlen' + line: "{{ rhel8STIG_stigrule_230369__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230369_Manage +# R-230370 RHEL-08-020231 +- name: stigrule_230370__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^PASS_MIN_LEN' + line: "{{ rhel8STIG_stigrule_230370__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230370_Manage +# R-230375 RHEL-08-020280 +- name: stigrule_230375__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*ocredit' + line: "{{ rhel8STIG_stigrule_230375__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230375_Manage +# R-230377 RHEL-08-020300 +- name: stigrule_230377__etc_security_pwquality_conf + lineinfile: + path: /etc/security/pwquality.conf + regexp: '^\s*dictcheck' + line: "{{ rhel8STIG_stigrule_230377__etc_security_pwquality_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230377_Manage +# R-230378 RHEL-08-020310 +- name: stigrule_230378__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^FAIL_DELAY' + line: "{{ rhel8STIG_stigrule_230378__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230378_Manage +# R-230382 RHEL-08-020350 +- name: stigrule_230382_PrintLastLog + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)PrintLastLog\s+' + line: "{{ rhel8STIG_stigrule_230382_PrintLastLog_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230382_Manage + - "'openssh-server' in packages" +# R-230383 RHEL-08-020351 +- name: stigrule_230383__etc_login_defs + lineinfile: + path: /etc/login.defs + regexp: '^UMASK' + line: "{{ rhel8STIG_stigrule_230383__etc_login_defs_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230383_Manage +# R-230386 RHEL-08-030000 +- name : stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv$' + line: "{{ rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230386_Manage +# R-230386 RHEL-08-030000 +- name : stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv$' + line: "{{ rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_euid_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230386_Manage +# R-230386 RHEL-08-030000 +- name : stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv$' + line: "{{ rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230386_Manage +# R-230386 RHEL-08-030000 +- name : stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv$' + line: "{{ rhel8STIG_stigrule_230386__etc_audit_rules_d_audit_rules_execve_egid_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230386_Manage +# R-230387 RHEL-08-030010 +- name: stigrule_230387__etc_rsyslog_conf + lineinfile: + path: /etc/rsyslog.conf + line: "{{ rhel8STIG_stigrule_230387__etc_rsyslog_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230387_Manage +# R-230388 RHEL-08-030020 +- name: stigrule_230388__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^action_mail_acct = ' + line: "{{ rhel8STIG_stigrule_230388__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230388_Manage +# R-230389 RHEL-08-030030 +- name: stigrule_230389__etc_aliases + lineinfile: + path: /etc/aliases + regexp: '^postmaster:' + line: "{{ rhel8STIG_stigrule_230389__etc_aliases_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230389_Manage +# R-230390 RHEL-08-030040 +- name: stigrule_230390__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^disk_error_action = ' + line: "{{ rhel8STIG_stigrule_230390__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230390_Manage +# R-230392 RHEL-08-030060 +- name: stigrule_230392__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^disk_full_action = ' + line: "{{ rhel8STIG_stigrule_230392__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230392_Manage +# R-230393 RHEL-08-030061 +- name: stigrule_230393__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^local_events = ' + line: "{{ rhel8STIG_stigrule_230393__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230393_Manage +# R-230394 RHEL-08-030062 +- name: stigrule_230394__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^name_format = ' + line: "{{ rhel8STIG_stigrule_230394__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230394_Manage +# R-230395 RHEL-08-030063 +- name: stigrule_230395__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^log_format = ' + line: "{{ rhel8STIG_stigrule_230395__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230395_Manage +# R-230396 RHEL-08-030070 +- name: stigrule_230396__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^log_group = ' + line: "{{ rhel8STIG_stigrule_230396__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230396_Manage +# R-230402 RHEL-08-030121 +- name : stigrule_230402__etc_audit_rules_d_audit_rules_e2 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-e 2$' + line: "{{ rhel8STIG_stigrule_230402__etc_audit_rules_d_audit_rules_e2_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230402_Manage +# R-230403 RHEL-08-030122 +- name : stigrule_230403__etc_audit_rules_d_audit_rules_loginuid_immutable + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^--loginuid-immutable$' + line: "{{ rhel8STIG_stigrule_230403__etc_audit_rules_d_audit_rules_loginuid_immutable_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230403_Manage +# R-230404 RHEL-08-030130 +- name : stigrule_230404__etc_audit_rules_d_audit_rules__etc_shadow + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/shadow -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230404__etc_audit_rules_d_audit_rules__etc_shadow_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230404_Manage +# R-230405 RHEL-08-030140 +- name : stigrule_230405__etc_audit_rules_d_audit_rules__etc_security_opasswd + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/security/opasswd -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230405__etc_audit_rules_d_audit_rules__etc_security_opasswd_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230405_Manage +# R-230406 RHEL-08-030150 +- name : stigrule_230406__etc_audit_rules_d_audit_rules__etc_passwd + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/passwd -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230406__etc_audit_rules_d_audit_rules__etc_passwd_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230406_Manage +# R-230407 RHEL-08-030160 +- name : stigrule_230407__etc_audit_rules_d_audit_rules__etc_gshadow + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/gshadow -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230407__etc_audit_rules_d_audit_rules__etc_gshadow_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230407_Manage +# R-230408 RHEL-08-030170 +- name : stigrule_230408__etc_audit_rules_d_audit_rules__etc_group + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/group -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230408__etc_audit_rules_d_audit_rules__etc_group_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230408_Manage +# R-230409 RHEL-08-030171 +- name : stigrule_230409__etc_audit_rules_d_audit_rules__etc_sudoers + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/sudoers -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230409__etc_audit_rules_d_audit_rules__etc_sudoers_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230409_Manage +# R-230410 RHEL-08-030172 +- name : stigrule_230410__etc_audit_rules_d_audit_rules__etc_sudoers_d_ + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /etc/sudoers.d/ -p wa -k identity$' + line: "{{ rhel8STIG_stigrule_230410__etc_audit_rules_d_audit_rules__etc_sudoers_d__Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230410_Manage +# R-230411 RHEL-08-030180 +- name: stigrule_230411_audit + yum: + name: audit + state: "{{ rhel8STIG_stigrule_230411_audit_State }}" + when: rhel8STIG_stigrule_230411_Manage +# R-230412 RHEL-08-030190 +- name : stigrule_230412__etc_audit_rules_d_audit_rules__usr_bin_su + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change$' + line: "{{ rhel8STIG_stigrule_230412__etc_audit_rules_d_audit_rules__usr_bin_su_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230412_Manage +# R-230413 RHEL-08-030200 +- name : stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32_unset + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32_unset_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230413_Manage +# R-230413 RHEL-08-030200 +- name : stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64_unset + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64_unset_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230413_Manage +# R-230413 RHEL-08-030200 +- name : stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230413_Manage +# R-230413 RHEL-08-030200 +- name : stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230413__etc_audit_rules_d_audit_rules_lremovexattr_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230413_Manage +# R-230418 RHEL-08-030250 +- name : stigrule_230418__etc_audit_rules_d_audit_rules__usr_bin_chage + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage$' + line: "{{ rhel8STIG_stigrule_230418__etc_audit_rules_d_audit_rules__usr_bin_chage_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230418_Manage +# R-230419 RHEL-08-030260 +- name : stigrule_230419__etc_audit_rules_d_audit_rules__usr_bin_chcon + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230419__etc_audit_rules_d_audit_rules__usr_bin_chcon_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230419_Manage +# R-230421 RHEL-08-030280 +- name : stigrule_230421__etc_audit_rules_d_audit_rules__usr_bin_ssh_agent + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh$' + line: "{{ rhel8STIG_stigrule_230421__etc_audit_rules_d_audit_rules__usr_bin_ssh_agent_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230421_Manage +# R-230422 RHEL-08-030290 +- name : stigrule_230422__etc_audit_rules_d_audit_rules__usr_bin_passwd + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd$' + line: "{{ rhel8STIG_stigrule_230422__etc_audit_rules_d_audit_rules__usr_bin_passwd_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230422_Manage +# R-230423 RHEL-08-030300 +- name : stigrule_230423__etc_audit_rules_d_audit_rules__usr_bin_mount + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount$' + line: "{{ rhel8STIG_stigrule_230423__etc_audit_rules_d_audit_rules__usr_bin_mount_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230423_Manage +# R-230424 RHEL-08-030301 +- name : stigrule_230424__etc_audit_rules_d_audit_rules__usr_bin_umount + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount$' + line: "{{ rhel8STIG_stigrule_230424__etc_audit_rules_d_audit_rules__usr_bin_umount_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230424_Manage +# R-230425 RHEL-08-030302 +- name : stigrule_230425__etc_audit_rules_d_audit_rules_mount_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount$' + line: "{{ rhel8STIG_stigrule_230425__etc_audit_rules_d_audit_rules_mount_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230425_Manage +# R-230425 RHEL-08-030302 +- name : stigrule_230425__etc_audit_rules_d_audit_rules_mount_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount$' + line: "{{ rhel8STIG_stigrule_230425__etc_audit_rules_d_audit_rules_mount_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230425_Manage +# R-230426 RHEL-08-030310 +- name : stigrule_230426__etc_audit_rules_d_audit_rules__usr_sbin_unix_update + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230426__etc_audit_rules_d_audit_rules__usr_sbin_unix_update_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230426_Manage +# R-230427 RHEL-08-030311 +- name : stigrule_230427__etc_audit_rules_d_audit_rules__usr_sbin_postdrop + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230427__etc_audit_rules_d_audit_rules__usr_sbin_postdrop_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230427_Manage +# R-230428 RHEL-08-030312 +- name : stigrule_230428__etc_audit_rules_d_audit_rules__usr_sbin_postqueue + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230428__etc_audit_rules_d_audit_rules__usr_sbin_postqueue_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230428_Manage +# R-230429 RHEL-08-030313 +- name : stigrule_230429__etc_audit_rules_d_audit_rules__usr_sbin_semanage + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230429__etc_audit_rules_d_audit_rules__usr_sbin_semanage_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230429_Manage +# R-230430 RHEL-08-030314 +- name : stigrule_230430__etc_audit_rules_d_audit_rules__usr_sbin_setfiles + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230430__etc_audit_rules_d_audit_rules__usr_sbin_setfiles_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230430_Manage +# R-230431 RHEL-08-030315 +- name : stigrule_230431__etc_audit_rules_d_audit_rules__usr_sbin_userhelper + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230431__etc_audit_rules_d_audit_rules__usr_sbin_userhelper_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230431_Manage +# R-230432 RHEL-08-030316 +- name : stigrule_230432__etc_audit_rules_d_audit_rules__usr_sbin_setsebool + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230432__etc_audit_rules_d_audit_rules__usr_sbin_setsebool_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230432_Manage +# R-230433 RHEL-08-030317 +- name : stigrule_230433__etc_audit_rules_d_audit_rules__usr_sbin_unix_chkpwd + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update$' + line: "{{ rhel8STIG_stigrule_230433__etc_audit_rules_d_audit_rules__usr_sbin_unix_chkpwd_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230433_Manage +# R-230434 RHEL-08-030320 +- name : stigrule_230434__etc_audit_rules_d_audit_rules__usr_libexec_openssh_ssh_keysign + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh$' + line: "{{ rhel8STIG_stigrule_230434__etc_audit_rules_d_audit_rules__usr_libexec_openssh_ssh_keysign_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230434_Manage +# R-230435 RHEL-08-030330 +- name : stigrule_230435__etc_audit_rules_d_audit_rules__usr_bin_setfacl + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230435__etc_audit_rules_d_audit_rules__usr_bin_setfacl_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230435_Manage +# R-230436 RHEL-08-030340 +- name : stigrule_230436__etc_audit_rules_d_audit_rules__usr_sbin_pam_timestamp_check + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check$' + line: "{{ rhel8STIG_stigrule_230436__etc_audit_rules_d_audit_rules__usr_sbin_pam_timestamp_check_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230436_Manage +# R-230437 RHEL-08-030350 +- name : stigrule_230437__etc_audit_rules_d_audit_rules__usr_bin_newgrp + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd$' + line: "{{ rhel8STIG_stigrule_230437__etc_audit_rules_d_audit_rules__usr_bin_newgrp_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230437_Manage +# R-230438 RHEL-08-030360 +- name : stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230438_Manage +# R-230438 RHEL-08-030360 +- name : stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230438__etc_audit_rules_d_audit_rules_init_module_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230438_Manage +# R-230439 RHEL-08-030361 +- name : stigrule_230439__etc_audit_rules_d_audit_rules_rename_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S rename -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230439__etc_audit_rules_d_audit_rules_rename_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230439_Manage +# R-230439 RHEL-08-030361 +- name : stigrule_230439__etc_audit_rules_d_audit_rules_rename_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S rename -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230439__etc_audit_rules_d_audit_rules_rename_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230439_Manage +# R-230444 RHEL-08-030370 +- name : stigrule_230444__etc_audit_rules_d_audit_rules__usr_bin_gpasswd + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd$' + line: "{{ rhel8STIG_stigrule_230444__etc_audit_rules_d_audit_rules__usr_bin_gpasswd_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230444_Manage +# R-230446 RHEL-08-030390 +- name : stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230446_Manage +# R-230446 RHEL-08-030390 +- name : stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng$' + line: "{{ rhel8STIG_stigrule_230446__etc_audit_rules_d_audit_rules_delete_module_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230446_Manage +# R-230447 RHEL-08-030400 +- name : stigrule_230447__etc_audit_rules_d_audit_rules__usr_bin_crontab + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab$' + line: "{{ rhel8STIG_stigrule_230447__etc_audit_rules_d_audit_rules__usr_bin_crontab_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230447_Manage +# R-230448 RHEL-08-030410 +- name : stigrule_230448__etc_audit_rules_d_audit_rules__usr_bin_chsh + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd$' + line: "{{ rhel8STIG_stigrule_230448__etc_audit_rules_d_audit_rules__usr_bin_chsh_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230448_Manage +# R-230449 RHEL-08-030420 +- name : stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access$' + line: "{{ rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230449_Manage +# R-230449 RHEL-08-030420 +- name : stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access$' + line: "{{ rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EPERM_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230449_Manage +# R-230449 RHEL-08-030420 +- name : stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access$' + line: "{{ rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230449_Manage +# R-230449 RHEL-08-030420 +- name : stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access$' + line: "{{ rhel8STIG_stigrule_230449__etc_audit_rules_d_audit_rules_truncate_EACCES_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230449_Manage +# R-230455 RHEL-08-030480 +- name : stigrule_230455__etc_audit_rules_d_audit_rules_chown_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230455__etc_audit_rules_d_audit_rules_chown_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230455_Manage +# R-230455 RHEL-08-030480 +- name : stigrule_230455__etc_audit_rules_d_audit_rules_chown_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230455__etc_audit_rules_d_audit_rules_chown_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230455_Manage +# R-230456 RHEL-08-030490 +- name : stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b32 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b32_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230456_Manage +# R-230456 RHEL-08-030490 +- name : stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b64 + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230456__etc_audit_rules_d_audit_rules_chmod_b64_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230456_Manage +# R-230462 RHEL-08-030550 +- name : stigrule_230462__etc_audit_rules_d_audit_rules__usr_bin_sudo + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd$' + line: "{{ rhel8STIG_stigrule_230462__etc_audit_rules_d_audit_rules__usr_bin_sudo_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230462_Manage +# R-230463 RHEL-08-030560 +- name : stigrule_230463__etc_audit_rules_d_audit_rules__usr_sbin_usermod + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod$' + line: "{{ rhel8STIG_stigrule_230463__etc_audit_rules_d_audit_rules__usr_sbin_usermod_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230463_Manage +# R-230464 RHEL-08-030570 +- name : stigrule_230464__etc_audit_rules_d_audit_rules__usr_bin_chacl + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod$' + line: "{{ rhel8STIG_stigrule_230464__etc_audit_rules_d_audit_rules__usr_bin_chacl_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230464_Manage +# R-230465 RHEL-08-030580 +- name : stigrule_230465__etc_audit_rules_d_audit_rules__usr_bin_kmod + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules$' + line: "{{ rhel8STIG_stigrule_230465__etc_audit_rules_d_audit_rules__usr_bin_kmod_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230465_Manage +# R-230466 RHEL-08-030590 +- name : stigrule_230466__etc_audit_rules_d_audit_rules__var_log_faillock + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /var/log/faillock -p wa -k logins$' + line: "{{ rhel8STIG_stigrule_230466__etc_audit_rules_d_audit_rules__var_log_faillock_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230466_Manage +# R-230467 RHEL-08-030600 +- name : stigrule_230467__etc_audit_rules_d_audit_rules__var_log_lastlog + lineinfile: + path: /etc/audit/rules.d/audit.rules + regexp: '^-w /var/log/lastlog -p wa -k logins$' + line: "{{ rhel8STIG_stigrule_230467__etc_audit_rules_d_audit_rules__var_log_lastlog_Line }}" + notify: auditd_restart + when: rhel8STIG_stigrule_230467_Manage +# R-230477 RHEL-08-030670 +- name: stigrule_230477_rsyslog + yum: + name: rsyslog + state: "{{ rhel8STIG_stigrule_230477_rsyslog_State }}" + when: rhel8STIG_stigrule_230477_Manage +# R-230478 RHEL-08-030680 +- name: stigrule_230478_rsyslog_gnutls + yum: + name: rsyslog-gnutls + state: "{{ rhel8STIG_stigrule_230478_rsyslog_gnutls_State }}" + when: rhel8STIG_stigrule_230478_Manage +# R-230480 RHEL-08-030700 +- name: stigrule_230480__etc_audit_auditd_conf + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^overflow_action = ' + line: "{{ rhel8STIG_stigrule_230480__etc_audit_auditd_conf_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230480_Manage +# R-230481 RHEL-08-030710 +- name: stigrule_230481__etc_rsyslog_conf_DefaultNetstreamDriver + lineinfile: + path: /etc/rsyslog.conf + line: "{{ rhel8STIG_stigrule_230481__etc_rsyslog_conf_DefaultNetstreamDriver_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230481_Manage +# R-230481 RHEL-08-030710 +- name: stigrule_230481__etc_rsyslog_conf_ActionSendStreamDriverMode + lineinfile: + path: /etc/rsyslog.conf + line: "{{ rhel8STIG_stigrule_230481__etc_rsyslog_conf_ActionSendStreamDriverMode_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230481_Manage +# R-230482 RHEL-08-030720 +- name: stigrule_230482__etc_rsyslog_conf_DefaultNetstreamDriver + lineinfile: + path: /etc/rsyslog.conf + line: "{{ rhel8STIG_stigrule_230482__etc_rsyslog_conf_DefaultNetstreamDriver_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230482_Manage +# R-230483 RHEL-08-030730 +- name: stigrule_230483__etc_audit_auditd_conf_space_left + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^space_left = ' + line: "{{ rhel8STIG_stigrule_230483__etc_audit_auditd_conf_space_left_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_230483_Manage +# R-230487 RHEL-08-040000 +- name: stigrule_230487_telnet_server + yum: + name: telnet-server + state: "{{ rhel8STIG_stigrule_230487_telnet_server_State }}" + when: rhel8STIG_stigrule_230487_Manage +# R-230488 RHEL-08-040001 +- name: stigrule_230488_abrt_ + yum: + name: abrt* + state: "{{ rhel8STIG_stigrule_230488_abrt__State }}" + when: rhel8STIG_stigrule_230488_Manage +# R-230489 RHEL-08-040002 +- name: stigrule_230489_sendmail + yum: + name: sendmail + state: "{{ rhel8STIG_stigrule_230489_sendmail_State }}" + when: rhel8STIG_stigrule_230489_Manage +# R-230492 RHEL-08-040010 +- name: stigrule_230492_rsh_server + yum: + name: rsh-server + state: "{{ rhel8STIG_stigrule_230492_rsh_server_State }}" + when: rhel8STIG_stigrule_230492_Manage +# R-230502 RHEL-08-040070 +- name: check if autofs.service is installed + shell: ! systemctl list-unit-files | grep "^autofs.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230502_autofs_stop + service: + name: autofs.service + state: "{{ rhel8STIG_stigrule_230502_autofs_stop_State }}" + when: + - rhel8STIG_stigrule_230502_Manage + - result.rc == 0 +# R-230502 RHEL-08-040070 +- name: check if autofs.service is installed + shell: ! systemctl list-unit-files | grep "^autofs.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230502_autofs_disable + service: + name: autofs.service + enabled: "{{ rhel8STIG_stigrule_230502_autofs_disable_Enabled }}" + when: + - rhel8STIG_stigrule_230502_Manage + - result.rc == 0 +# R-230505 RHEL-08-040100 +- name: stigrule_230505_firewalld_noarch + yum: + name: firewalld.noarch + state: "{{ rhel8STIG_stigrule_230505_firewalld_noarch_State }}" + when: rhel8STIG_stigrule_230505_Manage +# R-230506 RHEL-08-040110 +- name: check if wireless network adapters are disabled + shell: "[[ $(nmcli radio wifi) == 'enabled' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230506_nmcli_radio_wifi_off + shell: "{{ rhel8STIG_stigrule_230506_nmcli_radio_wifi_off_Command }}" + when: + - rhel8STIG_stigrule_230506_Manage + - cmd_result.rc == 0 +# R-230526 RHEL-08-040160 +- name: stigrule_230526_ensure_openssh_server_x86_64_is_installed + yum: + name: openssh-server.x86_64 + state: "{{ rhel8STIG_stigrule_230526_ensure_openssh_server_x86_64_is_installed_State }}" + when: rhel8STIG_stigrule_230526_Manage +# R-230526 RHEL-08-040160 +- name: check if sshd.service is installed + shell: ! systemctl list-unit-files | grep "^sshd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_230526_sshd_enable + service: + name: sshd.service + enabled: "{{ rhel8STIG_stigrule_230526_sshd_enable_Enabled }}" + when: + - rhel8STIG_stigrule_230526_Manage + - result.rc == 0 +# R-230527 RHEL-08-040161 +- name: stigrule_230527_RekeyLimit + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)RekeyLimit\s+' + line: "{{ rhel8STIG_stigrule_230527_RekeyLimit_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230527_Manage + - "'openssh-server' in packages" +# R-230529 RHEL-08-040170 +- name: stigrule_230529_systemctl_mask_ctrl_alt_del_target + systemd: + name: ctrl-alt-del.target + enabled: no + masked: yes + when: + - rhel8STIG_stigrule_230529_Manage +# R-230531 RHEL-08-040172 +- name: stigrule_230531__etc_systemd_system_conf + ini_file: + path: /etc/systemd/system.conf + section: Manager + option: CtrlAltDelBurstAction + value: "{{ rhel8STIG_stigrule_230531__etc_systemd_system_conf_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_230531_Manage + - "'dconf' in packages" +# R-230533 RHEL-08-040190 +- name: stigrule_230533_tftp_server + yum: + name: tftp-server + state: "{{ rhel8STIG_stigrule_230533_tftp_server_State }}" + when: rhel8STIG_stigrule_230533_Manage +# R-230535 RHEL-08-040210 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230535_net_ipv6_conf_default_accept_redirects + sysctl: + name: net.ipv6.conf.default.accept_redirects + value: "{{ rhel8STIG_stigrule_230535_net_ipv6_conf_default_accept_redirects_Value }}" + when: + - rhel8STIG_stigrule_230535_Manage + - cmd_result.rc == 0 +# R-230536 RHEL-08-040220 +- name: stigrule_230536_net_ipv4_conf_all_send_redirects + sysctl: + name: net.ipv4.conf.all.send_redirects + value: "{{ rhel8STIG_stigrule_230536_net_ipv4_conf_all_send_redirects_Value }}" + when: + - rhel8STIG_stigrule_230536_Manage +# R-230537 RHEL-08-040230 +- name: stigrule_230537_net_ipv4_icmp_echo_ignore_broadcasts + sysctl: + name: net.ipv4.icmp_echo_ignore_broadcasts + value: "{{ rhel8STIG_stigrule_230537_net_ipv4_icmp_echo_ignore_broadcasts_Value }}" + when: + - rhel8STIG_stigrule_230537_Manage +# R-230538 RHEL-08-040240 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230538_net_ipv6_conf_all_accept_source_route + sysctl: + name: net.ipv6.conf.all.accept_source_route + value: "{{ rhel8STIG_stigrule_230538_net_ipv6_conf_all_accept_source_route_Value }}" + when: + - rhel8STIG_stigrule_230538_Manage + - cmd_result.rc == 0 +# R-230539 RHEL-08-040250 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230539_net_ipv6_conf_default_accept_source_route + sysctl: + name: net.ipv6.conf.default.accept_source_route + value: "{{ rhel8STIG_stigrule_230539_net_ipv6_conf_default_accept_source_route_Value }}" + when: + - rhel8STIG_stigrule_230539_Manage + - cmd_result.rc == 0 +# R-230540 RHEL-08-040260 +- name: stigrule_230540_net_ipv4_ip_forward + sysctl: + name: net.ipv4.ip_forward + value: "{{ rhel8STIG_stigrule_230540_net_ipv4_ip_forward_Value }}" + when: + - rhel8STIG_stigrule_230540_Manage +# R-230540 RHEL-08-040260 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230540_net_ipv6_conf_all_forwarding + sysctl: + name: net.ipv6.conf.all.forwarding + value: "{{ rhel8STIG_stigrule_230540_net_ipv6_conf_all_forwarding_Value }}" + when: + - rhel8STIG_stigrule_230540_Manage + - cmd_result.rc == 0 +# R-230541 RHEL-08-040261 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230541_net_ipv6_conf_all_accept_ra + sysctl: + name: net.ipv6.conf.all.accept_ra + value: "{{ rhel8STIG_stigrule_230541_net_ipv6_conf_all_accept_ra_Value }}" + when: + - rhel8STIG_stigrule_230541_Manage + - cmd_result.rc == 0 +# R-230542 RHEL-08-040262 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230542_net_ipv6_conf_default_accept_ra + sysctl: + name: net.ipv6.conf.default.accept_ra + value: "{{ rhel8STIG_stigrule_230542_net_ipv6_conf_default_accept_ra_Value }}" + when: + - rhel8STIG_stigrule_230542_Manage + - cmd_result.rc == 0 +# R-230543 RHEL-08-040270 +- name: stigrule_230543_net_ipv4_conf_default_send_redirects + sysctl: + name: net.ipv4.conf.default.send_redirects + value: "{{ rhel8STIG_stigrule_230543_net_ipv4_conf_default_send_redirects_Value }}" + when: + - rhel8STIG_stigrule_230543_Manage +# R-230544 RHEL-08-040280 +- name: check if ipv6 is enabled + shell: "[[ $(cat /sys/module/ipv6/parameters/disable) == '0' ]]" + changed_when: False + check_mode: no + register: cmd_result + failed_when: cmd_result.rc > 1 +- name: stigrule_230544_net_ipv6_conf_all_accept_redirects + sysctl: + name: net.ipv6.conf.all.accept_redirects + value: "{{ rhel8STIG_stigrule_230544_net_ipv6_conf_all_accept_redirects_Value }}" + when: + - rhel8STIG_stigrule_230544_Manage + - cmd_result.rc == 0 +# R-230545 RHEL-08-040281 +- name: stigrule_230545__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.unprivileged_bpf_disabled = ' + line: "{{ rhel8STIG_stigrule_230545__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230545_Manage +# R-230546 RHEL-08-040282 +- name: stigrule_230546__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.yama.ptrace_scope = ' + line: "{{ rhel8STIG_stigrule_230546__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230546_Manage +# R-230546 RHEL-08-040282 +- name: stigrule_230546_kernel_yama_ptrace_scope + sysctl: + name: kernel.yama.ptrace_scope + value: "{{ rhel8STIG_stigrule_230546_kernel_yama_ptrace_scope_Value }}" + when: + - rhel8STIG_stigrule_230546_Manage +# R-230547 RHEL-08-040283 +- name: stigrule_230547__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^kernel.kptr_restrict = ' + line: "{{ rhel8STIG_stigrule_230547__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230547_Manage +# R-230548 RHEL-08-040284 +- name: stigrule_230548__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^user.max_user_namespaces = ' + line: "{{ rhel8STIG_stigrule_230548__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230548_Manage +# R-230548 RHEL-08-040284 +- name: stigrule_230548_user_max_user_namespaces + sysctl: + name: user.max_user_namespaces + value: "{{ rhel8STIG_stigrule_230548_user_max_user_namespaces_Value }}" + when: + - rhel8STIG_stigrule_230548_Manage +# R-230549 RHEL-08-040285 +- name: stigrule_230549__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^net.ipv4.conf.all.rp_filter = ' + line: "{{ rhel8STIG_stigrule_230549__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_230549_Manage +# R-230555 RHEL-08-040340 +- name: stigrule_230555_X11Forwarding + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)X11Forwarding\s+' + line: "{{ rhel8STIG_stigrule_230555_X11Forwarding_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230555_Manage + - "'openssh-server' in packages" +# R-230556 RHEL-08-040341 +- name: stigrule_230556_X11UseLocalhost + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)X11UseLocalhost\s+' + line: "{{ rhel8STIG_stigrule_230556_X11UseLocalhost_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_230556_Manage + - "'openssh-server' in packages" +# R-230558 RHEL-08-040360 +- name: stigrule_230558_vsftpd + yum: + name: vsftpd + state: "{{ rhel8STIG_stigrule_230558_vsftpd_State }}" + when: rhel8STIG_stigrule_230558_Manage +# R-230559 RHEL-08-040370 +- name: stigrule_230559_gssproxy + yum: + name: gssproxy + state: "{{ rhel8STIG_stigrule_230559_gssproxy_State }}" + when: rhel8STIG_stigrule_230559_Manage +# R-230560 RHEL-08-040380 +- name: stigrule_230560_iprutils + yum: + name: iprutils + state: "{{ rhel8STIG_stigrule_230560_iprutils_State }}" + when: rhel8STIG_stigrule_230560_Manage +# R-230561 RHEL-08-040390 +- name: stigrule_230561_tuned + yum: + name: tuned + state: "{{ rhel8STIG_stigrule_230561_tuned_State }}" + when: rhel8STIG_stigrule_230561_Manage +# R-244519 RHEL-08-010049 +- name: stigrule_244519__etc_dconf_db_local_d_01_banner_message + ini_file: + path: /etc/dconf/db/local.d/01-banner-message + section: org/gnome/login-screen + option: banner-message-enable + value: "{{ rhel8STIG_stigrule_244519__etc_dconf_db_local_d_01_banner_message_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_244519_Manage + - "'dconf' in packages" +# R-244523 RHEL-08-010152 +- name: stigrule_244523__usr_lib_systemd_system_emergency_service + ini_file: + path: /usr/lib/systemd/system/emergency.service + section: Service + option: ExecStart + value: "{{ rhel8STIG_stigrule_244523__usr_lib_systemd_system_emergency_service_Value }}" + no_extra_spaces: yes + when: + - rhel8STIG_stigrule_244523_Manage +# R-244525 RHEL-08-010201 +- name: stigrule_244525_ClientAliveInterval + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)ClientAliveInterval\s+' + line: "{{ rhel8STIG_stigrule_244525_ClientAliveInterval_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_244525_Manage + - "'openssh-server' in packages" +# R-244527 RHEL-08-010472 +- name: stigrule_244527_rng_tools + yum: + name: rng-tools + state: "{{ rhel8STIG_stigrule_244527_rng_tools_State }}" + when: rhel8STIG_stigrule_244527_Manage +# R-244528 RHEL-08-010522 +- name: stigrule_244528_GSSAPIAuthentication + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^\s*(?i)GSSAPIAuthentication\s+' + line: "{{ rhel8STIG_stigrule_244528_GSSAPIAuthentication_Line }}" + notify: ssh_restart + when: + - rhel8STIG_stigrule_244528_Manage + - "'openssh-server' in packages" +# R-244535 RHEL-08-020031 +- name: stigrule_244535__etc_dconf_db_local_d_00_screensaver + ini_file: + path: /etc/dconf/db/local.d/00-screensaver + section: org/gnome/desktop/screensaver + option: lock-delay + value: "{{ rhel8STIG_stigrule_244535__etc_dconf_db_local_d_00_screensaver_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_244535_Manage + - "'dconf' in packages" +# R-244536 RHEL-08-020032 +- name: stigrule_244536__etc_dconf_db_local_d_02_login_screen + ini_file: + path: /etc/dconf/db/local.d/02-login-screen + section: org/gnome/login-screen + option: disable-user-list + value: "{{ rhel8STIG_stigrule_244536__etc_dconf_db_local_d_02_login_screen_Value }}" + no_extra_spaces: yes + notify: dconf_update + when: + - rhel8STIG_stigrule_244536_Manage + - "'dconf' in packages" +# R-244537 RHEL-08-020039 +- name: stigrule_244537_tmux + yum: + name: tmux + state: "{{ rhel8STIG_stigrule_244537_tmux_State }}" + when: rhel8STIG_stigrule_244537_Manage +# R-244538 RHEL-08-020081 +- name: stigrule_244538__etc_dconf_db_local_d_locks_session_idle_delay + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel8STIG_stigrule_244538__etc_dconf_db_local_d_locks_session_idle_delay_Line }}" + create: yes + when: + - rhel8STIG_stigrule_244538_Manage +# R-244539 RHEL-08-020082 +- name: stigrule_244539__etc_dconf_db_local_d_locks_session_lock_enabled + lineinfile: + path: /etc/dconf/db/local.d/locks/session + line: "{{ rhel8STIG_stigrule_244539__etc_dconf_db_local_d_locks_session_lock_enabled_Line }}" + create: yes + when: + - rhel8STIG_stigrule_244539_Manage +# R-244542 RHEL-08-030181 +- name: check if auditd.service is installed + shell: ! systemctl list-unit-files | grep "^auditd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_244542_auditd_enable + service: + name: auditd.service + enabled: "{{ rhel8STIG_stigrule_244542_auditd_enable_Enabled }}" + when: + - rhel8STIG_stigrule_244542_Manage + - result.rc == 0 +# R-244542 RHEL-08-030181 +- name: check if auditd.service is installed + shell: ! systemctl list-unit-files | grep "^auditd.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_244542_auditd_start + service: + name: auditd.service + state: "{{ rhel8STIG_stigrule_244542_auditd_start_State }}" + when: + - rhel8STIG_stigrule_244542_Manage + - result.rc == 0 +# R-244543 RHEL-08-030731 +- name: stigrule_244543__etc_audit_auditd_conf_space_left_action + lineinfile: + path: /etc/audit/auditd.conf + regexp: '^space_left_action = ' + line: "{{ rhel8STIG_stigrule_244543__etc_audit_auditd_conf_space_left_action_Line }}" + create: yes + notify: auditd_restart + when: + - rhel8STIG_stigrule_244543_Manage +# R-244544 RHEL-08-040101 +- name: check if firewalld.service is installed + shell: ! systemctl list-unit-files | grep "^firewalld.service[ \t]\+" + changed_when: False + check_mode: no + register: result + failed_when: result.rc > 1 +- name: stigrule_244544_firewalld_enable + service: + name: firewalld.service + enabled: "{{ rhel8STIG_stigrule_244544_firewalld_enable_Enabled }}" + when: + - rhel8STIG_stigrule_244544_Manage + - result.rc == 0 +# R-244549 RHEL-08-040159 +- name: stigrule_244549_openssh_server_x86_64 + yum: + name: openssh-server.x86_64 + state: "{{ rhel8STIG_stigrule_244549_openssh_server_x86_64_State }}" + when: rhel8STIG_stigrule_244549_Manage +# R-244550 RHEL-08-040209 +- name: stigrule_244550_net_ipv4_conf_default_accept_redirects + sysctl: + name: net.ipv4.conf.default.accept_redirects + value: "{{ rhel8STIG_stigrule_244550_net_ipv4_conf_default_accept_redirects_Value }}" + when: + - rhel8STIG_stigrule_244550_Manage +# R-244551 RHEL-08-040239 +- name: stigrule_244551_net_ipv4_conf_all_accept_source_route + sysctl: + name: net.ipv4.conf.all.accept_source_route + value: "{{ rhel8STIG_stigrule_244551_net_ipv4_conf_all_accept_source_route_Value }}" + when: + - rhel8STIG_stigrule_244551_Manage +# R-244552 RHEL-08-040249 +- name: stigrule_244552_net_ipv4_conf_default_accept_source_route + sysctl: + name: net.ipv4.conf.default.accept_source_route + value: "{{ rhel8STIG_stigrule_244552_net_ipv4_conf_default_accept_source_route_Value }}" + when: + - rhel8STIG_stigrule_244552_Manage +# R-244553 RHEL-08-040279 +- name: stigrule_244553_net_ipv4_conf_all_accept_redirects + sysctl: + name: net.ipv4.conf.all.accept_redirects + value: "{{ rhel8STIG_stigrule_244553_net_ipv4_conf_all_accept_redirects_Value }}" + when: + - rhel8STIG_stigrule_244553_Manage +# R-244554 RHEL-08-040286 +- name: stigrule_244554__etc_sysctl_d_99_sysctl_conf + lineinfile: + path: /etc/sysctl.d/99-sysctl.conf + regexp: '^net.core.bpf_jit_harden = ' + line: "{{ rhel8STIG_stigrule_244554__etc_sysctl_d_99_sysctl_conf_Line }}" + create: yes + when: + - rhel8STIG_stigrule_244554_Manage diff --git a/collections/ansible_collections/demo/compliance/roles/win2022STIG/callback_plugins/stig_xml.py b/collections/ansible_collections/demo/compliance/roles/win2022STIG/callback_plugins/stig_xml.py new file mode 100644 index 0000000..cfff078 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/win2022STIG/callback_plugins/stig_xml.py @@ -0,0 +1,86 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.plugins.callback import CallbackBase +from time import gmtime, strftime +import platform +import tempfile +import re +import sys +import os +import xml.etree.ElementTree as ET +import xml.dom.minidom + +class CallbackModule(CallbackBase): + CALLBACK_VERSION = 2.0 + CALLBACK_TYPE = 'xml' + CALLBACK_NAME = 'stig_xml' + + CALLBACK_NEEDS_WHITELIST = True + + def _get_STIG_path(self): + cwd = os.path.abspath('.') + for dirpath, dirs, files in os.walk(cwd): + if os.path.sep + 'files' in dirpath and '.xml' in files[0]: + return os.path.join(cwd, dirpath, files[0]) + + def __init__(self): + super(CallbackModule, self).__init__() + self.rules = {} + self.stig_path = os.environ.get('STIG_PATH') + self.XML_path = os.environ.get('XML_PATH') + if self.stig_path is None: + self.stig_path = self._get_STIG_path() + self._display.display('Using STIG_PATH: {}'.format(self.stig_path)) + if self.XML_path is None: + self.XML_path = tempfile.mkdtemp() + "/xccdf-results.xml" + self._display.display('Using XML_PATH: {}'.format(self.XML_path)) + + print("Writing: {}".format(self.XML_path)) + STIG_name = os.path.basename(self.stig_path) + ET.register_namespace('cdf', 'http://checklists.nist.gov/xccdf/1.2') + self.tr = ET.Element('{http://checklists.nist.gov/xccdf/1.2}TestResult') + self.tr.set('id', 'xccdf_mil.disa.stig_testresult_scap_mil.disa_comp_{}'.format(STIG_name)) + endtime = strftime("%Y-%m-%dT%H:%M:%S", gmtime()) + self.tr.set('end-time', endtime) + tg = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}target') + tg.text = platform.node() + + def _get_rev(self, nid): + with open(self.stig_path, 'r') as f: + r = 'SV-{}r(?P\d+)_rule'.format(nid) + m = re.search(r, f.read()) + if m: + rev = m.group('rev') + else: + rev = '0' + return rev + + def v2_runner_on_ok(self, result): + name = result._task.get_name() + m = re.search('stigrule_(?P\d+)', name) + if m: + nid = m.group('id') + else: + return + rev = self._get_rev(nid) + key = "{}r{}".format(nid, rev) + if self.rules.get(key, 'Unknown') != False: + self.rules[key] = result.is_changed() + + def v2_playbook_on_stats(self, stats): + for rule, changed in self.rules.items(): + state = 'fail' if changed else 'pass' + rr = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}rule-result') + rr.set('idref', 'xccdf_mil.disa.stig_rule_SV-{}_rule'.format(rule)) + rs = ET.SubElement(rr, '{http://checklists.nist.gov/xccdf/1.2}result') + rs.text = state + passing = len(self.rules) - sum(self.rules.values()) + sc = ET.SubElement(self.tr, '{http://checklists.nist.gov/xccdf/1.2}score') + sc.set('maximum', str(len(self.rules))) + sc.set('system', 'urn:xccdf:scoring:flat-unweighted') + sc.text = str(passing) + with open(self.XML_path, 'wb') as f: + out = ET.tostring(self.tr) + pretty = xml.dom.minidom.parseString(out).toprettyxml(encoding='utf-8') + f.write(pretty) diff --git a/collections/ansible_collections/demo/compliance/roles/win2022STIG/defaults/main.yml b/collections/ansible_collections/demo/compliance/roles/win2022STIG/defaults/main.yml new file mode 100644 index 0000000..279f4fc --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/win2022STIG/defaults/main.yml @@ -0,0 +1,939 @@ +# R-254269 WN22-00-000320 +win2022STIG_stigrule_254269_Manage: True +win2022STIG_stigrule_254269_Fax_State: absent +# R-254270 WN22-00-000330 +win2022STIG_stigrule_254270_Manage: True +win2022STIG_stigrule_254270_Web_Ftp_Service_State: absent +# R-254271 WN22-00-000340 +win2022STIG_stigrule_254271_Manage: True +win2022STIG_stigrule_254271_PNRP_State: absent +# R-254272 WN22-00-000350 +win2022STIG_stigrule_254272_Manage: True +win2022STIG_stigrule_254272_Simple_TCPIP_State: absent +# R-254273 WN22-00-000360 +win2022STIG_stigrule_254273_Manage: True +win2022STIG_stigrule_254273_Telnet_Client_State: absent +# R-254275 WN22-00-000380 +win2022STIG_stigrule_254275_Manage: True +win2022STIG_stigrule_254275_FS_SMB1_State: absent +# R-254276 WN22-00-000390 +win2022STIG_stigrule_254276_Manage: True +win2022STIG_stigrule_254276_SMB1_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\' +win2022STIG_stigrule_254276_SMB1_State: 'Present' +win2022STIG_stigrule_254276_SMB1_ValueData: '0' +win2022STIG_stigrule_254276_SMB1_ValueType: 'Dword' +win2022STIG_stigrule_254276_TFTP_Client_State: absent +# R-254277 WN22-00-000400 +win2022STIG_stigrule_254277_Manage: True +win2022STIG_stigrule_254277_Start_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\mrxsmb10\' +win2022STIG_stigrule_254277_Start_State: 'Present' +win2022STIG_stigrule_254277_Start_ValueData: '4' +win2022STIG_stigrule_254277_Start_ValueType: 'Dword' +# R-254278 WN22-00-000410 +win2022STIG_stigrule_254278_Manage: True +win2022STIG_stigrule_254278_PowerShell_v2_State: absent +# R-254281 WN22-00-000440 +# Please choose an appropriate DoD time source from http://tycho.usno.navy.mil/ntp.html +win2022STIG_stigrule_254281_Manage: False +win2022STIG_stigrule_254281_NtpServer_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\Parameters' +win2022STIG_stigrule_254281_NtpServer_State: 'Present' +win2022STIG_stigrule_254281_NtpServer_ValueData: 'your|DoD|time|server|url|here' +win2022STIG_stigrule_254281_NtpServer_ValueType: 'String' +win2022STIG_stigrule_254281_Type_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\Parameters' +win2022STIG_stigrule_254281_Type_State: 'Present' +win2022STIG_stigrule_254281_Type_ValueData: 'NTP' +win2022STIG_stigrule_254281_Type_ValueType: 'String' +win2022STIG_stigrule_254281_CrossSiteSyncFlags_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\TimeProviders\NtpClient' +win2022STIG_stigrule_254281_CrossSiteSyncFlags_State: 'Present' +win2022STIG_stigrule_254281_CrossSiteSyncFlags_ValueData: '2' +win2022STIG_stigrule_254281_CrossSiteSyncFlags_ValueType: 'Dword' +win2022STIG_stigrule_254281_EventLogFlags_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\TimeProviders\NtpClient' +win2022STIG_stigrule_254281_EventLogFlags_State: 'Present' +win2022STIG_stigrule_254281_EventLogFlags_ValueData: '0' +win2022STIG_stigrule_254281_EventLogFlags_ValueType: 'Dword' +win2022STIG_stigrule_254281_ResolvePeerBackoffMaxTimes_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\TimeProviders\NtpClient' +win2022STIG_stigrule_254281_ResolvePeerBackoffMaxTimes_State: 'Present' +win2022STIG_stigrule_254281_ResolvePeerBackoffMaxTimes_ValueData: '7' +win2022STIG_stigrule_254281_ResolvePeerBackoffMaxTimes_ValueType: 'Dword' +win2022STIG_stigrule_254281_ResolvePeerBackoffMinutes_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\TimeProviders\NtpClient' +win2022STIG_stigrule_254281_ResolvePeerBackoffMinutes_State: 'Present' +win2022STIG_stigrule_254281_ResolvePeerBackoffMinutes_ValueData: '15' +win2022STIG_stigrule_254281_ResolvePeerBackoffMinutes_ValueType: 'Dword' +win2022STIG_stigrule_254281_SpecialPollInterval_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\W32time\TimeProviders\NtpClient' +win2022STIG_stigrule_254281_SpecialPollInterval_State: 'Present' +win2022STIG_stigrule_254281_SpecialPollInterval_ValueData: '3600' +win2022STIG_stigrule_254281_SpecialPollInterval_ValueType: 'Dword' +# R-254285 WN22-AC-000010 +win2022STIG_stigrule_254285_Manage: False +win2022STIG_stigrule_254285_Account_lockout_duration_Value: 15 +# R-254286 WN22-AC-000020 +win2022STIG_stigrule_254286_Manage: False +win2022STIG_stigrule_254286_Account_lockout_threshold_Value: 3 +# R-254287 WN22-AC-000030 +win2022STIG_stigrule_254287_Manage: False +win2022STIG_stigrule_254287_Reset_account_lockout_counter_after_Value: 15 +# R-254288 WN22-AC-000040 +win2022STIG_stigrule_254288_Manage: True +win2022STIG_stigrule_254288_Enforce_password_history_Value: 24 +# R-254289 WN22-AC-000050 +win2022STIG_stigrule_254289_Manage: True +win2022STIG_stigrule_254289_Maximum_Password_Age_Value: 60 +# R-254290 WN22-AC-000060 +win2022STIG_stigrule_254290_Manage: True +win2022STIG_stigrule_254290_Minimum_Password_Age_Value: 1 +# R-254291 WN22-AC-000070 +win2022STIG_stigrule_254291_Manage: True +win2022STIG_stigrule_254291_Minimum_Password_Length_Value: 14 +# R-254292 WN22-AC-000080 +win2022STIG_stigrule_254292_Manage: True +win2022STIG_stigrule_254292_Password_must_meet_complexity_requirements_Value: 1 +# R-254293 WN22-AC-000090 +win2022STIG_stigrule_254293_Manage: True +win2022STIG_stigrule_254293_Store_passwords_using_reversible_encryption_Value: 0 +# R-254296 WN22-AU-000030 +win2022STIG_stigrule_254296_Manage: True +# R-254297 WN22-AU-000040 +win2022STIG_stigrule_254297_Manage: True +# R-254298 WN22-AU-000050 +win2022STIG_stigrule_254298_Manage: True +# R-254300 WN22-AU-000070 +win2022STIG_stigrule_254300_Manage: True +win2022STIG_stigrule_254300_Credential_Validation_AuditType: success,failure +# R-254301 WN22-AU-000080 +win2022STIG_stigrule_254301_Manage: True +win2022STIG_stigrule_254301_Credential_Validation_AuditType: success,failure +# R-254302 WN22-AU-000090 +win2022STIG_stigrule_254302_Manage: True +win2022STIG_stigrule_254302_Other_Account_Management_Events_AuditType: success +# R-254303 WN22-AU-000100 +win2022STIG_stigrule_254303_Manage: True +win2022STIG_stigrule_254303_Security_Group_Management_AuditType: success +# R-254304 WN22-AU-000110 +win2022STIG_stigrule_254304_Manage: True +win2022STIG_stigrule_254304_User_Account_Management_AuditType: success,failure +# R-254305 WN22-AU-000120 +win2022STIG_stigrule_254305_Manage: True +win2022STIG_stigrule_254305_User_Account_Management_AuditType: success,failure +# R-254306 WN22-AU-000130 +win2022STIG_stigrule_254306_Manage: True +win2022STIG_stigrule_254306_PNP_Activity_AuditType: success +# R-254307 WN22-AU-000140 +win2022STIG_stigrule_254307_Manage: True +win2022STIG_stigrule_254307_Process_Creation_AuditType: success +# R-254308 WN22-AU-000150 +win2022STIG_stigrule_254308_Manage: True +win2022STIG_stigrule_254308_Account_Lockout_AuditType: success,failure +# R-254309 WN22-AU-000160 +win2022STIG_stigrule_254309_Manage: True +win2022STIG_stigrule_254309_Account_Lockout_AuditType: success,failure +# R-254310 WN22-AU-000170 +win2022STIG_stigrule_254310_Manage: True +win2022STIG_stigrule_254310_Group_Membership_AuditType: success +# R-254311 WN22-AU-000180 +win2022STIG_stigrule_254311_Manage: True +win2022STIG_stigrule_254311_Logoff_AuditType: success +# R-254312 WN22-AU-000190 +win2022STIG_stigrule_254312_Manage: True +win2022STIG_stigrule_254312_Logon_AuditType: success,failure +# R-254313 WN22-AU-000200 +win2022STIG_stigrule_254313_Manage: True +win2022STIG_stigrule_254313_Logon_AuditType: success,failure +# R-254314 WN22-AU-000210 +win2022STIG_stigrule_254314_Manage: True +win2022STIG_stigrule_254314_Special_Logon_AuditType: success +# R-254315 WN22-AU-000220 +win2022STIG_stigrule_254315_Manage: True +win2022STIG_stigrule_254315_Other_Object_Access_Events_AuditType: success,failure +# R-254316 WN22-AU-000230 +win2022STIG_stigrule_254316_Manage: True +win2022STIG_stigrule_254316_Other_Object_Access_Events_AuditType: success,failure +# R-254317 WN22-AU-000240 +win2022STIG_stigrule_254317_Manage: True +win2022STIG_stigrule_254317_Removable_Storage_AuditType: success,failure +# R-254318 WN22-AU-000250 +win2022STIG_stigrule_254318_Manage: True +win2022STIG_stigrule_254318_Removable_Storage_AuditType: success,failure +# R-254319 WN22-AU-000260 +win2022STIG_stigrule_254319_Manage: True +win2022STIG_stigrule_254319_Policy_Change_AuditType: success,failure +# R-254320 WN22-AU-000270 +win2022STIG_stigrule_254320_Manage: True +win2022STIG_stigrule_254320_Policy_Change_AuditType: success,failure +# R-254321 WN22-AU-000280 +win2022STIG_stigrule_254321_Manage: True +win2022STIG_stigrule_254321_Authentication_Policy_Change_AuditType: success +# R-254322 WN22-AU-000290 +win2022STIG_stigrule_254322_Manage: True +win2022STIG_stigrule_254322_Authorization_Policy_Change_AuditType: success +# R-254323 WN22-AU-000300 +win2022STIG_stigrule_254323_Manage: True +win2022STIG_stigrule_254323_Sensitive_Privilege_Use_AuditType: success,failure +# R-254324 WN22-AU-000310 +win2022STIG_stigrule_254324_Manage: True +win2022STIG_stigrule_254324_Sensitive_Privilege_Use_AuditType: success,failure +# R-254325 WN22-AU-000320 +win2022STIG_stigrule_254325_Manage: True +win2022STIG_stigrule_254325_IPsec_Driver_AuditType: success,failure +# R-254326 WN22-AU-000330 +win2022STIG_stigrule_254326_Manage: True +win2022STIG_stigrule_254326_IPsec_Driver_AuditType: success,failure +# R-254327 WN22-AU-000340 +win2022STIG_stigrule_254327_Manage: True +win2022STIG_stigrule_254327_Other_System_Events_AuditType: success,failure +# R-254328 WN22-AU-000350 +win2022STIG_stigrule_254328_Manage: True +win2022STIG_stigrule_254328_Other_System_Events_AuditType: success,failure +# R-254329 WN22-AU-000360 +win2022STIG_stigrule_254329_Manage: True +win2022STIG_stigrule_254329_Security_State_Change_AuditType: success +# R-254330 WN22-AU-000370 +win2022STIG_stigrule_254330_Manage: True +win2022STIG_stigrule_254330_Security_System_Extension_AuditType: success +# R-254331 WN22-AU-000380 +win2022STIG_stigrule_254331_Manage: True +win2022STIG_stigrule_254331_System_Integrity_AuditType: success,failure +# R-254332 WN22-AU-000390 +win2022STIG_stigrule_254332_Manage: True +win2022STIG_stigrule_254332_System_Integrity_AuditType: success,failure +# R-254333 WN22-CC-000010 +win2022STIG_stigrule_254333_Manage: True +win2022STIG_stigrule_254333_NoLockScreenSlideshow_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization\' +win2022STIG_stigrule_254333_NoLockScreenSlideshow_State: 'Present' +win2022STIG_stigrule_254333_NoLockScreenSlideshow_ValueData: '1' +win2022STIG_stigrule_254333_NoLockScreenSlideshow_ValueType: 'Dword' +# R-254334 WN22-CC-000020 +win2022STIG_stigrule_254334_Manage: True +win2022STIG_stigrule_254334_UseLogonCredential_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest\' +win2022STIG_stigrule_254334_UseLogonCredential_State: 'Present' +win2022STIG_stigrule_254334_UseLogonCredential_ValueData: '0' +win2022STIG_stigrule_254334_UseLogonCredential_ValueType: 'Dword' +# R-254335 WN22-CC-000030 +win2022STIG_stigrule_254335_Manage: True +win2022STIG_stigrule_254335_DisableIPSourceRouting_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\' +win2022STIG_stigrule_254335_DisableIPSourceRouting_State: 'Present' +win2022STIG_stigrule_254335_DisableIPSourceRouting_ValueData: '2' +win2022STIG_stigrule_254335_DisableIPSourceRouting_ValueType: 'Dword' +# R-254336 WN22-CC-000040 +win2022STIG_stigrule_254336_Manage: True +win2022STIG_stigrule_254336_DisableIPSourceRouting_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\' +win2022STIG_stigrule_254336_DisableIPSourceRouting_State: 'Present' +win2022STIG_stigrule_254336_DisableIPSourceRouting_ValueData: '2' +win2022STIG_stigrule_254336_DisableIPSourceRouting_ValueType: 'Dword' +# R-254337 WN22-CC-000050 +win2022STIG_stigrule_254337_Manage: True +win2022STIG_stigrule_254337_EnableICMPRedirect_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\' +win2022STIG_stigrule_254337_EnableICMPRedirect_State: 'Present' +win2022STIG_stigrule_254337_EnableICMPRedirect_ValueData: '0' +win2022STIG_stigrule_254337_EnableICMPRedirect_ValueType: 'Dword' +# R-254338 WN22-CC-000060 +win2022STIG_stigrule_254338_Manage: True +win2022STIG_stigrule_254338_NoNameReleaseOnDemand_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netbt\Parameters\' +win2022STIG_stigrule_254338_NoNameReleaseOnDemand_State: 'Present' +win2022STIG_stigrule_254338_NoNameReleaseOnDemand_ValueData: '1' +win2022STIG_stigrule_254338_NoNameReleaseOnDemand_ValueType: 'Dword' +# R-254339 WN22-CC-000070 +win2022STIG_stigrule_254339_Manage: True +win2022STIG_stigrule_254339_AllowInsecureGuestAuth_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation\' +win2022STIG_stigrule_254339_AllowInsecureGuestAuth_State: 'Present' +win2022STIG_stigrule_254339_AllowInsecureGuestAuth_ValueData: '0' +win2022STIG_stigrule_254339_AllowInsecureGuestAuth_ValueType: 'Dword' +# R-254340 WN22-CC-000080 +win2022STIG_stigrule_254340_Manage: True +win2022STIG_stigrule_254340_____NETLOGON_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths\' +win2022STIG_stigrule_254340_____NETLOGON_State: 'Present' +win2022STIG_stigrule_254340_____NETLOGON_ValueData: 'RequireMutualAuthentication=1, RequireIntegrity=1' +win2022STIG_stigrule_254340_____NETLOGON_ValueType: 'String' +win2022STIG_stigrule_254340_____SYSVOL_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths\' +win2022STIG_stigrule_254340_____SYSVOL_State: 'Present' +win2022STIG_stigrule_254340_____SYSVOL_ValueData: 'RequireMutualAuthentication=1, RequireIntegrity=1' +win2022STIG_stigrule_254340_____SYSVOL_ValueType: 'String' +# R-254341 WN22-CC-000090 +win2022STIG_stigrule_254341_Manage: True +win2022STIG_stigrule_254341_ProcessCreationIncludeCmdLine_Enabled_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit\' +win2022STIG_stigrule_254341_ProcessCreationIncludeCmdLine_Enabled_State: 'Present' +win2022STIG_stigrule_254341_ProcessCreationIncludeCmdLine_Enabled_ValueData: '1' +win2022STIG_stigrule_254341_ProcessCreationIncludeCmdLine_Enabled_ValueType: 'Dword' +# R-254342 WN22-CC-000100 +win2022STIG_stigrule_254342_Manage: True +win2022STIG_stigrule_254342_AllowProtectedCreds_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\' +win2022STIG_stigrule_254342_AllowProtectedCreds_State: 'Present' +win2022STIG_stigrule_254342_AllowProtectedCreds_ValueData: '1' +win2022STIG_stigrule_254342_AllowProtectedCreds_ValueType: 'Dword' +# R-254343 WN22-CC-000110 +# Please ensure the hardware requirements are met. See https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-requirements +win2022STIG_stigrule_254343_Manage: False +win2022STIG_stigrule_254343_EnableVirtualizationBasedSecurity_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\' +win2022STIG_stigrule_254343_EnableVirtualizationBasedSecurity_State: 'Present' +win2022STIG_stigrule_254343_EnableVirtualizationBasedSecurity_ValueData: '1' +win2022STIG_stigrule_254343_EnableVirtualizationBasedSecurity_ValueType: 'Dword' +win2022STIG_stigrule_254343_RequirePlatformSecurityFeatures_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\' +win2022STIG_stigrule_254343_RequirePlatformSecurityFeatures_State: 'Present' +win2022STIG_stigrule_254343_RequirePlatformSecurityFeatures_ValueData: '1' +win2022STIG_stigrule_254343_RequirePlatformSecurityFeatures_ValueType: 'Dword' +# R-254344 WN22-CC-000130 +win2022STIG_stigrule_254344_Manage: True +win2022STIG_stigrule_254344_DriverLoadPolicy_Key: 'HKLM:\SYSTEM\CurrentControlSet\Policies\EarlyLaunch\' +win2022STIG_stigrule_254344_DriverLoadPolicy_State: 'Present' +win2022STIG_stigrule_254344_DriverLoadPolicy_ValueData: '1' +win2022STIG_stigrule_254344_DriverLoadPolicy_ValueType: 'Dword' +# R-254345 WN22-CC-000140 +win2022STIG_stigrule_254345_Manage: True +win2022STIG_stigrule_254345_NoGPOListChanges_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Group Policy\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}\' +win2022STIG_stigrule_254345_NoGPOListChanges_State: 'Present' +win2022STIG_stigrule_254345_NoGPOListChanges_ValueData: '0' +win2022STIG_stigrule_254345_NoGPOListChanges_ValueType: 'Dword' +# R-254346 WN22-CC-000150 +win2022STIG_stigrule_254346_Manage: True +win2022STIG_stigrule_254346_DisableWebPnPDownload_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\' +win2022STIG_stigrule_254346_DisableWebPnPDownload_State: 'Present' +win2022STIG_stigrule_254346_DisableWebPnPDownload_ValueData: '1' +win2022STIG_stigrule_254346_DisableWebPnPDownload_ValueType: 'Dword' +# R-254347 WN22-CC-000160 +win2022STIG_stigrule_254347_Manage: True +win2022STIG_stigrule_254347_DisableHTTPPrinting_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\' +win2022STIG_stigrule_254347_DisableHTTPPrinting_State: 'Present' +win2022STIG_stigrule_254347_DisableHTTPPrinting_ValueData: '1' +win2022STIG_stigrule_254347_DisableHTTPPrinting_ValueType: 'Dword' +# R-254348 WN22-CC-000170 +win2022STIG_stigrule_254348_Manage: True +win2022STIG_stigrule_254348_DontDisplayNetworkSelectionUI_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\' +win2022STIG_stigrule_254348_DontDisplayNetworkSelectionUI_State: 'Present' +win2022STIG_stigrule_254348_DontDisplayNetworkSelectionUI_ValueData: '1' +win2022STIG_stigrule_254348_DontDisplayNetworkSelectionUI_ValueType: 'Dword' +# R-254349 WN22-CC-000180 +win2022STIG_stigrule_254349_Manage: True +win2022STIG_stigrule_254349_DCSettingIndex_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Power\PowerSettings\0e796bdb-100d-47d6-a2d5-f7d2daa51f51\' +win2022STIG_stigrule_254349_DCSettingIndex_State: 'Present' +win2022STIG_stigrule_254349_DCSettingIndex_ValueData: '1' +win2022STIG_stigrule_254349_DCSettingIndex_ValueType: 'Dword' +# R-254350 WN22-CC-000190 +win2022STIG_stigrule_254350_Manage: True +win2022STIG_stigrule_254350_ACSettingIndex_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Power\PowerSettings\0e796bdb-100d-47d6-a2d5-f7d2daa51f51\' +win2022STIG_stigrule_254350_ACSettingIndex_State: 'Present' +win2022STIG_stigrule_254350_ACSettingIndex_ValueData: '1' +win2022STIG_stigrule_254350_ACSettingIndex_ValueType: 'Dword' +# R-254351 WN22-CC-000200 +win2022STIG_stigrule_254351_Manage: True +win2022STIG_stigrule_254351_DisableInventory_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat\' +win2022STIG_stigrule_254351_DisableInventory_State: 'Present' +win2022STIG_stigrule_254351_DisableInventory_ValueData: '1' +win2022STIG_stigrule_254351_DisableInventory_ValueType: 'Dword' +# R-254352 WN22-CC-000210 +win2022STIG_stigrule_254352_Manage: True +win2022STIG_stigrule_254352_NoAutoplayfornonVolume_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer\' +win2022STIG_stigrule_254352_NoAutoplayfornonVolume_State: 'Present' +win2022STIG_stigrule_254352_NoAutoplayfornonVolume_ValueData: '1' +win2022STIG_stigrule_254352_NoAutoplayfornonVolume_ValueType: 'Dword' +# R-254353 WN22-CC-000220 +win2022STIG_stigrule_254353_Manage: True +win2022STIG_stigrule_254353_NoAutorun_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\' +win2022STIG_stigrule_254353_NoAutorun_State: 'Present' +win2022STIG_stigrule_254353_NoAutorun_ValueData: '1' +win2022STIG_stigrule_254353_NoAutorun_ValueType: 'Dword' +# R-254354 WN22-CC-000230 +win2022STIG_stigrule_254354_Manage: True +win2022STIG_stigrule_254354_NoDriveTypeAutoRun_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\' +win2022STIG_stigrule_254354_NoDriveTypeAutoRun_State: 'Present' +win2022STIG_stigrule_254354_NoDriveTypeAutoRun_ValueData: '255' +win2022STIG_stigrule_254354_NoDriveTypeAutoRun_ValueType: 'Dword' +# R-254355 WN22-CC-000240 +win2022STIG_stigrule_254355_Manage: True +win2022STIG_stigrule_254355_EnumerateAdministrators_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\CredUI\' +win2022STIG_stigrule_254355_EnumerateAdministrators_State: 'Present' +win2022STIG_stigrule_254355_EnumerateAdministrators_ValueData: '0' +win2022STIG_stigrule_254355_EnumerateAdministrators_ValueType: 'Dword' +# R-254356 WN22-CC-000250 +win2022STIG_stigrule_254356_Manage: True +win2022STIG_stigrule_254356_AllowTelemetry_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection\' +win2022STIG_stigrule_254356_AllowTelemetry_State: 'Present' +win2022STIG_stigrule_254356_AllowTelemetry_ValueData: '1' +win2022STIG_stigrule_254356_AllowTelemetry_ValueType: 'Dword' +# R-254357 WN22-CC-000260 +win2022STIG_stigrule_254357_Manage: True +win2022STIG_stigrule_254357_DODownloadMode_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization\' +win2022STIG_stigrule_254357_DODownloadMode_State: 'Present' +win2022STIG_stigrule_254357_DODownloadMode_ValueData: '100' +win2022STIG_stigrule_254357_DODownloadMode_ValueType: 'Dword' +# R-254358 WN22-CC-000270 +win2022STIG_stigrule_254358_Manage: True +win2022STIG_stigrule_254358_MaxSize_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\Application\' +win2022STIG_stigrule_254358_MaxSize_State: 'Present' +win2022STIG_stigrule_254358_MaxSize_ValueData: '32768' +win2022STIG_stigrule_254358_MaxSize_ValueType: 'Dword' +# R-254359 WN22-CC-000280 +win2022STIG_stigrule_254359_Manage: True +win2022STIG_stigrule_254359_MaxSize_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\Security\' +win2022STIG_stigrule_254359_MaxSize_State: 'Present' +win2022STIG_stigrule_254359_MaxSize_ValueData: '196608' +win2022STIG_stigrule_254359_MaxSize_ValueType: 'Dword' +# R-254360 WN22-CC-000290 +win2022STIG_stigrule_254360_Manage: True +win2022STIG_stigrule_254360_MaxSize_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\System\' +win2022STIG_stigrule_254360_MaxSize_State: 'Present' +win2022STIG_stigrule_254360_MaxSize_ValueData: '32768' +win2022STIG_stigrule_254360_MaxSize_ValueType: 'Dword' +# R-254361 WN22-CC-000300 +win2022STIG_stigrule_254361_Manage: True +win2022STIG_stigrule_254361_EnableSmartScreen_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\' +win2022STIG_stigrule_254361_EnableSmartScreen_State: 'Present' +win2022STIG_stigrule_254361_EnableSmartScreen_ValueData: '1' +win2022STIG_stigrule_254361_EnableSmartScreen_ValueType: 'Dword' +# R-254362 WN22-CC-000310 +win2022STIG_stigrule_254362_Manage: True +win2022STIG_stigrule_254362_NoDataExecutionPrevention_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer\' +win2022STIG_stigrule_254362_NoDataExecutionPrevention_State: 'Present' +win2022STIG_stigrule_254362_NoDataExecutionPrevention_ValueData: '0' +win2022STIG_stigrule_254362_NoDataExecutionPrevention_ValueType: 'Dword' +# R-254363 WN22-CC-000320 +win2022STIG_stigrule_254363_Manage: True +win2022STIG_stigrule_254363_NoHeapTerminationOnCorruption_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer\' +win2022STIG_stigrule_254363_NoHeapTerminationOnCorruption_State: 'Present' +win2022STIG_stigrule_254363_NoHeapTerminationOnCorruption_ValueData: '0' +win2022STIG_stigrule_254363_NoHeapTerminationOnCorruption_ValueType: 'Dword' +# R-254364 WN22-CC-000330 +win2022STIG_stigrule_254364_Manage: True +win2022STIG_stigrule_254364_PreXPSP2ShellProtocolBehavior_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\' +win2022STIG_stigrule_254364_PreXPSP2ShellProtocolBehavior_State: 'Present' +win2022STIG_stigrule_254364_PreXPSP2ShellProtocolBehavior_ValueData: '0' +win2022STIG_stigrule_254364_PreXPSP2ShellProtocolBehavior_ValueType: 'Dword' +# R-254365 WN22-CC-000340 +win2022STIG_stigrule_254365_Manage: True +win2022STIG_stigrule_254365_DisablePasswordSaving_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\' +win2022STIG_stigrule_254365_DisablePasswordSaving_State: 'Present' +win2022STIG_stigrule_254365_DisablePasswordSaving_ValueData: '1' +win2022STIG_stigrule_254365_DisablePasswordSaving_ValueType: 'Dword' +# R-254366 WN22-CC-000350 +win2022STIG_stigrule_254366_Manage: True +win2022STIG_stigrule_254366_fDisableCdm_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\' +win2022STIG_stigrule_254366_fDisableCdm_State: 'Present' +win2022STIG_stigrule_254366_fDisableCdm_ValueData: '1' +win2022STIG_stigrule_254366_fDisableCdm_ValueType: 'Dword' +# R-254367 WN22-CC-000360 +win2022STIG_stigrule_254367_Manage: True +win2022STIG_stigrule_254367_fPromptForPassword_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\' +win2022STIG_stigrule_254367_fPromptForPassword_State: 'Present' +win2022STIG_stigrule_254367_fPromptForPassword_ValueData: '1' +win2022STIG_stigrule_254367_fPromptForPassword_ValueType: 'Dword' +# R-254368 WN22-CC-000370 +win2022STIG_stigrule_254368_Manage: True +win2022STIG_stigrule_254368_fEncryptRPCTraffic_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\' +win2022STIG_stigrule_254368_fEncryptRPCTraffic_State: 'Present' +win2022STIG_stigrule_254368_fEncryptRPCTraffic_ValueData: '1' +win2022STIG_stigrule_254368_fEncryptRPCTraffic_ValueType: 'Dword' +# R-254369 WN22-CC-000380 +win2022STIG_stigrule_254369_Manage: True +win2022STIG_stigrule_254369_MinEncryptionLevel_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\' +win2022STIG_stigrule_254369_MinEncryptionLevel_State: 'Present' +win2022STIG_stigrule_254369_MinEncryptionLevel_ValueData: '3' +win2022STIG_stigrule_254369_MinEncryptionLevel_ValueType: 'Dword' +# R-254370 WN22-CC-000390 +win2022STIG_stigrule_254370_Manage: True +win2022STIG_stigrule_254370_DisableEnclosureDownload_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer\Feeds\' +win2022STIG_stigrule_254370_DisableEnclosureDownload_State: 'Present' +win2022STIG_stigrule_254370_DisableEnclosureDownload_ValueData: '1' +win2022STIG_stigrule_254370_DisableEnclosureDownload_ValueType: 'Dword' +# R-254371 WN22-CC-000400 +win2022STIG_stigrule_254371_Manage: True +win2022STIG_stigrule_254371_AllowBasicAuthInClear_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Internet Explorer\Feeds\' +win2022STIG_stigrule_254371_AllowBasicAuthInClear_State: 'Present' +win2022STIG_stigrule_254371_AllowBasicAuthInClear_ValueData: '0' +win2022STIG_stigrule_254371_AllowBasicAuthInClear_ValueType: 'Dword' +# R-254372 WN22-CC-000410 +win2022STIG_stigrule_254372_Manage: True +win2022STIG_stigrule_254372_AllowIndexingEncryptedStoresOrItems_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search\' +win2022STIG_stigrule_254372_AllowIndexingEncryptedStoresOrItems_State: 'Present' +win2022STIG_stigrule_254372_AllowIndexingEncryptedStoresOrItems_ValueData: '0' +win2022STIG_stigrule_254372_AllowIndexingEncryptedStoresOrItems_ValueType: 'Dword' +# R-254373 WN22-CC-000420 +win2022STIG_stigrule_254373_Manage: True +win2022STIG_stigrule_254373_EnableUserControl_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer\' +win2022STIG_stigrule_254373_EnableUserControl_State: 'Present' +win2022STIG_stigrule_254373_EnableUserControl_ValueData: '0' +win2022STIG_stigrule_254373_EnableUserControl_ValueType: 'Dword' +# R-254374 WN22-CC-000430 +win2022STIG_stigrule_254374_Manage: True +win2022STIG_stigrule_254374_AlwaysInstallElevated_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer\' +win2022STIG_stigrule_254374_AlwaysInstallElevated_State: 'Present' +win2022STIG_stigrule_254374_AlwaysInstallElevated_ValueData: '0' +win2022STIG_stigrule_254374_AlwaysInstallElevated_ValueType: 'Dword' +# R-254375 WN22-CC-000440 +win2022STIG_stigrule_254375_Manage: True +win2022STIG_stigrule_254375_SafeForScripting_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Installer\' +win2022STIG_stigrule_254375_SafeForScripting_State: 'Present' +win2022STIG_stigrule_254375_SafeForScripting_ValueData: '0' +win2022STIG_stigrule_254375_SafeForScripting_ValueType: 'Dword' +# R-254376 WN22-CC-000450 +win2022STIG_stigrule_254376_Manage: True +win2022STIG_stigrule_254376_DisableAutomaticRestartSignOn_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254376_DisableAutomaticRestartSignOn_State: 'Present' +win2022STIG_stigrule_254376_DisableAutomaticRestartSignOn_ValueData: '1' +win2022STIG_stigrule_254376_DisableAutomaticRestartSignOn_ValueType: 'Dword' +# R-254378 WN22-CC-000470 +win2022STIG_stigrule_254378_Manage: True +win2022STIG_stigrule_254378_EnableScriptBlockLogging_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging\' +win2022STIG_stigrule_254378_EnableScriptBlockLogging_State: 'Present' +win2022STIG_stigrule_254378_EnableScriptBlockLogging_ValueData: '1' +win2022STIG_stigrule_254378_EnableScriptBlockLogging_ValueType: 'Dword' +# R-254379 WN22-CC-000480 +win2022STIG_stigrule_254379_Manage: True +win2022STIG_stigrule_254379_AllowBasic_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client\' +win2022STIG_stigrule_254379_AllowBasic_State: 'Present' +win2022STIG_stigrule_254379_AllowBasic_ValueData: '0' +win2022STIG_stigrule_254379_AllowBasic_ValueType: 'Dword' +# R-254380 WN22-CC-000490 +win2022STIG_stigrule_254380_Manage: True +win2022STIG_stigrule_254380_AllowUnencryptedTraffic_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client\' +win2022STIG_stigrule_254380_AllowUnencryptedTraffic_State: 'Present' +win2022STIG_stigrule_254380_AllowUnencryptedTraffic_ValueData: '0' +win2022STIG_stigrule_254380_AllowUnencryptedTraffic_ValueType: 'Dword' +# R-254381 WN22-CC-000500 +win2022STIG_stigrule_254381_Manage: True +win2022STIG_stigrule_254381_AllowDigest_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client\' +win2022STIG_stigrule_254381_AllowDigest_State: 'Present' +win2022STIG_stigrule_254381_AllowDigest_ValueData: '0' +win2022STIG_stigrule_254381_AllowDigest_ValueType: 'Dword' +# R-254382 WN22-CC-000510 +win2022STIG_stigrule_254382_Manage: True +win2022STIG_stigrule_254382_AllowBasic_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\' +win2022STIG_stigrule_254382_AllowBasic_State: 'Present' +win2022STIG_stigrule_254382_AllowBasic_ValueData: '0' +win2022STIG_stigrule_254382_AllowBasic_ValueType: 'Dword' +# R-254383 WN22-CC-000520 +win2022STIG_stigrule_254383_Manage: True +win2022STIG_stigrule_254383_AllowUnencryptedTraffic_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\' +win2022STIG_stigrule_254383_AllowUnencryptedTraffic_State: 'Present' +win2022STIG_stigrule_254383_AllowUnencryptedTraffic_ValueData: '0' +win2022STIG_stigrule_254383_AllowUnencryptedTraffic_ValueType: 'Dword' +# R-254384 WN22-CC-000530 +win2022STIG_stigrule_254384_Manage: True +win2022STIG_stigrule_254384_DisableRunAs_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service\' +win2022STIG_stigrule_254384_DisableRunAs_State: 'Present' +win2022STIG_stigrule_254384_DisableRunAs_ValueData: '1' +win2022STIG_stigrule_254384_DisableRunAs_ValueType: 'Dword' +# R-254407 WN22-DC-000230 +win2022STIG_stigrule_254407_Manage: True +win2022STIG_stigrule_254407_Computer_Account_Management_AuditType: success +# R-254408 WN22-DC-000240 +win2022STIG_stigrule_254408_Manage: True +win2022STIG_stigrule_254408_Directory_Service_Access_AuditType: success,failure +# R-254409 WN22-DC-000250 +win2022STIG_stigrule_254409_Manage: True +win2022STIG_stigrule_254409_Directory_Service_Access_AuditType: success,failure +# R-254410 WN22-DC-000260 +win2022STIG_stigrule_254410_Manage: True +win2022STIG_stigrule_254410_Directory_Service_Changes_AuditType: success,failure +# R-254411 WN22-DC-000270 +win2022STIG_stigrule_254411_Manage: True +win2022STIG_stigrule_254411_Directory_Service_Changes_AuditType: success,failure +# R-254416 WN22-DC-000320 +win2022STIG_stigrule_254416_Manage: True +win2022STIG_stigrule_254416_Domain_controller_LDAP_server_signing_requirements_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\' +win2022STIG_stigrule_254416_Domain_controller_LDAP_server_signing_requirements_State: 'Present' +win2022STIG_stigrule_254416_Domain_controller_LDAP_server_signing_requirements_ValueData: '2' +win2022STIG_stigrule_254416_Domain_controller_LDAP_server_signing_requirements_ValueType: 'Dword' +# R-254417 WN22-DC-000330 +win2022STIG_stigrule_254417_Manage: True +win2022STIG_stigrule_254417_Domain_controller_Refuse_machine_account_password_changes_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254417_Domain_controller_Refuse_machine_account_password_changes_State: 'Present' +win2022STIG_stigrule_254417_Domain_controller_Refuse_machine_account_password_changes_ValueData: '0' +win2022STIG_stigrule_254417_Domain_controller_Refuse_machine_account_password_changes_ValueType: 'Dword' +# R-254418 WN22-DC-000340 +win2022STIG_stigrule_254418_Manage: False +win2022STIG_stigrule_254418_SeNetworkLogonRight_Users: ['Administrators','Authenticated Users','Enterprise Domain Controllers'] +# R-254419 WN22-DC-000350 +win2022STIG_stigrule_254419_Manage: True +win2022STIG_stigrule_254419_SeMachineAccountPrivilege_Users: ['Administrators'] +# R-254420 WN22-DC-000360 +win2022STIG_stigrule_254420_Manage: True +win2022STIG_stigrule_254420_SeRemoteInteractiveLogonRight_Users: ['Administrators'] +# R-254421 WN22-DC-000370 +win2022STIG_stigrule_254421_Manage: False +win2022STIG_stigrule_254421_SeDenyNetworkLogonRight_Users: ['Guests'] +# R-254422 WN22-DC-000380 +win2022STIG_stigrule_254422_Manage: False +win2022STIG_stigrule_254422_SeDenyBatchLogonRight_Users: ['Guests'] +# R-254423 WN22-DC-000390 +win2022STIG_stigrule_254423_Manage: False +win2022STIG_stigrule_254423_SeDenyServiceLogonRight_Users: [] +# R-254424 WN22-DC-000400 +win2022STIG_stigrule_254424_Manage: False +win2022STIG_stigrule_254424_SeDenyInteractiveLogonRight_Users: ['Guests'] +# R-254425 WN22-DC-000410 +win2022STIG_stigrule_254425_Manage: False +win2022STIG_stigrule_254425_SeDenyRemoteInteractiveLogonRight_Users: ['Guests'] +# R-254426 WN22-DC-000420 +win2022STIG_stigrule_254426_Manage: False +win2022STIG_stigrule_254426_SeEnableDelegationPrivilege_Users: ['Administrators'] +# R-254429 WN22-MS-000020 +win2022STIG_stigrule_254429_Manage: False +win2022STIG_stigrule_254429_LocalAccountTokenFilterPolicy_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' +win2022STIG_stigrule_254429_LocalAccountTokenFilterPolicy_State: 'Present' +win2022STIG_stigrule_254429_LocalAccountTokenFilterPolicy_ValueData: '0' +win2022STIG_stigrule_254429_LocalAccountTokenFilterPolicy_ValueType: 'Dword' +# R-254430 WN22-MS-000030 +win2022STIG_stigrule_254430_Manage: True +win2022STIG_stigrule_254430_EnumerateLocalUsers_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System\' +win2022STIG_stigrule_254430_EnumerateLocalUsers_State: 'Present' +win2022STIG_stigrule_254430_EnumerateLocalUsers_ValueData: '0' +win2022STIG_stigrule_254430_EnumerateLocalUsers_ValueType: 'Dword' +# R-254431 WN22-MS-000040 +win2022STIG_stigrule_254431_Manage: True +win2022STIG_stigrule_254431_RestrictRemoteClients_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Rpc\' +win2022STIG_stigrule_254431_RestrictRemoteClients_State: 'Present' +win2022STIG_stigrule_254431_RestrictRemoteClients_ValueData: '1' +win2022STIG_stigrule_254431_RestrictRemoteClients_ValueType: 'Dword' +# R-254432 WN22-MS-000050 +win2022STIG_stigrule_254432_Manage: True +win2022STIG_stigrule_254432_Interactive_logon_Number_of_previous_logons_to_cache_in_case_domain_controller_is_not_available_Key: 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\' +win2022STIG_stigrule_254432_Interactive_logon_Number_of_previous_logons_to_cache_in_case_domain_controller_is_not_available_State: 'Present' +win2022STIG_stigrule_254432_Interactive_logon_Number_of_previous_logons_to_cache_in_case_domain_controller_is_not_available_ValueData: '4' +win2022STIG_stigrule_254432_Interactive_logon_Number_of_previous_logons_to_cache_in_case_domain_controller_is_not_available_ValueType: 'string' +# R-254434 WN22-MS-000070 +win2022STIG_stigrule_254434_Manage: False +win2022STIG_stigrule_254434_SeNetworkLogonRight_Users: ['Administrators','Authenticated Users'] +# R-254436 WN22-MS-000090 +win2022STIG_stigrule_254436_Manage: False +win2022STIG_stigrule_254436_SeDenyBatchLogonRight_Users: ['Enterprise Admins','Domain Admins','Guests'] +# R-254437 WN22-MS-000100 +win2022STIG_stigrule_254437_Manage: False +win2022STIG_stigrule_254437_SeDenyServiceLogonRight_Users: ['Enterprise Admins','Domain Admins'] +# R-254438 WN22-MS-000110 +win2022STIG_stigrule_254438_Manage: False +win2022STIG_stigrule_254438_SeDenyInteractiveLogonRight_Users: ['Enterprise Admins','Domain Admins','Guests'] +# R-254440 WN22-MS-000130 +win2022STIG_stigrule_254440_Manage: False +win2022STIG_stigrule_254440_SeEnableDelegationPrivilege_Users: [] +# R-254441 WN22-MS-000140 +# Please ensure the hardware requirements are met. See https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-requirements +win2022STIG_stigrule_254441_Manage: False +win2022STIG_stigrule_254441_LsaCfgFlags_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\' +win2022STIG_stigrule_254441_LsaCfgFlags_State: 'Present' +win2022STIG_stigrule_254441_LsaCfgFlags_ValueData: '1' +win2022STIG_stigrule_254441_LsaCfgFlags_ValueType: 'Dword' +# R-254445 WN22-SO-000010 +win2022STIG_stigrule_254445_Manage: True +win2022STIG_stigrule_254445_Accounts_Guest_account_status_ValueData: '0' +# R-254446 WN22-SO-000020 +win2022STIG_stigrule_254446_Manage: True +win2022STIG_stigrule_254446_Accounts_Limit_local_account_use_of_blank_passwords_to_console_logon_only_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\' +win2022STIG_stigrule_254446_Accounts_Limit_local_account_use_of_blank_passwords_to_console_logon_only_State: 'Present' +win2022STIG_stigrule_254446_Accounts_Limit_local_account_use_of_blank_passwords_to_console_logon_only_ValueData: '1' +win2022STIG_stigrule_254446_Accounts_Limit_local_account_use_of_blank_passwords_to_console_logon_only_ValueType: 'Dword' +# R-254448 WN22-SO-000040 +win2022STIG_stigrule_254448_Manage: False +win2022STIG_stigrule_254448_Accounts_Rename_guest_account_ValueData: 'RenamedGuest' +# R-254449 WN22-SO-000050 +win2022STIG_stigrule_254449_Manage: True +win2022STIG_stigrule_254449_Audit_Force_audit_policy_subcategory_settings_Windows_Vista_or_later_to_override_audit_policy_category_settings_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\' +win2022STIG_stigrule_254449_Audit_Force_audit_policy_subcategory_settings_Windows_Vista_or_later_to_override_audit_policy_category_settings_State: 'Present' +win2022STIG_stigrule_254449_Audit_Force_audit_policy_subcategory_settings_Windows_Vista_or_later_to_override_audit_policy_category_settings_ValueData: '1' +win2022STIG_stigrule_254449_Audit_Force_audit_policy_subcategory_settings_Windows_Vista_or_later_to_override_audit_policy_category_settings_ValueType: 'Dword' +# R-254450 WN22-SO-000060 +win2022STIG_stigrule_254450_Manage: True +win2022STIG_stigrule_254450_Domain_member_Digitally_encrypt_or_sign_secure_channel_data_always_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254450_Domain_member_Digitally_encrypt_or_sign_secure_channel_data_always_State: 'Present' +win2022STIG_stigrule_254450_Domain_member_Digitally_encrypt_or_sign_secure_channel_data_always_ValueData: '1' +win2022STIG_stigrule_254450_Domain_member_Digitally_encrypt_or_sign_secure_channel_data_always_ValueType: 'Dword' +# R-254451 WN22-SO-000070 +win2022STIG_stigrule_254451_Manage: True +win2022STIG_stigrule_254451_Domain_member_Digitally_encrypt_secure_channel_data_when_possible_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254451_Domain_member_Digitally_encrypt_secure_channel_data_when_possible_State: 'Present' +win2022STIG_stigrule_254451_Domain_member_Digitally_encrypt_secure_channel_data_when_possible_ValueData: '1' +win2022STIG_stigrule_254451_Domain_member_Digitally_encrypt_secure_channel_data_when_possible_ValueType: 'Dword' +# R-254452 WN22-SO-000080 +win2022STIG_stigrule_254452_Manage: True +win2022STIG_stigrule_254452_Domain_member_Digitally_sign_secure_channel_data_when_possible_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254452_Domain_member_Digitally_sign_secure_channel_data_when_possible_State: 'Present' +win2022STIG_stigrule_254452_Domain_member_Digitally_sign_secure_channel_data_when_possible_ValueData: '1' +win2022STIG_stigrule_254452_Domain_member_Digitally_sign_secure_channel_data_when_possible_ValueType: 'Dword' +# R-254453 WN22-SO-000090 +win2022STIG_stigrule_254453_Manage: True +win2022STIG_stigrule_254453_Domain_member_Disable_machine_account_password_changes_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254453_Domain_member_Disable_machine_account_password_changes_State: 'Present' +win2022STIG_stigrule_254453_Domain_member_Disable_machine_account_password_changes_ValueData: '0' +win2022STIG_stigrule_254453_Domain_member_Disable_machine_account_password_changes_ValueType: 'Dword' +# R-254454 WN22-SO-000100 +win2022STIG_stigrule_254454_Manage: True +win2022STIG_stigrule_254454_Domain_member_Maximum_machine_account_password_age_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254454_Domain_member_Maximum_machine_account_password_age_State: 'Present' +win2022STIG_stigrule_254454_Domain_member_Maximum_machine_account_password_age_ValueData: '30' +win2022STIG_stigrule_254454_Domain_member_Maximum_machine_account_password_age_ValueType: 'Dword' +# R-254455 WN22-SO-000110 +win2022STIG_stigrule_254455_Manage: True +win2022STIG_stigrule_254455_Domain_member_Require_strong_Windows_2000_or_later_session_key_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\' +win2022STIG_stigrule_254455_Domain_member_Require_strong_Windows_2000_or_later_session_key_State: 'Present' +win2022STIG_stigrule_254455_Domain_member_Require_strong_Windows_2000_or_later_session_key_ValueData: '1' +win2022STIG_stigrule_254455_Domain_member_Require_strong_Windows_2000_or_later_session_key_ValueType: 'Dword' +# R-254456 WN22-SO-000120 +win2022STIG_stigrule_254456_Manage: True +win2022STIG_stigrule_254456_Interactive_logon_Machine_inactivity_limit_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254456_Interactive_logon_Machine_inactivity_limit_State: 'Present' +win2022STIG_stigrule_254456_Interactive_logon_Machine_inactivity_limit_ValueData: '900' +win2022STIG_stigrule_254456_Interactive_logon_Machine_inactivity_limit_ValueType: 'Dword' +# R-254457 WN22-SO-000130 +win2022STIG_stigrule_254457_Manage: True +win2022STIG_stigrule_254457_Interactive_logon_Message_text_for_users_attempting_to_log_on_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254457_Interactive_logon_Message_text_for_users_attempting_to_log_on_State: 'Present' +win2022STIG_stigrule_254457_Interactive_logon_Message_text_for_users_attempting_to_log_on_ValueData: 'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. +By using this IS (which includes any device attached to this IS), you consent to the following conditions: +-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. +-At any time, the USG may inspect and seize data stored on this IS. +-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. +-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. +-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details.' +win2022STIG_stigrule_254457_Interactive_logon_Message_text_for_users_attempting_to_log_on_ValueType: 'string' +# R-254458 WN22-SO-000140 +win2022STIG_stigrule_254458_Manage: True +win2022STIG_stigrule_254458_Interactive_logon_Message_title_for_users_attempting_to_log_on_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254458_Interactive_logon_Message_title_for_users_attempting_to_log_on_State: 'Present' +win2022STIG_stigrule_254458_Interactive_logon_Message_title_for_users_attempting_to_log_on_ValueData: 'DoD Notice and Consent Banner' +win2022STIG_stigrule_254458_Interactive_logon_Message_title_for_users_attempting_to_log_on_ValueType: 'string' +# R-254459 WN22-SO-000150 +win2022STIG_stigrule_254459_Manage: True +win2022STIG_stigrule_254459_Interactive_logon_Smart_card_removal_behavior_Key: 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\' +win2022STIG_stigrule_254459_Interactive_logon_Smart_card_removal_behavior_State: 'Present' +win2022STIG_stigrule_254459_Interactive_logon_Smart_card_removal_behavior_ValueData: '1' +win2022STIG_stigrule_254459_Interactive_logon_Smart_card_removal_behavior_ValueType: 'string' +# R-254460 WN22-SO-000160 +win2022STIG_stigrule_254460_Manage: True +win2022STIG_stigrule_254460_Microsoft_network_client_Digitally_sign_communications_always_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\' +win2022STIG_stigrule_254460_Microsoft_network_client_Digitally_sign_communications_always_State: 'Present' +win2022STIG_stigrule_254460_Microsoft_network_client_Digitally_sign_communications_always_ValueData: '1' +win2022STIG_stigrule_254460_Microsoft_network_client_Digitally_sign_communications_always_ValueType: 'Dword' +# R-254461 WN22-SO-000170 +win2022STIG_stigrule_254461_Manage: True +win2022STIG_stigrule_254461_Microsoft_network_client_Digitally_sign_communications_if_server_agrees_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\' +win2022STIG_stigrule_254461_Microsoft_network_client_Digitally_sign_communications_if_server_agrees_State: 'Present' +win2022STIG_stigrule_254461_Microsoft_network_client_Digitally_sign_communications_if_server_agrees_ValueData: '1' +win2022STIG_stigrule_254461_Microsoft_network_client_Digitally_sign_communications_if_server_agrees_ValueType: 'Dword' +# R-254462 WN22-SO-000180 +win2022STIG_stigrule_254462_Manage: True +win2022STIG_stigrule_254462_Microsoft_network_client_Send_unencrypted_password_to_third_party_SMB_servers_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\' +win2022STIG_stigrule_254462_Microsoft_network_client_Send_unencrypted_password_to_third_party_SMB_servers_State: 'Present' +win2022STIG_stigrule_254462_Microsoft_network_client_Send_unencrypted_password_to_third_party_SMB_servers_ValueData: '0' +win2022STIG_stigrule_254462_Microsoft_network_client_Send_unencrypted_password_to_third_party_SMB_servers_ValueType: 'Dword' +# R-254463 WN22-SO-000190 +win2022STIG_stigrule_254463_Manage: True +win2022STIG_stigrule_254463_Microsoft_network_server_Digitally_sign_communications_always_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\' +win2022STIG_stigrule_254463_Microsoft_network_server_Digitally_sign_communications_always_State: 'Present' +win2022STIG_stigrule_254463_Microsoft_network_server_Digitally_sign_communications_always_ValueData: '1' +win2022STIG_stigrule_254463_Microsoft_network_server_Digitally_sign_communications_always_ValueType: 'Dword' +# R-254464 WN22-SO-000200 +win2022STIG_stigrule_254464_Manage: True +win2022STIG_stigrule_254464_Microsoft_network_server_Digitally_sign_communications_if_client_agrees_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\' +win2022STIG_stigrule_254464_Microsoft_network_server_Digitally_sign_communications_if_client_agrees_State: 'Present' +win2022STIG_stigrule_254464_Microsoft_network_server_Digitally_sign_communications_if_client_agrees_ValueData: '1' +win2022STIG_stigrule_254464_Microsoft_network_server_Digitally_sign_communications_if_client_agrees_ValueType: 'Dword' +# R-254465 WN22-SO-000210 +win2022STIG_stigrule_254465_Manage: False +win2022STIG_stigrule_254465_Network_access_Allow_anonymous_SID_Name_translation_ValueData: '0' +# R-254466 WN22-SO-000220 +win2022STIG_stigrule_254466_Manage: True +win2022STIG_stigrule_254466_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\' +win2022STIG_stigrule_254466_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_State: 'Present' +win2022STIG_stigrule_254466_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_ValueData: '1' +win2022STIG_stigrule_254466_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_ValueType: 'Dword' +# R-254467 WN22-SO-000230 +win2022STIG_stigrule_254467_Manage: True +win2022STIG_stigrule_254467_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_and_shares_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\' +win2022STIG_stigrule_254467_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_and_shares_State: 'Present' +win2022STIG_stigrule_254467_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_and_shares_ValueData: '1' +win2022STIG_stigrule_254467_Network_access_Do_not_allow_anonymous_enumeration_of_SAM_accounts_and_shares_ValueType: 'Dword' +# R-254468 WN22-SO-000240 +win2022STIG_stigrule_254468_Manage: True +win2022STIG_stigrule_254468_Network_access_Let_Everyone_permissions_apply_to_anonymous_users_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\' +win2022STIG_stigrule_254468_Network_access_Let_Everyone_permissions_apply_to_anonymous_users_State: 'Present' +win2022STIG_stigrule_254468_Network_access_Let_Everyone_permissions_apply_to_anonymous_users_ValueData: '0' +win2022STIG_stigrule_254468_Network_access_Let_Everyone_permissions_apply_to_anonymous_users_ValueType: 'Dword' +# R-254469 WN22-SO-000250 +win2022STIG_stigrule_254469_Manage: True +win2022STIG_stigrule_254469_Network_access_Restrict_anonymous_access_to_Named_Pipes_and_Shares_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters\' +win2022STIG_stigrule_254469_Network_access_Restrict_anonymous_access_to_Named_Pipes_and_Shares_State: 'Present' +win2022STIG_stigrule_254469_Network_access_Restrict_anonymous_access_to_Named_Pipes_and_Shares_ValueData: '1' +win2022STIG_stigrule_254469_Network_access_Restrict_anonymous_access_to_Named_Pipes_and_Shares_ValueType: 'Dword' +# R-254470 WN22-SO-000260 +win2022STIG_stigrule_254470_Manage: True +win2022STIG_stigrule_254470_Network_security_Allow_Local_System_to_use_computer_identity_for_NTLM_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\LSA\' +win2022STIG_stigrule_254470_Network_security_Allow_Local_System_to_use_computer_identity_for_NTLM_State: 'Present' +win2022STIG_stigrule_254470_Network_security_Allow_Local_System_to_use_computer_identity_for_NTLM_ValueData: '1' +win2022STIG_stigrule_254470_Network_security_Allow_Local_System_to_use_computer_identity_for_NTLM_ValueType: 'Dword' +# R-254471 WN22-SO-000270 +win2022STIG_stigrule_254471_Manage: True +win2022STIG_stigrule_254471_Network_security_Allow_LocalSystem_NULL_session_fallback_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\LSA\MSV1_0\' +win2022STIG_stigrule_254471_Network_security_Allow_LocalSystem_NULL_session_fallback_State: 'Present' +win2022STIG_stigrule_254471_Network_security_Allow_LocalSystem_NULL_session_fallback_ValueData: '0' +win2022STIG_stigrule_254471_Network_security_Allow_LocalSystem_NULL_session_fallback_ValueType: 'Dword' +# R-254472 WN22-SO-000280 +win2022STIG_stigrule_254472_Manage: True +win2022STIG_stigrule_254472_Network_Security_Allow_PKU2U_authentication_requests_to_this_computer_to_use_online_identities_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\LSA\pku2u\' +win2022STIG_stigrule_254472_Network_Security_Allow_PKU2U_authentication_requests_to_this_computer_to_use_online_identities_State: 'Present' +win2022STIG_stigrule_254472_Network_Security_Allow_PKU2U_authentication_requests_to_this_computer_to_use_online_identities_ValueData: '0' +win2022STIG_stigrule_254472_Network_Security_Allow_PKU2U_authentication_requests_to_this_computer_to_use_online_identities_ValueType: 'Dword' +# R-254474 WN22-SO-000300 +win2022STIG_stigrule_254474_Manage: True +win2022STIG_stigrule_254474_Network_security_Do_not_store_LAN_Manager_hash_value_on_next_password_change_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\LSA\' +win2022STIG_stigrule_254474_Network_security_Do_not_store_LAN_Manager_hash_value_on_next_password_change_State: 'Present' +win2022STIG_stigrule_254474_Network_security_Do_not_store_LAN_Manager_hash_value_on_next_password_change_ValueData: '1' +win2022STIG_stigrule_254474_Network_security_Do_not_store_LAN_Manager_hash_value_on_next_password_change_ValueType: 'Dword' +# R-254475 WN22-SO-000310 +win2022STIG_stigrule_254475_Manage: True +win2022STIG_stigrule_254475_Network_security_LAN_Manager_authentication_level_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\LSA\' +win2022STIG_stigrule_254475_Network_security_LAN_Manager_authentication_level_State: 'Present' +win2022STIG_stigrule_254475_Network_security_LAN_Manager_authentication_level_ValueData: '5' +win2022STIG_stigrule_254475_Network_security_LAN_Manager_authentication_level_ValueType: 'Dword' +# R-254476 WN22-SO-000320 +win2022STIG_stigrule_254476_Manage: True +win2022STIG_stigrule_254476_Network_security_LDAP_client_signing_requirements_Key: 'HKLM:\SYSTEM\CurrentControlSet\Services\LDAP\' +win2022STIG_stigrule_254476_Network_security_LDAP_client_signing_requirements_State: 'Present' +win2022STIG_stigrule_254476_Network_security_LDAP_client_signing_requirements_ValueData: '1' +win2022STIG_stigrule_254476_Network_security_LDAP_client_signing_requirements_ValueType: 'Dword' +# R-254477 WN22-SO-000330 +win2022STIG_stigrule_254477_Manage: True +win2022STIG_stigrule_254477_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_clients_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\' +win2022STIG_stigrule_254477_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_clients_State: 'Present' +win2022STIG_stigrule_254477_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_clients_ValueData: '537395200' +win2022STIG_stigrule_254477_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_clients_ValueType: 'Dword' +# R-254478 WN22-SO-000340 +win2022STIG_stigrule_254478_Manage: True +win2022STIG_stigrule_254478_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_servers_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\' +win2022STIG_stigrule_254478_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_servers_State: 'Present' +win2022STIG_stigrule_254478_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_servers_ValueData: '537395200' +win2022STIG_stigrule_254478_Network_security_Minimum_session_security_for_NTLM_SSP_based_including_secure_RPC_servers_ValueType: 'Dword' +# R-254479 WN22-SO-000350 +win2022STIG_stigrule_254479_Manage: True +win2022STIG_stigrule_254479_System_cryptography_Force_strong_key_protection_for_user_keys_stored_on_the_computer_Key: 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\' +win2022STIG_stigrule_254479_System_cryptography_Force_strong_key_protection_for_user_keys_stored_on_the_computer_State: 'Present' +win2022STIG_stigrule_254479_System_cryptography_Force_strong_key_protection_for_user_keys_stored_on_the_computer_ValueData: '2' +win2022STIG_stigrule_254479_System_cryptography_Force_strong_key_protection_for_user_keys_stored_on_the_computer_ValueType: 'Dword' +# R-254480 WN22-SO-000360 +win2022STIG_stigrule_254480_Manage: True +win2022STIG_stigrule_254480_System_cryptography_Use_FIPS_compliant_algorithms_for_encryption_hashing_and_signing_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\' +win2022STIG_stigrule_254480_System_cryptography_Use_FIPS_compliant_algorithms_for_encryption_hashing_and_signing_State: 'Present' +win2022STIG_stigrule_254480_System_cryptography_Use_FIPS_compliant_algorithms_for_encryption_hashing_and_signing_ValueData: '1' +win2022STIG_stigrule_254480_System_cryptography_Use_FIPS_compliant_algorithms_for_encryption_hashing_and_signing_ValueType: 'Dword' +# R-254481 WN22-SO-000370 +win2022STIG_stigrule_254481_Manage: True +win2022STIG_stigrule_254481_System_objects_Strengthen_default_permissions_of_internal_system_objects_eg_Symbolic_Links_Key: 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\' +win2022STIG_stigrule_254481_System_objects_Strengthen_default_permissions_of_internal_system_objects_eg_Symbolic_Links_State: 'Present' +win2022STIG_stigrule_254481_System_objects_Strengthen_default_permissions_of_internal_system_objects_eg_Symbolic_Links_ValueData: '1' +win2022STIG_stigrule_254481_System_objects_Strengthen_default_permissions_of_internal_system_objects_eg_Symbolic_Links_ValueType: 'Dword' +# R-254482 WN22-SO-000380 +win2022STIG_stigrule_254482_Manage: True +win2022STIG_stigrule_254482_User_Account_Control_Admin_Approval_Mode_for_the_Built_in_Administrator_account_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254482_User_Account_Control_Admin_Approval_Mode_for_the_Built_in_Administrator_account_State: 'Present' +win2022STIG_stigrule_254482_User_Account_Control_Admin_Approval_Mode_for_the_Built_in_Administrator_account_ValueData: '1' +win2022STIG_stigrule_254482_User_Account_Control_Admin_Approval_Mode_for_the_Built_in_Administrator_account_ValueType: 'Dword' +# R-254483 WN22-SO-000390 +win2022STIG_stigrule_254483_Manage: True +win2022STIG_stigrule_254483_User_Account_Control_Allow_UIAccess_applications_to_prompt_for_elevation_without_using_the_secure_desktop_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254483_User_Account_Control_Allow_UIAccess_applications_to_prompt_for_elevation_without_using_the_secure_desktop_State: 'Present' +win2022STIG_stigrule_254483_User_Account_Control_Allow_UIAccess_applications_to_prompt_for_elevation_without_using_the_secure_desktop_ValueData: '0' +win2022STIG_stigrule_254483_User_Account_Control_Allow_UIAccess_applications_to_prompt_for_elevation_without_using_the_secure_desktop_ValueType: 'Dword' +# R-254484 WN22-SO-000400 +win2022STIG_stigrule_254484_Manage: True +win2022STIG_stigrule_254484_User_Account_Control_Behavior_of_the_elevation_prompt_for_administrators_in_Admin_Approval_Mode_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254484_User_Account_Control_Behavior_of_the_elevation_prompt_for_administrators_in_Admin_Approval_Mode_State: 'Present' +win2022STIG_stigrule_254484_User_Account_Control_Behavior_of_the_elevation_prompt_for_administrators_in_Admin_Approval_Mode_ValueData: '2' +win2022STIG_stigrule_254484_User_Account_Control_Behavior_of_the_elevation_prompt_for_administrators_in_Admin_Approval_Mode_ValueType: 'Dword' +# R-254485 WN22-SO-000410 +win2022STIG_stigrule_254485_Manage: True +win2022STIG_stigrule_254485_User_Account_Control_Behavior_of_the_elevation_prompt_for_standard_users_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254485_User_Account_Control_Behavior_of_the_elevation_prompt_for_standard_users_State: 'Present' +win2022STIG_stigrule_254485_User_Account_Control_Behavior_of_the_elevation_prompt_for_standard_users_ValueData: '0' +win2022STIG_stigrule_254485_User_Account_Control_Behavior_of_the_elevation_prompt_for_standard_users_ValueType: 'Dword' +# R-254486 WN22-SO-000420 +win2022STIG_stigrule_254486_Manage: True +win2022STIG_stigrule_254486_User_Account_Control_Detect_application_installations_and_prompt_for_elevation_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254486_User_Account_Control_Detect_application_installations_and_prompt_for_elevation_State: 'Present' +win2022STIG_stigrule_254486_User_Account_Control_Detect_application_installations_and_prompt_for_elevation_ValueData: '1' +win2022STIG_stigrule_254486_User_Account_Control_Detect_application_installations_and_prompt_for_elevation_ValueType: 'Dword' +# R-254487 WN22-SO-000430 +win2022STIG_stigrule_254487_Manage: True +win2022STIG_stigrule_254487_User_Account_Control_Only_elevate_UIAccess_applications_that_are_installed_in_secure_locations_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254487_User_Account_Control_Only_elevate_UIAccess_applications_that_are_installed_in_secure_locations_State: 'Present' +win2022STIG_stigrule_254487_User_Account_Control_Only_elevate_UIAccess_applications_that_are_installed_in_secure_locations_ValueData: '1' +win2022STIG_stigrule_254487_User_Account_Control_Only_elevate_UIAccess_applications_that_are_installed_in_secure_locations_ValueType: 'Dword' +# R-254488 WN22-SO-000440 +win2022STIG_stigrule_254488_Manage: True +win2022STIG_stigrule_254488_User_Account_Control_Run_all_administrators_in_Admin_Approval_Mode_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254488_User_Account_Control_Run_all_administrators_in_Admin_Approval_Mode_State: 'Present' +win2022STIG_stigrule_254488_User_Account_Control_Run_all_administrators_in_Admin_Approval_Mode_ValueData: '1' +win2022STIG_stigrule_254488_User_Account_Control_Run_all_administrators_in_Admin_Approval_Mode_ValueType: 'Dword' +# R-254489 WN22-SO-000450 +win2022STIG_stigrule_254489_Manage: True +win2022STIG_stigrule_254489_User_Account_Control_Virtualize_file_and_registry_write_failures_to_per_user_locations_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\' +win2022STIG_stigrule_254489_User_Account_Control_Virtualize_file_and_registry_write_failures_to_per_user_locations_State: 'Present' +win2022STIG_stigrule_254489_User_Account_Control_Virtualize_file_and_registry_write_failures_to_per_user_locations_ValueData: '1' +win2022STIG_stigrule_254489_User_Account_Control_Virtualize_file_and_registry_write_failures_to_per_user_locations_ValueType: 'Dword' +# R-254490 WN22-UC-000010 +win2022STIG_stigrule_254490_Manage: True +win2022STIG_stigrule_254490_SaveZoneInformation_Key: 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Attachments\' +win2022STIG_stigrule_254490_SaveZoneInformation_State: 'Present' +win2022STIG_stigrule_254490_SaveZoneInformation_ValueData: '2' +win2022STIG_stigrule_254490_SaveZoneInformation_ValueType: 'Dword' +# R-254491 WN22-UR-000010 +win2022STIG_stigrule_254491_Manage: True +win2022STIG_stigrule_254491_SeTrustedCredManAccessPrivilege_Users: [] +# R-254492 WN22-UR-000020 +win2022STIG_stigrule_254492_Manage: True +win2022STIG_stigrule_254492_SeTcbPrivilege_Users: [] +# R-254493 WN22-UR-000030 +win2022STIG_stigrule_254493_Manage: True +win2022STIG_stigrule_254493_SeInteractiveLogonRight_Users: ['Administrators'] +# R-254494 WN22-UR-000040 +win2022STIG_stigrule_254494_Manage: True +win2022STIG_stigrule_254494_SeBackupPrivilege_Users: ['Administrators'] +# R-254495 WN22-UR-000050 +win2022STIG_stigrule_254495_Manage: True +win2022STIG_stigrule_254495_SeCreatePagefilePrivilege_Users: ['Administrators'] +# R-254496 WN22-UR-000060 +win2022STIG_stigrule_254496_Manage: True +win2022STIG_stigrule_254496_SeCreateTokenPrivilege_Users: [] +# R-254497 WN22-UR-000070 +win2022STIG_stigrule_254497_Manage: True +win2022STIG_stigrule_254497_SeCreateGlobalPrivilege_Users: ['Administrators','Service','Local Service','Network Service'] +# R-254498 WN22-UR-000080 +win2022STIG_stigrule_254498_Manage: True +win2022STIG_stigrule_254498_SeCreatePermanentPrivilege_Users: [] +# R-254499 WN22-UR-000090 +win2022STIG_stigrule_254499_Manage: True +win2022STIG_stigrule_254499_SeCreateSymbolicLinkPrivilege_Users: ['Administrators'] +# R-254500 WN22-UR-000100 +win2022STIG_stigrule_254500_Manage: True +win2022STIG_stigrule_254500_SeDebugPrivilege_Users: ['Administrators'] +# R-254501 WN22-UR-000110 +win2022STIG_stigrule_254501_Manage: True +win2022STIG_stigrule_254501_SeRemoteShutdownPrivilege_Users: ['Administrators'] +# R-254502 WN22-UR-000120 +win2022STIG_stigrule_254502_Manage: True +win2022STIG_stigrule_254502_SeAuditPrivilege_Users: ['Local Service','Network Service'] +# R-254503 WN22-UR-000130 +win2022STIG_stigrule_254503_Manage: True +win2022STIG_stigrule_254503_SeImpersonatePrivilege_Users: ['Administrators','Service','Local Service','Network Service'] +# R-254504 WN22-UR-000140 +win2022STIG_stigrule_254504_Manage: True +win2022STIG_stigrule_254504_SeIncreaseBasePriorityPrivilege_Users: ['Administrators'] +# R-254505 WN22-UR-000150 +win2022STIG_stigrule_254505_Manage: True +win2022STIG_stigrule_254505_SeLoadDriverPrivilege_Users: ['Administrators'] +# R-254506 WN22-UR-000160 +win2022STIG_stigrule_254506_Manage: True +win2022STIG_stigrule_254506_SeLockMemoryPrivilege_Users: [] +# R-254507 WN22-UR-000170 +win2022STIG_stigrule_254507_Manage: True +win2022STIG_stigrule_254507_SeSecurityPrivilege_Users: ['Administrators'] +# R-254508 WN22-UR-000180 +win2022STIG_stigrule_254508_Manage: True +win2022STIG_stigrule_254508_SeSystemEnvironmentPrivilege_Users: ['Administrators'] +# R-254509 WN22-UR-000190 +win2022STIG_stigrule_254509_Manage: True +win2022STIG_stigrule_254509_SeManageVolumePrivilege_Users: ['Administrators'] +# R-254510 WN22-UR-000200 +win2022STIG_stigrule_254510_Manage: True +win2022STIG_stigrule_254510_SeProfileSingleProcessPrivilege_Users: ['Administrators'] +# R-254511 WN22-UR-000210 +win2022STIG_stigrule_254511_Manage: True +win2022STIG_stigrule_254511_SeRestorePrivilege_Users: ['Administrators'] +# R-254512 WN22-UR-000220 +win2022STIG_stigrule_254512_Manage: True +win2022STIG_stigrule_254512_SeTakeOwnershipPrivilege_Users: ['Administrators'] diff --git a/collections/ansible_collections/demo/compliance/roles/win2022STIG/files/U_MS_Windows_Server_2022_STIG_V1R1_Manual-xccdf.xml b/collections/ansible_collections/demo/compliance/roles/win2022STIG/files/U_MS_Windows_Server_2022_STIG_V1R1_Manual-xccdf.xml new file mode 100644 index 0000000..7c7a723 --- /dev/null +++ b/collections/ansible_collections/demo/compliance/roles/win2022STIG/files/U_MS_Windows_Server_2022_STIG_V1R1_Manual-xccdf.xml @@ -0,0 +1,5488 @@ +acceptedMicrosoft Windows Server 2022 Security Technical Implementation GuideThis Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil.DISASTIG.DOD.MILRelease: 1 Benchmark Date: 09 Sep 20223.4.0.342221.10.01I - Mission Critical Classified<ProfileDescription></ProfileDescription>I - Mission Critical Sensitive<ProfileDescription></ProfileDescription>II - Mission Support Public<ProfileDescription></ProfileDescription>III - Administrative Classified<ProfileDescription></ProfileDescription>III - Administrative Sensitive<ProfileDescription></ProfileDescription>