id: os_policy_banner_ssh_enforce title: "Enforce SSH to Display Policy Banner" discussion: | SSH _MUST_ be configured to display a policy banner. Displaying a standardized and approved use notification before granting access to the operating system ensures that users are provided with privacy and security notification verbiage that is consistent with applicable federal laws, Executive Orders, directives, policies, regulations, standards, and guidance. System use notifications are required only for access via login interfaces with human users and are not required when such human interfaces do not exist NOTE: /etc/ssh/sshd_config will be automatically modified to its original state following any update or major upgrade to the operating system. check: | /usr/sbin/sshd -G | /usr/bin/grep -c "^banner /etc/banner" result: integer: 1 fix: | [source,bash] ---- include_dir=$(/usr/bin/awk '/^Include/ {print $2}' /etc/ssh/sshd_config | /usr/bin/tr -d '*') if [[ -z $include_dir ]]; then /usr/bin/sed -i.bk "1s/.*/Include \/etc\/ssh\/sshd_config.d\/\*/" /etc/ssh/sshd_config fi /usr/bin/grep -qxF 'banner /etc/banner' "${include_dir}01-mscp-sshd.conf" 2>/dev/null || echo "banner /etc/banner" >> "${include_dir}01-mscp-sshd.conf" for file in $(ls ${include_dir}); do if [[ "$file" == "100-macos.conf" ]]; then continue fi if [[ "$file" == "01-mscp-sshd.conf" ]]; then break fi /bin/mv ${include_dir}${file} ${include_dir}20-${file} done ---- references: cce: - CCE-92852-3 cci: - CCI-000048 - CCI-000050 800-53r5: - AC-8 800-53r4: - AC-8 srg: - SRG-OS-000023-GPOS-00006 - SRG-OS-000024-GPOS-00007 disa_stig: - N/A 800-171r2: - 3.1.9 cmmc: - AC.L2-3.1.9 macOS: - "14.0" tags: - 800-53r5_low - 800-53r5_moderate - 800-53r5_high - 800-53r4_low - 800-53r4_moderate - 800-53r4_high - 800-171 - cnssi-1253_moderate - cnssi-1253_low - cnssi-1253_high - cmmc_lvl2 severity: "medium" mobileconfig: false mobileconfig_info: