diff --git a/README.md b/README.md
index 746bf775..e57666cc 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,6 @@ to systems running the following distributions:
* openSUSE Leap 42.2 and 42.3
* Red Hat Enterprise Linux 7
* SUSE Linux Enterprise 12 (*experimental*)
-* Ubuntu 14.04 *(deprecated)*
* Ubuntu 16.04
For more details, review the
@@ -50,7 +49,6 @@ Running with Vagrant
This role can be tested easily on multiple platforms using Vagrant.
The `Vagrantfile` supports testing on:
- * Ubuntu 14.04
* Ubuntu 16.04
* CentOS 7
diff --git a/defaults/main.yml b/defaults/main.yml
index 7f72d177..71ee30d4 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -24,10 +24,7 @@
# * SUSE Linux Enterprise 12
# * Ubuntu 16.04 Xenial LTS
#
-# The RHEL 6 STIG content is deprecated in the Ocata release. It is compatible
-# with Ubuntu 14.04 Trusty LTS.
-#
-# Valid options: rhel7, rhel6
+# Valid options: rhel7
stig_version: rhel7
## APT Cache Options
@@ -73,6 +70,16 @@ security_set_maximum_password_lifetime: no # V-71931
# Initialize the AIDE database immediately (may take time).
security_rhel7_initialize_aide: no # V-71973
+# The default Ubuntu configuration for AIDE will cause it to wander into some
+# terrible places on the system, such as /var/lib/lxc and images in /opt.
+# The following three default exclusions are highly recommended for AIDE to
+# work properly, but additional exclusions can be added to this list if needed.
+security_aide_exclude_dirs:
+ - /openstack
+ - /opt
+ - /run
+ - /var
+
## Audit daemon (auditd)
# Send audit records to a different system using audisp.
#security_audisp_remote_server: '10.0.21.1' # V-72083
@@ -243,6 +250,8 @@ security_enable_firewalld: no # V-72273
security_enable_firewalld_rate_limit: no # V-72271
security_enable_firewalld_rate_limit_per_minute: 25
security_enable_firewalld_rate_limit_burst: 100
+# Update the grub configuration.
+security_enable_grub_update: yes
# Require authentication in GRUB to boot into single-user or maintenance modes.
security_require_grub_authentication: no # V-71961 / V-71963
# The default password for grub authentication is 'secrete'.
@@ -341,342 +350,3 @@ security_disallow_ip_forwarding: no # V-72309
security_rhel7_disable_usb_storage: yes # V-71983
# Disable kdump.
security_disable_kdump: yes # V-72057
-
-
-###############################################################################
-# ____ _ _ _____ _ __ ____ _____ ___ ____
-# | _ \| | | | ____| | / /_ / ___|_ _|_ _/ ___|
-# | |_) | |_| | _| | | | '_ \ \___ \ | | | | | _
-# | _ <| _ | |___| |___ | (_) | ___) || | | | |_| |
-# |_| \_\_| |_|_____|_____| \___/ |____/ |_| |___\____|
-#
-# DEPRECATED! The RHEL 6 STIG content and its tasks were deprecated in the
-# Ocata release and will be removed in a future release.
-#
-# These configuration options apply to the RHEL 6 STIG content. Be sure to set
-# `stig_version` to `rhel6` to use the tasks for the RHEL 6 STIG content.
-#
-###############################################################################
-
-## AIDE
-# The default Ubuntu configuration for AIDE will cause it to wander into some
-# terrible places on the system, such as /var/lib/lxc and images in /opt.
-# The following three default exclusions are highly recommended for AIDE to
-# work properly, but additional exclusions can be added to this list if needed.
-security_aide_exclude_dirs:
- - /openstack
- - /opt
- - /run
- - /var
-#
-# By default, the AIDE database won't be initialized immediately since it can
-# consume plenty of CPU and I/O resources while it runs. To initialize the
-# AIDE database immediately when the playbook finishes, set the following
-# variable to 'true':
-security_initialize_aide: false
-
-## Audit daemon
-# V-38438 requires that auditd is enabled at boot time with a parameter in the
-# GRUB configuration.
-#
-# If 'security_enable_audit_during_boot' is set to 'yes', then the 'audit=1'
-# parameter will be added in /etc/default/grub.d/.
-# If 'security_enable_grub_update is set to 'yes', the grub.cfg will be
-# updated automatically.
-security_enable_audit_during_boot: yes # V-38438
-security_enable_grub_update: yes # V-38438
-
-# The following booleans control the rule sets added to auditd's default
-# set of auditing rules. To see which rules will be added for each boolean,
-# refer to the templates/osas-auditd.j2 file.
-#
-# If the template changes due to booleans being adjusted, the new template
-# will be deployed onto the host and auditd will get the new rules loaded
-# automatically with augenrules.
-#
-security_audit_account_modification: yes # V-38531, V-38534, V-38538
-security_audit_change_localtime: yes # V-38530
-security_audit_change_system_time: yes # V-38635
-security_audit_clock_settime: yes # V-38527
-security_audit_clock_settimeofday: yes # V-38522
-security_audit_clock_stime: yes # V-38525
-security_audit_DAC_chmod: no # V-38543
-security_audit_DAC_chown: no # V-38545
-security_audit_DAC_lchown: no # V-38558
-security_audit_DAC_fchmod: no # V-38547
-security_audit_DAC_fchmodat: no # V-38550
-security_audit_DAC_fchown: no # V-38552
-security_audit_DAC_fchownat: no # V-38554
-security_audit_DAC_fremovexattr: no # V-38556
-security_audit_DAC_lremovexattr: no # V-38559
-security_audit_DAC_fsetxattr: no # V-38557
-security_audit_DAC_lsetxattr: no # V-38561
-security_audit_DAC_setxattr: no # V-38565
-security_audit_deletions: no # V-38575
-security_audit_failed_access: no # V-38566
-security_audit_filesystem_mounts: yes # V-38568
-security_audit_kernel_modules: yes # V-38580
-security_audit_mac_changes: yes # V-38541
-security_audit_network_changes: yes # V-38540
-security_audit_sudoers: yes # V-38578
-#
-# **DANGER**
-# Changing the options below can cause systems to go offline unexpectedly or
-# stop serving requests as a security precaution. Read the developer notes for
-# each STIG prior to adjusting the following variables.
-# **DANGER**
-#
-# Set an action to occur when there is a disk error. Review the
-# documentation for V-38464 before changing this option.
-security_disk_error_action: SYSLOG # V-38464
-#
-# Set an action to occur when the disk is full. Review the documentation for
-# V-38468 before changing this option.
-security_disk_full_action: SYSLOG # V-38468
-#
-# V-38678 - Set the amount of megabytes left when the space_left_action
-# triggers. The STIG guideline doesn't specify a size, but Ubuntu chooses a
-# default of 75MB, which is reasonable.
-security_space_left: 75 # V-38678
-#
-# Set an action to occur when the disk is approaching its capacity.
-# Review the documentation for V-38470 before changing this option.
-security_space_left_action: SYSLOG # V-38470
-#
-# Set the maximum size of a rotated log file. Ubuntu's default
-# matches the STIG requirement of 6MB.
-security_max_log_file: 6 # V 38633
-#
-# Sets the action to take when log files reach the maximum file size.
-# Review the documentation for V-38634 before changing this option.
-security_max_log_file_action: ROTATE # V-38634
-#
-# Set the number of rotated audit logs to keep. Ubuntu has 5 as the default
-# and this matches the STIG's requirements.
-security_num_logs: 5 # V-38636
-#
-# Set the email address of someone who can receive and respond to notifications
-# about low disk space for log volumes.
-security_action_mail_acct: root # V-38680
-#
-# **IMMINENT DANGER**
-# The STIG says that the system should switch to single user mode when the
-# storage capacity gets very low. This can cause serious service disruptions
-# and should only be set to 'single' for deployers in extremely high security
-# environments. Ubuntu's default is SUSPEND, which will suspend logging.
-# **IMMENENT DANGER**
-security_admin_space_left_action: SUSPEND # V-54381
-
-## Chrony (NTP) configuration
-# Install and enable chrony to sync time with NTP servers.
-security_enable_chrony: yes # V-38620
-# Adjust the following NTP servers if necessary.
-security_ntp_servers:
- - 0.north-america.pool.ntp.org
- - 1.north-america.pool.ntp.org
- - 2.north-america.pool.ntp.org
- - 3.north-america.pool.ntp.org
-# Chrony limits access to clients that are on certain subnets. Adjust the
-# following subnets here to limit client access to chrony servers.
-security_allowed_ntp_subnets:
- - 10/8
- - 192.168/16
- - 172.16/12
-# Listen for NTP requests only on local interfaces.
-security_ntp_bind_local_interfaces_only: yes
-
-## Core dumps
-# V-38675 requires disabling core dumps for all users unless absolutely
-# necessary. Set this variable to 'no' to skip this change.
-security_disable_core_dumps: yes # V-38675
-
-## Services
-# The STIG recommends ensuring that some services are running if no services
-# utilizing it are enabled. Setting a boolean to 'yes' here will ensure that
-# a service isn't actively running and will not be started after boot-up.
-# Setting a 'no' will ensure that this Ansible role does not alter the service
-# in any way from its current configuration.
-#
-security_disable_abrtd: yes # V-38641
-security_disable_atd: yes # V-38640
-security_disable_autofs: yes # V-38437
-security_disable_avahi: yes # V-31618
-security_disable_bluetooth: yes # V-38691
-security_disable_netconsole: yes # v-38672
-security_disable_qpidd: yes # V-38648
-security_disable_rdisc: yes # V-38650
-security_disable_rsh: yes # V-38594
-security_disable_ypbind: yes # V-38604
-security_disable_xinetd: yes # V-38582
-#
-# The STIG recommends ensuring that some services aren't installed at ANY time.
-# Those services are listed here. Setting a boolean here to 'yes' wiil
-# ensure that the STIG is followed and the service is removed. Setting a
-# boolean to 'no' means that the playbook will not alter the service.
-#
-security_remove_ldap_server: yes # V-38627
-security_remove_rsh_server: yes # V-38591
-security_remove_sendmail: yes # V-38671
-security_remove_telnet_server: yes # V-38587
-security_remove_tftp_server: yes # V-38606
-security_remove_xinetd: yes # V-38584
-security_remove_xorg: yes # v-38676
-security_remove_ypserv: yes # V-38603
-#
-# The STIG does not allow the system to run a graphical interface. Set this
-# variable to 'no' if you need a graphical interface on the server.
-security_disable_x_windows: yes # V-38674
-
-## SSH configuration
-# The following configuration items will adjust how the ssh daemon is
-# configured. The recommendations from the RHEL 6 STIG are shown below, but
-# they can be adjusted to fit a particular environment.
-#
-# Set a 15 minute time out for SSH sessions if there is no activity
-security_ssh_client_alive_interval: 900 # V-38608
-#
-# Timeout ssh sessions as soon as ClientAliveInterval is reached once
-security_ssh_client_alive_count_max: 0 # V-38610
-#
-# The ssh daemon must not permit root logins. The default value of
-# 'without-password' is a deviation from the STIG requirements due to how
-# OpenStack-Ansible operates, especially within OpenStack CI gate jobs. See
-# documentation for V-38613 for more details.
-security_ssh_permit_root_login: 'without-password' # V-38613
-
-## Kernel
-# Set these booleans to 'yes' to disable the kernel module (following the
-# STIG requirements). Set the boolean to 'no' to ensure no changes are made.
-security_disable_module_bluetooth: yes # V-38682
-security_disable_module_dccp: yes # V-38514
-security_disable_module_rds: yes # V-38516
-security_disable_module_sctp: yes # V-38515
-security_disable_module_tipc: yes # V-38517
-security_disable_module_usb_storage: no # V-38490
-security_disable_icmpv4_redirects: no # V-38524
-security_disable_icmpv4_redirects_secure: no # V-38526
-security_disable_icmpv6_redirects: no # V-38548
-#
-# ** DANGER **
-# It's strongly recommended to fully understand the effects of changing the
-# following sysctl tunables. Refer to the documentation under 'Developer
-# Notes' for each of the STIGs below before making any changes.
-# ** DANGER **
-#
-security_sysctl_enable_tcp_syncookies: yes # V-38539
-security_sysctl_enable_martian_logging: no # V-38528
-#
-# Deployers who wish to disable IPv6 entirely must set this configuration
-# variable to 'yes'. See the documentation for V-38546 before making this
-# change.
-security_disable_ipv6: no # V-38546
-
-# Sets the global challenge ACK counter to a large value such
-# that a potential attacker could not reasonably come up against it.
-security_set_tcp_challenge_ack_limit: yes # CVE-2016-5696
-
-## Mail
-# The STIG requires inet_interfaces to be set to 'localhost', but Ubuntu will
-# configure it to be 'all' when dpkg-reconfigure is unavailable (as it is when
-# Ansible installs packages). The default here is 'localhost' to meet the STIG
-# requirement, but some deployers may want this set to 'all' if their hosts
-# need to receive emails over the network (which isn't common).
-#
-# See the documentation for V-38622 for more details.
-security_postfix_inet_interfaces: localhost # V-38622
-#
-# Configuring an email address here will cause hosts to forward the root user's
-# email to another address.
-#
-#security_root_forward_email: user@example.com
-
-## Linux Security Module (LSM)
-# AppArmor and SELinux provide powerful security controls on a Linux system
-# by setting policies for allowed actions. By setting the following variable
-# to true, the appropriate LSM will be enabled for the Linux distribution:
-#
-# Ubuntu: AppArmor
-# CentOS: SELinux
-#
-# See the ansible-hardening documentation for more details.
-security_enable_linux_security_module: yes # V-51337
-
-## PAM and authentication
-# V-38497 requires that accounts with null passwords aren't allowed to
-# authenticate via PAM. Ubuntu 14.04's default allows these logins -- see the
-# documentation for V-38497 for more details. Set the variable below to 'yes'
-# to remove 'nullok_secure' from the PAM configuration or set it to 'no' to
-# leave the PAM configuration unaltered.
-security_pam_remove_nullok: yes # V-38497
-#
-# V-38501 requires that failed login attempts must lock a user account using
-# pam_faillock, but Ubuntu doesn't package that PAM module. Instead, fail2ban
-# can be installed to lock out IP addresses with failed logins for 15 minutes.
-# Set the variable below to 'yes' to install and configure fail2ban.
-security_install_fail2ban: no # V-38501
-#
-# The STIG requires bans to last 15 minutes. Adjust the following variable
-# to set the time an IP is banned by fail2ban (in seconds).
-security_fail2ban_bantime: 900 # V-38501
-
-## Password complexity and aging
-# V-38475 - There is no password length requirement by default in Ubuntu 14.04.
-# To set a password length requirement, uncomment
-# security_password_minimum_length below. The STIG recommendation is 14
-# characters.
-#security_password_minimum_length: 14 # V-38475
-# V-38477 - There is no password change limitation set by default in Ubuntu. To
-# set the minimum number of days between password changes, uncomment the
-# security_password_minimum_days variable below. The STIG recommendation is 1
-# day.
-#security_password_minimum_days: 1 # V-38477
-# V-38479 - There is no age limit on password by default in Ubuntu. Uncomment
-# line below to use the STIG recommendation of 60 days.
-#security_password_maximum_days: 60 # V-38479
-# V-38480 - To warn users before their password expires, uncomment the line
-# below and they will be warned 7 days prior (following the STIG).
-#security_password_warn_age: 7 # V-38480
-# V-38684 - Setting the maximum number of simultaneous logins per user. The
-# STIG sets a limit of 10.
-#security_max_simultaneous_logins: 10 # V-38684
-# V-38692 - Lock accounts that are inactive for 35 days.
-#security_inactive_account_lock_days: 35 # V-38692
-
-## sudo
-# V-58901 requires that 'NOPASSWD' and '!authenticate' do not appear in any
-# sudoers files since they could lead to a compromise. Set the following
-# variables to 'yes' to comment out any lines found with these prohibited
-# parameters or leave them set to 'no' (the default) to leave sudoers files
-# unaltered. Deployers are urged to review the documentation for this STIG
-# before making changes.
-security_sudoers_remove_nopasswd: no # V-58901
-security_sudoers_remove_authenticate: no # V-58901
-
-## umask settings
-# The STIG recommends changing various default umask settings for users and
-# daemons via different methods. However, this could cause serious issues for
-# production OpenStack environements which haven't been tested with these
-# changes.
-#
-# The variables below are set to match the STIG requirements, but they are
-# commented out to ensure they require deployers to opt-in for each change. To
-# opt in for one of the changes below, simply uncomment the line and run the
-# playbook. Deployers are strongly advised to review the documentation for
-# these changes and review their systems to ensure these changes won't cause
-# service disruptions.
-#
-# V-38642 - Set umask for daemons in init scripts to 027 or 022
-#security_umask_daemons_init: 027 # V-38642
-#
-# V-38645 - System default umask in /etc/login.defs must be 077
-#security_umask_login_defs: 077 # V-38645
-#
-# V-38649 - System default umask for csh must be 077
-#security_umask_csh: 077 # V-38649
-#
-# V-38651 - System default umask for bash must be 077
-#security_umask_bash: 077 # V-38651
-
-## Unattended upgrades (APT) configuration
-security_unattended_upgrades_enabled: false
-security_unattended_upgrades_notifications: false
diff --git a/doc/metadata/U_RedHat_6_V1R12_Manual-xccdf.xml b/doc/metadata/U_RedHat_6_V1R12_Manual-xccdf.xml
deleted file mode 100644
index e1ef90a5..00000000
--- a/doc/metadata/U_RedHat_6_V1R12_Manual-xccdf.xml
+++ /dev/null
@@ -1,3168 +0,0 @@
-acceptedRed Hat Enterprise Linux 6 Security Technical Implementation GuideThe Red Hat Enterprise Linux 6 Security Technical Implementation Guide (STIG) is published as a tool to improve the security of Department of Defense (DoD) information systems. Comments or proposed revisions to this document should be sent via e-mail to the following address: disa.stig_spt@mail.mil.DISASTIG.DOD.MILRelease: 12 Benchmark Date: 22 Jul 20161I - 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-999999<GroupDescription></GroupDescription>RHEL-06-000526Automated file system mounting tools must not be enabled unless needed.<VulnDiscussion>All filesystems that are required for the successful operation of the system should be explicitly listed in "/etc/fstab" by an administrator. New filesystems should not be arbitrarily introduced via the automounter.
-
-The "autofs" daemon mounts and unmounts filesystems, such as user home directories shared via NFS, on demand. In addition, autofs can be used to handle removable media, and the default configuration provides the cdrom device as "/misc/cd". However, this method of providing access to removable media is not common, so autofs can almost always be disabled if NFS is not in use. Even if NFS is required, it is almost always possible to configure filesystem mounts statically by editing "/etc/fstab" rather than relying on the automounter. </VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366If the "autofs" service is not needed to dynamically mount NFS filesystems or removable media, disable the service for all runlevels:
-
-# chkconfig --level 0123456 autofs off
-
-Stop the service if it is already running:
-
-# service autofs stopTo verify the "autofs" service is disabled, run the following command:
-
-chkconfig --list autofs
-
-If properly configured, the output should be the following:
-
-autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Verify the "autofs" service is not running:
-
-# service autofs status
-
-If the autofs service is enabled or running, this is a finding.SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000525Auditing must be enabled at boot by setting a kernel parameter.<VulnDiscussion>Each process on the system carries an "auditable" flag which indicates whether its activities can be audited. Although "auditd" takes care of enabling this for all processes which launch after it does, adding the kernel argument ensures it is set for every process during boot.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169To ensure all processes can be audited, even those which start prior to the audit daemon, add the argument "audit=1" to the kernel line in "/boot/grub/grub.conf", in the manner below:
-
-kernel /vmlinuz-version ro vga=ext root=/dev/VolGroup00/LogVol00 rhgb quiet audit=1
-
-UEFI systems may prepend "/boot" to the "/vmlinuz-version" argument. Inspect the kernel boot arguments (which follow the word "kernel") in "/boot/grub/grub.conf". If they include "audit=1", then auditing is enabled at boot time.
-
-If auditing is not enabled at boot time, this is a finding.SRG-OS-000001<GroupDescription></GroupDescription>RHEL-06-000524The system must provide automated support for account management functions.<VulnDiscussion>A comprehensive account management process that includes automation helps to ensure the accounts designated as requiring attention are consistently and promptly addressed. Enterprise environments make user account management challenging and complex. A user management process requiring administrators to manually address account management functions adds risk of potential oversight.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000015Implement an automated system for managing user accounts that minimizes the risk of errors, either intentional or deliberate. If possible, this system should integrate with an existing enterprise user management system, such as, one based Active Directory or Kerberos.Interview the SA to determine if there is an automated system for managing user accounts, preferably integrated with an existing enterprise user management system.
-
-If there is not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000036The /etc/gshadow file must be owned by root.<VulnDiscussion>The "/etc/gshadow" file contains group password hashes. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the owner of "/etc/gshadow", run the command:
-
-# chown root /etc/gshadowTo check the ownership of "/etc/gshadow", run the command:
-
-$ ls -l /etc/gshadow
-
-If properly configured, the output should indicate the following owner: "root"
-If it does not, this is a finding.SRG-OS-000231<GroupDescription></GroupDescription>RHEL-06-000523The systems local IPv6 firewall must implement a deny-all, allow-by-exception policy for inbound packets.<VulnDiscussion>In "ip6tables" the default policy is applied only after all the applicable rules in the table are examined for a match. Setting the default policy to "DROP" implements proper design for a firewall, i.e., any packets which are not explicitly permitted should not be accepted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000066To set the default policy to DROP (instead of ACCEPT) for the built-in INPUT chain which processes incoming packets, add or correct the following line in "/etc/sysconfig/ip6tables":
-
-:INPUT DROP [0:0]
-
-Restart the IPv6 firewall:
-
-# service ip6tables restartIf IPv6 is disabled, this is not applicable.
-
-Inspect the file "/etc/sysconfig/ip6tables" to determine the default policy for the INPUT chain. It should be set to DROP:
-
-# grep ":INPUT" /etc/sysconfig/ip6tables
-
-If the default policy for the INPUT chain is not set to DROP, this is a finding. SRG-OS-000057<GroupDescription></GroupDescription>RHEL-06-000522Audit log files must be group-owned by root.<VulnDiscussion>If non-privileged users can write to audit logs, audit trails can be modified or destroyed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000162Change the group owner of the audit log files with the following command:
-
-# chgrp root [audit_file]Run the following command to check the group owner of the system audit logs:
-
-grep "^log_file" /etc/audit/auditd.conf|sed s/^[^\/]*//|xargs stat -c %G:%n
-
-Audit logs must be group-owned by root.
-If they are not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000521The mail system must forward all mail for root to one or more system administrators.<VulnDiscussion>A number of system services utilize email messages sent to the root user to notify system administrators of active or impending issues. These messages must be forwarded to at least one monitored email address.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Set up an alias for root that forwards to a monitored email address:
-
-# echo "root: <system.administrator>@mail.mil" >> /etc/aliases
-# newaliasesFind the list of alias maps used by the Postfix mail server:
-
-# postconf alias_maps
-
-Query the Postfix alias maps for an alias for "root":
-
-# postmap -q root <alias_map>
-
-If there are no aliases configured for root that forward to a monitored email address, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000519The system package management tool must verify contents of all files associated with packages.<VulnDiscussion>The hash on important files like system executables should match the information given by the RPM database. Executables with erroneous hashes could be a sign of nefarious activity 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 6DISADPMS TargetRed Hat 62367CCI-000366The RPM package management system can check the hashes of installed software packages, including many that are important to system security. Run the following command to list which files on the system have hashes that differ from what is expected by the RPM database:
-
-# rpm -Va | grep '^..5'
-
-A "c" in the second column indicates that a file is a configuration file, which may appropriately be expected to change. If the file that has changed was not expected to then refresh from distribution media or online repositories.
-
-rpm -Uvh [affected_package]
-
-OR
-
-yum reinstall [affected_package]The following command will list which files on the system have file hashes different from what is expected by the RPM database.
-
-# rpm -Va | awk '$1 ~ /..5/ && $2 != "c"'
-
-
-If there is output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000037The /etc/gshadow file must be group-owned by root.<VulnDiscussion>The "/etc/gshadow" file contains group password hashes. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the group owner of "/etc/gshadow", run the command:
-
-# chgrp root /etc/gshadowTo check the group ownership of "/etc/gshadow", run the command:
-
-$ ls -l /etc/gshadow
-
-If properly configured, the output should indicate the following group-owner. "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000038The /etc/gshadow file must have mode 0000.<VulnDiscussion>The /etc/gshadow file contains group password hashes. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the permissions of "/etc/gshadow", run the command:
-
-# chmod 0000 /etc/gshadowTo check the permissions of "/etc/gshadow", run the command:
-
-$ ls -l /etc/gshadow
-
-If properly configured, the output should indicate the following permissions: "----------"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000039The /etc/passwd file must be owned by root.<VulnDiscussion>The "/etc/passwd" file contains information about the users that are configured on the system. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the owner of "/etc/passwd", run the command:
-
-# chown root /etc/passwdTo check the ownership of "/etc/passwd", run the command:
-
-$ ls -l /etc/passwd
-
-If properly configured, the output should indicate the following owner: "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000040The /etc/passwd file must be group-owned by root.<VulnDiscussion>The "/etc/passwd" file contains information about the users that are configured on the system. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the group owner of "/etc/passwd", run the command:
-
-# chgrp root /etc/passwdTo check the group ownership of "/etc/passwd", run the command:
-
-$ ls -l /etc/passwd
-
-If properly configured, the output should indicate the following group-owner. "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000518The system package management tool must verify permissions on all files and directories associated with packages.<VulnDiscussion>Permissions on system binaries and configuration files that are too generous could allow an unauthorized user to gain privileges that they should not have. The permissions set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The RPM package management system can restore file access permissions of package files and directories. The following command will update permissions on files and directories with permissions different from what is expected by the RPM database:
-
-# rpm --setperms [package]The following command will list which files and directories on the system have permissions different from what is expected by the RPM database:
-
-# rpm -Va | grep '^.M'
-
-If there is any output, for each file or directory found, find the associated RPM package and compare the RPM-expected permissions with the actual permissions on the file or directory:
-
-# rpm -qf [file or directory name]
-# rpm -q --queryformat "[%{FILENAMES} %{FILEMODES:perms}\n]" [package] | grep [filename]
-# ls -dlL [filename]
-
-If the existing permissions are more permissive than those expected by RPM, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000517The system package management tool must verify group-ownership on all files and directories associated with packages.<VulnDiscussion>Group-ownership of system binaries and configuration files that is incorrect could allow an unauthorized user to gain privileges that they should not have. The group-ownership set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The RPM package management system can restore group-ownership of the package files and directories. The following command will update files and directories with group-ownership different from what is expected by the RPM database:
-
-# rpm -qf [file or directory name]
-# rpm --setugids [package]The following command will list which files on the system have group-ownership different from what is expected by the RPM database:
-
-# rpm -Va | grep '^......G'
-
-
-If there is output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000516The system package management tool must verify ownership on all files and directories associated with packages.<VulnDiscussion>Ownership of system binaries and configuration files that is incorrect could allow an unauthorized user to gain privileges that they should not have. The ownership set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The RPM package management system can restore ownership of package files and directories. The following command will update files and directories with ownership different from what is expected by the RPM database:
-
-# rpm -qf [file or directory name]
-# rpm --setugids [package]The following command will list which files on the system have ownership different from what is expected by the RPM database:
-
-# rpm -Va | grep '^.....U'
-
-
-If there is output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000001The system must use a separate file system for /tmp.<VulnDiscussion>The "/tmp" partition is used as temporary storage by many programs. Placing "/tmp" in its own partition enables the setting of more restrictive mount options, which can help protect programs which use it.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "/tmp" directory is a world-writable directory used for temporary file storage. Ensure it has its own partition or logical volume at installation time, or migrate it using LVM.Run the following command to determine if "/tmp" is on its own partition or logical volume:
-
-$ mount | grep "on /tmp "
-
-If "/tmp" has its own partition or volume group, a line will be returned.
-If no line is returned, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000002The system must use a separate file system for /var.<VulnDiscussion>Ensuring that "/var" is mounted on its own partition enables the setting of more restrictive mount options. This helps protect system services such as daemons or other programs which use it. It is not uncommon for the "/var" directory to contain world-writable directories, installed by other software packages.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "/var" directory is used by daemons and other system services to store frequently-changing data. Ensure that "/var" has its own partition or logical volume at installation time, or migrate it using LVM.Run the following command to determine if "/var" is on its own partition or logical volume:
-
-$ mount | grep "on /var "
-
-If "/var" has its own partition or volume group, a line will be returned.
-If no line is returned, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000041The /etc/passwd file must have mode 0644 or less permissive.<VulnDiscussion>If the "/etc/passwd" file is writable by a group-owner or the world the risk of its compromise is increased. The file contains the list of accounts on the system and associated information, and protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the permissions of "/etc/passwd", run the command:
-
-# chmod 0644 /etc/passwdTo check the permissions of "/etc/passwd", run the command:
-
-$ ls -l /etc/passwd
-
-If properly configured, the output should indicate the following permissions: "-rw-r--r--"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000042The /etc/group file must be owned by root.<VulnDiscussion>The "/etc/group" file contains information regarding groups that are configured on the system. Protection of this file is important for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the owner of "/etc/group", run the command:
-
-# chown root /etc/groupTo check the ownership of "/etc/group", run the command:
-
-$ ls -l /etc/group
-
-If properly configured, the output should indicate the following owner: "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000043The /etc/group file must be group-owned by root.<VulnDiscussion>The "/etc/group" file contains information regarding groups that are configured on the system. Protection of this file is important for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the group owner of "/etc/group", run the command:
-
-# chgrp root /etc/groupTo check the group ownership of "/etc/group", run the command:
-
-$ ls -l /etc/group
-
-If properly configured, the output should indicate the following group-owner. "root"
-If it does not, this is a finding.SRG-OS-000104<GroupDescription></GroupDescription>RHEL-06-000515The NFS server must not have the all_squash option enabled.<VulnDiscussion>The "all_squash" option maps all client requests to a single anonymous uid/gid on the NFS server, negating the ability to track file access by user ID.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000764Remove any instances of the "all_squash" option from the file "/etc/exports". Restart the NFS daemon for the changes to take effect.
-
-# service nfs restartIf the NFS server is read-only, in support of unrestricted access to organizational content, this is not applicable.
-
-The related "root_squash" option provides protection against remote administrator-level access to NFS server content. Its use is not a finding.
-
-To verify the "all_squash" option has been disabled, run the following command:
-
-# grep all_squash /etc/exports
-
-
-If there is output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000044The /etc/group file must have mode 0644 or less permissive.<VulnDiscussion>The "/etc/group" file contains information regarding groups that are configured on the system. Protection of this file is important for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the permissions of "/etc/group", run the command:
-
-# chmod 644 /etc/groupTo check the permissions of "/etc/group", run the command:
-
-$ ls -l /etc/group
-
-If properly configured, the output should indicate the following permissions: "-rw-r--r--"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000003The system must use a separate file system for /var/log.<VulnDiscussion>Placing "/var/log" in its own partition enables better separation between log files and other files in "/var/".</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366System logs are stored in the "/var/log" directory. Ensure that it has its own partition or logical volume at installation time, or migrate it using LVM.Run the following command to determine if "/var/log" is on its own partition or logical volume:
-
-$ mount | grep "on /var/log "
-
-If "/var/log" has its own partition or volume group, a line will be returned.
-If no line is returned, this is a finding.SRG-OS-000047<GroupDescription></GroupDescription>RHEL-06-000511The audit system must take appropriate action when there are disk errors on the audit storage volume.<VulnDiscussion>Taking appropriate action in case of disk errors will minimize the possibility of losing audit records.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000140Edit the file "/etc/audit/auditd.conf". Modify the following line, substituting [ACTION] appropriately:
-
-disk_error_action = [ACTION]
-
-Possible values for [ACTION] are described in the "auditd.conf" man page. These include:
-
-"ignore"
-"syslog"
-"exec"
-"suspend"
-"single"
-"halt"
-
-
-Set this to "syslog", "exec", "single", or "halt".Inspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to take appropriate action when disk errors occur:
-
-# grep disk_error_action /etc/audit/auditd.conf
-disk_error_action = [ACTION]
-
-
-If the system is configured to "suspend" when disk errors occur or "ignore" them, this is a finding.SRG-OS-000259<GroupDescription></GroupDescription>RHEL-06-000045Library files must have mode 0755 or less permissive.<VulnDiscussion>Files from shared library directories are loaded into the address space of processes (including privileged ones) or of the kernel itself at runtime. Restrictive permissions are necessary to protect the integrity of 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 6DISADPMS TargetRed Hat 62367CCI-001499System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default:
-
-/lib
-/lib64
-/usr/lib
-/usr/lib64
-
-If any file in these directories is found to be group-writable or world-writable, correct its permission with the following command:
-
-# chmod go-w [FILE]System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default:
-
-/lib
-/lib64
-/usr/lib
-/usr/lib64
-
-
-Kernel modules, which can be added to the kernel during runtime, are stored in "/lib/modules". All files in these directories should not be group-writable or world-writable. To find shared libraries that are group-writable or world-writable, run the following command for each directory [DIR] which contains shared libraries:
-
-$ find -L [DIR] -perm /022 -type f
-
-
-If any of these files (excluding broken symlinks) are group-writable or world-writable, this is a finding.SRG-OS-000259<GroupDescription></GroupDescription>RHEL-06-000046Library files must be owned by a system account.<VulnDiscussion>Files from shared library directories are loaded into the address space of processes (including privileged ones) or of the kernel itself at runtime. Proper ownership is necessary to protect the integrity of 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 6DISADPMS TargetRed Hat 62367CCI-001499System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default:
-
-/lib
-/lib64
-/usr/lib
-/usr/lib64
-/usr/local/lib
-/usr/local/lib64
-
-If any file in these directories is found to be owned by a user other than “root” and does not match what is expected by the RPM, correct its ownership by running one of the following commands:
-
-
-# rpm --setugids [PACKAGE_NAME]
-
-Or
-
-# chown root [FILE]System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default:
-
-/lib
-/lib64
-/usr/lib
-/usr/lib64
-/usr/local/lib
-/usr/local/lib64
-
-Kernel modules, which can be added to the kernel during runtime, are stored in "/lib/modules". All files in these directories should not be group-writable or world-writable. To find shared libraries that are not owned by "root" and do not match what is expected by the RPM, run the following command:
-
-for i in /lib /lib64 /usr/lib /usr/lib64
-do
- for j in `find -L $i \! -user root`
- do
- rpm -V -f $j | grep '^.....U'
- done
-done
-
-
-If the command returns any results, this is a finding.SRG-OS-000044<GroupDescription></GroupDescription>RHEL-06-000004The system must use a separate file system for the system audit data path.<VulnDiscussion>Placing "/var/log/audit" in its own partition enables better separation between audit files and other files, and helps ensure that auditing cannot be halted due to the partition running out of space.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000137Audit logs are stored in the "/var/log/audit" directory. Ensure that it has its own partition or logical volume at installation time, or migrate it later using LVM. Make absolutely certain that it is large enough to store all audit logs that will be created by the auditing daemon.Run the following command to determine if "/var/log/audit" is on its own partition or logical volume:
-
-$ mount | grep "on /var/log/audit "
-
-If "/var/log/audit" has its own partition or volume group, a line will be returned.
-If no line is returned, this is a finding.SRG-OS-000047<GroupDescription></GroupDescription>RHEL-06-000510The audit system must take 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.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000140The "auditd" service can be configured to take an action when disk space starts to run low. Edit the file "/etc/audit/auditd.conf". Modify the following line, substituting [ACTION] appropriately:
-
-disk_full_action = [ACTION]
-
-Possible values for [ACTION] are described in the "auditd.conf" man page. These include:
-
-"ignore"
-"syslog"
-"exec"
-"suspend"
-"single"
-"halt"
-
-
-Set this to "syslog", "exec", "single", or "halt".Inspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to take appropriate action when the audit storage volume is full:
-
-# grep disk_full_action /etc/audit/auditd.conf
-disk_full_action = [ACTION]
-
-
-If the system is configured to "suspend" when the volume is full or "ignore" that it is full, this is a finding.SRG-OS-000259<GroupDescription></GroupDescription>RHEL-06-000047All system command files must have mode 755 or less permissive.<VulnDiscussion>System binaries are executed by privileged users, as well as system services, and restrictive permissions are necessary to ensure execution of these programs cannot be co-opted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001499System executables are stored in the following directories by default:
-
-/bin
-/usr/bin
-/usr/local/bin
-/sbin
-/usr/sbin
-/usr/local/sbin
-
-If any file in these directories is found to be group-writable or world-writable, correct its permission with the following command:
-
-# chmod go-w [FILE]System executables are stored in the following directories by default:
-
-/bin
-/usr/bin
-/usr/local/bin
-/sbin
-/usr/sbin
-/usr/local/sbin
-
-All files in these directories should not be group-writable or world-writable. To find system executables that are group-writable or world-writable, run the following command for each directory [DIR] which contains system executables:
-
-$ find -L [DIR] -perm /022 -type f
-
-If any system executables are found to be group-writable or world-writable, this is a finding.SRG-OS-000045<GroupDescription></GroupDescription>RHEL-06-000005The audit system must alert designated staff members when the audit storage volume approaches capacity.<VulnDiscussion>Notifying administrators of an impending disk space problem may allow them to take corrective action prior to any disruption.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000138The "auditd" service can be configured to take an action when disk space starts to run low. Edit the file "/etc/audit/auditd.conf". Modify the following line, substituting [ACTION] appropriately:
-
-space_left_action = [ACTION]
-
-Possible values for [ACTION] are described in the "auditd.conf" man page. These include:
-
-"ignore"
-"syslog"
-"email"
-"exec"
-"suspend"
-"single"
-"halt"
-
-
-Set this to "email" (instead of the default, which is "suspend") as it is more likely to get prompt attention. The "syslog" option is acceptable, provided the local log management infrastructure notifies an appropriate administrator in a timely manner.
-
-RHEL-06-000521 ensures that the email generated through the operation "space_left_action" will be sent to an administrator.Inspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to email the administrator when disk space is starting to run low:
-
-# grep space_left_action /etc/audit/auditd.conf
-space_left_action = email
-
-
-If the system is not configured to send an email to the system administrator when disk space is starting to run low, this is a finding. The "syslog" option is acceptable when it can be demonstrated that the local log management infrastructure notifies an appropriate administrator in a timely manner.SRG-OS-000043<GroupDescription></GroupDescription>RHEL-06-000509The system must forward audit records to the syslog service.<VulnDiscussion>The auditd service does not include the ability to send audit records to a centralized server for management directly. It does, however, include an audit event multiplexor plugin (audispd) to pass audit records to the local syslog 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 6DISADPMS TargetRed Hat 62367CCI-000136Set the "active" line in "/etc/audisp/plugins.d/syslog.conf" to "yes". Restart the auditd process.
-
-# service auditd restartVerify the audispd plugin is active:
-
-# grep active /etc/audisp/plugins.d/syslog.conf
-
-If the "active" setting is missing or set to "no", this is a finding.SRG-OS-000259<GroupDescription></GroupDescription>RHEL-06-000048All system command files must be owned by root.<VulnDiscussion>System binaries are executed by privileged users as well as system services, and restrictive permissions are necessary to ensure that their execution of these programs cannot be co-opted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001499System executables are stored in the following directories by default:
-
-/bin
-/usr/bin
-/usr/local/bin
-/sbin
-/usr/sbin
-/usr/local/sbin
-
-If any file [FILE] in these directories is found to be owned by a user other than root, correct its ownership with the following command:
-
-# chown root [FILE]System executables are stored in the following directories by default:
-
-/bin
-/usr/bin
-/usr/local/bin
-/sbin
-/usr/sbin
-/usr/local/sbin
-
-All files in these directories should not be group-writable or world-writable. To find system executables that are not owned by "root", run the following command for each directory [DIR] which contains system executables:
-
-$ find -L [DIR] \! -user root
-
-
-If any system executables are found to not be owned by root, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000007The system must use a separate file system for user home directories.<VulnDiscussion>Ensuring that "/home" is mounted on its own partition enables the setting of more restrictive mount options, and also helps ensure that users cannot trivially fill partitions used for log or audit data storage.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366If user home directories will be stored locally, create a separate partition for "/home" at installation time (or migrate it later using LVM). If "/home" will be mounted from another system such as an NFS server, then creating a separate partition is not necessary at installation time, and the mountpoint can instead be configured later.Run the following command to determine if "/home" is on its own partition or logical volume:
-
-$ mount | grep "on /home "
-
-If "/home" has its own partition or volume group, a line will be returned.
-If no line is returned, this is a finding.SRG-OS-000030<GroupDescription></GroupDescription>RHEL-06-000508The system must allow locking of graphical desktop sessions.<VulnDiscussion>The ability to lock graphical desktop sessions manually allows users to easily secure their accounts should they need to depart from their workstations temporarily.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000058Run the following command to set the Gnome desktop keybinding for locking the screen:
-
-# gconftool-2
---direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type string \
---set /apps/gnome_settings_daemon/keybindings/screensaver "<Control><Alt>l"
-
-Another keyboard sequence may be substituted for "<Control><Alt>l", which is the default for the Gnome desktop.If the GConf2 package is not installed, this is not applicable.
-
-Verify the keybindings for the Gnome screensaver:
-
-# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gnome_settings_daemon/keybindings/screensaver
-
-If no output is visible, this is a finding.SRG-OS-000078<GroupDescription></GroupDescription>RHEL-06-000050The system must require passwords to contain a minimum of 15 characters.<VulnDiscussion>Requiring a minimum password length makes password cracking attacks more difficult by ensuring a larger search space. However, any security benefit from an onerous requirement must be carefully weighed against usability problems, support costs, or counterproductive behavior that may result.
-
-While it does not negate the password length requirement, it is preferable to migrate from a password-based authentication scheme to a stronger one based on PKI (public key infrastructure).</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000205To specify password length requirements for new accounts, edit the file "/etc/login.defs" and add or correct the following lines:
-
-PASS_MIN_LEN 15
-
-The DoD requirement is "15". If a program consults "/etc/login.defs" and also another PAM module (such as "pam_cracklib") during a password change operation, then the most restrictive must be satisfied.To check the minimum password length, run the command:
-
-$ grep PASS_MIN_LEN /etc/login.defs
-
-The DoD requirement is "15".
-If it is not set to the required value, this is a finding.SRG-OS-000090<GroupDescription></GroupDescription>RHEL-06-000008Vendor-provided cryptographic certificates must be installed to verify the integrity of system software.<VulnDiscussion>The Red Hat GPG keys are necessary to cryptographically verify packages are from Red Hat. </VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000352To ensure the system can cryptographically verify base software packages come from Red Hat (and to connect to the Red Hat Network to receive them), the Red Hat GPG keys must be installed properly. To install the Red Hat GPG keys, run:
-
-# rhn_register
-
-If the system is not connected to the Internet or an RHN Satellite, then install the Red Hat GPG keys from trusted media such as the Red Hat installation CD-ROM or DVD. Assuming the disc is mounted in "/media/cdrom", use the following command as the root user to import them into the keyring:
-
-# rpm --import /media/cdrom/RPM-GPG-KEYTo ensure that the GPG keys are installed, run:
-
-$ rpm -q gpg-pubkey
-
-The command should return the strings below:
-
-gpg-pubkey-fd431d51-4ae0493b
-gpg-pubkey-2fa658e0-45700c69
-
-If the Red Hat GPG Keys are not installed, this is a finding.SRG-OS-000075<GroupDescription></GroupDescription>RHEL-06-000051Users must not be able to change passwords more than once every 24 hours.<VulnDiscussion>Setting the minimum password age protects against users cycling back to a favorite password after satisfying the password reuse requirement.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000198To specify password minimum age for new accounts, edit the file "/etc/login.defs" and add or correct the following line, replacing [DAYS] appropriately:
-
-PASS_MIN_DAYS [DAYS]
-
-A value of 1 day is considered sufficient for many environments. The DoD requirement is 1.To check the minimum password age, run the command:
-
-$ grep PASS_MIN_DAYS /etc/login.defs
-
-The DoD requirement is 1.
-If it is not set to the required value, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000009The Red Hat Network Service (rhnsd) service must not be running, unless using RHN or an RHN Satellite.<VulnDiscussion>Although systems management and patching is extremely important to system security, management by a system outside the enterprise enclave is not desirable for some environments. However, if the system is being managed by RHN or RHN Satellite Server the "rhnsd" daemon can remain on.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The Red Hat Network service automatically queries Red Hat Network servers to determine whether there are any actions that should be executed, such as package updates. This only occurs if the system was registered to an RHN server or satellite and managed as such. The "rhnsd" service can be disabled with the following commands:
-
-# chkconfig rhnsd off
-# service rhnsd stopIf the system uses RHN or an RHN Satellite, this is not applicable.
-
-To check that the "rhnsd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "rhnsd" --list
-
-Output should indicate the "rhnsd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "rhnsd" --list
-"rhnsd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "rhnsd" is disabled through current runtime configuration:
-
-# service rhnsd status
-
-If the service is disabled the command will return the following output:
-
-rhnsd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-000076<GroupDescription></GroupDescription>RHEL-06-000053User passwords must be changed at least every 60 days.<VulnDiscussion>Setting the password maximum age ensures users are required to periodically change their passwords. This could possibly decrease the utility of a stolen password. Requiring shorter password lifetimes increases the risk of users writing down the password in a convenient location subject to physical 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 6DISADPMS TargetRed Hat 62367CCI-000199To specify password maximum age for new accounts, edit the file "/etc/login.defs" and add or correct the following line, replacing [DAYS] appropriately:
-
-PASS_MAX_DAYS [DAYS]
-
-The DoD requirement is 60.To check the maximum password age, run the command:
-
-$ grep PASS_MAX_DAYS /etc/login.defs
-
-The DoD requirement is 60.
-If it is not set to the required value, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000054Users must be warned 7 days in advance of password expiration.<VulnDiscussion>Setting the password warning age enables users to make the change at a practical 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 6DISADPMS TargetRed Hat 62367CCI-000366To specify how many days prior to password expiration that a warning will be issued to users, edit the file "/etc/login.defs" and add or correct the following line, replacing [DAYS] appropriately:
-
-PASS_WARN_AGE [DAYS]
-
-The DoD requirement is 7.To check the password warning age, run the command:
-
-$ grep PASS_WARN_AGE /etc/login.defs
-
-The DoD requirement is 7.
-If it is not set to the required value, this is a finding.SRG-OS-000191<GroupDescription></GroupDescription>RHEL-06-000011System security patches and updates must be installed and up-to-date.<VulnDiscussion>Installing software updates is a fundamental mitigation against the exploitation of publicly-known vulnerabilities.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001233If the system is joined to the Red Hat Network, a Red Hat Satellite Server, or a yum server, run the following command to install updates:
-
-# yum update
-
-If the system is not configured to use one of these sources, updates (in the form of RPM packages) can be manually downloaded from the Red Hat Network and installed using "rpm".If the system is joined to the Red Hat Network, a Red Hat Satellite Server, or a yum server which provides updates, invoking the following command will indicate if updates are available:
-
-# yum check-update
-
-If the system is not configured to update from one of these sources, run the following command to list when each package was last updated:
-
-$ rpm -qa -last
-
-Compare this to Red Hat Security Advisories (RHSA) listed at https://access.redhat.com/security/updates/active/ to determine whether the system is missing applicable security and bugfix updates.
-If updates are not installed, this is a finding.SRG-OS-000071<GroupDescription></GroupDescription>RHEL-06-000056The system must require passwords to contain at least one numeric character.<VulnDiscussion>Requiring digits makes password guessing attacks more difficult by ensuring a larger search space.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000194The pam_cracklib module's "dcredit" parameter controls requirements for usage of digits in a password. When set to a negative number, any password will be required to contain that many digits. When set to a positive number, pam_cracklib will grant +1 additional length credit for each digit. Add "dcredit=-1" after pam_cracklib.so to require use of a digit in passwords.To check how many digits are required in a password, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-The "dcredit" parameter (as a negative number) will indicate how many digits are required. The DoD requires at least one digit in a password. This would appear as "dcredit=-1".
-If dcredit is not found or not set to the required value, this is a finding.SRG-OS-000103<GroupDescription></GroupDescription>RHEL-06-000013The system package management tool must cryptographically verify the authenticity of system software packages during installation.<VulnDiscussion>Ensuring the validity of packages' cryptographic signatures prior to installation ensures the provenance of the software and protects against malicious tampering.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000663The "gpgcheck" option should be used to ensure checking of an RPM package's signature always occurs prior to its installation. To configure yum to check package signatures before installing them, ensure the following line appears in "/etc/yum.conf" in the "[main]" section:
-
-gpgcheck=1To determine whether "yum" is configured to use "gpgcheck", inspect "/etc/yum.conf" and ensure the following appears in the "[main]" section:
-
-gpgcheck=1
-
-A value of "1" indicates that "gpgcheck" is enabled. Absence of a "gpgcheck" line or a setting of "0" indicates that it is disabled.
-If GPG checking is not enabled, this is a finding.
-
-If the "yum" system package management tool is not used to update the system, verify with the SA that installed packages are cryptographically signed.SRG-OS-000025<GroupDescription></GroupDescription>RHEL-06-000507The operating system, upon successful logon, must display to the user the date and time of the last logon or access via ssh.<VulnDiscussion>Users need to be aware of activity that occurs regarding their account. Providing users with information regarding the date and time of their last successful login allows the user to determine if any unauthorized activity has occurred and gives them an opportunity to notify administrators.
-
-At ssh login, a user must be presented with the last successful login date and 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 6DISADPMS TargetRed Hat 62367CCI-000052Update the "PrintLastLog" keyword to "yes" in /etc/ssh/sshd_config:
-
-PrintLastLog yes
-
-While it is acceptable to remove the keyword entirely since the default action for the SSH daemon is to print the last logon date and time, it is preferred to have the value explicitly documented.Verify the value associated with the "PrintLastLog" keyword in /etc/ssh/sshd_config:
-
-# grep -i "^PrintLastLog" /etc/ssh/sshd_config
-
-If the "PrintLastLog" keyword is not present, this is not a finding. If the value is not set to "yes", this is a finding.SRG-OS-000100<GroupDescription></GroupDescription>RHEL-06-000505The operating system must conduct backups of system-level information contained in the information system per organization defined frequency to conduct backups that are consistent with recovery time and recovery point objectives.<VulnDiscussion>Operating system backup is a critical step in maintaining data assurance and availability. System-level information includes system-state information, operating system and application software, and licenses. Backups must be consistent with organizational recovery time and recovery point objectives.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000537Procedures to back up OS data from the system must be established and executed. The Red Hat operating system provides utilities for automating such a process. Commercial and open-source products are also available.
-
-Implement a process whereby OS data is backed up from the system in accordance with local policies.Ask an administrator if a process exists to back up OS data from the system, including configuration data.
-
-If such a process does not exist, this is a finding.SRG-OS-000103<GroupDescription></GroupDescription>RHEL-06-000015The system package management tool must cryptographically verify the authenticity of all software packages during installation.<VulnDiscussion>Ensuring all packages' cryptographic signatures are valid prior to installation ensures the provenance of the software and protects against malicious tampering.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000663To ensure signature checking is not disabled for any repos, remove any lines from files in "/etc/yum.repos.d" of the form:
-
-gpgcheck=0To determine whether "yum" has been configured to disable "gpgcheck" for any repos, inspect all files in "/etc/yum.repos.d" and ensure the following does not appear in any sections:
-
-gpgcheck=0
-
-A value of "0" indicates that "gpgcheck" has been disabled for that repo.
-If GPG checking is disabled, this is a finding.
-
-If the "yum" system package management tool is not used to update the system, verify with the SA that installed packages are cryptographically signed.SRG-OS-000099<GroupDescription></GroupDescription>RHEL-06-000504The operating system must conduct backups of user-level information contained in the operating system per organization defined frequency to conduct backups consistent with recovery time and recovery point objectives.<VulnDiscussion>Operating system backup is a critical step in maintaining data assurance and availability. User-level information is data generated by information system and/or application users. Backups shall be consistent with organizational recovery time and recovery point objectives.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000535Procedures to back up user data from the system must be established and executed. The Red Hat operating system provides utilities for automating such a process. Commercial and open-source products are also available.
-
-Implement a process whereby user data is backed up from the system in accordance with local policies.Ask an administrator if a process exists to back up user data from the system.
-
-If such a process does not exist, this is a finding.SRG-OS-000232<GroupDescription></GroupDescription>RHEL-06-000016A file integrity tool must be installed.<VulnDiscussion>The AIDE package must be installed if it is to be available for integrity checking.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001069Install the AIDE package with the command:
-
-# yum install aideIf another file integrity tool is installed, this is not a finding.
-
-Run the following command to determine if the "aide" package is installed:
-
-# rpm -q aide
-
-
-If the package is not installed, this is a finding.SRG-OS-000273<GroupDescription></GroupDescription>RHEL-06-000503The operating system must enforce requirements for the connection of mobile devices to operating systems.<VulnDiscussion>USB storage devices such as thumb drives can be used to introduce unauthorized software and other vulnerabilities. Support for these devices should be disabled and the devices themselves should be tightly 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 6DISADPMS TargetRed Hat 62367CCI-000086To prevent USB storage devices from being used, configure the kernel module loading system to prevent automatic loading of the USB storage driver. To configure the system to prevent the "usb-storage" kernel module from being loaded, add the following line to a file in the directory "/etc/modprobe.d":
-
-install usb-storage /bin/true
-
-This will prevent the "modprobe" program from loading the "usb-storage" module, but will not prevent an administrator (or another program) from using the "insmod" program to load the module manually.If the system is configured to prevent the loading of the "usb-storage" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r usb-storage /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000248<GroupDescription></GroupDescription>RHEL-06-000019There must be no .rhosts or hosts.equiv files on the system.<VulnDiscussion>Trust files are convenient, but when used in conjunction with the R-services, they can allow unauthenticated access to a 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 6DISADPMS TargetRed Hat 62367CCI-001436The files "/etc/hosts.equiv" and "~/.rhosts" (in each user's home directory) list remote hosts and users that are trusted by the local system when using the rshd daemon. To remove these files, run the following command to delete them from any location.
-
-# rm /etc/hosts.equiv
-
-
-
-$ rm ~/.rhostsThe existence of the file "/etc/hosts.equiv" or a file named ".rhosts" inside a user home directory indicates the presence of an Rsh trust relationship.
-If these files exist, this is a finding.SRG-OS-000109<GroupDescription></GroupDescription>RHEL-06-000027The system must prevent the root account from logging in from virtual consoles.<VulnDiscussion>Preventing direct root login to virtual console devices helps ensure accountability for actions taken on the system using the root 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 6DISADPMS TargetRed Hat 62367CCI-000770To restrict root logins through the (deprecated) virtual console devices, ensure lines of this form do not appear in "/etc/securetty":
-
-vc/1
-vc/2
-vc/3
-vc/4
-
-Note: Virtual console entries are not limited to those listed above. Any lines starting with "vc/" followed by numerals should be removed.To check for virtual console entries which permit root login, run the following command:
-
-# grep '^vc/[0-9]' /etc/securetty
-
-If any output is returned, then root logins over virtual console devices is permitted.
-If root login over virtual console devices is permitted, this is a finding.SRG-OS-000059<GroupDescription></GroupDescription>RHEL-06-000385Audit log directories must have mode 0755 or less permissive.<VulnDiscussion>If users can delete audit logs, audit trails can be modified or destroyed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000164Change the mode of the audit log directories with the following command:
-
-# chmod go-w [audit_directory]Run the following command to check the mode of the system audit directories:
-
-grep "^log_file" /etc/audit/auditd.conf|sed 's/^[^/]*//; s/[^/]*$//'|xargs stat -c %a:%n
-
-Audit directories must be mode 0755 or less permissive.
-If any are more permissive, this is a finding.SRG-OS-000109<GroupDescription></GroupDescription>RHEL-06-000028The system must prevent the root account from logging in from serial consoles.<VulnDiscussion>Preventing direct root login to serial port interfaces helps ensure accountability for actions taken on the systems using the root 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 6DISADPMS TargetRed Hat 62367CCI-000770To restrict root logins on serial ports, ensure lines of this form do not appear in "/etc/securetty":
-
-ttyS0
-ttyS1
-
-Note: Serial port entries are not limited to those listed above. Any lines starting with "ttyS" followed by numerals should be removedTo check for serial port entries which permit root login, run the following command:
-
-# grep '^ttyS[0-9]' /etc/securetty
-
-If any output is returned, then root login over serial ports is permitted.
-If root login over serial ports is permitted, this is a finding.SRG-OS-000057<GroupDescription></GroupDescription>RHEL-06-000384Audit log files must be owned by root.<VulnDiscussion>If non-privileged users can write to audit logs, audit trails can be modified or destroyed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000162Change the owner of the audit log files with the following command:
-
-# chown root [audit_file]Run the following command to check the owner of the system audit logs:
-
-grep "^log_file" /etc/audit/auditd.conf|sed s/^[^\/]*//|xargs stat -c %U:%n
-
-Audit logs must be owned by root.
-If they are not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000029Default operating system accounts, other than root, must be locked.<VulnDiscussion>Disabling authentication for default system accounts makes it more difficult for attackers to make use of them to compromise a 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 6DISADPMS TargetRed Hat 62367CCI-000366Some accounts are not associated with a human user of the system, and exist to perform some administrative function. An attacker should not be able to log into these accounts.
-
-Disable logon access to these accounts with the command:
-
-# passwd -l [SYSACCT]To obtain a listing of all users and the contents of their shadow password field, run the command:
-
-$ awk -F: '$1 !~ /^root$/ && $2 !~ /^[!*]/ {print $1 ":" $2}' /etc/shadow
-
-Identify the operating system accounts from this listing. These will primarily be the accounts with UID numbers less than 500, other than root.
-
-If any default operating system account (other than root) has a valid password hash, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000030The system must not have accounts configured with blank or null passwords.<VulnDiscussion>If an account has an empty password, anyone could log in 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 6DISADPMS TargetRed Hat 62367CCI-000366If an account is configured for password authentication but does not have an assigned password, it may be possible to log onto the account without authentication. Remove any instances of the "nullok" option in "/etc/pam.d/system-auth" to prevent logons with empty passwords.To verify that null passwords cannot be used, run the following command:
-
-# grep nullok /etc/pam.d/system-auth
-
-If this produces any output, it may be possible to log into accounts with empty passwords.
-If NULL passwords can be used, this is a finding.SRG-OS-000058<GroupDescription></GroupDescription>RHEL-06-000383Audit log files must have mode 0640 or less permissive.<VulnDiscussion>If users can write to audit logs, audit trails can be modified or destroyed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000163Change the mode of the audit log files with the following command:
-
-# chmod 0640 [audit_file]Run the following command to check the mode of the system audit logs:
-
-grep "^log_file" /etc/audit/auditd.conf|sed s/^[^\/]*//|xargs stat -c %a:%n
-
-Audit logs must be mode 0640 or less permissive.
-If any are more permissive, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000031The /etc/passwd file must not contain password hashes.<VulnDiscussion>The hashes for all user account passwords should be stored in the file "/etc/shadow" and never in "/etc/passwd", which is readable by all 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 6DISADPMS TargetRed Hat 62367CCI-000366If any password hashes are stored in "/etc/passwd" (in the second field, instead of an "x"), the cause of this misconfiguration should be investigated. The account should have its password reset and the hash should be properly stored, or the account should be deleted entirely.To check that no password hashes are stored in "/etc/passwd", run the following command:
-
-# awk -F: '($2 != "x") {print}' /etc/passwd
-
-If it produces any output, then a password hash is stored in "/etc/passwd".
-If any stored hashes are found in /etc/passwd, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000032The root account must be the only account having a UID of 0.<VulnDiscussion>An account has root authority if it has a UID of 0. Multiple accounts with a UID of 0 afford more opportunity for potential intruders to guess a password for a privileged account. Proper configuration of sudo is recommended to afford multiple system administrators access to root privileges in an accountable manner.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366If any account other than root has a UID of 0, this misconfiguration should be investigated and the accounts other than root should be removed or have their UID changed.To list all password file entries for accounts with UID 0, run the following command:
-
-# awk -F: '($3 == 0) {print}' /etc/passwd
-
-This should print only one line, for the user root.
-If any account other than root has a UID of 0, this is a finding.SRG-OS-000249<GroupDescription></GroupDescription>RHEL-06-000357The system must disable accounts after excessive login failures within a 15-minute interval.<VulnDiscussion>Locking out user accounts after a number of incorrect attempts within a specific period of time prevents direct password guessing 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 6DISADPMS TargetRed Hat 62367CCI-001452Utilizing "pam_faillock.so", the "fail_interval" directive configures the system to lock out accounts after a number of incorrect logon attempts. Modify the content of both "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" as follows:
-
-Add the following line immediately before the "pam_unix.so" statement in the "AUTH" section:
-
-auth required pam_faillock.so preauth silent deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately after the "pam_unix.so" statement in the "AUTH" section:
-
-auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately before the "pam_unix.so" statement in the "ACCOUNT" section:
-
-account required pam_faillock.so
-
-Note that any updates made to "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" may be overwritten by the "authconfig" program. The "authconfig" program should not be used.To ensure the failed password attempt policy is configured correctly, run the following command:
-
-$ grep pam_faillock /etc/pam.d/system-auth /etc/pam.d/password-auth
-
-For each file, the output should show "fail_interval=<interval-in-seconds>" where "interval-in-seconds" is 900 (15 minutes) or greater. If the "fail_interval" parameter is not set, the default setting of 900 seconds is acceptable. If that is not the case, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000033The /etc/shadow file must be owned by root.<VulnDiscussion>The "/etc/shadow" file contains the list of local system accounts and stores password hashes. Protection of this file is critical for system security. Failure to give ownership of this file to root provides the designated owner with access to sensitive information which could weaken the system security posture.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the owner of "/etc/shadow", run the command:
-
-# chown root /etc/shadowTo check the ownership of "/etc/shadow", run the command:
-
-$ ls -l /etc/shadow
-
-If properly configured, the output should indicate the following owner: "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000034The /etc/shadow file must be group-owned by root.<VulnDiscussion>The "/etc/shadow" file stores password hashes. Protection of this file is critical for 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 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the group owner of "/etc/shadow", run the command:
-
-# chgrp root /etc/shadowTo check the group ownership of "/etc/shadow", run the command:
-
-$ ls -l /etc/shadow
-
-If properly configured, the output should indicate the following group-owner. "root"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000035The /etc/shadow file must have mode 0000.<VulnDiscussion>The "/etc/shadow" file contains the list of local system accounts and stores password hashes. Protection of this file is critical for system security. Failure to give ownership of this file to root provides the designated owner with access to sensitive information which could weaken the system security posture.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To properly set the permissions of "/etc/shadow", run the command:
-
-# chmod 0000 /etc/shadowTo check the permissions of "/etc/shadow", run the command:
-
-$ ls -l /etc/shadow
-
-If properly configured, the output should indicate the following permissions: "----------"
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000082IP forwarding for IPv4 must not be enabled, unless the system is a router.<VulnDiscussion>IP forwarding permits the kernel to forward packets from one network interface to another. The ability to forward packets between two networks is only appropriate for systems acting as routers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.ip_forward" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.ip_forward=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.ip_forward = 0The status of the "net.ipv4.ip_forward" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.ip_forward
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.ip_forward /etc/sysctl.conf
-
-The ability to forward packets is only appropriate for routers. If the correct value is not returned, this is a finding. SRG-OS-000146<GroupDescription></GroupDescription>RHEL-06-000117The operating system must prevent public IPv4 access into an organizations internal networks, except as appropriately mediated by managed interfaces employing boundary protection devices.<VulnDiscussion>The "iptables" service provides the system's host-based firewalling capability for IPv4 and ICMP.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001100The "iptables" service can be enabled with the following commands:
-
-# chkconfig iptables on
-# service iptables startIf the system is a cross-domain system, this is not applicable.
-
-Run the following command to determine the current status of the "iptables" service:
-
-# service iptables status
-
-If the service is not running, it should return the following:
-
-iptables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000231<GroupDescription></GroupDescription>RHEL-06-000120The systems local IPv4 firewall must implement a deny-all, allow-by-exception policy for inbound packets.<VulnDiscussion>In "iptables" the default policy is applied only after all the applicable rules in the table are examined for a match. Setting the default policy to "DROP" implements proper design for a firewall, i.e., any packets which are not explicitly permitted should not be accepted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000066To set the default policy to DROP (instead of ACCEPT) for the built-in INPUT chain which processes incoming packets, add or correct the following line in "/etc/sysconfig/iptables":
-
-:INPUT DROP [0:0]Inspect the file "/etc/sysconfig/iptables" to determine the default policy for the INPUT chain. It should be set to DROP.
-
-# grep ":INPUT" /etc/sysconfig/iptables
-
-If the default policy for the INPUT chain is not set to DROP, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000124The Datagram Congestion Control Protocol (DCCP) must be disabled unless required.<VulnDiscussion>Disabling DCCP 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 6DISADPMS TargetRed Hat 62367CCI-000382The Datagram Congestion Control Protocol (DCCP) is a relatively new transport layer protocol, designed to support streaming media and telephony. To configure the system to prevent the "dccp" kernel module from being loaded, add the following line to a file in the directory "/etc/modprobe.d":
-
-install dccp /bin/trueIf the system is configured to prevent the loading of the "dccp" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r dccp /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000125The Stream Control Transmission Protocol (SCTP) must be disabled unless required.<VulnDiscussion>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 6DISADPMS TargetRed Hat 62367CCI-000382The 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. To configure the system to prevent the "sctp" kernel module from being loaded, add the following line to a file in the directory "/etc/modprobe.d":
-
-install sctp /bin/trueIf the system is configured to prevent the loading of the "sctp" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r sctp /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000126The Reliable Datagram Sockets (RDS) protocol must be disabled unless required.<VulnDiscussion>Disabling RDS 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 6DISADPMS TargetRed Hat 62367CCI-000382The Reliable Datagram Sockets (RDS) protocol is a transport layer protocol designed to provide reliable high-bandwidth, low-latency communications between nodes in a cluster. To configure the system to prevent the "rds" kernel module from being loaded, add the following line to a file in the directory "/etc/modprobe.d":
-
-install rds /bin/trueIf the system is configured to prevent the loading of the "rds" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated "/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r rds /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000127The Transparent Inter-Process Communication (TIPC) protocol must be disabled unless required.<VulnDiscussion>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 6DISADPMS TargetRed Hat 62367CCI-000382The Transparent Inter-Process Communication (TIPC) protocol is designed to provide communications between nodes in a cluster. To configure the system to prevent the "tipc" kernel module from being loaded, add the following line to a file in the directory "/etc/modprobe.d":
-
-install tipc /bin/trueIf the system is configured to prevent the loading of the "tipc" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r tipc /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000206<GroupDescription></GroupDescription>RHEL-06-000133All rsyslog-generated log files must be owned by root.<VulnDiscussion>The log files generated by rsyslog contain valuable information regarding system configuration, user authentication, and other such information. Log files should be protected from unauthorized 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 6DISADPMS TargetRed Hat 62367CCI-001314The owner of all log files written by "rsyslog" should be root. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" typically all appear in "/var/log". For each log file [LOGFILE] referenced in "/etc/rsyslog.conf", run the following command to inspect the file's owner:
-
-$ ls -l [LOGFILE]
-
-If the owner is not "root", run the following command to correct this:
-
-# chown root [LOGFILE]The owner of all log files written by "rsyslog" should be root. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" and typically all appear in "/var/log". To see the owner of a given log file, run the following command:
-
-$ ls -l [LOGFILE]
-
-Some log files referenced in /etc/rsyslog.conf may be created by other programs and may require exclusion from consideration.
-
-If the owner is not root, this is a finding. SRG-OS-000206<GroupDescription></GroupDescription>RHEL-06-000134All rsyslog-generated log files must be group-owned by root.<VulnDiscussion>The log files generated by rsyslog contain valuable information regarding system configuration, user authentication, and other such information. Log files should be protected from unauthorized 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 6DISADPMS TargetRed Hat 62367CCI-001314The group-owner of all log files written by "rsyslog" should be root. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" and typically all appear in "/var/log". For each log file [LOGFILE] referenced in "/etc/rsyslog.conf", run the following command to inspect the file's group owner:
-
-$ ls -l [LOGFILE]
-
-If the owner is not "root", run the following command to correct this:
-
-# chgrp root [LOGFILE]The group-owner of all log files written by "rsyslog" should be root. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" and typically all appear in "/var/log". To see the group-owner of a given log file, run the following command:
-
-$ ls -l [LOGFILE]
-
-Some log files referenced in /etc/rsyslog.conf may be created by other programs and may require exclusion from consideration.
-
-If the group-owner is not root, this is a finding.SRG-OS-000215<GroupDescription></GroupDescription>RHEL-06-000136The operating system must back up audit records on an organization defined frequency onto a different system or media than the system being audited.<VulnDiscussion>A log server (loghost) receives syslog messages from one or more systems. This data can be used as an additional log source in the event a system is compromised and its local logs are suspect. Forwarding log messages to a remote loghost also provides system administrators with a centralized place to view the status of multiple hosts within the enterprise.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001348To configure rsyslog to send logs to a remote log server, open "/etc/rsyslog.conf" and read and understand the last section of the file, which describes the multiple directives necessary to activate remote logging. Along with these other directives, the system can be configured to forward its logs to a particular log server by adding or correcting one of the following lines, substituting "[loghost.example.com]" appropriately. The choice of protocol depends on the environment of the system; although TCP and RELP provide more reliable message delivery, they may not be supported in all environments.
-To use UDP for log message delivery:
-
-*.* @[loghost.example.com]
-
-
-To use TCP for log message delivery:
-
-*.* @@[loghost.example.com]
-
-
-To use RELP for log message delivery:
-
-*.* :omrelp:[loghost.example.com]To ensure logs are sent to a remote host, examine the file "/etc/rsyslog.conf". If using UDP, a line similar to the following should be present:
-
-*.* @[loghost.example.com]
-
-If using TCP, a line similar to the following should be present:
-
-*.* @@[loghost.example.com]
-
-If using RELP, a line similar to the following should be present:
-
-*.* :omrelp:[loghost.example.com]
-
-
-If none of these are present, this is a finding.SRG-OS-000043<GroupDescription></GroupDescription>RHEL-06-000137The operating system must support the requirement to centrally manage the content of audit records generated by organization defined information system components.<VulnDiscussion>A log server (loghost) receives syslog messages from one or more systems. This data can be used as an additional log source in the event a system is compromised and its local logs are suspect. Forwarding log messages to a remote loghost also provides system administrators with a centralized place to view the status of multiple hosts within the enterprise.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169To configure rsyslog to send logs to a remote log server, open "/etc/rsyslog.conf" and read and understand the last section of the file, which describes the multiple directives necessary to activate remote logging. Along with these other directives, the system can be configured to forward its logs to a particular log server by adding or correcting one of the following lines, substituting "[loghost.example.com]" appropriately. The choice of protocol depends on the environment of the system; although TCP and RELP provide more reliable message delivery, they may not be supported in all environments.
-To use UDP for log message delivery:
-
-*.* @[loghost.example.com]
-
-
-To use TCP for log message delivery:
-
-*.* @@[loghost.example.com]
-
-
-To use RELP for log message delivery:
-
-*.* :omrelp:[loghost.example.com]To ensure logs are sent to a remote host, examine the file "/etc/rsyslog.conf". If using UDP, a line similar to the following should be present:
-
-*.* @[loghost.example.com]
-
-If using TCP, a line similar to the following should be present:
-
-*.* @@[loghost.example.com]
-
-If using RELP, a line similar to the following should be present:
-
-*.* :omrelp:[loghost.example.com]
-
-
-If none of these are present, this is a finding.SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000167The audit system must be configured to audit all attempts to alter system time through settimeofday.<VulnDiscussion>Arbitrary changes to the system time can be used to obfuscate nefarious activities in log files, as well as to confuse network services that are highly dependent upon an accurate system time (such as sshd). All changes to the system time should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169On a 32-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b32 -S settimeofday -k audit_time_rules
-
-On a 64-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b64 -S settimeofday -k audit_time_rules
-
-The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:
-
--a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k audit_time_rulesTo determine if the system is configured to audit calls to the "settimeofday" system call, run the following command:
-
-$ sudo grep -w "settimeofday" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If the system is not configured to audit time changes, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000083The system must not accept IPv4 source-routed packets on any interface.<VulnDiscussion>Accepting source-routed packets in the IPv4 protocol has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.accept_source_route" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.accept_source_route=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.accept_source_route = 0The status of the "net.ipv4.conf.all.accept_source_route" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.accept_source_route
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.accept_source_route /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000084The system must not accept ICMPv4 redirect packets on any interface.<VulnDiscussion>Accepting ICMP redirects has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.accept_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.accept_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.accept_redirects = 0The status of the "net.ipv4.conf.all.accept_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.accept_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.accept_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000169The audit system must be configured to audit all attempts to alter system time through stime.<VulnDiscussion>Arbitrary changes to the system time can be used to obfuscate nefarious activities in log files, as well as to confuse network services that are highly dependent upon an accurate system time (such as sshd). All changes to the system time should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169On a 32-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b32 -S stime -k audit_time_rules
-
-On a 64-bit system, the "-S stime" is not necessary. The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:
-
--a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k audit_time_rulesIf the system is 64-bit only, this is not applicable.
-
-To determine if the system is configured to audit calls to the "stime" system call, run the following command:
-
-$ sudo grep -w "stime" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If the system is not configured to audit time changes, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000086The system must not accept ICMPv4 secure redirect packets on any interface.<VulnDiscussion>Accepting "secure" ICMP redirects (from those gateways listed as default gateways) has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.secure_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.secure_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.secure_redirects = 0The status of the "net.ipv4.conf.all.secure_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.secure_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.secure_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding.SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000171The audit system must be configured to audit all attempts to alter system time through clock_settime.<VulnDiscussion>Arbitrary changes to the system time can be used to obfuscate nefarious activities in log files, as well as to confuse network services that are highly dependent upon an accurate system time (such as sshd). All changes to the system time should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169On a 32-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b32 -S clock_settime -k audit_time_rules
-
-On a 64-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b64 -S clock_settime -k audit_time_rules
-
-The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:
-
--a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k audit_time_rulesTo determine if the system is configured to audit calls to the "clock_settime" system call, run the following command:
-
-$ sudo grep -w "clock_settime" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If the system is not configured to audit time changes, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000088The system must log Martian packets.<VulnDiscussion>The presence of "martian" packets (which have impossible addresses) as well as spoofed packets, source-routed packets, and redirects could be a sign of nefarious network activity. Logging these packets enables this activity to be detected.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.log_martians" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.log_martians=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.log_martians = 1The status of the "net.ipv4.conf.all.log_martians" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.log_martians
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.log_martians /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000089The system must not accept IPv4 source-routed packets by default.<VulnDiscussion>Accepting source-routed packets in the IPv4 protocol has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.default.accept_source_route" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.default.accept_source_route=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.default.accept_source_route = 0The status of the "net.ipv4.conf.default.accept_source_route" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.default.accept_source_route
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.default.accept_source_route /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000173The audit system must be configured to audit all attempts to alter system time through /etc/localtime.<VulnDiscussion>Arbitrary changes to the system time can be used to obfuscate nefarious activities in log files, as well as to confuse network services that are highly dependent upon an accurate system time (such as sshd). All changes to the system time should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169Add the following to "/etc/audit/audit.rules":
-
--w /etc/localtime -p wa -k audit_time_rules
-
-The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport and should always be used.To determine if the system is configured to audit attempts to alter time via the /etc/localtime file, run the following command:
-
-$ sudo grep -w "/etc/localtime" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If the system is not configured to audit time changes, this is a finding.SRG-OS-000004<GroupDescription></GroupDescription>RHEL-06-000174The operating system must automatically audit account creation.<VulnDiscussion>In addition to auditing new user and group accounts, these watches will alert the system administrator(s) to any modifications. Any unexpected users, groups, or modifications should be investigated for legitimacy.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000018Add the following to "/etc/audit/audit.rules", in order to capture events that modify account changes:
-
-# audit_account_changes
--w /etc/group -p wa -k audit_account_changes
--w /etc/passwd -p wa -k audit_account_changes
--w /etc/gshadow -p wa -k audit_account_changes
--w /etc/shadow -p wa -k audit_account_changes
--w /etc/security/opasswd -p wa -k audit_account_changesTo determine if the system is configured to audit account changes, run the following command:
-
-$ sudo egrep -w '(/etc/passwd|/etc/shadow|/etc/group|/etc/gshadow|/etc/security/opasswd)' /etc/audit/audit.rules
-
-If the system is configured to watch for account changes, lines should be returned for each file specified (and with "-p wa" for each).
-
-If the system is not configured to audit account changes, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000090The system must not accept ICMPv4 secure redirect packets by default.<VulnDiscussion>Accepting "secure" ICMP redirects (from those gateways listed as default gateways) has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.default.secure_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.default.secure_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.default.secure_redirects = 0The status of the "net.ipv4.conf.default.secure_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.default.secure_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.default.secure_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000091The system must ignore ICMPv4 redirect messages by default.<VulnDiscussion>This feature of the IPv4 protocol has few legitimate uses. It should be disabled unless it is absolutely 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.default.accept_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.default.accept_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.default.accept_redirects = 0The status of the "net.ipv4.conf.default.accept_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.default.accept_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.default.accept_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000239<GroupDescription></GroupDescription>RHEL-06-000175The operating system must automatically audit account modification.<VulnDiscussion>In addition to auditing new user and group accounts, these watches will alert the system administrator(s) to any modifications. Any unexpected users, groups, or modifications should be investigated for legitimacy.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001403Add the following to "/etc/audit/audit.rules", in order to capture events that modify account changes:
-
-# audit_account_changes
--w /etc/group -p wa -k audit_account_changes
--w /etc/passwd -p wa -k audit_account_changes
--w /etc/gshadow -p wa -k audit_account_changes
--w /etc/shadow -p wa -k audit_account_changes
--w /etc/security/opasswd -p wa -k audit_account_changesTo determine if the system is configured to audit account changes, run the following command:
-
-$sudo egrep -w '(/etc/passwd|/etc/shadow|/etc/group|/etc/gshadow|/etc/security/opasswd)' /etc/audit/audit.rules
-
-If the system is configured to watch for account changes, lines should be returned for each file specified (and with "-p wa" for each).
-
-If the system is not configured to audit account changes, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000092The system must not respond to ICMPv4 sent to a broadcast address.<VulnDiscussion>Ignoring ICMP echo requests (pings) sent to broadcast or multicast addresses makes the system slightly more difficult to enumerate on 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.icmp_echo_ignore_broadcasts" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.icmp_echo_ignore_broadcasts = 1The status of the "net.ipv4.icmp_echo_ignore_broadcasts" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.icmp_echo_ignore_broadcasts
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.icmp_echo_ignore_broadcasts /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000240<GroupDescription></GroupDescription>RHEL-06-000176The operating system must automatically audit account disabling actions.<VulnDiscussion>In addition to auditing new user and group accounts, these watches will alert the system administrator(s) to any modifications. Any unexpected users, groups, or modifications should be investigated for legitimacy.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001404Add the following to "/etc/audit/audit.rules", in order to capture events that modify account changes:
-
-# audit_account_changes
--w /etc/group -p wa -k audit_account_changes
--w /etc/passwd -p wa -k audit_account_changes
--w /etc/gshadow -p wa -k audit_account_changes
--w /etc/shadow -p wa -k audit_account_changes
--w /etc/security/opasswd -p wa -k audit_account_changesTo determine if the system is configured to audit account changes, run the following command:
-
-$sudo egrep -w '(/etc/passwd|/etc/shadow|/etc/group|/etc/gshadow|/etc/security/opasswd)' /etc/audit/audit.rules
-
-If the system is configured to watch for account changes, lines should be returned for each file specified (and with "-p wa" for each).
-
-If the system is not configured to audit account changes, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000093The system must ignore ICMPv4 bogus error responses.<VulnDiscussion>Ignoring bogus ICMP error responses reduces log size, although some activity would not be logged.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.icmp_ignore_bogus_error_responses" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.icmp_ignore_bogus_error_responses = 1The status of the "net.ipv4.icmp_ignore_bogus_error_responses" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.icmp_ignore_bogus_error_responses
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.icmp_ignore_bogus_error_responses /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000241<GroupDescription></GroupDescription>RHEL-06-000177The operating system must automatically audit account termination.<VulnDiscussion>In addition to auditing new user and group accounts, these watches will alert the system administrator(s) to any modifications. Any unexpected users, groups, or modifications should be investigated for legitimacy.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001405Add the following to "/etc/audit/audit.rules", in order to capture events that modify account changes:
-
-# audit_account_changes
--w /etc/group -p wa -k audit_account_changes
--w /etc/passwd -p wa -k audit_account_changes
--w /etc/gshadow -p wa -k audit_account_changes
--w /etc/shadow -p wa -k audit_account_changes
--w /etc/security/opasswd -p wa -k audit_account_changesTo determine if the system is configured to audit account changes, run the following command:
-
-$sudo egrep -w '(/etc/passwd|/etc/shadow|/etc/group|/etc/gshadow|/etc/security/opasswd)' /etc/audit/audit.rules
-
-If the system is configured to watch for account changes, lines should be returned for each file specified (and with "-p wa" for each).
-
-If the system is not configured to audit account changes, this is a finding.SRG-OS-000142<GroupDescription></GroupDescription>RHEL-06-000095The system must be configured to use TCP syncookies when experiencing a TCP SYN flood.<VulnDiscussion>A TCP SYN flood attack can cause a denial of service by filling a system's TCP connection table with connections in the SYN_RCVD state. Syncookies can be used to track a connection when a subsequent ACK is received, verifying the initiator is attempting a valid connection and is not a flood source. This feature is activated when a flood condition is detected, and enables the system to continue servicing valid connection requests.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001095To set the runtime status of the "net.ipv4.tcp_syncookies" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.tcp_syncookies=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.tcp_syncookies = 1The status of the "net.ipv4.tcp_syncookies" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.tcp_syncookies
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.tcp_syncookies /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000182The audit system must be configured to audit modifications to the systems network configuration.<VulnDiscussion>The network environment should not be modified by anything other than administrator action. Any change to network parameters should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Add the following to "/etc/audit/audit.rules", setting ARCH to either b32 or b64 as appropriate for your system:
-
-# audit_network_modifications
--a always,exit -F arch=ARCH -S sethostname -S setdomainname -k audit_network_modifications
--w /etc/issue -p wa -k audit_network_modifications
--w /etc/issue.net -p wa -k audit_network_modifications
--w /etc/hosts -p wa -k audit_network_modifications
--w /etc/sysconfig/network -p wa -k audit_network_modificationsIf you are running x86_64 architecture, determine the values for sethostname:
-$ uname -m; ausyscall i386 sethostname; ausyscall x86_64 sethostname
-
-If the values returned are not identical verify that the system is configured to monitor network configuration changes for the i386 and x86_64 architectures:
-
-$ sudo egrep -w '(sethostname|setdomainname|/etc/issue|/etc/issue.net|/etc/hosts|/etc/sysconfig/network)' /etc/audit/audit.rules
-
--a always,exit -F arch=b32 -S sethostname -S setdomainname -k audit_network_modifications
--w /etc/issue -p wa -k audit_network_modifications
--w /etc/issue.net -p wa -k audit_network_modifications
--w /etc/hosts -p wa -k audit_network_modifications
--w /etc/sysconfig/network -p wa -k audit_network_modifications
-
--a always,exit -F arch=b64 -S sethostname -S setdomainname -k audit_network_modifications
--w /etc/issue -p wa -k audit_network_modifications
--w /etc/issue.net -p wa -k audit_network_modifications
--w /etc/hosts -p wa -k audit_network_modifications
--w /etc/sysconfig/network -p wa -k audit_network_modifications
-
-If the system is configured to watch for network configuration changes, a line should be returned for each file specified for both (and "-p wa" should be indicated for each).
-
-If the system is not configured to audit changes of the network configuration, this is a finding.
-SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000183The audit system must be configured to audit modifications to the systems Mandatory Access Control (MAC) configuration (SELinux).<VulnDiscussion>The system's mandatory access policy (SELinux) should not be arbitrarily changed by anything other than administrator action. All changes to MAC policy should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Add the following to "/etc/audit/audit.rules":
-
--w /etc/selinux/ -p wa -k MAC-policyTo determine if the system is configured to audit changes to its SELinux configuration files, run the following command:
-
-$ sudo grep -w "/etc/selinux" /etc/audit/audit.rules
-
-If the system is configured to watch for changes to its SELinux configuration, a line should be returned (including "-p wa" indicating permissions that are watched).
-
-If the system is not configured to audit attempts to change the MAC policy, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000096The 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 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.rp_filter" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.rp_filter=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.rp_filter = 1The status of the "net.ipv4.conf.all.rp_filter" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.rp_filter
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.rp_filter /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000184The audit system must be configured to audit all discretionary access control permission modifications using chmod.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S chmod -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S chmod -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S chmod -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S chmod -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "chmod" system call, run the following command:
-
-$ sudo grep -w "chmod" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If the system is not configured to audit permission changes, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000097The 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.default.rp_filter" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.default.rp_filter=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.default.rp_filter = 1The status of the "net.ipv4.conf.default.rp_filter" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.default.rp_filter
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.default.rp_filter /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000185The audit system must be configured to audit all discretionary access control permission modifications using chown.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S chown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S chown -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S chown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S chown -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "chown" system call, run the following command:
-
-$ sudo grep -w "chown" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000098The IPv6 protocol handler must not be bound to the network stack unless needed.<VulnDiscussion>Any unnecessary network stacks - including IPv6 - should be disabled, to reduce the vulnerability to exploitation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To prevent the IPv6 kernel module ("ipv6") from binding to the IPv6 networking stack, add the following line to "/etc/modprobe.d/disabled.conf" (or another file in "/etc/modprobe.d"):
-
-options ipv6 disable=1
-
-This permits the IPv6 module to be loaded (and thus satisfy other modules that depend on it), while disabling support for the IPv6 protocol.
-
-Or add the following line to "/etc/sysctl.conf" to unhook the module:
-
-net.ipv6.conf.all.disable_ipv6 = 1
-If the system uses IPv6, this is not applicable.
-
-If the system is configured to disable the "ipv6" kernel module, it will contain a line of the form:
-
-options ipv6 disable=1
-
-Such lines may be inside any file in "/etc/modprobe.d" or the deprecated "/etc/modprobe.conf". This permits insertion of the IPv6 kernel module (which other parts of the system expect to be present), but otherwise keeps it inactive. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r ipv6 /etc/modprobe.conf /etc/modprobe.d
-
-If the IPv6 kernel module is not disabled, look to see if it is unhooked by inspecting the "sysctl.conf" file for the following output:
-
-$ grep -r ipv6 /etc/sysctl.conf
-net.ipv6.conf.all.disable_ipv6 = 1
-
-If the IPv6 kernel module is not disabled or unhooked, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000186The audit system must be configured to audit all discretionary access control permission modifications using fchmod.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fchmod -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fchmod -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fchmod -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fchmod -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fchmod" system call, run the following command:
-
-$ sudo grep -w "fchmod" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000099The system must ignore ICMPv6 redirects by default.<VulnDiscussion>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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv6.conf.default.accept_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv6.conf.default.accept_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv6.conf.default.accept_redirects = 0If IPv6 is disabled, this is not applicable.
-
-The status of the "net.ipv6.conf.default.accept_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv6.conf.default.accept_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv6.conf.default.accept_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000152<GroupDescription></GroupDescription>RHEL-06-000103The system must employ a local IPv6 firewall.<VulnDiscussion>The "ip6tables" service provides the system's host-based firewalling capability for IPv6 and ICMPv6.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001118The "ip6tables" service can be enabled with the following commands:
-
-# chkconfig ip6tables on
-# service ip6tables startIf the system is a cross-domain system, this is not applicable.
-
-If IPv6 is disabled, this is not applicable.
-
-Run the following command to determine the current status of the "ip6tables" service:
-
-# service ip6tables status
-
-If the service is not running, it should return the following:
-
-ip6tables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000187The audit system must be configured to audit all discretionary access control permission modifications using fchmodat.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fchmodat -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fchmodat -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fchmodat -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fchmodat -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fchmodat" system call, run the following command:
-
-$ sudo grep -w "fchmodat" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000145<GroupDescription></GroupDescription>RHEL-06-000106The operating system must connect to external networks or information systems only through managed IPv6 interfaces consisting of boundary protection devices arranged in accordance with an organizational security architecture.<VulnDiscussion>The "ip6tables" service provides the system's host-based firewalling capability for IPv6 and ICMPv6.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001098The "ip6tables" service can be enabled with the following commands:
-
-# chkconfig ip6tables on
-# service ip6tables startIf the system is a cross-domain system, this is not applicable.
-
-If IPV6 is disabled, this is not applicable.
-
-Run the following command to determine the current status of the "ip6tables" service:
-
-# service ip6tables status
-
-If the service is not running, it should return the following:
-
-ip6tables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000188The audit system must be configured to audit all discretionary access control permission modifications using fchown.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fchown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fchown -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fchown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fchown -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fchown" system call, run the following command:
-
-$ sudo grep -w "fchown" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000146<GroupDescription></GroupDescription>RHEL-06-000107The operating system must prevent public IPv6 access into an organizations internal networks, except as appropriately mediated by managed interfaces employing boundary protection devices.<VulnDiscussion>The "ip6tables" service provides the system's host-based firewalling capability for IPv6 and ICMPv6.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001100The "ip6tables" service can be enabled with the following commands:
-
-# chkconfig ip6tables on
-# service ip6tables startIf the system is a cross-domain system, this is not applicable.
-
-If IPv6 is disabled, this is not applicable.
-
-Run the following command to determine the current status of the "ip6tables" service:
-
-# service ip6tables status
-
-If the service is not running, it should return the following:
-
-ip6tables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000189The audit system must be configured to audit all discretionary access control permission modifications using fchownat.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fchownat -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fchownat -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fchownat -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fchownat -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fchownat" system call, run the following command:
-
-$ sudo grep -w "fchownat" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000152<GroupDescription></GroupDescription>RHEL-06-000113The system must employ a local IPv4 firewall.<VulnDiscussion>The "iptables" service provides the system's host-based firewalling capability for IPv4 and ICMP.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001118The "iptables" service can be enabled with the following commands:
-
-# chkconfig iptables on
-# service iptables startIf the system is a cross-domain system, this is not applicable.
-
-Run the following command to determine the current status of the "iptables" service:
-
-# service iptables status
-
-If the service is not running, it should return the following:
-
-iptables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000190The audit system must be configured to audit all discretionary access control permission modifications using fremovexattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fremovexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fremovexattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fremovexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fremovexattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fremovexattr" system call, run the following command:
-
-$ sudo grep -w "fremovexattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000191The audit system must be configured to audit all discretionary access control permission modifications using fsetxattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S fsetxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S fsetxattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S fsetxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S fsetxattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "fsetxattr" system call, run the following command:
-
-$ sudo grep -w "fsetxattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000192The audit system must be configured to audit all discretionary access control permission modifications using lchown.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S lchown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S lchown -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S lchown -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S lchown -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "lchown" system call, run the following command:
-
-$ sudo grep -w "lchown" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000193The audit system must be configured to audit all discretionary access control permission modifications using lremovexattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S lremovexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S lremovexattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S lremovexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S lremovexattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "lremovexattr" system call, run the following command:
-
-$ sudo grep -w "lremovexattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000145<GroupDescription></GroupDescription>RHEL-06-000116The operating system must connect to external networks or information systems only through managed IPv4 interfaces consisting of boundary protection devices arranged in accordance with an organizational security architecture.<VulnDiscussion>The "iptables" service provides the system's host-based firewalling capability for IPv4 and ICMP.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001098The "iptables" service can be enabled with the following commands:
-
-# chkconfig iptables on
-# service iptables startIf the system is a cross-domain system, this is not applicable.
-
-Run the following command to determine the current status of the "iptables" service:
-
-# service iptables status
-
-If the service is not running, it should return the following:
-
-iptables: Firewall is not running.
-
-
-If the service is not running, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000194The audit system must be configured to audit all discretionary access control permission modifications using lsetxattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S lsetxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S lsetxattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S lsetxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S lsetxattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "lsetxattr" system call, run the following command:
-
-$ sudo grep -w "lsetxattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000195The audit system must be configured to audit all discretionary access control permission modifications using removexattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S removexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S removexattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S removexattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S removexattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "removexattr" system call, run the following command:
-
-$ sudo grep -w "removexattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000196The audit system must be configured to audit all discretionary access control permission modifications using setxattr.<VulnDiscussion>The changing of file permissions could indicate that a user is attempting to gain access to information that would otherwise be disallowed. Auditing DAC modifications can facilitate the identification of patterns of abuse among both authorized and 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file permission changes for all users and root. Add the following to "/etc/audit/audit.rules":
-
--a always,exit -F arch=b32 -S setxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b32 -S setxattr -F auid=0 -k perm_mod
-
-If the system is 64-bit, then also add the following:
-
--a always,exit -F arch=b64 -S setxattr -F auid>=500 -F auid!=4294967295 \
--k perm_mod
--a always,exit -F arch=b64 -S setxattr -F auid=0 -k perm_modTo determine if the system is configured to audit calls to the "setxattr" system call, run the following command:
-
-$ sudo grep -w "setxattr" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000197The audit system must be configured to audit failed attempts to access files and programs.<VulnDiscussion>Unsuccessful attempts to access files could be an indicator of malicious activity on a system. Auditing these events could serve as evidence of potential 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 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect unauthorized file accesses for all users and root. Add the following to "/etc/audit/audit.rules", setting ARCH to either b32 or b64 as appropriate for your system:
-
--a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate \
--S ftruncate -F exit=-EACCES -F auid>=500 -F auid!=4294967295 -k access
--a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate \
--S ftruncate -F exit=-EPERM -F auid>=500 -F auid!=4294967295 -k access
--a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate \
--S ftruncate -F exit=-EACCES -F auid=0 -k access
--a always,exit -F arch=ARCH -S creat -S open -S openat -S truncate \
--S ftruncate -F exit=-EPERM -F auid=0 -k accessTo verify that the audit system collects unauthorized file accesses, run the following commands:
-
-# grep EACCES /etc/audit/audit.rules
-
-
-
-# grep EPERM /etc/audit/audit.rules
-
-
-If either command lacks output, this is a finding.SRG-OS-000020<GroupDescription></GroupDescription>RHEL-06-000198The audit system must be configured to audit all use of setuid and setgid programs.<VulnDiscussion>Privileged programs are subject to escalation-of-privilege attacks, which attempt to subvert their normal role of providing some necessary but limited capability. As such, motivation exists to monitor these programs for unusual 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 6DISADPMS TargetRed Hat 62367CCI-000040At a minimum, the audit system should collect the execution of privileged commands for all users and root. To find the relevant setuid / setgid programs, run the following command for each local partition [PART]:
-
-$ sudo find [PART] -xdev -type f -perm /6000 2>/dev/null
-
-Then, for each setuid / setgid program on the system, add a line of the following form to "/etc/audit/audit.rules", where [SETUID_PROG_PATH] is the full path to each setuid / setgid program in the list:
-
--a always,exit -F path=[SETUID_PROG_PATH] -F perm=x -F auid>=500 -F auid!=4294967295 -k privilegedTo verify that auditing of privileged command use is configured, run the following command once for each local partition [PART] to find relevant setuid / setgid programs:
-
-$ sudo find [PART] -xdev -type f -perm /6000 2>/dev/null
-
-Run the following command to verify entries in the audit rules for all programs found with the previous command:
-
-$ sudo grep path /etc/audit/audit.rules
-
-It should be the case that all relevant setuid / setgid programs have a line in the audit rules. If that is not the case, this is a finding. SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000199The audit system must be configured to audit successful file system mounts.<VulnDiscussion>The unauthorized exportation of data to external media could result in an information leak where classified information, Privacy Act information, and intellectual property could be lost. An audit trail should be created each time a filesystem is mounted to help identify and guard against information loss.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect media exportation events for all users and root. Add the following to "/etc/audit/audit.rules", setting ARCH to either b32 or b64 as appropriate for your system:
-
--a always,exit -F arch=ARCH -S mount -F auid>=500 -F auid!=4294967295 -k export
--a always,exit -F arch=ARCH -S mount -F auid=0 -k exportTo verify that auditing is configured for all media exportation events, run the following command:
-
-$ sudo grep -w "mount" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return several lines.
-
-If no line is returned, this is a finding. SRG-OS-000069<GroupDescription></GroupDescription>RHEL-06-000057The system must require passwords to contain at least one uppercase alphabetic character.<VulnDiscussion>Requiring a minimum number of uppercase characters makes password guessing attacks more difficult by ensuring a larger search space.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000192The pam_cracklib module's "ucredit=" parameter controls requirements for usage of uppercase letters in a password. When set to a negative number, any password will be required to contain that many uppercase characters. When set to a positive number, pam_cracklib will grant +1 additional length credit for each uppercase character. Add "ucredit=-1" after pam_cracklib.so to require use of an uppercase character in passwords.To check how many uppercase characters are required in a password, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-The "ucredit" parameter (as a negative number) will indicate how many uppercase characters are required. The DoD requires at least one uppercase character in a password. This would appear as "ucredit=-1".
-If ucredit is not found or not set to the required value, this is a finding.SRG-OS-000266<GroupDescription></GroupDescription>RHEL-06-000058The system must require passwords to contain at least one special character.<VulnDiscussion>Requiring a minimum number of special characters makes password guessing attacks more difficult by ensuring a larger search space.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001619The pam_cracklib module's "ocredit=" parameter controls requirements for usage of special (or ``other'') characters in a password. When set to a negative number, any password will be required to contain that many special characters. When set to a positive number, pam_cracklib will grant +1 additional length credit for each special character. Add "ocredit=-1" after pam_cracklib.so to require use of a special character in passwords.To check how many special characters are required in a password, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-The "ocredit" parameter (as a negative number) will indicate how many special characters are required. The DoD requires at least one special character in a password. This would appear as "ocredit=-1".
-If ocredit is not found or not set to the required value, this is a finding.SRG-OS-000070<GroupDescription></GroupDescription>RHEL-06-000059The system must require passwords to contain at least one lower-case alphabetic character.<VulnDiscussion>Requiring a minimum number of lower-case characters makes password guessing attacks more difficult by ensuring a larger search space.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000193The pam_cracklib module's "lcredit=" parameter controls requirements for usage of lower-case letters in a password. When set to a negative number, any password will be required to contain that many lower-case characters. Add "lcredit=-1" after pam_cracklib.so to require use of a lower-case character in passwords.To check how many lower-case characters are required in a password, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-The "lcredit" parameter (as a negative number) will indicate how many lower-case characters are required. The DoD requires at least one lower-case character in a password. This would appear as "lcredit=-1".
-
-If lcredit is not found or not set to the required value, this is a finding.
-SRG-OS-000072<GroupDescription></GroupDescription>RHEL-06-000060The system must require at least eight characters be changed between the old and new passwords during a password change.<VulnDiscussion>Requiring a minimum number of different characters during password changes ensures that newly changed passwords should not resemble previously compromised ones. Note that passwords which are changed on compromised systems will still be compromised, however.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000195The pam_cracklib module's "difok" parameter controls requirements for usage of different characters during a password change. Add "difok=[NUM]" after pam_cracklib.so to require differing characters when changing passwords, substituting [NUM] appropriately. The DoD requirement is 8.To check how many characters must differ during a password change, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-The "difok" parameter will indicate how many characters must differ. The DoD requires eight characters differ during a password change. This would appear as "difok=8".
-
-If difok is not found or not set to the required value, this is a finding.SRG-OS-000021<GroupDescription></GroupDescription>RHEL-06-000061The system must disable accounts after three consecutive unsuccessful logon attempts.<VulnDiscussion>Locking out user accounts after a number of incorrect attempts prevents direct password guessing 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 6DISADPMS TargetRed Hat 62367CCI-000044To configure the system to lock out accounts after a number of incorrect logon attempts using "pam_faillock.so", modify the content of both "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" as follows:
-
-Add the following line immediately before the "pam_unix.so" statement in the "AUTH" section:
-
-auth required pam_faillock.so preauth silent deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately after the "pam_unix.so" statement in the "AUTH" section:
-
-auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately before the "pam_unix.so" statement in the "ACCOUNT" section:
-
-account required pam_faillock.so
-
-Note that any updates made to "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" may be overwritten by the "authconfig" program. The "authconfig" program should not be used.To ensure the failed password attempt policy is configured correctly, run the following command:
-
-# grep pam_faillock /etc/pam.d/system-auth /etc/pam.d/password-auth
-
-The output should show "deny=3" for both files.
-If that is not the case, this is a finding.SRG-OS-000120<GroupDescription></GroupDescription>RHEL-06-000062The system must use a FIPS 140-2 approved cryptographic hashing algorithm for generating account password hashes (system-auth).<VulnDiscussion>Using a stronger hashing algorithm makes password cracking attacks 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 6DISADPMS TargetRed Hat 62367CCI-000803In "/etc/pam.d/system-auth" and "/etc/pam.d/system-auth-ac", among potentially other files, the "password" section of the files control which PAM modules execute during a password change. Set the "pam_unix.so" module in the "password" section to include the argument "sha512", as shown below:
-
-password sufficient pam_unix.so sha512 [other arguments...]
-
-This will help ensure when local users change their passwords, hashes for the new passwords will be generated using the SHA-512 algorithm. This is the default.
-
-Note that any updates made to "/etc/pam.d/system-auth" will be overwritten by the "authconfig" program. The "authconfig" program should not be used.Inspect the "password" section of "/etc/pam.d/system-auth", "/etc/pam.d/system-auth-ac", and other files in "/etc/pam.d" and ensure that the "pam_unix.so" module includes the argument "sha512".
-
-$ grep password /etc/pam.d/* | grep pam_unix.so | grep sha512
-
-If it does not, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000200The audit system must be configured to audit user deletions of files and programs.<VulnDiscussion>Auditing file deletions will create an audit trail for files that are removed from the system. The audit trail could aid in system troubleshooting, as well as detecting malicious processes that attempt to delete log files to conceal their presence.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect file deletion events for all users and root. Add the following (or equivalent) to "/etc/audit/audit.rules", setting ARCH to either b32 or b64 as appropriate for your system:
-
--a always,exit -F arch=ARCH -S rmdir -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete
--a always,exit -F arch=ARCH -S rmdir -S unlink -S unlinkat -S rename -S renameat -F auid=0 -k delete
-
-To determine if the system is configured to audit calls to the "rmdir" system call, run the following command:
-
-$ sudo grep -w "rmdir" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line. To determine if the system is configured to audit calls to the "unlink" system call, run the following command:
-
-$ sudo grep -w "unlink" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line. To determine if the system is configured to audit calls to the "unlinkat" system call, run the following command:
-
-$ sudo grep -w "unlinkat" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line. To determine if the system is configured to audit calls to the "rename" system call, run the following command:
-
-$ sudo grep -w "rename" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line. To determine if the system is configured to audit calls to the "renameat" system call, run the following command:
-
-$ sudo grep -w "renameat" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If no line is returned, this is a finding. SRG-OS-000120<GroupDescription></GroupDescription>RHEL-06-000063The system must use a FIPS 140-2 approved cryptographic hashing algorithm for generating account password hashes (login.defs).<VulnDiscussion>Using a stronger hashing algorithm makes password cracking attacks 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 6DISADPMS TargetRed Hat 62367CCI-000803In "/etc/login.defs", add or correct the following line to ensure the system will use SHA-512 as the hashing algorithm:
-
-ENCRYPT_METHOD SHA512Inspect "/etc/login.defs" and ensure the following line appears:
-
-ENCRYPT_METHOD SHA512
-
-
-If it does not, this is a finding.SRG-OS-000120<GroupDescription></GroupDescription>RHEL-06-000064The system must use a FIPS 140-2 approved cryptographic hashing algorithm for generating account password hashes (libuser.conf).<VulnDiscussion>Using a stronger hashing algorithm makes password cracking attacks 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 6DISADPMS TargetRed Hat 62367CCI-000803In "/etc/libuser.conf", add or correct the following line in its "[defaults]" section to ensure the system will use the SHA-512 algorithm for password hashing:
-
-crypt_style = sha512Inspect "/etc/libuser.conf" and ensure the following line appears in the "[default]" section:
-
-crypt_style = sha512
-
-
-If it does not, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000201The audit system must be configured to audit changes to the /etc/sudoers file.<VulnDiscussion>The actions taken by system administrators should be audited to keep a record of what was executed on the system, as well as, for accountability purposes.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000172At a minimum, the audit system should collect administrator actions for all users and root. Add the following to "/etc/audit/audit.rules":
-
--w /etc/sudoers -p wa -k actionsTo verify that auditing is configured for system administrator actions, run the following command:
-
-$ sudo grep -w "/etc/sudoers" /etc/audit/audit.rules
-
-If the system is configured to watch for changes to its sudoers configuration, a line should be returned (including "-p wa" indicating permissions that are watched).
-
-If there is no output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000065The system boot loader configuration file(s) must be owned by root.<VulnDiscussion>Only root should be able to modify important boot parameters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The file "/boot/grub/grub.conf" should be owned by the "root" user to prevent destruction or modification of the file. To properly set the owner of "/boot/grub/grub.conf", run the command:
-
-# chown root /boot/grub/grub.confTo check the ownership of "/boot/grub/grub.conf", run the command:
-
-$ ls -lL /boot/grub/grub.conf
-
-If properly configured, the output should indicate that the owner is "root".
-If it does not, this is a finding.SRG-OS-000064<GroupDescription></GroupDescription>RHEL-06-000202The audit system must be configured to audit the loading and unloading of dynamic kernel modules.<VulnDiscussion>The addition/removal of kernel modules can be used to alter the behavior of the kernel and potentially introduce malicious code into kernel space. It is important to have an audit trail of modules that have been introduced into the kernel.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000172Add the following to "/etc/audit/audit.rules" in order to capture kernel module loading and unloading events, setting ARCH to either b32 or b64 as appropriate for your system:
-
--w /sbin/insmod -p x -k modules
--w /sbin/rmmod -p x -k modules
--w /sbin/modprobe -p x -k modules
--a always,exit -F arch=[ARCH] -S init_module -S delete_module -k modulesTo determine if the system is configured to audit execution of module management programs, run the following commands:
-
-$ sudo egrep -e "(-w |-F path=)/sbin/insmod" /etc/audit/audit.rules
-$ sudo egrep -e "(-w |-F path=)/sbin/rmmod" /etc/audit/audit.rules
-$ sudo egrep -e "(-w |-F path=)/sbin/modprobe" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-To determine if the system is configured to audit calls to the "init_module" system call, run the following command:
-
-$ sudo grep -w "init_module" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-To determine if the system is configured to audit calls to the "delete_module" system call, run the following command:
-
-$ sudo grep -w "delete_module" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If no line is returned for any of these commands, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000066The system boot loader configuration file(s) must be group-owned by root.<VulnDiscussion>The "root" group is a highly-privileged group. Furthermore, the group-owner of this file should not have any access privileges anyway.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The file "/boot/grub/grub.conf" should be group-owned by the "root" group to prevent destruction or modification of the file. To properly set the group owner of "/boot/grub/grub.conf", run the command:
-
-# chgrp root /boot/grub/grub.confTo check the group ownership of "/boot/grub/grub.conf", run the command:
-
-$ ls -lL /boot/grub/grub.conf
-
-If properly configured, the output should indicate the group-owner is "root".
-If it does not, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000203The xinetd service must be disabled if no network services utilizing it are enabled.<VulnDiscussion>The xinetd service provides a dedicated listener service for some programs, which is no longer necessary for commonly-used network services. Disabling it ensures that these uncommon services are not running, and also prevents attacks against xinetd itself.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The "xinetd" service can be disabled with the following commands:
-
-# chkconfig xinetd off
-# service xinetd stopIf network services are using the xinetd service, this is not applicable.
-
-To check that the "xinetd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "xinetd" --list
-
-Output should indicate the "xinetd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "xinetd" --list
-"xinetd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "xinetd" is disabled through current runtime configuration:
-
-# service xinetd status
-
-If the service is disabled the command will return the following output:
-
-xinetd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000067The system boot loader configuration file(s) must have mode 0600 or less permissive.<VulnDiscussion>Proper permissions ensure that only the root user can modify important boot parameters.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366File permissions for "/boot/grub/grub.conf" should be set to 600, which is the default. To properly set the permissions of "/boot/grub/grub.conf", run the command:
-
-# chmod 600 /boot/grub/grub.conf
-
-Boot partitions based on VFAT, NTFS, or other non-standard configurations may require alternative measures.To check the permissions of "/boot/grub/grub.conf", run the command:
-
-$ sudo ls -lL /boot/grub/grub.conf
-
-If properly configured, the output should indicate the following permissions: "-rw-------"
-If it does not, this is a finding. SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000204The xinetd service must be uninstalled if no network services utilizing it are enabled.<VulnDiscussion>Removing the "xinetd" package decreases the risk of the xinetd service's accidental (or intentional) activation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The "xinetd" package can be uninstalled with the following command:
-
-# yum erase xinetdIf network services are using the xinetd service, this is not applicable.
-
-Run the following command to determine if the "xinetd" package is installed:
-
-# rpm -q xinetd
-
-
-If the package is installed, this is a finding.SRG-OS-000080<GroupDescription></GroupDescription>RHEL-06-000068The system boot loader must require authentication.<VulnDiscussion>Password protection on the boot loader configuration ensures users with physical access cannot trivially alter important bootloader settings. These include which kernel to use, and whether to enter single-user mode.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000213The grub boot loader should have password protection enabled to protect boot-time settings. To do so, select a password and then generate a hash from it by running the following command:
-
-# grub-crypt --sha-512
-
-When prompted to enter a password, insert the following line into "/boot/grub/grub.conf" immediately after the header comments. (Use the output from "grub-crypt" as the value of [password-hash]):
-
-password --encrypted [password-hash]To verify the boot loader password has been set and encrypted, run the following command:
-
-# grep password /boot/grub/grub.conf
-
-The output should show the following:
-
-password --encrypted $6$[rest-of-the-password-hash]
-
-If it does not, this is a finding.SRG-OS-000080<GroupDescription></GroupDescription>RHEL-06-000069The system must require authentication upon booting into single-user and maintenance modes.<VulnDiscussion>This prevents attackers with physical access from trivially bypassing security on the machine and gaining root access. Such accesses are further prevented by configuring the bootloader 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 6DISADPMS TargetRed Hat 62367CCI-000213Single-user mode is intended as a system recovery method, providing a single user root access to the system by providing a boot option at startup. By default, no authentication is performed if single-user mode is selected.
-
-To require entry of the root password even if the system is started in single-user mode, add or correct the following line in the file "/etc/sysconfig/init":
-
-SINGLE=/sbin/suloginTo check if authentication is required for single-user mode, run the following command:
-
-$ grep SINGLE /etc/sysconfig/init
-
-The output should be the following:
-
-SINGLE=/sbin/sulogin
-
-
-If the output is different, this is a finding.SRG-OS-000095<GroupDescription></GroupDescription>RHEL-06-000206The telnet-server package must not be installed.<VulnDiscussion>Removing the "telnet-server" package decreases the risk of the unencrypted telnet service's accidental (or intentional) activation.
-
-Mitigation: If the telnet-server package is configured to only allow encrypted sessions, such as with Kerberos or the use of encrypted network tunnels, the risk of exposing sensitive information is mitigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000381The "telnet-server" package can be uninstalled with the following command:
-
-# yum erase telnet-serverRun the following command to determine if the "telnet-server" package is installed:
-
-# rpm -q telnet-server
-
-
-If the package is installed, this is a finding.SRG-OS-000080<GroupDescription></GroupDescription>RHEL-06-000070The system must not permit interactive boot.<VulnDiscussion>Using interactive boot, the console user could disable auditing, firewalls, or other services, weakening 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 6DISADPMS TargetRed Hat 62367CCI-000213To disable the ability for users to perform interactive startups, edit the file "/etc/sysconfig/init". Add or correct the line:
-
-PROMPT=no
-
-The "PROMPT" option allows the console user to perform an interactive system startup, in which it is possible to select the set of services which are started on boot.To check whether interactive boot is disabled, run the following command:
-
-$ grep PROMPT /etc/sysconfig/init
-
-If interactive boot is disabled, the output will show:
-
-PROMPT=no
-
-
-If it does not, this is a finding.SRG-OS-000129<GroupDescription></GroupDescription>RHEL-06-000211The telnet daemon must not be running.<VulnDiscussion>The telnet protocol uses unencrypted network communication, which means that data from the login session, including passwords and all other information transmitted during the session, can be stolen by eavesdroppers on the network. The telnet protocol is also subject to man-in-the-middle attacks.
-
-Mitigation: If an enabled telnet daemon is configured to only allow encrypted sessions, such as with Kerberos or the use of encrypted network tunnels, the risk of exposing sensitive information is mitigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000888The "telnet" service can be disabled with the following command:
-
-# chkconfig telnet offTo check that the "telnet" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "telnet" --list
-
-Output should indicate the "telnet" service has either not been installed, or has been disabled, as shown in the example below:
-
-# chkconfig "telnet" --list
-telnet off
-OR
-error reading information on service telnet: No such file or directory
-
-
-If the service is running, this is a finding.SRG-OS-000030<GroupDescription></GroupDescription>RHEL-06-000071The system must allow locking of the console screen in text mode.<VulnDiscussion>Installing "screen" ensures a console locking capability is available for users who may need to suspend console logins.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000058To enable console screen locking when in text mode, install the "screen" package:
-
-# yum install screen
-
-Instruct users to begin new terminal sessions with the following command:
-
-$ screen
-
-The console can now be locked with the following key combination:
-
-ctrl+a xRun the following command to determine if the "screen" package is installed:
-
-# rpm -q screen
-
-
-If the package is not installed, this is a finding.SRG-OS-000095<GroupDescription></GroupDescription>RHEL-06-000213The rsh-server package must not be installed.<VulnDiscussion>The "rsh-server" package provides several obsolete and insecure network services. Removing it decreases the risk of those services' accidental (or intentional) activation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000381The "rsh-server" package can be uninstalled with the following command:
-
-# yum erase rsh-serverRun the following command to determine if the "rsh-server" package is installed:
-
-# rpm -q rsh-server
-
-
-If the package is installed, this is a finding.SRG-OS-000022<GroupDescription></GroupDescription>RHEL-06-000356The system must require administrator action to unlock an account locked by excessive failed login attempts.<VulnDiscussion>Locking out user accounts after a number of incorrect attempts prevents direct password guessing attacks. Ensuring that an administrator is involved in unlocking locked accounts draws appropriate attention to such situations.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000047To configure the system to lock out accounts after a number of incorrect logon attempts and require an administrator to unlock the account using "pam_faillock.so", modify the content of both "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" as follows:
-
-Add the following line immediately before the "pam_unix.so" statement in the "AUTH" section:
-
-auth required pam_faillock.so preauth silent deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately after the "pam_unix.so" statement in the "AUTH" section:
-
-auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
-
-Add the following line immediately before the "pam_unix.so" statement in the "ACCOUNT" section:
-
-account required pam_faillock.so
-
-Note that any updates made to "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" may be overwritten by the "authconfig" program. The "authconfig" program should not be used.To ensure the failed password attempt policy is configured correctly, run the following command:
-
-# grep pam_faillock /etc/pam.d/system-auth /etc/pam.d/password-auth
-
-The output should show "unlock_time=<some-large-number>"; the largest acceptable value is 604800 seconds (one week).
-If that is not the case, this is a finding.SRG-OS-000228<GroupDescription></GroupDescription>RHEL-06-000073The Department of Defense (DoD) login banner must be displayed immediately prior to, or as part of, console login prompts.<VulnDiscussion>An appropriate warning message reinforces policy awareness during the logon process and facilitates possible legal action against attackers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001384CCI-001385CCI-001386CCI-001387CCI-001388To configure the system login banner:
-
-Edit "/etc/issue". Replace the default text with a message compliant with the local site policy or a legal disclaimer. The DoD required text is either:
-
-"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."
-
-OR:
-
-"I've read & consent to terms in IS user agreem't."To check if the system login banner is compliant, run the following command:
-
-$ cat /etc/issue
-
-
-If it does not display the required banner, this is a finding.SRG-OS-000033<GroupDescription></GroupDescription>RHEL-06-000214The rshd service must not be running.<VulnDiscussion>The rsh service uses unencrypted network communications, which means that data from the login session, including passwords and all other information transmitted during the session, can be stolen by eavesdroppers on 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 6DISADPMS TargetRed Hat 62367CCI-000068The "rsh" service, which is available with the "rsh-server" package and runs as a service through xinetd, should be disabled. The "rsh" service can be disabled with the following command:
-
-# chkconfig rsh offTo check that the "rsh" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "rsh" --list
-
-Output should indicate the "rsh" service has either not been installed, or has been disabled, as shown in the example below:
-
-# chkconfig "rsh" --list
-rsh off
-OR
-error reading information on service rsh: No such file or directory
-
-
-If the service is running, this is a finding.SRG-OS-000105<GroupDescription></GroupDescription>RHEL-06-000349The system must be configured to require the use of a CAC, PIV compliant hardware token, or Alternate Logon Token (ALT) for authentication.<VulnDiscussion>Smart card login provides two-factor authentication stronger than that provided by a username/password combination. Smart cards leverage a PKI (public key infrastructure) in order to provide and verify 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 6DISADPMS TargetRed Hat 62367CCI-000765To enable smart card authentication, consult the documentation at:
-
-https://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/enabling-smart-card-login.html
-
-For guidance on enabling SSH to authenticate against a Common Access Card (CAC), consult documentation at:
-
-https://access.redhat.com/solutions/82273Interview the SA to determine if all accounts not exempted by policy are using CAC authentication. For DoD systems, the following systems and accounts are exempt from using smart card (CAC) authentication:
-
-Standalone systems
-Application accounts
-Temporary employee accounts, such as students or interns, who cannot easily receive a CAC or PIV
-Operational tactical locations that are not collocated with RAPIDS workstations to issue CAC or ALT
-Test systems, such as those with an Interim Approval to Test (IATT) and use a separate VPN, firewall, or security measure preventing access to network and system components from outside the protection boundary documented in the IATT.
-
-
-
-If non-exempt accounts are not using CAC authentication, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000078The 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 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "kernel.randomize_va_space" kernel parameter, run the following command:
-
-# sysctl -w kernel.randomize_va_space=2
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-kernel.randomize_va_space = 2The status of the "kernel.randomize_va_space" kernel parameter can be queried by running the following commands:
-
-$ sysctl kernel.randomize_va_space
-$ grep kernel.randomize_va_space /etc/sysctl.conf
-
-The output of the command should indicate a value of at least "1" (preferably "2"). If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-If the correct value is not returned, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000079The system must limit the ability of processes to have simultaneous write and execute access to memory.<VulnDiscussion>ExecShield uses the segmentation feature on all x86 systems to prevent execution in memory higher than a certain address. It writes an address as a limit in the code segment descriptor, to control where code can be executed, on a per-process basis. When the kernel places a process's memory regions such as the stack and heap higher than this address, the hardware prevents execution in that address range.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "kernel.exec-shield" kernel parameter, run the following command:
-
-# sysctl -w kernel.exec-shield=1
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-kernel.exec-shield = 1The status of the "kernel.exec-shield" kernel parameter can be queried by running the following command:
-
-$ sysctl kernel.exec-shield
-$ grep kernel.exec-shield /etc/sysctl.conf
-
-The output of the command should indicate a value of "1". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-If the correct value is not returned, this is a finding.SRG-OS-000033<GroupDescription></GroupDescription>RHEL-06-000216The rexecd service must not be running.<VulnDiscussion>The rexec service uses unencrypted network communications, which means that data from the login session, including passwords and all other information transmitted during the session, can be stolen by eavesdroppers on 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 6DISADPMS TargetRed Hat 62367CCI-000068The "rexec" service, which is available with the "rsh-server" package and runs as a service through xinetd, should be disabled. The "rexec" service can be disabled with the following command:
-
-# chkconfig rexec offTo check that the "rexec" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "rexec" --list
-
-Output should indicate the "rexec" service has either not been installed, or has been disabled, as shown in the example below:
-
-# chkconfig "rexec" --list
-rexec off
-OR
-error reading information on service rexec: No such file or directory
-
-
-If the service is running, this is a finding.SRG-OS-000023<GroupDescription></GroupDescription>RHEL-06-000348The FTPS/FTP service on the system must be configured with the Department of Defense (DoD) login banner.<VulnDiscussion>This setting will cause the system greeting banner to be used for FTP connections as well.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000048Edit the vsftpd configuration file, which resides at "/etc/vsftpd/vsftpd.conf" by default. Add or correct the following configuration options.
-
-banner_file=/etc/issue
-
-Restart the vsftpd daemon.
-
-# service vsftpd restartTo verify this configuration, run the following command:
-
-grep "banner_file" /etc/vsftpd/vsftpd.conf
-
-The output should show the value of "banner_file" is set to "/etc/issue", an example of which is shown below.
-
-# grep "banner_file" /etc/vsftpd/vsftpd.conf
-banner_file=/etc/issue
-
-
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000080The system must not send ICMPv4 redirects by default.<VulnDiscussion>Sending ICMP redirects permits the system to instruct other systems to update their routing information. The ability to send ICMP redirects is only appropriate for systems acting as routers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.default.send_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.default.send_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.default.send_redirects = 0The status of the "net.ipv4.conf.default.send_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.default.send_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.default.send_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000081The system must not send ICMPv4 redirects from any interface.<VulnDiscussion>Sending ICMP redirects permits the system to instruct other systems to update their routing information. The ability to send ICMP redirects is only appropriate for systems acting as routers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To set the runtime status of the "net.ipv4.conf.all.send_redirects" kernel parameter, run the following command:
-
-# sysctl -w net.ipv4.conf.all.send_redirects=0
-
-If this is not the system's default value, add the following line to "/etc/sysctl.conf":
-
-net.ipv4.conf.all.send_redirects = 0The status of the "net.ipv4.conf.all.send_redirects" kernel parameter can be queried by running the following command:
-
-$ sysctl net.ipv4.conf.all.send_redirects
-
-The output of the command should indicate a value of "0". If this value is not the default value, investigate how it could have been adjusted at runtime, and verify it is not set improperly in "/etc/sysctl.conf".
-
-$ grep net.ipv4.conf.all.send_redirects /etc/sysctl.conf
-
-If the correct value is not returned, this is a finding. SRG-OS-000248<GroupDescription></GroupDescription>RHEL-06-000218The rlogind service must not be running.<VulnDiscussion>The rlogin service uses unencrypted network communications, which means that data from the login session, including passwords and all other information transmitted during the session, can be stolen by eavesdroppers on 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 6DISADPMS TargetRed Hat 62367CCI-001436The "rlogin" service, which is available with the "rsh-server" package and runs as a service through xinetd, should be disabled. The "rlogin" service can be disabled with the following command:
-
-# chkconfig rlogin off
-To check that the "rlogin" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "rlogin" --list
-
-Output should indicate the "rlogin" service has either not been installed, or has been disabled, as shown in the example below:
-
-# chkconfig "rlogin" --list
-rlogin off
-OR
-error reading information on service rlogin: No such file or directory
-
-
-If the service is running, this is a finding.SRG-OS-000095<GroupDescription></GroupDescription>RHEL-06-000220The ypserv package must not be 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 6DISADPMS TargetRed Hat 62367CCI-000381The "ypserv" package can be uninstalled with the following command:
-
-# yum erase ypservRun the following command to determine if the "ypserv" package is installed:
-
-# rpm -q ypserv
-
-
-If the package is installed, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000221The ypbind service must not be running.<VulnDiscussion>Disabling the "ypbind" service ensures the system is not acting as a client in a NIS or NIS+ 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 6DISADPMS TargetRed Hat 62367CCI-000382The "ypbind" service, which allows the system to act as a client in a NIS or NIS+ domain, should be disabled. The "ypbind" service can be disabled with the following commands:
-
-# chkconfig ypbind off
-# service ypbind stopTo check that the "ypbind" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "ypbind" --list
-
-Output should indicate the "ypbind" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "ypbind" --list
-"ypbind" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "ypbind" is disabled through current runtime configuration:
-
-# service ypbind status
-
-If the service is disabled the command will return the following output:
-
-ypbind is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000224The cron service must be running.<VulnDiscussion>Due to its usage for maintenance and security-supporting tasks, enabling the cron daemon is essential.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "crond" service is used to execute commands at preconfigured times. It is required by almost all systems to perform necessary maintenance tasks, such as notifying root of system activity. The "crond" service can be enabled with the following commands:
-
-# chkconfig crond on
-# service crond startRun the following command to determine the current status of the "crond" service:
-
-# service crond status
-
-If the service is enabled, it should return the following:
-
-crond is running...
-
-
-If the service is not running, this is a finding.SRG-OS-000095<GroupDescription></GroupDescription>RHEL-06-000222The tftp-server package must not be installed unless required.<VulnDiscussion>Removing the "tftp-server" package decreases the risk of the accidental (or intentional) activation of tftp 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 6DISADPMS TargetRed Hat 62367CCI-000381The "tftp-server" package can be removed with the following command:
-
-# yum erase tftp-serverRun the following command to determine if the "tftp-server" package is installed:
-
-# rpm -q tftp-server
-
-
-If the package is installed, this is a finding.SRG-OS-000112<GroupDescription></GroupDescription>RHEL-06-000227The SSH daemon must be configured to use only the SSHv2 protocol.<VulnDiscussion>SSH protocol version 1 suffers from design flaws that result in security vulnerabilities and should not be used.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000774Only SSH protocol version 2 connections should be permitted. The default setting in "/etc/ssh/sshd_config" is correct, and can be verified by ensuring that the following line appears:
-
-Protocol 2To check which SSH protocol version is allowed, run the following command:
-
-# grep Protocol /etc/ssh/sshd_config
-
-If configured properly, output should be
-
-Protocol 2
-
-
-If it is not, this is a finding.SRG-OS-000163<GroupDescription></GroupDescription>RHEL-06-000230The SSH daemon must set a timeout interval on idle sessions.<VulnDiscussion>Causing idle users to be automatically logged out guards against compromises one system leading trivially to compromises on another.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001133SSH allows administrators to set an idle timeout interval. After this interval has passed, the idle user will be automatically logged out.
-
-To set an idle timeout interval, edit the following line in "/etc/ssh/sshd_config" as follows:
-
-ClientAliveInterval [interval]
-
-The timeout [interval] is given in seconds. To have a timeout of 15 minutes, set [interval] to 900.
-
-If a shorter timeout has already been set for the login shell, that value will preempt any SSH setting made here. Keep in mind that some processes may stop SSH from correctly detecting that the user is idle.Run the following command to see what the timeout interval is:
-
-# grep ClientAliveInterval /etc/ssh/sshd_config
-
-If properly configured, the output should be:
-
-ClientAliveInterval 900
-
-
-If it is not, this is a finding.SRG-OS-000248<GroupDescription></GroupDescription>RHEL-06-000223The TFTP service must not be running.<VulnDiscussion>Disabling the "tftp" service ensures the system is not acting as a tftp server, which does not provide encryption or 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 6DISADPMS TargetRed Hat 62367CCI-001436The "tftp" service should be disabled. The "tftp" service can be disabled with the following command:
-
-# chkconfig tftp offTo check that the "tftp" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "tftp" --list
-
-Output should indicate the "tftp" service has either not been installed, or has been disabled, as shown in the example below:
-
-# chkconfig "tftp" --list
-tftp off
-OR
-error reading information on service tftp: No such file or directory
-
-
-If the service is running, this is a finding.SRG-OS-000126<GroupDescription></GroupDescription>RHEL-06-000231The SSH daemon must set a timeout count on idle sessions.<VulnDiscussion>This ensures a user login will be terminated as soon as the "ClientAliveCountMax" is reached.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000879To ensure the SSH idle timeout occurs precisely when the "ClientAliveCountMax" is set, edit "/etc/ssh/sshd_config" as follows:
-
-ClientAliveCountMax 0To ensure the SSH idle timeout will occur when the "ClientAliveCountMax" is set, run the following command:
-
-# grep ClientAliveCountMax /etc/ssh/sshd_config
-
-If properly configured, output should be:
-
-ClientAliveCountMax 0
-
-
-If it is not, this is a finding.SRG-OS-000106<GroupDescription></GroupDescription>RHEL-06-000234The SSH daemon must ignore .rhosts files.<VulnDiscussion>SSH trust relationships mean a compromise on one host can allow an attacker to move trivially to other 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 6DISADPMS TargetRed Hat 62367CCI-000766SSH can emulate the behavior of the obsolete rsh command in allowing users to enable insecure access to their accounts via ".rhosts" files.
-
-To ensure this behavior is disabled, add or correct the following line in "/etc/ssh/sshd_config":
-
-IgnoreRhosts yesTo determine how the SSH daemon's "IgnoreRhosts" option is set, run the following command:
-
-# grep -i IgnoreRhosts /etc/ssh/sshd_config
-
-If no line, a commented line, or a line indicating the value "yes" is returned, then the required value is set.
-If the required value is not set, this is a finding.SRG-OS-000106<GroupDescription></GroupDescription>RHEL-06-000236The SSH daemon must not allow host-based authentication.<VulnDiscussion>SSH trust relationships mean a compromise on one host can allow an attacker to move trivially to other 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 6DISADPMS TargetRed Hat 62367CCI-000766SSH's cryptographic host-based authentication is more secure than ".rhosts" authentication, since hosts are cryptographically authenticated. However, it is not recommended that hosts unilaterally trust one another, even within an organization.
-
-To disable host-based authentication, add or correct the following line in "/etc/ssh/sshd_config":
-
-HostbasedAuthentication noTo determine how the SSH daemon's "HostbasedAuthentication" option is set, run the following command:
-
-# grep -i HostbasedAuthentication /etc/ssh/sshd_config
-
-If no line, a commented line, or a line indicating the value "no" is returned, then the required value is set.
-If the required value is not set, this is a finding.SRG-OS-000109<GroupDescription></GroupDescription>RHEL-06-000237The system must not permit root logins using remote access programs such as ssh.<VulnDiscussion>Permitting direct root login reduces auditable information about who ran privileged commands on the system and also allows direct attack attempts on root's 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 6DISADPMS TargetRed Hat 62367CCI-000770The root user should never be allowed to log in to a system directly over a network. To disable root login via SSH, add or correct the following line in "/etc/ssh/sshd_config":
-
-PermitRootLogin noTo determine how the SSH daemon's "PermitRootLogin" option is set, run the following command:
-
-# grep -i PermitRootLogin /etc/ssh/sshd_config
-
-If a line indicating "no" is returned, then the required value is set.
-If the required value is not set, this is a finding.SRG-OS-000106<GroupDescription></GroupDescription>RHEL-06-000239The SSH daemon must not allow authentication using an empty password.<VulnDiscussion>Configuring this setting for the SSH daemon provides additional assurance that remote login 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 6DISADPMS TargetRed Hat 62367CCI-000766To explicitly disallow remote login from accounts with empty passwords, add or correct the following line in "/etc/ssh/sshd_config":
-
-PermitEmptyPasswords no
-
-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
-
-If no line, a commented line, or a line indicating the value "no" is returned, then the required value is set.
-If the required value is not set, this is a finding.SRG-OS-000023<GroupDescription></GroupDescription>RHEL-06-000240The SSH daemon must be configured with the Department of Defense (DoD) login banner.<VulnDiscussion>The warning message reinforces policy awareness during the logon process and facilitates possible legal action against attackers. Alternatively, systems whose ownership should not be obvious should ensure usage of a banner that does not provide easy attribution.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000048To enable the warning banner and ensure it is consistent across the system, add or correct the following line in "/etc/ssh/sshd_config":
-
-Banner /etc/issue
-
-Another section contains information on how to create an appropriate system-wide warning banner.To determine how the SSH daemon's "Banner" option is set, run the following command:
-
-# grep -i Banner /etc/ssh/sshd_config
-
-If a line indicating /etc/issue is returned, then the required value is set.
-If the required value is not set, this is a finding.SRG-OS-000242<GroupDescription></GroupDescription>RHEL-06-000241The SSH daemon must not permit user environment settings.<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 6DISADPMS TargetRed Hat 62367CCI-001414To ensure users are not able to present environment options to the SSH daemon, add or correct the following line in "/etc/ssh/sshd_config":
-
-PermitUserEnvironment noTo ensure users are not able to present environment daemons, run the following command:
-
-# grep PermitUserEnvironment /etc/ssh/sshd_config
-
-If properly configured, output should be:
-
-PermitUserEnvironment no
-
-
-If it is not, this is a finding.SRG-OS-000169<GroupDescription></GroupDescription>RHEL-06-000243The SSH daemon must be configured to use only FIPS 140-2 approved ciphers.<VulnDiscussion>Approved algorithms should impart some level of confidence in their implementation. These are also required for compliance.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001144Limit the ciphers to those algorithms which are FIPS-approved. Counter (CTR) mode is also preferred over cipher-block chaining (CBC) mode. The following line in "/etc/ssh/sshd_config" demonstrates use of FIPS-approved ciphers:
-
-Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
-
-The man page "sshd_config(5)" contains a list of supported ciphers.Only FIPS-approved ciphers should be used. To verify that only FIPS-approved ciphers are in use, run the following command:
-
-# grep Ciphers /etc/ssh/sshd_config
-
-The output should contain only those ciphers which are FIPS-approved, namely, the AES and 3DES ciphers.
-If that is not the case, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000246The avahi service must be disabled.<VulnDiscussion>Because the Avahi daemon service keeps an open network port, it is subject to network attacks. Its functionality is convenient but is only appropriate if the local network can be trusted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "avahi-daemon" service can be disabled with the following commands:
-
-# chkconfig avahi-daemon off
-# service avahi-daemon stopTo check that the "avahi-daemon" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "avahi-daemon" --list
-
-Output should indicate the "avahi-daemon" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "avahi-daemon" --list
-"avahi-daemon" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "avahi-daemon" is disabled through current runtime configuration:
-
-# service avahi-daemon status
-
-If the service is disabled the command will return the following output:
-
-avahi-daemon is stopped
-
-
-If the service is running, this is a finding.SRG-OS-000073<GroupDescription></GroupDescription>RHEL-06-000347There must be no .netrc files on the system.<VulnDiscussion>Unencrypted passwords for remote FTP servers may be stored in ".netrc" files. DoD policy requires passwords be encrypted in storage and not used in access scripts.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000196The ".netrc" files contain logon information used to auto-logon into FTP servers and reside in the user's home directory. These files may contain unencrypted passwords to remote FTP servers making them susceptible to access by unauthorized users and should not be used. Any ".netrc" files should be removed.To check the system for the existence of any ".netrc" files, run the following command:
-
-$ sudo find /root /home -xdev -name .netrc
-
-If any .netrc files exist, this is a finding.SRG-OS-000056<GroupDescription></GroupDescription>RHEL-06-000247The system clock must be synchronized continuously, or at least daily.<VulnDiscussion>Enabling the "ntpd" service ensures that the "ntpd" service will be running and that the system will synchronize its time to any servers specified. This is important whether the system is configured to be a client (and synchronize only its own clock) or it is also acting as an NTP server to other systems. Synchronizing time is essential for authentication services such as Kerberos, but it is also important for maintaining accurate logs and auditing possible security breaches.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000160The "ntpd" service can be enabled with the following command:
-
-# chkconfig ntpd on
-# service ntpd startRun the following command to determine the current status of the "ntpd" service:
-
-# service ntpd status
-
-If the service is enabled, it should return the following:
-
-ntpd is running...
-
-
-If the service is not running, this is a finding.SRG-OS-000056<GroupDescription></GroupDescription>RHEL-06-000248The system clock must be synchronized to an authoritative DoD time source.<VulnDiscussion>Synchronizing with an NTP server makes it possible to collate system logs from multiple sources or correlate computer events with real time events. Using a trusted NTP server provided by your organization is recommended.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000160To specify a remote NTP server for time synchronization, edit the file "/etc/ntp.conf". Add or correct the following lines, substituting the IP or hostname of a remote NTP server for ntpserver.
-
-server [ntpserver]
-
-This instructs the NTP software to contact that remote server to obtain time data.A remote NTP server should be configured for time synchronization. To verify one is configured, open the following file.
-
-/etc/ntp.conf
-
-In the file, there should be a section similar to the following:
-
-# --- OUR TIMESERVERS -----
-server [ntpserver]
-
-
-If this is not the case, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000249Mail relaying must be restricted.<VulnDiscussion>This ensures "postfix" accepts mail messages (such as cron job reports) from the local system only, and not from the network, which protects it from network 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 6DISADPMS TargetRed Hat 62367CCI-000382Edit the file "/etc/postfix/main.cf" to ensure that only the following "inet_interfaces" line appears:
-
-inet_interfaces = localhostIf the system is an authorized mail relay host, this is not applicable.
-
-Run the following command to ensure postfix accepts mail messages from only the local system:
-
-$ grep inet_interfaces /etc/postfix/main.cf
-
-If properly configured, the output should show only "localhost".
-If it does not, this is a finding.SRG-OS-000206<GroupDescription></GroupDescription>RHEL-06-000135All rsyslog-generated log files must have mode 0600 or less permissive.<VulnDiscussion>Log files can contain valuable information regarding system configuration. If the system log files are not protected, unauthorized users could change the logged data, eliminating their forensic value.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001314The file permissions for all log files written by rsyslog should be set to 600, or more restrictive. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" and typically all appear in "/var/log". For each log file [LOGFILE] referenced in "/etc/rsyslog.conf", run the following command to inspect the file's permissions:
-
-$ ls -l [LOGFILE]
-
-If the permissions are not 600 or more restrictive, run the following command to correct this:
-
-# chmod 0600 [LOGFILE]The file permissions for all log files written by rsyslog should be set to 600, or more restrictive. These log files are determined by the second part of each Rule line in "/etc/rsyslog.conf" and typically all appear in "/var/log". For each log file [LOGFILE] referenced in "/etc/rsyslog.conf", run the following command to inspect the file's permissions:
-
-$ ls -l [LOGFILE]
-
-The permissions should be 600, or more restrictive. Some log files referenced in /etc/rsyslog.conf may be created by other programs and may require exclusion from consideration.
-
-If the permissions are not correct, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000138System logs must be rotated daily.<VulnDiscussion>Log files that are not properly rotated run the risk of growing so large that they fill up the /var/log partition. Valuable logging information could be lost if the /var/log partition becomes full.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "logrotate" service should be installed or reinstalled if it is not installed and operating properly, by running the following command:
-
-# yum reinstall logrotateRun the following commands to determine the current status of the "logrotate" service:
-
-# grep logrotate /var/log/cron*
-
-If the logrotate service is not run on a daily basis by cron, this is a finding.SRG-OS-000250<GroupDescription></GroupDescription>RHEL-06-000252If the system is using LDAP for authentication or account information, the system must use a TLS connection using FIPS 140-2 approved cryptographic algorithms.<VulnDiscussion>The LDAP server will use unencrypted connections by default. If the LDAP daemon is not configured to use” ldaps:///”, all communications between the client and the server will not be encrypted. The LDAP server should be configured to use “ldaps:///” over the default “ldap:///”.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance>If the LDAP server is using ldap:///, run the following command:
-
-# openssl s_client -connect [HOST]:389 -tls-1_1
-
-If the client successfully connects to the LDAP sever using TLSv1.1, this finding can be downgraded to a CAT III.</SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001453Configure the LDAP server to enforce TLS use.If the system does not use LDAP for authentication or account information, this is not applicable.
-
-To ensure LDAP is configured to use TLS for all transactions, run the following command:
-
-# ps –ef | grep “slapd”
-
-If the LDAP daemon is not using “ldaps:///”, this is a finding.
-
-If the LDAP daemon is using “ldap:///”, this is a finding.
-
-Verify that the LDAP client cannot connect using an unencrypted method.
-# openssl s_client –connect [HOST]:389
-
-If the following line is not returned, this is a finding:
-Socket: Connection refused.
-
-Note: The default port for unencrypted LDAP connections is 389.SRG-OS-000113<GroupDescription></GroupDescription>RHEL-06-000253The LDAP client must use a TLS connection using trust certificates signed by the site CA.<VulnDiscussion>The tls_cacertdir or tls_cacertfile directives are required when tls_checkpeer is configured (which is the default for openldap versions 2.1 and up). These directives define the path to the trust certificates signed by the site 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 6DISADPMS TargetRed Hat 62367CCI-000776Ensure a copy of the site's CA certificate has been placed in the file "/etc/pki/tls/CA/cacert.pem". Configure LDAP to enforce TLS use and to trust certificates signed by the site's CA. First, edit the file "/etc/pam_ldap.conf", and add or correct either of the following lines:
-
-tls_cacertdir /etc/pki/tls/CA
-
-or
-
-tls_cacertfile /etc/pki/tls/CA/cacert.pem
-
-Then review the LDAP server and ensure TLS has been configured.If the system does not use LDAP for authentication or account information, this is not applicable.
-
-To ensure TLS is configured with trust certificates, run the following command:
-
-# grep cert /etc/pam_ldap.conf
-
-
-If there is no output, or the lines are commented out, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000256The openldap-servers package must not be installed unless required.<VulnDiscussion>Unnecessary packages should not be installed to decrease the attack surface of 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 6DISADPMS TargetRed Hat 62367CCI-000366The "openldap-servers" package should be removed if not in use. Is this machine the OpenLDAP server? If not, remove the package.
-
-# yum erase openldap-servers
-
-The openldap-servers RPM is not installed by default on RHEL6 machines. It is needed only by the OpenLDAP server, not by the clients which use LDAP for authentication. If the system is not intended for use as an LDAP Server it should be removed.To verify the "openldap-servers" package is not installed, run the following command:
-
-$ rpm -q openldap-servers
-
-The output should show the following.
-
-package openldap-servers is not installed
-
-
-If it does not, this is a finding.SRG-OS-000255<GroupDescription></GroupDescription>RHEL-06-000145The operating system must produce audit records containing sufficient information to establish the identity of any user/subject associated with the event.<VulnDiscussion>Ensuring the "auditd" service is active ensures audit records generated by the kernel can be written to disk, or that appropriate actions will be taken if other obstacles exist.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001487The "auditd" service is an essential userspace component of the Linux Auditing System, as it is responsible for writing audit records to disk. The "auditd" service can be enabled with the following commands:
-
-# chkconfig auditd on
-# service auditd startRun the following command to determine the current status of the "auditd" service:
-
-# service auditd status
-
-If the service is enabled, it should return the following:
-
-auditd is running...
-
-
-If the service is not running, this is a finding.SRG-OS-000029<GroupDescription></GroupDescription>RHEL-06-000257The graphical desktop environment must set the idle timeout to no more than 15 minutes.<VulnDiscussion>Setting the idle delay controls when the screensaver will start, and can be combined with screen locking to prevent access from passersby.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000057Run the following command to set the idle time-out value for inactivity in the GNOME desktop to 15 minutes:
-
-# gconftool-2 \
---direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type int \
---set /apps/gnome-screensaver/idle_delay 15If the GConf2 package is not installed, this is not applicable.
-
-To check the current idle time-out value, run the following command:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gnome-screensaver/idle_delay
-
-If properly configured, the output should be "15".
-
-If it is not, this is a finding.SRG-OS-000029<GroupDescription></GroupDescription>RHEL-06-000258The graphical desktop environment must automatically lock after 15 minutes of inactivity and the system must require user reauthentication to unlock the environment.<VulnDiscussion>Enabling idle activation of the screen saver ensures the screensaver will be activated after the idle delay. Applications requiring continuous, real-time screen display (such as network management products) require the login session does not have administrator rights and the display station is located in a controlled-access area.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000057Run the following command to activate the screensaver in the GNOME desktop after a period of inactivity:
-
-# gconftool-2 --direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type bool \
---set /apps/gnome-screensaver/idle_activation_enabled trueIf the GConf2 package is not installed, this is not applicable.
-
-To check the screensaver mandatory use status, run the following command:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gnome-screensaver/idle_activation_enabled
-
-If properly configured, the output should be "true".
-
-If it is not, this is a finding.SRG-OS-000032<GroupDescription></GroupDescription>RHEL-06-000148The operating system must employ automated mechanisms to facilitate the monitoring and control of remote access methods.<VulnDiscussion>Ensuring the "auditd" service is active ensures audit records generated by the kernel can be written to disk, or that appropriate actions will be taken if other obstacles exist.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000067The "auditd" service is an essential userspace component of the Linux Auditing System, as it is responsible for writing audit records to disk. The "auditd" service can be enabled with the following commands:
-
-# chkconfig auditd on
-# service auditd startRun the following command to determine the current status of the "auditd" service:
-
-# service auditd status
-
-If the service is enabled, it should return the following:
-
-auditd is running...
-
-
-If the service is not running, this is a finding.SRG-OS-000037<GroupDescription></GroupDescription>RHEL-06-000154The operating system must produce audit records containing sufficient information to establish what type of events occurred.<VulnDiscussion>Ensuring the "auditd" service is active ensures audit records generated by the kernel can be written to disk, or that appropriate actions will be taken if other obstacles exist.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000130The "auditd" service is an essential userspace component of the Linux Auditing System, as it is responsible for writing audit records to disk. The "auditd" service can be enabled with the following commands:
-
-# chkconfig auditd on
-# service auditd startRun the following command to determine the current status of the "auditd" service:
-
-# service auditd status
-
-If the service is enabled, it should return the following:
-
-auditd is running...
-
-
-If the service is not running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000160The system must set a maximum audit log file size.<VulnDiscussion>The total storage for audit log files must be large enough to retain log information over the period required. This is a function of the maximum log file size and the number of logs retained.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Determine the amount of audit data (in megabytes) which should be retained in each log file. Edit the file "/etc/audit/auditd.conf". Add or modify the following line, substituting the correct value for [STOREMB]:
-
-max_log_file = [STOREMB]
-
-Set the value to "6" (MB) or higher for general-purpose systems. Larger values, of course, support retention of even more audit data.Inspect "/etc/audit/auditd.conf" and locate the following line to determine how much data the system will retain in each audit log file: "# grep max_log_file /etc/audit/auditd.conf"
-
-max_log_file = 6
-
-
-If the system audit data threshold hasn't been properly set up, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000161The system must rotate audit log files that reach the maximum file size.<VulnDiscussion>Automatically rotating logs (by setting this to "rotate") minimizes the chances of the system unexpectedly running out of disk space by being overwhelmed with log data. However, for systems that must never discard log data, or which use external processes to transfer it and reclaim space, "keep_logs" can be employed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The default action to take when the logs reach their maximum size is to rotate the log files, discarding the oldest one. To configure the action taken by "auditd", add or correct the line in "/etc/audit/auditd.conf":
-
-max_log_file_action = [ACTION]
-
-Possible values for [ACTION] are described in the "auditd.conf" man page. These include:
-
-"ignore"
-"syslog"
-"suspend"
-"rotate"
-"keep_logs"
-
-
-Set the "[ACTION]" to "rotate" to ensure log rotation occurs. This is the default. The setting is case-insensitive.Inspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to rotate logs when they reach their maximum size:
-
-# grep max_log_file_action /etc/audit/auditd.conf
-max_log_file_action = rotate
-
-If the "keep_logs" option is configured for the "max_log_file_action" line in "/etc/audit/auditd.conf" and an alternate process is in place to ensure audit data does not overwhelm local audit storage, this is not a finding.
-
-If the system has not been properly set up to rotate audit logs, this is a finding.SRG-OS-000062<GroupDescription></GroupDescription>RHEL-06-000165The audit system must be configured to audit all attempts to alter system time through adjtimex.<VulnDiscussion>Arbitrary changes to the system time can be used to obfuscate nefarious activities in log files, as well as to confuse network services that are highly dependent upon an accurate system time (such as sshd). All changes to the system time should be audited.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000169On a 32-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b32 -S adjtimex -k audit_time_rules
-
-On a 64-bit system, add the following to "/etc/audit/audit.rules":
-
-# audit_time_rules
--a always,exit -F arch=b64 -S adjtimex -k audit_time_rules
-
-The -k option allows for the specification of a key in string form that can be used for better reporting capability through ausearch and aureport. Multiple system calls can be defined on the same line to save space if desired, but is not required. See an example of multiple combined syscalls:
-
--a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k audit_time_rulesTo determine if the system is configured to audit calls to the "adjtimex" system call, run the following command:
-
-$ sudo grep -w "adjtimex" /etc/audit/audit.rules
-
-If the system is configured to audit this activity, it will return a line.
-
-If the system is not configured to audit time changes, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000159The system must retain enough rotated audit logs to cover the required log retention period.<VulnDiscussion>The total storage for audit log files must be large enough to retain log information over the period required. This is a function of the maximum log file size and the number of logs retained.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Determine how many log files "auditd" should retain when it rotates logs. Edit the file "/etc/audit/auditd.conf". Add or modify the following line, substituting [NUMLOGS] with the correct value:
-
-num_logs = [NUMLOGS]
-
-Set the value to 5 for general-purpose systems. Note that values less than 2 result in no log rotation.Inspect "/etc/audit/auditd.conf" and locate the following line to determine how many logs the system is configured to retain after rotation: "# grep num_logs /etc/audit/auditd.conf"
-
-num_logs = 5
-
-
-If the overall system log file(s) retention hasn't been properly set up, this is a finding.SRG-OS-000278<GroupDescription></GroupDescription>RHEL-06-000281The system package management tool must verify contents of all files associated with the audit package.<VulnDiscussion>The hash on important files like audit system executables should match the information given by the RPM database. Audit executables with erroneous hashes could be a sign of nefarious activity 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 6DISADPMS TargetRed Hat 62367CCI-001496The RPM package management system can check the hashes of audit system package files. Run the following command to list which audit files on the system have hashes that differ from what is expected by the RPM database:
-
-# rpm -V audit | grep '^..5'
-
-A "c" in the second column indicates that a file is a configuration file, which may appropriately be expected to change. If the file that has changed was not expected to then refresh from distribution media or online repositories.
-
-rpm -Uvh [affected_package]
-
-OR
-
-yum reinstall [affected_package]The following command will list which audit files on the system have file hashes different from what is expected by the RPM database.
-
-# rpm -V audit | awk '$1 ~ /..5/ && $2 != "c"'
-
-
-If there is output, this is a finding.SRG-OS-000029<GroupDescription></GroupDescription>RHEL-06-000259The graphical desktop environment must have automatic lock enabled.<VulnDiscussion>Enabling the activation of the screen lock after an idle period ensures password entry will be required in order to access the system, preventing access by passersby.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000057Run the following command to activate locking of the screensaver in the GNOME desktop when it is activated:
-
-# gconftool-2 --direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type bool \
---set /apps/gnome-screensaver/lock_enabled trueIf the GConf2 package is not installed, this is not applicable.
-
-To check the status of the idle screen lock activation, run the following command:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gnome-screensaver/lock_enabled
-
-If properly configured, the output should be "true".
-If it is not, this is a finding.SRG-OS-000031<GroupDescription></GroupDescription>RHEL-06-000260The system must display a publicly-viewable pattern during a graphical desktop environment session lock.<VulnDiscussion>Setting the screensaver mode to blank-only conceals the contents of the display from passersby.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000060Run the following command to set the screensaver mode in the GNOME desktop to a blank screen:
-
-# gconftool-2 \
---direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type string \
---set /apps/gnome-screensaver/mode blank-onlyIf the GConf2 package is not installed, this is not applicable.
-
-To ensure the screensaver is configured to be blank, run the following command:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gnome-screensaver/mode
-
-If properly configured, the output should be "blank-only".
-If it is not, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000261The Automatic Bug Reporting Tool (abrtd) service must not be running.<VulnDiscussion>Mishandling crash data could expose sensitive information about vulnerabilities in software executing on the local machine, as well as sensitive information from within a process's address space or registers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The Automatic Bug Reporting Tool ("abrtd") daemon collects and reports crash data when an application crash is detected. Using a variety of plugins, abrtd can email crash reports to system administrators, log crash reports to files, or forward crash reports to a centralized issue tracking system such as RHTSupport. The "abrtd" service can be disabled with the following commands:
-
-# chkconfig abrtd off
-# service abrtd stopTo check that the "abrtd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "abrtd" --list
-
-Output should indicate the "abrtd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "abrtd" --list
-"abrtd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "abrtd" is disabled through current runtime configuration:
-
-# service abrtd status
-
-If the service is disabled the command will return the following output:
-
-abrtd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000262The atd service must be disabled.<VulnDiscussion>The "atd" service could be used by an unsophisticated insider to carry out activities outside of a normal login session, which could complicate accountability. Furthermore, the need to schedule tasks with "at" or "batch" is not common.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The "at" and "batch" commands can be used to schedule tasks that are meant to be executed only once. This allows delayed execution in a manner similar to cron, except that it is not recurring. The daemon "atd" keeps track of tasks scheduled via "at" and "batch", and executes them at the specified time. The "atd" service can be disabled with the following commands:
-
-# chkconfig atd off
-# service atd stopIf the system uses the "atd" service, this is not applicable.
-
-To check that the "atd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "atd" --list
-
-Output should indicate the "atd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "atd" --list
-"atd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "atd" is disabled through current runtime configuration:
-
-# service atd status
-
-If the service is disabled the command will return the following output:
-
-atd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000346The system default umask for daemons must be 027 or 022.<VulnDiscussion>The umask influences the permissions assigned to files created by a process at run time. An unnecessarily permissive umask could result in files being created with insecure permissions.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The file "/etc/init.d/functions" includes initialization parameters for most or all daemons started at boot time. The default umask of 022 prevents creation of group- or world-writable files. To set the default umask for daemons, edit the following line, inserting 022 or 027 for [UMASK] appropriately:
-
-umask [UMASK]
-
-Setting the umask to too restrictive a setting can cause serious errors at runtime. Many daemons on the system already individually restrict themselves to a umask of 077 in their own init scripts.To check the value of the "umask", run the following command:
-
-$ grep umask /etc/init.d/functions
-
-The output should show either "022" or "027".
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000282There must be no world-writable files on the system.<VulnDiscussion>Data in world-writable files can be modified by any user on the system. In almost all circumstances, files can be configured using a combination of user and group permissions to support whatever legitimate access is needed without the risk caused by world-writable 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 6DISADPMS TargetRed Hat 62367CCI-000366It is generally a good idea to remove global (other) write access to a file when it is discovered. However, check with documentation for specific applications before making changes. Also, monitor for recurring world-writable files, as these may be symptoms of a misconfigured application or user account.To find world-writable files, run the following command for each local partition [PART], excluding special filesystems such as /selinux, /proc, or /sys:
-
-# find [PART] -xdev -type f -perm -002
-
-If there is output, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000265The ntpdate service must not be running.<VulnDiscussion>The "ntpdate" service may only be suitable for systems which are rebooted frequently enough that clock drift does not cause problems between reboots. In any event, the functionality of the ntpdate service is now available in the ntpd program and should be considered deprecated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The ntpdate service sets the local hardware clock by polling NTP servers when the system boots. It synchronizes to the NTP servers listed in "/etc/ntp/step-tickers" or "/etc/ntp.conf" and then sets the local hardware clock to the newly synchronized system time. The "ntpdate" service can be disabled with the following commands:
-
-# chkconfig ntpdate off
-# service ntpdate stopTo check that the "ntpdate" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "ntpdate" --list
-
-Output should indicate the "ntpdate" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "ntpdate" --list
-"ntpdate" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "ntpdate" is disabled through current runtime configuration:
-
-# service ntpdate status
-
-If the service is disabled the command will return the following output:
-
-ntpdate is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000345The system default umask in /etc/login.defs must be 077.<VulnDiscussion>The umask value influences the permissions assigned to files when they are created. A misconfigured umask value could result in files with excessive permissions that can be read and/or written to 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 6DISADPMS TargetRed Hat 62367CCI-000366To ensure the default umask controlled by "/etc/login.defs" is set properly, add or correct the "umask" setting in "/etc/login.defs" to read as follows:
-
-UMASK 077Verify the "umask" setting is configured correctly in the "/etc/login.defs" file by running the following command:
-
-# grep -i "umask" /etc/login.defs
-
-All output must show the value of "umask" set to 077, as shown in the below:
-
-# grep -i "umask" /etc/login.defs
-UMASK 077
-
-
-If the above command returns no output, or if the umask is configured incorrectly, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000266The oddjobd service must not be running.<VulnDiscussion>The "oddjobd" service may provide necessary functionality in some environments but it can be disabled if it is not needed. Execution of tasks by privileged programs, on behalf of unprivileged ones, has traditionally been a source of privilege escalation security 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 6DISADPMS TargetRed Hat 62367CCI-000382The "oddjobd" service exists to provide an interface and access control mechanism through which specified privileged tasks can run tasks for unprivileged client applications. Communication with "oddjobd" is through the system message bus. The "oddjobd" service can be disabled with the following commands:
-
-# chkconfig oddjobd off
-# service oddjobd stopTo check that the "oddjobd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "oddjobd" --list
-
-Output should indicate the "oddjobd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "oddjobd" --list
-"oddjobd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "oddjobd" is disabled through current runtime configuration:
-
-# service oddjobd status
-
-If the service is disabled the command will return the following output:
-
-oddjobd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000344The system default umask in /etc/profile must be 077.<VulnDiscussion>The umask value influences the permissions assigned to files when they are created. A misconfigured umask value could result in files with excessive permissions that can be read and/or written to 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 6DISADPMS TargetRed Hat 62367CCI-000366To ensure the default umask controlled by "/etc/profile" is set properly, add or correct the "umask" setting in "/etc/profile" to read as follows:
-
-umask 077Verify the "umask" setting is configured correctly in the "/etc/profile" file by running the following command:
-
-# grep "umask" /etc/profile
-
-All output must show the value of "umask" set to 077, as shown in the below:
-
-# grep "umask" /etc/profile
-umask 077
-
-
-If the above command returns no output, or if the umask is configured incorrectly, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000267The qpidd service must not be running.<VulnDiscussion>The qpidd service is automatically installed when the "base" package selection is selected during installation. The qpidd service listens for network connections which increases the attack surface of the system. If the system is not intended to receive AMQP traffic then the "qpidd" service is not needed and should be disabled or removed.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The "qpidd" service provides high speed, secure, guaranteed delivery services. It is an implementation of the Advanced Message Queuing Protocol. By default the qpidd service will bind to port 5672 and listen for connection attempts. The "qpidd" service can be disabled with the following commands:
-
-# chkconfig qpidd off
-# service qpidd stopTo check that the "qpidd" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "qpidd" --list
-
-Output should indicate the "qpidd" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "qpidd" --list
-"qpidd" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "qpidd" is disabled through current runtime configuration:
-
-# service qpidd status
-
-If the service is disabled the command will return the following output:
-
-qpidd is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000343The system default umask for the csh shell must be 077.<VulnDiscussion>The umask value influences the permissions assigned to files when they are created. A misconfigured umask value could result in files with excessive permissions that can be read and/or written to 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 6DISADPMS TargetRed Hat 62367CCI-000366To ensure the default umask for users of the C shell is set properly, add or correct the "umask" setting in "/etc/csh.cshrc" to read as follows:
-
-umask 077Verify the "umask" setting is configured correctly in the "/etc/csh.cshrc" file by running the following command:
-
-# grep "umask" /etc/csh.cshrc
-
-All output must show the value of "umask" set to 077, as shown in the below:
-
-# grep "umask" /etc/csh.cshrc
-umask 077
-
-
-If the above command returns no output, or if the umask is configured incorrectly, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000268The rdisc service must not be running.<VulnDiscussion>General-purpose systems typically have their network and routing information configured statically by a system administrator. Workstations or some special-purpose systems often use DHCP (instead of IRDP) to retrieve dynamic network configuration 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 6DISADPMS TargetRed Hat 62367CCI-000382The "rdisc" service implements the client side of the ICMP Internet Router Discovery Protocol (IRDP), which allows discovery of routers on the local subnet. If a router is discovered then the local routing table is updated with a corresponding default route. By default this daemon is disabled. The "rdisc" service can be disabled with the following commands:
-
-# chkconfig rdisc off
-# service rdisc stopTo check that the "rdisc" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "rdisc" --list
-
-Output should indicate the "rdisc" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "rdisc" --list
-"rdisc" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "rdisc" is disabled through current runtime configuration:
-
-# service rdisc status
-
-If the service is disabled the command will return the following output:
-
-rdisc is stopped
-
-
-If the service is running, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000342The system default umask for the bash shell must be 077.<VulnDiscussion>The umask value influences the permissions assigned to files when they are created. A misconfigured umask value could result in files with excessive permissions that can be read and/or written to 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 6DISADPMS TargetRed Hat 62367CCI-000366To ensure the default umask for users of the Bash shell is set properly, add or correct the "umask" setting in "/etc/bashrc" to read as follows:
-
-umask 077Verify the "umask" setting is configured correctly in the "/etc/bashrc" file by running the following command:
-
-# grep "umask" /etc/bashrc
-
-All output must show the value of "umask" set to 077, as shown below:
-
-# grep "umask" /etc/bashrc
-umask 077
-umask 077
-
-
-If the above command returns no output, or if the umask is configured incorrectly, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000269Remote file systems must be mounted with the nodev option.<VulnDiscussion>Legitimate device files should only exist in the /dev directory. NFS mounts should not present device files to 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 6DISADPMS TargetRed Hat 62367CCI-000366Add the "nodev" option to the fourth column of "/etc/fstab" for the line which controls mounting of any NFS mounts.To verify the "nodev" option is configured for all NFS mounts, run the following command:
-
-$ mount | grep "nfs "
-
-All NFS mounts should show the "nodev" setting in parentheses, along with other mount options.
-If the setting does not show, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000341The snmpd service must not use a default password.<VulnDiscussion>Presence of the default SNMP password enables querying of different system aspects and could result in unauthorized knowledge of 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 6DISADPMS TargetRed Hat 62367CCI-000366Edit "/etc/snmp/snmpd.conf", remove default community string "public". Upon doing that, restart the SNMP service:
-
-# service snmpd restartTo ensure the default password is not set, run the following command:
-
-# grep -v "^#" /etc/snmp/snmpd.conf| grep public
-
-There should be no output.
-If there is output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000270Remote file systems must be mounted with the nosuid option.<VulnDiscussion>NFS mounts should not present suid binaries to users. Only vendor-supplied suid executables should be installed to their default location on the local filesystem.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Add the "nosuid" option to the fourth column of "/etc/fstab" for the line which controls mounting of any NFS mounts.To verify the "nosuid" option is configured for all NFS mounts, run the following command:
-
-$ mount | grep nfs
-
-All NFS mounts should show the "nosuid" setting in parentheses, along with other mount options.
-If the setting does not show, this is a finding.SRG-OS-000035<GroupDescription></GroupDescription>RHEL-06-000271The noexec option must be added to removable media partitions.<VulnDiscussion>Allowing users to execute binaries from removable media such as USB keys exposes the system to potential 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 6DISADPMS TargetRed Hat 62367CCI-000087The "noexec" mount option prevents the direct execution of binaries on the mounted filesystem. Users should not be allowed to execute binaries that exist on partitions mounted from removable media (such as a USB key). The "noexec" option prevents code from being executed directly from the media itself, and may therefore provide a line of defense against certain types of worms or malicious code. Add the "noexec" option to the fourth column of "/etc/fstab" for the line which controls mounting of any removable media partitions.To verify that binaries cannot be directly executed from removable media, run the following command:
-
-# grep noexec /etc/fstab
-
-The output should show "noexec" in use.
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000272The system must use SMB client signing for connecting to samba servers using smbclient.<VulnDiscussion>Packet signing can prevent man-in-the-middle attacks which modify SMB packets in transit.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To require samba clients running "smbclient" to use packet signing, add the following to the "[global]" section of the Samba configuration file in "/etc/samba/smb.conf":
-
-client signing = mandatory
-
-Requiring samba clients such as "smbclient" to use packet signing ensures they can only communicate with servers that support packet signing.To verify that Samba clients running smbclient must use packet signing, run the following command:
-
-# grep signing /etc/samba/smb.conf
-
-The output should show:
-
-client signing = mandatory
-
-
-If it is not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000273The system must use SMB client signing for connecting to samba servers using mount.cifs.<VulnDiscussion>Packet signing can prevent man-in-the-middle attacks which modify SMB packets in transit.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Require packet signing of clients who mount Samba shares using the "mount.cifs" program (e.g., those who specify shares in "/etc/fstab"). To do so, ensure signing options (either "sec=krb5i" or "sec=ntlmv2i") are used.
-
-See the "mount.cifs(8)" man page for more information. A Samba client should only communicate with servers who can support SMB packet signing.If Samba is not in use, this is not applicable.
-
-To verify that Samba clients using mount.cifs must use packet signing, run the following command:
-
-# grep sec /etc/fstab /etc/mtab
-
-The output should show either "krb5i" or "ntlmv2i" in use.
-If it does not, this is a finding.SRG-OS-000077<GroupDescription></GroupDescription>RHEL-06-000274The system must prohibit the reuse of passwords within five iterations.<VulnDiscussion>Preventing reuse of previous passwords helps ensure that a compromised password is not reused by a 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 6DISADPMS TargetRed Hat 62367CCI-000200Do not allow users to reuse recent passwords. This can be accomplished by using the "remember" option for the "pam_pwhistory" PAM module. In the file "/etc/pam.d/system-auth", append "remember=5" to the line which refers to the "pam_pwhistory.so" module, as shown:
-
-password sufficient pam_pwhistory.so [existing_options] remember=5
-
-The DoD requirement is five passwords. To verify the password reuse setting is compliant, run the following command:
-
-# grep remember /etc/pam.d/system-auth
-
-The output must be a line beginning with "password sufficient pam_pwhistory.so" and ending with "remember=5".
-
-If the line is commented out, the line does not contain the specified elements, or the value for "remember" is less than 5, this is a finding.SRG-OS-000131<GroupDescription></GroupDescription>RHEL-06-000275The operating system must employ cryptographic mechanisms to protect information in storage.<VulnDiscussion>The risk of a system's physical compromise, particularly mobile systems such as laptops, places its data at risk of compromise. Encrypting this data mitigates the risk of its loss if the system is 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 6DISADPMS TargetRed Hat 62367CCI-001019Red Hat Enterprise Linux 6 natively supports partition encryption through the Linux Unified Key Setup-on-disk-format (LUKS) technology. The easiest way to encrypt a partition is during installation time.
-
-For manual installations, select the "Encrypt" checkbox during partition creation to encrypt the partition. When this option is selected the system will prompt for a passphrase to use in decrypting the partition. The passphrase will subsequently need to be entered manually every time the system boots.
-
-For automated/unattended installations, it is possible to use Kickstart by adding the "--encrypted" and "--passphrase=" options to the definition of each partition to be encrypted. For example, the following line would encrypt the root partition:
-
-part / --fstype=ext3 --size=100 --onpart=hda1 --encrypted --passphrase=[PASSPHRASE]
-
-Any [PASSPHRASE] is stored in the Kickstart in plaintext, and the Kickstart must then be protected accordingly. Omitting the "--passphrase=" option from the partition definition will cause the installer to pause and interactively ask for the passphrase during installation.
-
-Detailed information on encrypting partitions using LUKS can be found on the Red Hat Documentation web site:
-
-https://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-LUKS_Disk_Encryption.htmlDetermine if encryption must be used to protect data on the system.
-If encryption must be used and is not employed, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000340The snmpd service must use only SNMP protocol version 3 or newer.<VulnDiscussion>Earlier versions of SNMP are considered insecure, as they potentially allow unauthorized access to detailed system management 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 6DISADPMS TargetRed Hat 62367CCI-000366Edit "/etc/snmp/snmpd.conf", removing any references to "v1", "v2c", or "com2sec". Upon doing that, restart the SNMP service:
-
-# service snmpd restartTo ensure only SNMPv3 or newer is used, run the following command:
-
-# grep 'v1\|v2c\|com2sec' /etc/snmp/snmpd.conf | grep -v '^#'
-
-There should be no output.
-If there is output, this is a finding.SRG-OS-000185<GroupDescription></GroupDescription>RHEL-06-000276The operating system must protect the confidentiality and integrity of data at rest. <VulnDiscussion>The risk of a system's physical compromise, particularly mobile systems such as laptops, places its data at risk of compromise. Encrypting this data mitigates the risk of its loss if the system is 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 6DISADPMS TargetRed Hat 62367CCI-001199Red Hat Enterprise Linux 6 natively supports partition encryption through the Linux Unified Key Setup-on-disk-format (LUKS) technology. The easiest way to encrypt a partition is during installation time.
-
-For manual installations, select the "Encrypt" checkbox during partition creation to encrypt the partition. When this option is selected the system will prompt for a passphrase to use in decrypting the partition. The passphrase will subsequently need to be entered manually every time the system boots.
-
-For automated/unattended installations, it is possible to use Kickstart by adding the "--encrypted" and "--passphrase=" options to the definition of each partition to be encrypted. For example, the following line would encrypt the root partition:
-
-part / --fstype=ext3 --size=100 --onpart=hda1 --encrypted --passphrase=[PASSPHRASE]
-
-Any [PASSPHRASE] is stored in the Kickstart in plaintext, and the Kickstart must then be protected accordingly. Omitting the "--passphrase=" option from the partition definition will cause the installer to pause and interactively ask for the passphrase during installation.
-
-Detailed information on encrypting partitions using LUKS can be found on the Red Hat Documentation web site:
-
-https://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-LUKS_Disk_Encryption.htmlDetermine if encryption must be used to protect data on the system.
-If encryption must be used and is not employed, this is a finding.SRG-OS-000230<GroupDescription></GroupDescription>RHEL-06-000277The operating system must employ cryptographic mechanisms to prevent unauthorized disclosure of data at rest unless otherwise protected by alternative physical measures.<VulnDiscussion>The risk of a system's physical compromise, particularly mobile systems such as laptops, places its data at risk of compromise. Encrypting this data mitigates the risk of its loss if the system is 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 6DISADPMS TargetRed Hat 62367CCI-001200Red Hat Enterprise Linux 6 natively supports partition encryption through the Linux Unified Key Setup-on-disk-format (LUKS) technology. The easiest way to encrypt a partition is during installation time.
-
-For manual installations, select the "Encrypt" checkbox during partition creation to encrypt the partition. When this option is selected the system will prompt for a passphrase to use in decrypting the partition. The passphrase will subsequently need to be entered manually every time the system boots.
-
-For automated/unattended installations, it is possible to use Kickstart by adding the "--encrypted" and "--passphrase=" options to the definition of each partition to be encrypted. For example, the following line would encrypt the root partition:
-
-part / --fstype=ext3 --size=100 --onpart=hda1 --encrypted --passphrase=[PASSPHRASE]
-
-Any [PASSPHRASE] is stored in the Kickstart in plaintext, and the Kickstart must then be protected accordingly. Omitting the "--passphrase=" option from the partition definition will cause the installer to pause and interactively ask for the passphrase during installation.
-
-Detailed information on encrypting partitions using LUKS can be found on the Red Hat Documentation web site:
-
-https://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-LUKS_Disk_Encryption.htmlDetermine if encryption must be used to protect data on the system.
-If encryption must be used and is not employed, this is a finding.SRG-OS-000256<GroupDescription></GroupDescription>RHEL-06-000278The system package management tool must verify permissions on all files and directories associated with the audit package.<VulnDiscussion>Permissions on audit binaries and configuration files that are too generous could allow an unauthorized user to gain privileges that they should not have. The permissions set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001493The RPM package management system can restore file access permissions of the audit package files and directories. The following command will update audit files with permissions different from what is expected by the RPM database:
-
-# rpm --setperms auditThe following command will list which audit files on the system have permissions different from what is expected by the RPM database:
-
-# rpm -V audit | grep '^.M'
-
-If there is any output, for each file or directory found, compare the RPM-expected permissions with the permissions on the file or directory:
-
-# rpm -q --queryformat "[%{FILENAMES} %{FILEMODES:perms}\n]" audit | grep [filename]
-# ls -lL [filename]
-
-If the existing permissions are more permissive than those expected by RPM, this is a finding.SRG-OS-000257<GroupDescription></GroupDescription>RHEL-06-000279The system package management tool must verify ownership on all files and directories associated with the audit package.<VulnDiscussion>Ownership of audit binaries and configuration files that is incorrect could allow an unauthorized user to gain privileges that they should not have. The ownership set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001494The RPM package management system can restore file ownership of the audit package files and directories. The following command will update audit files with ownership different from what is expected by the RPM database:
-
-# rpm --setugids auditThe following command will list which audit files on the system have ownership different from what is expected by the RPM database:
-
-# rpm -V audit | grep '^.....U'
-
-
-If there is output, this is a finding.SRG-OS-000258<GroupDescription></GroupDescription>RHEL-06-000280The system package management tool must verify group-ownership on all files and directories associated with the audit package.<VulnDiscussion>Group-ownership of audit binaries and configuration files that is incorrect could allow an unauthorized user to gain privileges that they should not have. The group-ownership set by the vendor should be maintained. Any deviations from this baseline should be investigated.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001495The RPM package management system can restore file group-ownership of the audit package files and directories. The following command will update audit files with group-ownership different from what is expected by the RPM database:
-
-# rpm --setugids auditThe following command will list which audit files on the system have group-ownership different from what is expected by the RPM database:
-
-# rpm -V audit | grep '^......G'
-
-
-If there is output, this is a finding.SRG-OS-000270<GroupDescription></GroupDescription>RHEL-06-000284The system must use and update a DoD-approved virus scan program.<VulnDiscussion>Virus scanning software can be used to detect if a system has been compromised by computer viruses, as well as to limit their spread to other 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 6DISADPMS TargetRed Hat 62367CCI-001668Install virus scanning software, which uses signatures to search for the presence of viruses on the filesystem.
-
-The McAfee VirusScan Enterprise for Linux virus scanning tool is provided for DoD systems. Ensure virus definition files are no older than 7 days, or their last release.
-
-Configure the virus scanning software to perform scans dynamically on all accessed files. If this is not possible, configure the system to scan all altered files on the system on a daily basis. If the system processes inbound SMTP mail, configure the virus scanner to scan all received mail. Inspect the system for a cron job or system service which executes a virus scanning tool regularly.
-To verify the McAfee VSEL system service is operational, run the following command:
-
-# /etc/init.d/nails status
-
-To check on the age of uvscan virus definition files, run the following command:
-
-# cd /opt/NAI/LinuxShield/engine/dat
-# ls -la avvscan.dat avvnames.dat avvclean.dat
-
-If virus scanning software does not run continuously, or at least daily, or has signatures that are out of date, this is a finding. SRG-OS-000196<GroupDescription></GroupDescription>RHEL-06-000285The system must have a host-based intrusion detection tool installed.<VulnDiscussion>Adding host-based intrusion detection 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 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 6DISADPMS TargetRed Hat 62367CCI-001263The base Red Hat platform already includes a sophisticated auditing system that can detect intruder activity, as well as SELinux, which provides host-based intrusion prevention capabilities by confining privileged programs and user sessions which may become compromised.
-
-In DoD environments, supplemental intrusion detection tools, such as, the McAfee Host-based Security System, are available to integrate with existing infrastructure. When these supplemental tools interfere with the proper functioning of SELinux, SELinux takes precedence. Inspect the system to determine if intrusion detection software has been installed. Verify the intrusion detection software is active.
-If no host-based intrusion detection tools are installed, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000286The x86 Ctrl-Alt-Delete key sequence must be disabled.<VulnDiscussion>A locally logged-in user who presses Ctrl-Alt-Delete, when at the console, can reboot the system. If accidentally pressed, as could happen in the case of 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 6DISADPMS TargetRed Hat 62367CCI-000366By default, the system includes the following line in "/etc/init/control-alt-delete.conf" to reboot the system when the Ctrl-Alt-Delete key sequence is pressed:
-
-exec /sbin/shutdown -r now "Ctrl-Alt-Delete pressed"
-
-
-To configure the system to log a message instead of rebooting the system, add the following line to "/etc/init/control-alt-delete.override" to read as follows:
-
-exec /usr/bin/logger -p security.info "Ctrl-Alt-Delete pressed"To ensure the system is configured to log a message instead of rebooting the system when Ctrl-Alt-Delete is pressed, ensure the following line is in "/etc/init/control-alt-delete.override":
-
-exec /usr/bin/logger -p security.info "Ctrl-Alt-Delete pressed"
-
-If the system is not configured to block the shutdown command when Ctrl-Alt-Delete is pressed, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000287The postfix service must be enabled for mail delivery.<VulnDiscussion>Local mail delivery is essential to some system maintenance and notification tasks.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The Postfix mail transfer agent is used for local mail delivery within the system. The default configuration only listens for connections to the default SMTP port (port 25) on the loopback interface (127.0.0.1). It is recommended to leave this service enabled for local mail delivery. The "postfix" service can be enabled with the following command:
-
-# chkconfig postfix on
-# service postfix startRun the following command to determine the current status of the "postfix" service:
-
-# service postfix status
-
-If the service is enabled, it should return the following:
-
-postfix is running...
-
-If the service is not enabled, this is a finding.SRG-OS-000202<GroupDescription></GroupDescription>RHEL-06-000306The operating system must detect unauthorized changes to software and information. <VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-001297AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000288The sendmail package must be removed.<VulnDiscussion>The sendmail software was not developed with security in mind and its design prevents it from being effectively contained by SELinux. Postfix should be used instead.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Sendmail is not the default mail transfer agent and is not installed by default. The "sendmail" package can be removed with the following command:
-
-# yum erase sendmailRun the following command to determine if the "sendmail" package is installed:
-
-# rpm -q sendmail
-
-
-If the package is installed, this is a finding.SRG-OS-000096<GroupDescription></GroupDescription>RHEL-06-000289The netconsole service must be disabled unless required.<VulnDiscussion>The "netconsole" service is not necessary unless there is a need to debug kernel panics, which is not common.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000382The "netconsole" service is responsible for loading the netconsole kernel module, which logs kernel printk messages over UDP to a syslog server. This allows debugging of problems where disk logging fails and serial consoles are impractical. The "netconsole" service can be disabled with the following commands:
-
-# chkconfig netconsole off
-# service netconsole stopTo check that the "netconsole" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "netconsole" --list
-
-Output should indicate the "netconsole" service has either not been installed, or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "netconsole" --list
-"netconsole" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-Run the following command to verify "netconsole" is disabled through current runtime configuration:
-
-# service netconsole status
-
-If the service is disabled the command will return the following output:
-
-netconsole is stopped
-
-
-If the service is running, this is a finding.SRG-OS-000265<GroupDescription></GroupDescription>RHEL-06-000307The operating system must ensure unauthorized, security-relevant configuration changes detected are tracked.<VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-001589AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output, this is a finding.SRG-OS-000248<GroupDescription></GroupDescription>RHEL-06-000290X Windows must not be enabled unless required.<VulnDiscussion>Unnecessary services should be disabled to decrease the attack surface of 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 6DISADPMS TargetRed Hat 62367CCI-001436Setting the system's runlevel to 3 will prevent automatic startup of the X server. To do so, ensure the following line in "/etc/inittab" features a "3" as shown:
-
-id:3:initdefault:To verify the default runlevel is 3, run the following command:
-
-# grep initdefault /etc/inittab
-
-The output should show the following:
-
-id:3:initdefault:
-
-
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000308Process core dumps must be disabled unless needed.<VulnDiscussion>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 6DISADPMS TargetRed Hat 62367CCI-000366To disable core dumps for all users, add the following line to "/etc/security/limits.conf":
-
-* hard core 0To verify that core dumps are disabled for all users, run the following command:
-
-$ grep core /etc/security/limits.conf /etc/security/limits.d/*.conf
-
-The output should be:
-
-* hard core 0
-
-If it is not, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000291The xorg-x11-server-common (X Windows) package must not be installed, unless required.<VulnDiscussion>Unnecessary packages should not be installed to decrease the attack surface of 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 6DISADPMS TargetRed Hat 62367CCI-000366Removing all packages which constitute the X Window System ensures users or malicious software cannot start X. To do so, run the following command:
-
-# yum groupremove "X Window System"To ensure the X Windows package group is removed, run the following command:
-
-$ rpm -qi xorg-x11-server-common
-
-The output should be:
-
-package xorg-x11-server-common is not installed
-
-
-If it is not, this is a finding.SRG-OS-000104<GroupDescription></GroupDescription>RHEL-06-000309The NFS server must not have the insecure file locking option enabled.<VulnDiscussion>Allowing insecure file locking could allow for sensitive data to be viewed or edited by an unauthorized 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 6DISADPMS TargetRed Hat 62367CCI-000764By default the NFS server requires secure file-lock requests, which require credentials from the client in order to lock a file. Most NFS clients send credentials with file lock requests, however, there are a few clients that do not send credentials when requesting a file-lock, allowing the client to only be able to lock world-readable files. To get around this, the "insecure_locks" option can be used so these clients can access the desired export. This poses a security risk by potentially allowing the client access to data for which it does not have authorization. Remove any instances of the "insecure_locks" option from the file "/etc/exports".To verify insecure file locking has been disabled, run the following command:
-
-# grep insecure_locks /etc/exports
-
-
-If there is output, this is a finding.SRG-OS-000048<GroupDescription></GroupDescription>RHEL-06-000311The audit system must provide a warning when allocated audit record storage volume reaches a documented percentage of maximum audit record storage capacity.<VulnDiscussion>Notifying administrators of an impending disk space problem may allow them to take corrective action prior to any disruption.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000143The "auditd" service can be configured to take an action when disk space starts to run low. Edit the file "/etc/audit/auditd.conf". Modify the following line, substituting [num_megabytes] appropriately:
-
-space_left = [num_megabytes]
-
-The "num_megabytes" value should be set to a fraction of the total audit storage capacity available that will allow a system administrator to be notified with enough time to respond to the situation causing the capacity issues. This value must also be documented locally.Inspect "/etc/audit/auditd.conf" and locate the following line to determine whether the system is configured to email the administrator when disk space is starting to run low:
-
-# grep space_left /etc/audit/auditd.conf
-
-space_left = [num_megabytes]
-
-
-If the "num_megabytes" value does not correspond to a documented value for remaining audit partition capacity or if there is no locally documented value for remaining audit partition capacity, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000292The DHCP client must be disabled if not needed.<VulnDiscussion>DHCP relies on trusting the local network. If the local network is not trusted, then it should not be used. However, the automatic configuration provided by DHCP is commonly used and the alternative, manual configuration, presents an unacceptable burden in many circumstances.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366For each interface [IFACE] on the system (e.g. eth0), edit "/etc/sysconfig/network-scripts/ifcfg-[IFACE]" and make the following changes.
-
-Correct the BOOTPROTO line to read:
-
-BOOTPROTO=none
-
-
-Add or correct the following lines, substituting the appropriate values based on your site's addressing scheme:
-
-NETMASK=[local LAN netmask]
-IPADDR=[assigned IP address]
-GATEWAY=[local LAN default gateway]To verify that DHCP is not being used, examine the following file for each interface.
-
-# /etc/sysconfig/network-scripts/ifcfg-[IFACE]
-
-If there is any network interface without a associated "ifcfg" file, this is a finding.
-
-Look for the following:
-
-BOOTPROTO=none
-
-Also verify the following, substituting the appropriate values based on your site's addressing scheme:
-
-NETMASK=[local LAN netmask]
-IPADDR=[assigned IP address]
-GATEWAY=[local LAN default gateway]
-
-
-If it does not, this is a finding.SRG-OS-000046<GroupDescription></GroupDescription>RHEL-06-000313The audit system must identify staff members to receive notifications of audit log storage volume capacity issues.<VulnDiscussion>Email sent to the root account is typically aliased to the administrators of the system, who can take appropriate action.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000139The "auditd" service can be configured to send email to a designated account in certain situations. Add or correct the following line in "/etc/audit/auditd.conf" to ensure that administrators are notified via email for those situations:
-
-action_mail_acct = rootInspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to send email to an account when it needs to notify an administrator:
-
-action_mail_acct = root
-
-
-If auditd is not configured to send emails per identified actions, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000294All GIDs referenced in /etc/passwd must be defined in /etc/group<VulnDiscussion>Inconsistency in GIDs between /etc/passwd and /etc/group could lead to a user having unintended rights.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Add a group to the system for each GID referenced without a corresponding group.To ensure all GIDs referenced in /etc/passwd are defined in /etc/group, run the following command:
-
-# pwck -r | grep 'no group'
-
-There should be no output.
-If there is output, this is a finding.SRG-OS-000034<GroupDescription></GroupDescription>RHEL-06-000315The Bluetooth kernel module must be disabled.<VulnDiscussion>If Bluetooth functionality must be disabled, preventing the kernel from loading the kernel module provides an additional safeguard against its activation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000085The kernel's module loading system can be configured to prevent loading of the Bluetooth module. Add the following to the appropriate "/etc/modprobe.d" configuration file to prevent the loading of the Bluetooth module:
-
-install net-pf-31 /bin/true
-install bluetooth /bin/trueIf the system is configured to prevent the loading of the "bluetooth" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r bluetooth /etc/modprobe.conf /etc/modprobe.d
-
-If the system is configured to prevent the loading of the "net-pf-31" kernel module, it will contain lines inside any file in "/etc/modprobe.d" or the deprecated"/etc/modprobe.conf". These lines instruct the module loading system to run another program (such as "/bin/true") upon a module "install" event. Run the following command to search for such lines in all files in "/etc/modprobe.d" and the deprecated "/etc/modprobe.conf":
-
-$ grep -r net-pf-31 /etc/modprobe.conf /etc/modprobe.d
-
-If no line is returned, this is a finding.SRG-OS-000121<GroupDescription></GroupDescription>RHEL-06-000296All accounts on the system must have unique user or account names<VulnDiscussion>Unique usernames allow for accountability 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 6DISADPMS TargetRed Hat 62367CCI-000804Change usernames, or delete accounts, so each has a unique name.Run the following command to check for duplicate account names:
-
-# pwck -rq
-
-If there are no duplicate names, no line will be returned.
-If a line is returned, this is a finding.SRG-OS-000027<GroupDescription></GroupDescription>RHEL-06-000319The system must limit users to 10 simultaneous system logins, or a site-defined number, in accordance with operational requirements.<VulnDiscussion>Limiting simultaneous user logins can insulate the system from denial of service problems caused by excessive logins. Automated login processes operating improperly or maliciously may result in an exceptional number of simultaneous login sessions.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000054Limiting the number of allowed users and sessions per user can limit risks related to denial of service attacks. This addresses concurrent sessions for a single account and does not address concurrent sessions by a single user via multiple accounts. To set the number of concurrent sessions per user add the following line in "/etc/security/limits.conf":
-
-* hard maxlogins 10
-
-A documented site-defined number may be substituted for 10 in the above.Run the following command to ensure the "maxlogins" value is configured for all users on the system:
-
-$ grep "maxlogins" /etc/security/limits.conf /etc/security/limits.d/*.conf
-
-You should receive output similar to the following:
-
-* hard maxlogins 10
-
-If it is not similar, this is a finding. SRG-OS-000002<GroupDescription></GroupDescription>RHEL-06-000297Temporary accounts must be provisioned with an expiration date.<VulnDiscussion>When temporary accounts are created, there is a risk they may remain in place and active after the need for them no longer exists. Account expiration greatly reduces the risk of accounts being misused or hijacked.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000016In the event temporary accounts are required, configure the system to terminate them after a documented time period. For every temporary account, run the following command to set an expiration date on it, substituting "[USER]" and "[YYYY-MM-DD]" appropriately:
-
-# chage -E [YYYY-MM-DD] [USER]
-
-"[YYYY-MM-DD]" indicates the documented expiration date for the account.For every temporary account, run the following command to obtain its account aging and expiration information:
-
-# chage -l [USER]
-
-Verify each of these accounts has an expiration date set as documented.
-If any temporary accounts have no expiration date set or do not expire within a documented time frame, this is a finding.SRG-OS-000147<GroupDescription></GroupDescription>RHEL-06-000320The systems local firewall must implement a deny-all, allow-by-exception policy for forwarded packets.<VulnDiscussion>In "iptables" the default policy is applied only after all the applicable rules in the table are examined for a match. Setting the default policy to "DROP" implements proper design for a firewall, i.e., any packets which are not explicitly permitted should not be accepted.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001109To set the default policy to DROP (instead of ACCEPT) for the built-in FORWARD chain which processes packets that will be forwarded from one interface to another, add or correct the following line in "/etc/sysconfig/iptables":
-
-:FORWARD DROP [0:0]Run the following command to ensure the default "FORWARD" policy is "DROP":
-
-grep ":FORWARD" /etc/sysconfig/iptables
-
-The output must be the following:
-
-# grep ":FORWARD" /etc/sysconfig/iptables
-:FORWARD DROP [0:0]
-
-If it is not, this is a finding.SRG-OS-000160<GroupDescription></GroupDescription>RHEL-06-000321The system must provide VPN connectivity for communications over untrusted networks.<VulnDiscussion>Providing the ability for remote users or systems to initiate a secure VPN connection protects information when it is transmitted over a wide area 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 6DISADPMS TargetRed Hat 62367CCI-001130The Openswan package provides an implementation of IPsec and IKE, which permits the creation of secure tunnels over untrusted networks. The "openswan" package can be installed with the following command:
-
-# yum install openswanIf the system does not communicate over untrusted networks, this is not applicable.
-
-Run the following command to determine if the "openswan" package is installed:
-
-# rpm -q openswan
-
-
-If the package is not installed, this is a finding.SRG-OS-000024<GroupDescription></GroupDescription>RHEL-06-000324A login banner must be displayed immediately prior to, or as part of, graphical desktop environment login prompts.<VulnDiscussion>An appropriate warning message reinforces policy awareness during the logon process and facilitates possible legal action against attackers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000050To enable displaying a login warning banner in the GNOME Display Manager's login screen, run the following command:
-
-# gconftool-2 --direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type bool \
---set /apps/gdm/simple-greeter/banner_message_enable true
-
-To display a banner, this setting must be enabled and then banner text must also be set.If the GConf2 package is not installed, this is not applicable.
-
-To ensure a login warning banner is enabled, run the following:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gdm/simple-greeter/banner_message_enable
-
-Search for the "banner_message_enable" schema. If properly configured, the "default" value should be "true".
-If it is not, this is a finding.SRG-OS-000228<GroupDescription></GroupDescription>RHEL-06-000326The Department of Defense (DoD) login banner must be displayed immediately prior to, or as part of, graphical desktop environment login prompts.<VulnDiscussion>An appropriate warning message reinforces policy awareness during the logon process and facilitates possible legal action against attackers.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001384CCI-001385CCI-001386CCI-001387CCI-001388To set the text shown by the GNOME Display Manager in the login screen, run the following command:
-
-# gconftool-2
---direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type string \
---set /apps/gdm/simple-greeter/banner_message_text \
-"[DoD required text]"
-
-Where the DoD required text is either:
-
-"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."
-
-OR:
-
-"I've read & consent to terms in IS user agreem't."
-
-When entering a warning banner that spans several lines, remember to begin and end the string with """. This command writes directly to the file "/etc/gconf/gconf.xml.mandatory/apps/gdm/simple-greeter/%gconf.xml", and this file can later be edited directly if necessary.If the GConf2 package is not installed, this is not applicable.
-
-To ensure login warning banner text is properly set, run the following:
-
-$ gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --get /apps/gdm/simple-greeter/banner_message_text
-
-If properly configured, the proper banner text will appear within this schema.
-
-The DoD required text is either:
-
-"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."
-
-OR:
-
-"I've read & consent to terms in IS user agreem't."
-
-If the DoD required banner text does not appear in the schema, this is a finding.SRG-OS-000123<GroupDescription></GroupDescription>RHEL-06-000298Emergency accounts must be provisioned with an expiration date.
-<VulnDiscussion>When emergency accounts are created, there is a risk they may remain in place and active after the need for them no longer exists. Account expiration greatly reduces the risk of accounts being misused or hijacked.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-001682In the event emergency accounts are required, configure the system to terminate them after a documented time period. For every emergency account, run the following command to set an expiration date on it, substituting "[USER]" and "[YYYY-MM-DD]" appropriately:
-
-# chage -E [YYYY-MM-DD] [USER]
-
-"[YYYY-MM-DD]" indicates the documented expiration date for the account.For every emergency account, run the following command to obtain its account aging and expiration information:
-
-# chage -l [USER]
-
-Verify each of these accounts has an expiration date set as documented.
-If any emergency accounts have no expiration date set or do not expire within a documented time frame, this is a finding.SRG-OS-000034<GroupDescription></GroupDescription>RHEL-06-000331The Bluetooth service must be disabled.<VulnDiscussion>Disabling the "bluetooth" service prevents the system from attempting connections to Bluetooth devices, which entails some security risk. Nevertheless, variation in this risk decision may be expected due to the utility of Bluetooth connectivity and its limited range.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000085The "bluetooth" service can be disabled with the following command:
-
-# chkconfig bluetooth off
-
-
-
-# service bluetooth stopTo check that the "bluetooth" service is disabled in system boot configuration, run the following command:
-
-# chkconfig "bluetooth" --list
-
-Output should indicate the "bluetooth" service has either not been installed or has been disabled at all runlevels, as shown in the example below:
-
-# chkconfig "bluetooth" --list
-"bluetooth" 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
-
-If the service is configured to run, this is a finding.GEN006660<GroupDescription></GroupDescription>RHEL-06-000334Accounts must be locked upon 35 days of inactivity.<VulnDiscussion>Disabling inactive accounts ensures that accounts which may not have been responsibly removed are not available to attackers who may have compromised their 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 6DISADPMS TargetRed Hat 62367CCI-000017To specify the number of days after a password expires (which signifies inactivity) until an account is permanently disabled, add or correct the following lines in "/etc/default/useradd", substituting "[NUM_DAYS]" appropriately:
-
-INACTIVE=[NUM_DAYS]
-
-A value of 35 is recommended. If a password is currently on the verge of expiration, then 35 days remain until the account is automatically disabled. However, if the password will not expire for another 60 days, then 95 days could elapse until the account would be automatically disabled. See the "useradd" man page for more information. Determining the inactivity timeout must be done with careful consideration of the length of a "normal" period of inactivity for users in the particular environment. Setting the timeout too low incurs support costs and also has the potential to impact availability of the system to legitimate users.To verify the "INACTIVE" setting, run the following command:
-
-grep "INACTIVE" /etc/default/useradd
-
-The output should indicate the "INACTIVE" configuration option is set to an appropriate integer as shown in the example below:
-
-# grep "INACTIVE" /etc/default/useradd
-INACTIVE=35
-
-If it does not, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000299The system must require passwords to contain no more than three consecutive repeating characters.<VulnDiscussion>Passwords with excessive repeating characters may be more vulnerable to password-guessing 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 6DISADPMS TargetRed Hat 62367CCI-000366The pam_cracklib module's "maxrepeat" parameter controls requirements for consecutive repeating characters. When set to a positive number, it will reject passwords which contain more than that number of consecutive characters. Add "maxrepeat=3" after pam_cracklib.so to prevent a run of (3 + 1) or more identical characters.
-
-password required pam_cracklib.so maxrepeat=3 To check the maximum value for consecutive repeating characters, run the following command:
-
-$ grep pam_cracklib /etc/pam.d/system-auth
-
-Look for the value of the "maxrepeat" parameter. The DoD requirement is 3.
-If maxrepeat is not found or not set to the required value, this is a finding.SRG-OS-000118<GroupDescription></GroupDescription>RHEL-06-000335The operating system must manage information system identifiers for users and devices by disabling the user identifier after an organization defined time period of inactivity.<VulnDiscussion>Disabling inactive accounts ensures that accounts which may not have been responsibly removed are not available to attackers who may have compromised their 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 6DISADPMS TargetRed Hat 62367CCI-000795To specify the number of days after a password expires (which signifies inactivity) until an account is permanently disabled, add or correct the following lines in "/etc/default/useradd", substituting "[NUM_DAYS]" appropriately:
-
-INACTIVE=[NUM_DAYS]
-
-A value of 35 is recommended. If a password is currently on the verge of expiration, then 35 days remain until the account is automatically disabled. However, if the password will not expire for another 60 days, then 95 days could elapse until the account would be automatically disabled. See the "useradd" man page for more information. Determining the inactivity timeout must be done with careful consideration of the length of a "normal" period of inactivity for users in the particular environment. Setting the timeout too low incurs support costs and also has the potential to impact availability of the system to legitimate users.To verify the "INACTIVE" setting, run the following command:
-
-grep "INACTIVE" /etc/default/useradd
-
-The output should indicate the "INACTIVE" configuration option is set to an appropriate integer as shown in the example below:
-
-# grep "INACTIVE" /etc/default/useradd
-INACTIVE=35
-
-If it does not, this is a finding.SRG-OS-000094<GroupDescription></GroupDescription>RHEL-06-000302A file integrity tool must be used at least weekly to check for unauthorized file changes, particularly the addition of unauthorized system libraries or binaries, or for unauthorized modification to authorized system libraries or binaries.<VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-000374AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output or if aide is not run at least weekly, this is a finding.SRG-OS-000098<GroupDescription></GroupDescription>RHEL-06-000303The operating system must employ automated mechanisms, per organization defined frequency, to detect the addition of unauthorized components/devices into the operating system.<VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-000416AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000336The sticky bit must be set on all public directories.<VulnDiscussion>Failing to set the sticky bit on public directories allows unauthorized users to delete files in the directory structure.
-
-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 - such as /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 6DISADPMS TargetRed Hat 62367CCI-000366When the so-called 'sticky bit' is set on a directory, only the owner of a given file may remove that file from the directory. Without the sticky bit, any user with write access to a directory may remove any file in the directory. Setting the sticky bit prevents users from removing each other's files. In cases where there is no reason for a directory to be world-writable, a better solution is to remove that permission rather than to set the sticky bit. However, if a directory is used by a particular application, consult that application's documentation instead of blindly changing modes.
-To set the sticky bit on a world-writable directory [DIR], run the following command:
-
-# chmod +t [DIR]To find world-writable directories that lack the sticky bit, run the following command for each local partition [PART]:
-
-# find [PART] -xdev -type d -perm -002 \! -perm -1000
-
-
-If any world-writable directories are missing the sticky bit, this is a finding.SRG-OS-000232<GroupDescription></GroupDescription>RHEL-06-000304The operating system must employ automated mechanisms to detect the presence of unauthorized software on organizational information systems and notify designated organizational officials in accordance with the organization defined frequency.<VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-001069AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000337All public directories must be owned by a system account.<VulnDiscussion>Allowing a user account to own a world-writable directory is undesirable because it allows the owner of that directory to remove or replace any files that may be placed in the directory 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 6DISADPMS TargetRed Hat 62367CCI-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 500. Run it once for each local partition [PART]:
-
-# find [PART] -xdev -type d -perm -0002 -uid +499 -print
-
-
-If there is output, this is a finding.SRG-OS-000196<GroupDescription></GroupDescription>RHEL-06-000305The operating system must provide a near real-time alert when any of the organization defined list of compromise or potential compromise indicators occurs. <VulnDiscussion>By default, AIDE does not install itself for periodic execution. Periodically running AIDE may reveal unexpected changes in installed 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 6DISADPMS TargetRed Hat 62367CCI-001263AIDE should be executed on a periodic basis to check for changes. To implement a daily execution of AIDE at 4:05am using cron, add the following line to /etc/crontab:
-
-05 4 * * * root /usr/sbin/aide --check
-
-AIDE can be executed periodically through other means; this is merely one example.To determine that periodic AIDE execution has been scheduled, run the following command:
-
-# grep aide /etc/crontab /etc/cron.*/*
-
-If there is no output, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000338The TFTP daemon must operate in secure mode which provides access only to a single directory on the host file system.<VulnDiscussion>Using the "-s" option causes the TFTP service to only serve files from the given directory. Serving files from an intentionally specified directory reduces the risk of sharing files which should remain private.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366If running the "tftp" service is necessary, it should be configured to change its root directory at startup. To do so, ensure "/etc/xinetd.d/tftp" includes "-s" as a command line argument, as shown in the following example (which is also the default):
-
-server_args = -s /var/lib/tftpbootVerify "tftp" is configured by with the "-s" option by running the following command:
-
-grep "server_args" /etc/xinetd.d/tftp
-
-The output should indicate the "server_args" variable is configured with the "-s" flag, matching the example below:
-
-# grep "server_args" /etc/xinetd.d/tftp
-server_args = -s /var/lib/tftpboot
-
-If it does not, this is a finding.SRG-OS-000037<GroupDescription></GroupDescription>RHEL-06-000339The FTP daemon must be configured for logging or verbose mode.<VulnDiscussion>To trace malicious activity facilitated by the FTP service, it must be configured to ensure that all commands sent to the ftp server are logged using the verbose vsftpd log format. The default vsftpd log file is /var/log/vsftpd.log.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000130Add or correct the following configuration options within the "vsftpd" configuration file, located at "/etc/vsftpd/vsftpd.conf".
-
-xferlog_enable=YES
-xferlog_std_format=NO
-log_ftp_protocol=YESFind if logging is applied to the ftp daemon.
-
-Procedures:
-
-If vsftpd is started by xinetd the following command will indicate the xinetd.d startup file.
-
-# grep vsftpd /etc/xinetd.d/*
-
-
-
-# grep server_args [vsftpd xinetd.d startup file]
-
-This will indicate the vsftpd config file used when starting through xinetd. If the [server_args]line is missing or does not include the vsftpd configuration file, then the default config file (/etc/vsftpd/vsftpd.conf) is used.
-
-# grep xferlog_enable [vsftpd config file]
-
-
-If xferlog_enable is missing, or is not set to yes, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000527The login user list must be disabled.<VulnDiscussion>Leaving the user list enabled is a security risk since it allows anyone with physical access to the system to quickly enumerate known user accounts without logging in.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366In the default graphical environment, users logging directly into the system are greeted with a login screen that displays all known users. This functionality should be disabled.
-
-Run the following command to disable the user list:
-
-$ sudo gconftool-2 --direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---type bool --set /apps/gdm/simple-greeter/disable_user_list trueIf the GConf2 package is not installed, this is not applicable.
-
-To ensure the user list is disabled, run the following command:
-
-$ gconftool-2 --direct \
---config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
---get /apps/gdm/simple-greeter/disable_user_list
-
-The output should be "true". If it is not, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000017The system must use a Linux Security Module at boot time.<VulnDiscussion>Disabling a major host protection feature, such as SELinux, at boot time prevents it from confining system services at boot time. Further, it increases the chances that it will remain off during system operation.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366SELinux can be disabled at boot time by an argument in "/boot/grub/grub.conf". Remove any instances of "selinux=0" from the kernel arguments in that file to prevent SELinux from being disabled at boot. Inspect "/boot/grub/grub.conf" for any instances of "selinux=0" in the kernel boot arguments. Presence of "selinux=0" indicates that SELinux is disabled at boot time. If SELinux is disabled at boot time, this is a finding.SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000020The system must use a Linux Security Module configured to enforce limits on system services.<VulnDiscussion>Setting the SELinux state to enforcing ensures SELinux is able to confine potentially compromised processes to the security policy, which is designed to prevent them from causing damage to the system or further elevating their 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 6DISADPMS TargetRed Hat 62367CCI-000366The SELinux state should be set to "enforcing" at system boot time. In the file "/etc/selinux/config", add or correct the following line to configure the system to boot into enforcing mode:
-
-SELINUX=enforcingCheck the file "/etc/selinux/config" and ensure the following line appears:
-
-SELINUX=enforcing
-
-If SELINUX is not set to enforcing, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000023The system must use a Linux Security Module configured to limit the privileges of system services.<VulnDiscussion>Setting the SELinux policy to "targeted" or a more specialized policy ensures the system will confine processes that are likely to be targeted for exploitation, such as network or system 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 6DISADPMS TargetRed Hat 62367CCI-000366The SELinux "targeted" policy is appropriate for general-purpose desktops and servers, as well as systems in many other roles. To configure the system to use this policy, add or correct the following line in "/etc/selinux/config":
-
-SELINUXTYPE=targeted
-
-Other policies, such as "mls", provide additional security labeling and greater confinement but are not compatible with many general-purpose use cases. Check the file "/etc/selinux/config" and ensure the following line appears:
-
-SELINUXTYPE=targeted
-
-If it does not, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000025All device files must be monitored by the system Linux Security Module.<VulnDiscussion>If a device file carries the SELinux type "unlabeled_t", then SELinux cannot properly restrict access to the device file. </VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366Device files, which are used for communication with important system resources, should be labeled with proper SELinux types. If any device files carry the SELinux type "unlabeled_t", investigate the cause and correct the file's context. To check for unlabeled device files, run the following command:
-
-# ls -RZ /dev | grep unlabeled_t
-
-It should produce no output in a well-configured system.
-
-If there is output, this is a finding. SRG-OS-000232<GroupDescription></GroupDescription>RHEL-06-000018A file integrity baseline must be created.<VulnDiscussion>For AIDE to be effective, an initial database of "known-good" information about files must be captured and it should be able to be verified against the installed 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 6DISADPMS TargetRed Hat 62367CCI-000366Run the following command to generate a new database:
-
-# /usr/sbin/aide --init
-
-By default, the database will be written to the file "/var/lib/aide/aide.db.new.gz". Storing the database, the configuration file "/etc/aide.conf", and the binary "/usr/sbin/aide" (or hashes of these files), in a secure location (such as on read-only media) provides additional assurance about their integrity. The newly-generated database can be installed as follows:
-
-# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
-
-To initiate a manual check, run the following command:
-
-# /usr/sbin/aide --check
-
-If this check produces any unexpected output, investigate. To find the location of the AIDE database file, run the following command:
-
-# grep DBDIR /etc/aide.conf
-
-Using the defined values of the [DBDIR] and [database] variables, verify the existence of the AIDE database file:
-
-# ls -l [DBDIR]/[database_file_name]
-
-If there is no database file, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000372The operating system, upon successful logon/access, must display to the user the number of unsuccessful logon/access attempts since the last successful logon/access.<VulnDiscussion>Users need to be aware of activity that occurs regarding their account. Providing users with information regarding the number of unsuccessful attempts that were made to login to their account allows the user to determine if any unauthorized activity has occurred and gives them an opportunity to notify administrators. </VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366To configure the system to notify users of last logon/access using "pam_lastlog", add the following line immediately after "session required pam_limits.so":
-
-session required pam_lastlog.so showfailedTo ensure that last logon/access notification is configured correctly, run the following command:
-
-# grep pam_lastlog.so /etc/pam.d/system-auth
-
-The output should show output "showfailed". If that is not the case, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000163The audit system must switch the system to single-user mode when available audit storage volume becomes dangerously low.<VulnDiscussion>Administrators should be made aware of an inability to record audit records. If a separate partition or logical volume of adequate size is used, running low on space for audit records should never occur. </VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-000366The "auditd" service can be configured to take an action when disk space is running low but prior to running out of space completely. Edit the file "/etc/audit/auditd.conf". Add or modify the following line, substituting [ACTION] appropriately:
-
-admin_space_left_action = [ACTION]
-
-Set this value to "single" to cause the system to switch to single-user mode for corrective action. Acceptable values also include "suspend" and "halt". For certain systems, the need for availability outweighs the need to log all actions, and a different setting should be determined. Details regarding all possible values for [ACTION] are described in the "auditd.conf" man page. Inspect "/etc/audit/auditd.conf" and locate the following line to determine if the system is configured to either suspend, switch to single-user mode, or halt when disk space has run low:
-
-admin_space_left_action = single
-
-If the system is not configured to switch to single-user mode, suspend, or halt for corrective action, this is a finding. SRG-OS-999999<GroupDescription></GroupDescription>RHEL-06-000528The noexec option must be added to the /tmp partition.<VulnDiscussion>Allowing users to execute binaries from world-writable directories such as "/tmp" should never be necessary in normal operation and can expose the system to potential 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 6DISADPMS TargetRed Hat 62367CCI-000381The "noexec" mount option can be used to prevent binaries from being executed out of "/tmp". Add the "noexec" option to the fourth column of "/etc/fstab" for the line which controls mounting of "/tmp".To verify that binaries cannot be directly executed from the /tmp directory, run the following command:
-
-$ grep '\s/tmp' /etc/fstab
-
-The resulting output will show whether the /tmp partition has the "noexec" flag set. If the /tmp partition does not have the noexec flag set, this is a finding.SRG-OS-000373<GroupDescription></GroupDescription>RHEL-06-000529The sudo command must require authentication.<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.</VulnDiscussion><FalsePositives></FalsePositives><FalseNegatives></FalseNegatives><Documentable>false</Documentable><Mitigations></Mitigations><SeverityOverrideGuidance></SeverityOverrideGuidance><PotentialImpacts></PotentialImpacts><ThirdPartyTools></ThirdPartyTools><MitigationControl></MitigationControl><Responsibility></Responsibility><IAControls></IAControls>DPMS Target Red Hat 6DISADPMS TargetRed Hat 62367CCI-002038Update the "/etc/sudoers" or other sudo configuration files to remove or comment out lines utilizing the "NOPASSWD" and "!authenticate" options.
-
-# visudo
-# visudo -f [other sudo configuration file]Verify neither the "NOPASSWD" option nor the "!authenticate" option is configured for use in "/etc/sudoers" and associated files. Note that the "#include" and "#includedir" directives may be used to include configuration data from locations other than the defaults enumerated here.
-
-# egrep '^[^#]*NOPASSWD' /etc/sudoers /etc/sudoers.d/*
-# egrep '^[^#]*!authenticate' /etc/sudoers /etc/sudoers.d/*
-
-If the "NOPASSWD" or "!authenticate" options are configured for use in "/etc/sudoers" or associated files, this is a finding.
\ No newline at end of file
diff --git a/doc/metadata/import-existing-notes.py b/doc/metadata/import-existing-notes.py
deleted file mode 100644
index 51b36276..00000000
--- a/doc/metadata/import-existing-notes.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2016, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Import existing developer notes into base YAML format."""
-import os
-
-
-import jinja2
-
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-METADATA_DIR = "{0}/rhel6".format(SCRIPT_DIR)
-NOTES_DIR = "{0}/../source/stig-notes".format(SCRIPT_DIR)
-
-yaml_tmp = """---
-id: {{ note_data['id'] }}
-status: {{ note_data['status'] }}
-tag: {{ note_data['tag'] }}
----
-
-{{ note_data['deployer_notes'] }}
-"""
-
-
-note_files = [x for x in os.listdir(NOTES_DIR) if 'developer' in x]
-for note_file in note_files:
- stig_id = note_file[0:7]
-
- with open("{0}/{1}".format(NOTES_DIR, note_file), 'r') as f:
- content = f.read()
-
- first_line = content.splitlines()[0]
- print(first_line)
- if 'exception' in first_line.lower():
- status = 'exception'
- elif 'opt-in' in first_line.lower():
- status = 'opt-in'
- else:
- status = 'implemented'
-
- note_data = {
- 'id': stig_id,
- 'status': status,
- 'tag': 'misc',
- 'deployer_notes': content
- }
-
- with open("{0}/{1}.rst".format(METADATA_DIR, stig_id), 'w') as f:
- template = jinja2.Template(yaml_tmp)
- f.write(template.render(note_data=note_data))
diff --git a/doc/metadata/rhel6/V-38437.rst b/doc/metadata/rhel6/V-38437.rst
deleted file mode 100644
index d050d210..00000000
--- a/doc/metadata/rhel6/V-38437.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38437
-status: implemented
-tag: services
----
-
-If ``autofs`` is installed, it will be disabled by Ansible tasks. To opt-out
-of this change, adjust the following variable:
-
-.. code-block:: yaml
-
- security_disable_autofs: no
diff --git a/doc/metadata/rhel6/V-38438.rst b/doc/metadata/rhel6/V-38438.rst
deleted file mode 100644
index 17bfefc3..00000000
--- a/doc/metadata/rhel6/V-38438.rst
+++ /dev/null
@@ -1,19 +0,0 @@
----
-id: V-38438
-status: implemented
-tag: boot
----
-
-To opt-out of the change, set the following variable:
-
-.. code-block:: yaml
-
- security_enable_audit_during_boot: no
-
-Deployers may opt-in for the change without automatically updating the active
-``grub.cfg`` file by setting the following Ansible variables:
-
-.. code-block:: yaml
-
- security_enable_audit_during_boot: yes
- security_enable_grub_update: no
diff --git a/doc/metadata/rhel6/V-38439.rst b/doc/metadata/rhel6/V-38439.rst
deleted file mode 100644
index 05dedcf5..00000000
--- a/doc/metadata/rhel6/V-38439.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38439
-status: exception - manual intervention
-tag: auth
----
-
-Although adding centralized authentication and carefully managing user
-accounts is critical for securing any system, that's left up to deployers
-to handle via their internal business processes.
diff --git a/doc/metadata/rhel6/V-38443.rst b/doc/metadata/rhel6/V-38443.rst
deleted file mode 100644
index de21a6f0..00000000
--- a/doc/metadata/rhel6/V-38443.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38443
-status: implemented
-tag: auth
----
-
-The ``/etc/gshadow`` file is owned by root by default on Ubuntu 14.04, Ubuntu
-16.04 and CentOS 7. The security role ensures that the file is owned by root.
diff --git a/doc/metadata/rhel6/V-38444.rst b/doc/metadata/rhel6/V-38444.rst
deleted file mode 100644
index 03c9ad8d..00000000
--- a/doc/metadata/rhel6/V-38444.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38444
-status: exception - manual intervention
-tag: network
----
-
-See V-38551 for additional details. IPv6 configuration and filtering is left
-up to the deployer.
diff --git a/doc/metadata/rhel6/V-38445.rst b/doc/metadata/rhel6/V-38445.rst
deleted file mode 100644
index b29a4a55..00000000
--- a/doc/metadata/rhel6/V-38445.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38445
-status: implemented
-tag: auditd
----
-
-The logs generated by the audit daemon are owned by root in Ubuntu 14.04,
-Ubuntu 16.04 and CentOS 7. The Ansible task for V-38445 ensures that the files
-are owned by the root user.
diff --git a/doc/metadata/rhel6/V-38446.rst b/doc/metadata/rhel6/V-38446.rst
deleted file mode 100644
index 8946e490..00000000
--- a/doc/metadata/rhel6/V-38446.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38446
-status: configuration required
-tag: mail
----
-
-Forwarding root's email to another user is highly recommended so that someone
-can receive emails about errors or security events.
-
-Deployers should set ``security_root_forward_email`` to a valid email address
-of a user or mailing list that should receive critical automated emails from
-the server.
diff --git a/doc/metadata/rhel6/V-38447.rst b/doc/metadata/rhel6/V-38447.rst
deleted file mode 100644
index 1387b811..00000000
--- a/doc/metadata/rhel6/V-38447.rst
+++ /dev/null
@@ -1,24 +0,0 @@
----
-id: V-38447
-status: exception
-tag: package
----
-
-Although Ubuntu provides the ``debsums`` command for checking the contents of
-files installed from packages, it cannot perform a detailed level of checking
-sufficient to meet the STIG requirement. Some packages are not shipped with MD5
-checksums for all files. Deployers are encouraged to use ``debsums -c``
-regularly to check for alterations in as many packages as possible.
-
-Ubuntu does not currently have a capability to check file permissions,
-ownership, or group ownership against the permissions that were originally set
-when the package was installed.
-
-In CentOS, the ``rpm`` command can verify package contents, ownership, group
-ownership, and permissions after the package has been installed. However, many
-configuration files are changed by the security role and this will cause the
-verification to fail.
-
-Deployers should utilize the monitoring capabilities of the ``aide`` package
-(which is installed by other Ansible tasks in this role) to determine which
-configuration files, libraries or binaries may have been changed.
diff --git a/doc/metadata/rhel6/V-38448.rst b/doc/metadata/rhel6/V-38448.rst
deleted file mode 100644
index 1bee5107..00000000
--- a/doc/metadata/rhel6/V-38448.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38448
-status: implemented
-tag: auth
----
-
-Although the ``/etc/gshadow`` file is group-owned by root by default, the
-Ansible tasks will ensure that it is configured that way.
diff --git a/doc/metadata/rhel6/V-38449.rst b/doc/metadata/rhel6/V-38449.rst
deleted file mode 100644
index b8ba84ae..00000000
--- a/doc/metadata/rhel6/V-38449.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38449
-status: implemented
-tag: auth
----
-
-The ``/etc/gshadow`` file's permissions will be changed to ``0000`` to meet
-the requirements of the STIG.
diff --git a/doc/metadata/rhel6/V-38450.rst b/doc/metadata/rhel6/V-38450.rst
deleted file mode 100644
index 375ada87..00000000
--- a/doc/metadata/rhel6/V-38450.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38450
-status: implemented
-tag: auth
----
-
-The ownership of ``/etc/passwd`` will be changed to root.
diff --git a/doc/metadata/rhel6/V-38451.rst b/doc/metadata/rhel6/V-38451.rst
deleted file mode 100644
index 361c674c..00000000
--- a/doc/metadata/rhel6/V-38451.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38451
-status: implemented
-tag: auth
----
-
-The group ownership for ``/etc/passwd`` will be set to root.
diff --git a/doc/metadata/rhel6/V-38452.rst b/doc/metadata/rhel6/V-38452.rst
deleted file mode 100644
index eb82a66e..00000000
--- a/doc/metadata/rhel6/V-38452.rst
+++ /dev/null
@@ -1,24 +0,0 @@
----
-id: V-38452
-status: exception
-tag: package
----
-
-Although Ubuntu provides the ``debsums`` command for checking the contents of
-files installed from packages, it cannot perform a detailed level of checking
-sufficient to meet the STIG requirement. Some packages are not shipped with MD5
-checksums for all files. Deployers are encouraged to use ``debsums -c``
-regularly to check for alterations in as many packages as possible.
-
-Ubuntu does not currently have a capability to check file permissions,
-ownership, or group ownership against the permissions that were originally set
-when the package was installed.
-
-In CentOS, the ``rpm`` command can verify package contents, ownership, group
-ownership, and permissions after the package has been installed. However, many
-configuration files are changed by the security role and this will cause the
-verification to fail.
-
-Deployers should utilize the monitoring capabilities of the ``aide`` package
-(which is installed by other Ansible tasks in this role) to determine which
-configuration files, libraries or binaries may have been changed.
diff --git a/doc/metadata/rhel6/V-38453.rst b/doc/metadata/rhel6/V-38453.rst
deleted file mode 100644
index 9bb227be..00000000
--- a/doc/metadata/rhel6/V-38453.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38453
-status: exception - ubuntu
-tag: package
----
-
-Verifying ownership and permissions of installed packages isn't possible in the
-current version of ``dpkg`` as it is with ``rpm``. This security configuration
-is skipped for Ubuntu.
-
-For CentOS, this check is done as part of V-38637.
diff --git a/doc/metadata/rhel6/V-38454.rst b/doc/metadata/rhel6/V-38454.rst
deleted file mode 100644
index 2a97162a..00000000
--- a/doc/metadata/rhel6/V-38454.rst
+++ /dev/null
@@ -1,24 +0,0 @@
----
-id: V-38454
-status: exception
-tag: package
----
-
-Although Ubuntu provides the ``debsums`` command for checking the contents of
-files installed from packages, it cannot perform a detailed level of checking
-sufficient to meet the STIG requirement. Some packages are not shipped with MD5
-checksums for all files. Deployers are encouraged to use ``debsums -c``
-regularly to check for alterations in as many packages as possible.
-
-Ubuntu does not currently have a capability to check file permissions,
-ownership, or group ownership against the permissions that were originally set
-when the package was installed.
-
-In CentOS, the ``rpm`` command can verify package contents, ownership, group
-ownership, and permissions after the package has been installed. However, many
-configuration files are changed by the security role and this will cause the
-verification to fail.
-
-Deployers should utilize the monitoring capabilities of the ``aide`` package
-(which is installed by other Ansible tasks in this role) to determine which
-configuration files, libraries or binaries may have been changed.
diff --git a/doc/metadata/rhel6/V-38455.rst b/doc/metadata/rhel6/V-38455.rst
deleted file mode 100644
index f690d0f9..00000000
--- a/doc/metadata/rhel6/V-38455.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38455
-status: exception - initial provisioning
-tag: boot
----
-
-Configuring another mount for ``/tmp`` can disrupt a running system and this
-configuration is skipped.
-
-However, deployers are strongly urged to consider creating a separate
-partition and/or LVM logical volume for ``/tmp`` during installation of the OS
-if possible.
diff --git a/doc/metadata/rhel6/V-38456.rst b/doc/metadata/rhel6/V-38456.rst
deleted file mode 100644
index faed78ab..00000000
--- a/doc/metadata/rhel6/V-38456.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38456
-status: exception - initial provisioning
-tag: boot
----
-
-Configuring another mount for ``/var`` can disrupt a running system and this
-configuration is skipped.
-
-However, deployers are strongly urged to consider creating a separate
-partition and/or LVM logical volume for ``/var`` during installation of the OS
-if possible.
diff --git a/doc/metadata/rhel6/V-38457.rst b/doc/metadata/rhel6/V-38457.rst
deleted file mode 100644
index 074ccc7e..00000000
--- a/doc/metadata/rhel6/V-38457.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38457
-status: implemented
-tag: auth
----
-
-The permissions for ``/etc/passwd`` will be set to ``0644``.
diff --git a/doc/metadata/rhel6/V-38458.rst b/doc/metadata/rhel6/V-38458.rst
deleted file mode 100644
index 3d3f7332..00000000
--- a/doc/metadata/rhel6/V-38458.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38458
-status: implemented
-tag: auth
----
-
-The Ansible task will ensure that the ``/etc/group`` file is owned by the root
-user.
diff --git a/doc/metadata/rhel6/V-38459.rst b/doc/metadata/rhel6/V-38459.rst
deleted file mode 100644
index a61ba6ad..00000000
--- a/doc/metadata/rhel6/V-38459.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38459
-status: implemented
-tag: auth
----
-
-The Ansible tasks will ensure that ``/etc/group`` is owned by the ``root``
-user.
diff --git a/doc/metadata/rhel6/V-38460.rst b/doc/metadata/rhel6/V-38460.rst
deleted file mode 100644
index 81eb0313..00000000
--- a/doc/metadata/rhel6/V-38460.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38460
-status: implemented
-tag: nfsd
----
-
-The Ansible tasks will check for ``all_squash`` in ``/etc/exports`` (if it is
-present). If found, a warning message will be printed. No configuration
-changes will be made since neither Ubuntu or openstack-ansible configures
-the NFS server by default.
diff --git a/doc/metadata/rhel6/V-38461.rst b/doc/metadata/rhel6/V-38461.rst
deleted file mode 100644
index b68ef5aa..00000000
--- a/doc/metadata/rhel6/V-38461.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38461
-status: implemented
-tag: auth
----
-
-The Ansible tasks will ensure that the mode of ``/etc/group//` is set to
-``0644``.
diff --git a/doc/metadata/rhel6/V-38462.rst b/doc/metadata/rhel6/V-38462.rst
deleted file mode 100644
index 49b30466..00000000
--- a/doc/metadata/rhel6/V-38462.rst
+++ /dev/null
@@ -1,23 +0,0 @@
----
-id: V-38462
-status: implemented
-tag: package
----
-
-All versions of Ubuntu and CentOS supported by the role verify packages against
-GPG signatures by default.
-
-Deployers can disable GPG verification for all packages in Ubuntu by setting
-the ``AllowUnauthenticated`` configuration option in a file within
-``/etc/apt/apt.conf.d/``. The Ansible tasks will search for this configuration
-option and will stop the playbook execution if the option is set. Note
-that users can pass an argument on the apt command line to bypass the checks as
-well, but that's outside the scope of this check and remediation.
-
-In CentOS, deployers can set ``gpgcheck=0`` within individual yum repository
-files in ``/etc/yum.repos.d/`` to disable GPG signature checking. The Ansible
-tasks will check for this configuration option in those files and stop the
-playbook execution.
-
-Deployers can use ``--skip-tags V-38462`` to omit these tasks when applying the
-security role on systems where GPG verification must be disabled.
diff --git a/doc/metadata/rhel6/V-38463.rst b/doc/metadata/rhel6/V-38463.rst
deleted file mode 100644
index 5dd410a8..00000000
--- a/doc/metadata/rhel6/V-38463.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38463
-status: exception - initial provisioning
-tag: misc
----
-
-Configuring a separate partition for ``/var/log`` is currently left up to the
-deployer. There are security and operational benefits that come from the
-change, but it must be done when the system is initially installed.
-
-Deployers are urged to consider making a separate partition for ``/var/log``
-during OS installation.
diff --git a/doc/metadata/rhel6/V-38464.rst b/doc/metadata/rhel6/V-38464.rst
deleted file mode 100644
index d827640f..00000000
--- a/doc/metadata/rhel6/V-38464.rst
+++ /dev/null
@@ -1,26 +0,0 @@
----
-id: V-38464
-status: implemented
-tag: auditd
----
-
-The default configuration for ``disk_error_action`` is ``SUSPEND``, which
-only suspends audit logging when there is a disk error on the system.
-Suspending audit logging can lead to security problems because the system is no
-longer keeping track of which syscalls were made.
-
-The security role sets the configuration to ``SYSLOG`` so that messages are
-sent to syslog when disk errors occur. There are additional options available,
-like ``EXEC``, ``SINGLE`` or ``HALT``.
-
-To configure a different ``disk_error_action``, set the following Ansible
-variable:
-
-.. code-block:: yaml
-
- security_disk_error_action: SYSLOG
-
-For details on available settings and what they do, run ``man auditd.conf``.
-Some options can cause the host to go offline until the issue is fixed.
-Deployers are urged to **carefully read the auditd documentation** prior to
-changing the ``security_disk_error_action`` setting from the default.
diff --git a/doc/metadata/rhel6/V-38465.rst b/doc/metadata/rhel6/V-38465.rst
deleted file mode 100644
index c1031383..00000000
--- a/doc/metadata/rhel6/V-38465.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38465
-status: exception
-tag: file_perms
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 set library files to have ``0755`` (or
-more restrictive) permissions by default. Deployers are urged to review the
-permissions of libraries regularly to ensure the system has not been altered.
diff --git a/doc/metadata/rhel6/V-38466.rst b/doc/metadata/rhel6/V-38466.rst
deleted file mode 100644
index 87eb69db..00000000
--- a/doc/metadata/rhel6/V-38466.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38466
-status: exception
-tag: file_perms
----
-
-As with V-38465, Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 set the ownership of
-library files to root by default. Deployers are urged to configure monitoring
-for changes to these files.
diff --git a/doc/metadata/rhel6/V-38467.rst b/doc/metadata/rhel6/V-38467.rst
deleted file mode 100644
index 52de7efe..00000000
--- a/doc/metadata/rhel6/V-38467.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38467
-status: exception - initial provisioning
-tag: auditd
----
-
-Storing audit logs on a separate partition is recommended, but this change
-is left up to deployers to configure during the installation of the OS.
diff --git a/doc/metadata/rhel6/V-38468.rst b/doc/metadata/rhel6/V-38468.rst
deleted file mode 100644
index 5f06f25f..00000000
--- a/doc/metadata/rhel6/V-38468.rst
+++ /dev/null
@@ -1,27 +0,0 @@
----
-id: V-38468
-status: implemented
-tag: auditd
----
-
-The default configuration for ``disk_full_action`` is ``SUSPEND``, which only
-suspends audit logging. Suspending audit logging can lead to security problems
-because the system is no longer keeping track of which syscalls were made.
-
-The security role sets the configuration to ``SYSLOG`` so that messages are
-sent to syslog when the disk is full. If syslog messages are being sent to
-remote servers, these log messages should alert an administrator about the disk
-being full. There are additional options available, like ``EXEC``, ``SINGLE``
-or ``HALT``.
-
-To configure a different ``disk_full_action``, set the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_disk_full_action: SYSLOG
-
-For details on available settings and what they do, run ``man auditd.conf``.
-Some options can cause the host to go offline until the issue is fixed.
-Deployers are urged to **carefully read the auditd documentation** prior to
-changing the ``disk_full_action`` setting from the default.
diff --git a/doc/metadata/rhel6/V-38469.rst b/doc/metadata/rhel6/V-38469.rst
deleted file mode 100644
index 46d3d69b..00000000
--- a/doc/metadata/rhel6/V-38469.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38469
-status: exception
-tag: file_perms
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 set the permissions for system
-commands to ``0755`` or less already. Deployers are urged to review these
-permissions for changes over time as they can be a sign of a compromise.
diff --git a/doc/metadata/rhel6/V-38470.rst b/doc/metadata/rhel6/V-38470.rst
deleted file mode 100644
index 29a9732e..00000000
--- a/doc/metadata/rhel6/V-38470.rst
+++ /dev/null
@@ -1,28 +0,0 @@
----
-id: V-38470
-status: implemented
-tag: auditd
----
-
-The default configuration for ``security_space_left_action`` is ``SUSPEND``,
-which actually only suspends audit logging. Suspending audit logging can lead
-to security problems because the system is no longer keeping track of which
-syscalls were made.
-
-The security role sets the configuration to ``SYSLOG`` so that messages are
-sent to syslog when the available disk space reaches a low level. If syslog
-messages are being sent to remote servers, these log messages should alert an
-administrator about the disk being almost full. There are additional options
-available, like ``EXEC``, ``SINGLE`` or ``HALT``.
-
-To configure a different ``space_left_action``, set the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_space_left_action: SYSLOG
-
-For details on available settings and what they do, run ``man auditd.conf``.
-Some options can cause the host to go offline until the issue is fixed.
-Deployers are urged to **carefully read the auditd documentation** prior to
-changing the ``space_left_action`` setting from the default.
diff --git a/doc/metadata/rhel6/V-38471.rst b/doc/metadata/rhel6/V-38471.rst
deleted file mode 100644
index 152da008..00000000
--- a/doc/metadata/rhel6/V-38471.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38471
-status: implemented
-tag: auditd
----
-
-An Ansible task will adjust ``active`` from ``no`` to ``yes`` in
-``/etc/audisp/plugins.d/syslog.conf`` so that auditd records are forwarded to
-syslog automatically. The auditd daemon will be restarted if the configuration
-file is changed.
diff --git a/doc/metadata/rhel6/V-38472.rst b/doc/metadata/rhel6/V-38472.rst
deleted file mode 100644
index d3d4d515..00000000
--- a/doc/metadata/rhel6/V-38472.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38472
-status: exception
-tag: file_perms
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 set system commands to be owned by
-root by default. Deployers are urged to review ownership changes via auditd
-rules to ensure system commands haven't changed ownership over time.
diff --git a/doc/metadata/rhel6/V-38473.rst b/doc/metadata/rhel6/V-38473.rst
deleted file mode 100644
index d9173ae5..00000000
--- a/doc/metadata/rhel6/V-38473.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38473
-status: exception - initial provisioning
-tag: misc
----
-
-Creating ``/home`` on a different partition is highly recommended but it is
-left to deployers to configure during the installation of the OS.
diff --git a/doc/metadata/rhel6/V-38474.rst b/doc/metadata/rhel6/V-38474.rst
deleted file mode 100644
index 104a021d..00000000
--- a/doc/metadata/rhel6/V-38474.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38474
-status: exception
-tag: x11
----
-
-The openstack-ansible roles don't install X by default, so there is no
-graphical desktop to configure.
diff --git a/doc/metadata/rhel6/V-38475.rst b/doc/metadata/rhel6/V-38475.rst
deleted file mode 100644
index 67eff981..00000000
--- a/doc/metadata/rhel6/V-38475.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38475
-status: configuration required
-tag: auth
----
-
-The STIG recommends passwords to be a minimum of 14 characters in length. To
-apply this setting, set the following Ansible variable:
-
-.. code-block:: yaml
-
- security_password_minimum_length: 14
-
-Deployers are urged to avoid the use of passwords and rely upon SSH keys if
-possible.
diff --git a/doc/metadata/rhel6/V-38476.rst b/doc/metadata/rhel6/V-38476.rst
deleted file mode 100644
index 4f6c701e..00000000
--- a/doc/metadata/rhel6/V-38476.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38476
-status: implemented
-tag: package
----
-
-The security role verifies that the GPG keys that correspond to each supported
-Linux distribution are installed on each host. If the GPG keys are not found,
-or if they differ from the list of trusted GPG keys, the playbook execution
-will stop.
-
-Deployers can skip this task (and avoid this failure) by using ``--skip-tags
-V-38476`` when they are applying the security role.
diff --git a/doc/metadata/rhel6/V-38477.rst b/doc/metadata/rhel6/V-38477.rst
deleted file mode 100644
index 3e3266d4..00000000
--- a/doc/metadata/rhel6/V-38477.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38477
-status: configuration required
-tag: auth
----
-
-The STIG recommends setting a limit of one password change per day. To enable
-this configuration, use this Ansible variable:
-
-.. code-block:: yaml
-
- security_password_minimum_days: 14
diff --git a/doc/metadata/rhel6/V-38478.rst b/doc/metadata/rhel6/V-38478.rst
deleted file mode 100644
index 78aba6a0..00000000
--- a/doc/metadata/rhel6/V-38478.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38478
-status: exception
-tag: package
----
-
-Ubuntu and CentOS do not use the Red Hat Network Service. However, there are
-tasks in the security role which ensure that all packages have GPG checks
-enabled (see V-38462) and provide the option for deployers to apply updates
-automatically.
diff --git a/doc/metadata/rhel6/V-38479.rst b/doc/metadata/rhel6/V-38479.rst
deleted file mode 100644
index 52223d82..00000000
--- a/doc/metadata/rhel6/V-38479.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38479
-status: configuration required
-tag: auth
----
-
-The STIG recommends setting a limit of 60 days before a password must
-be changed. To enable this configuration, use this Ansible variable:
-
-.. code-block:: yaml
-
- security_password_maximum_days: 60
diff --git a/doc/metadata/rhel6/V-38480.rst b/doc/metadata/rhel6/V-38480.rst
deleted file mode 100644
index d062505a..00000000
--- a/doc/metadata/rhel6/V-38480.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38480
-status: configuration required
-tag: auth
----
-
-After enabling password age limits in V-38479, be sure to configure
-warnings for users so they know when their password is approaching expiration.
-STIG's recommendation is seven days prior to the expiration. Use an Ansible
-variable to configure the warning:
-
-.. code-block:: yaml
-
- security_password_warn_age: 7
diff --git a/doc/metadata/rhel6/V-38481.rst b/doc/metadata/rhel6/V-38481.rst
deleted file mode 100644
index a1eb9233..00000000
--- a/doc/metadata/rhel6/V-38481.rst
+++ /dev/null
@@ -1,32 +0,0 @@
----
-id: V-38481
-status: opt-in
-tag: package
----
-
-Operating system patching policies vary from organization to organization and
-are typically established based on business requirements and risk tolerance.
-
-.. note::
-
- Automatically upgrading packages can provide significant security benefits,
- but they can reduce availability and reliability. Updating packages can
- cause daemons to restart on some systems and they can cause local
- customizations of configuration files to be lost.
-
- Deployers are **strongly urged** to understand the nature of this change
- and the associated risks prior to enabling automatic upgrades.
-
-Deployers can enable automatic updates by setting
-``security_unattended_upgrades`` to ``True``:
-
-.. code-block:: yaml
-
- security_unattended_upgrades: true
-
-In Ubuntu, the ``unattended-upgrades`` package is installed and enabled. This
-will apply updates that are made available to the trusty-security (Ubuntu
-14.04) or xenial-security (Ubuntu 16.04) repositories.
-
-In CentOS, the ``yum-cron`` package is installed and configured to
-automatically apply updates.
diff --git a/doc/metadata/rhel6/V-38482.rst b/doc/metadata/rhel6/V-38482.rst
deleted file mode 100644
index ad8db957..00000000
--- a/doc/metadata/rhel6/V-38482.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38482
-status: exception
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38483.rst b/doc/metadata/rhel6/V-38483.rst
deleted file mode 100644
index 87edb3a5..00000000
--- a/doc/metadata/rhel6/V-38483.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38483
-status: implemented
-tag: package
----
-
-The Ansible task for V-38462 already checks for configurations that would
-disable any GPG checks when installing packages. However, it is possible for
-the root user to override these configurations via command line parameters.
diff --git a/doc/metadata/rhel6/V-38484.rst b/doc/metadata/rhel6/V-38484.rst
deleted file mode 100644
index 125db0dc..00000000
--- a/doc/metadata/rhel6/V-38484.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38484
-status: implemented
-tag: package
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 already enable the display of the last
-successful login for a user immediately after login. An Ansible task ensures
-this setting is applied and restarts the ssh daemon if necessary.
diff --git a/doc/metadata/rhel6/V-38486.rst b/doc/metadata/rhel6/V-38486.rst
deleted file mode 100644
index 8b7a0008..00000000
--- a/doc/metadata/rhel6/V-38486.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38486
-status: exception
-tag: misc
----
-
-System backups are left to the deployer to configure. Deployers are stringly
-urged to maintain backups of each system, including log files and critical
-configuration information.
diff --git a/doc/metadata/rhel6/V-38487.rst b/doc/metadata/rhel6/V-38487.rst
deleted file mode 100644
index b34de394..00000000
--- a/doc/metadata/rhel6/V-38487.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38487
-status: implemented
-tag: package
----
-
-The Ansible task for V-38462 already checks for apt configurations that would
-disable any GPG checks when installing packages. However, it's possible for
-the root user to override these configurations via command line parameters.
diff --git a/doc/metadata/rhel6/V-38488.rst b/doc/metadata/rhel6/V-38488.rst
deleted file mode 100644
index 1eb8b731..00000000
--- a/doc/metadata/rhel6/V-38488.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38488
-status: exception
-tag: misc
----
-
-System backups are left to the deployer to configure. Deployers are stringly
-urged to maintain backups of each system, including log files and critical
-configuration information.
diff --git a/doc/metadata/rhel6/V-38489.rst b/doc/metadata/rhel6/V-38489.rst
deleted file mode 100644
index 68a3e6fa..00000000
--- a/doc/metadata/rhel6/V-38489.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38489
-status: implemented
-tag: aide
----
-
-The security role installs and configures the ``aide`` package to provide file
-integrity monitoring on the host.
diff --git a/doc/metadata/rhel6/V-38490.rst b/doc/metadata/rhel6/V-38490.rst
deleted file mode 100644
index 631d97f1..00000000
--- a/doc/metadata/rhel6/V-38490.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38490
-status: opt-in
-tag: kernel
----
-
-Disabling the ``usb-storage`` module can add extra security, but it's not
-necessary on most systems. To disable the ``usb-storage`` module on hosts,
-set the following variable to ``yes``:
-
-.. code-block:: yaml
-
- security_disable_module_usb_storage: yes
-
-**NOTE:** The module will be disabled on the next reboot.
diff --git a/doc/metadata/rhel6/V-38491.rst b/doc/metadata/rhel6/V-38491.rst
deleted file mode 100644
index 1285518d..00000000
--- a/doc/metadata/rhel6/V-38491.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38491
-status: implemented
-tag: auth
----
-
-The Ansible task will check for the presence of ``/etc/hosts.equiv`` and
-``/root/.rhosts``. Both of those files could potentially be used with ``rsh``
-for host access.
-
-The ``rshd`` daemon is not installed by default with Ubuntu 14.04, Ubuntu
-16.04, CentOS 7, or OpenStack-Ansible.
diff --git a/doc/metadata/rhel6/V-38492.rst b/doc/metadata/rhel6/V-38492.rst
deleted file mode 100644
index 40b6031f..00000000
--- a/doc/metadata/rhel6/V-38492.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38492
-status: exception
-tag: auth
----
-
-Virtual consoles are helpful during an emergency and they can only be reached
-by physical or other out-of-band access (such as DRAC, iLO, or iKVM). This
-change can be confusing for system administrators and it is left up to the
-deployer to complete.
-
-As an alternative, deployers could take action to restrict physical access to
-server terminals. Out-of-band access mechanisms should be segmented onto their
-own restricted network and should use centralized authentication.
diff --git a/doc/metadata/rhel6/V-38493.rst b/doc/metadata/rhel6/V-38493.rst
deleted file mode 100644
index f2c87f75..00000000
--- a/doc/metadata/rhel6/V-38493.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38493
-status: implemented
-tag: auditd
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 set the mode of ``/var/log/audit/`` to
-``0750`` by default. The Ansible task for this requirement ensures that the
-mode is ``0750`` (which is more strict than the STIG requirement).
diff --git a/doc/metadata/rhel6/V-38494.rst b/doc/metadata/rhel6/V-38494.rst
deleted file mode 100644
index 9bfd9973..00000000
--- a/doc/metadata/rhel6/V-38494.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38494
-status: exception
-tag: auth
----
-
-Removing serial consoles from ``/etc/securetty`` can make troubleshooting
-a server extremely difficult. Deployers are urged to use strong physical
-security practices to prevent unauthorized users from gaining physical access
-to critical hosts. In addition, out-of-band systems that allow for serial
-over LAN access should also be heavily secured.
diff --git a/doc/metadata/rhel6/V-38495.rst b/doc/metadata/rhel6/V-38495.rst
deleted file mode 100644
index 827df0c9..00000000
--- a/doc/metadata/rhel6/V-38495.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38495
-status: implemented
-tag: auditd
----
-
-The Ansible tasks will ensure that files in ``/var/log/audit`` are owned
-by the root user.
diff --git a/doc/metadata/rhel6/V-38496.rst b/doc/metadata/rhel6/V-38496.rst
deleted file mode 100644
index 4dafc238..00000000
--- a/doc/metadata/rhel6/V-38496.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38496
-status: exception - manual intervention
-tag: auth
----
-
-The Ansible tasks will check for default system accounts (other than root)
-that are not locked. The tasks won't take any action, however, because
-any action could cause authorized users to be unable to access the system.
-However, if any unlocked default system accounts are found, the playbook will
-fail with an error message until the user accounts are locked.
-
-Deployers who intentionally want to skip this step should use
-``--skip-tags V-38496`` to avoid a playbook failure on this check.
-
-Deployers are urged to audit the accounts on their systems and lock any users
-that don't need to log in via consoles or via ssh.
diff --git a/doc/metadata/rhel6/V-38497.rst b/doc/metadata/rhel6/V-38497.rst
deleted file mode 100644
index 701563ab..00000000
--- a/doc/metadata/rhel6/V-38497.rst
+++ /dev/null
@@ -1,28 +0,0 @@
----
-id: V-38497
-status: implemented
-tag: auth
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 allow accounts with null passwords to
-authenticate via PAM by default. This STIG requires that those login attempts
-are blocked.
-
-For Ubuntu, the ``nullok_secure`` option will be removed from ``/etc/pam.d
-/common-auth``.
-
-For CentOS, the ``nullok`` option will be removed from ``/etc/pam.d/system-
-auth``.
-
-The effects of the change are **immediate** and no service restarts are
-required.
-
-Deployers can opt-out of this change by adjusting an Ansible variable:
-
-.. code-block:: yaml
-
- security_pam_remove_nullok: no
-
-Setting the variable to ``yes`` (the default) will cause the Ansible tasks to
-remove the ``nullok_secure`` parameter while setting the variable to ``no``
-will leave the PAM configuration unchanged.
diff --git a/doc/metadata/rhel6/V-38498.rst b/doc/metadata/rhel6/V-38498.rst
deleted file mode 100644
index c11b635c..00000000
--- a/doc/metadata/rhel6/V-38498.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38498
-status: implemented
-tag: auditd
----
-
-Ubuntu and CentOS set the current audit log (the one that is actively being
-written to) to ``0600`` so that only the root user can read and write to it.
-The older, rotated logs are set to ``0400`` since they should not receive
-any more writes.
-
-The STIG requirement states that log files must have mode ``0640`` or less. The
-security role will remove any permissions that are not allowed by the STIG
-(``u-x,g-wx,o-rwx``).
diff --git a/doc/metadata/rhel6/V-38499.rst b/doc/metadata/rhel6/V-38499.rst
deleted file mode 100644
index 6acc252a..00000000
--- a/doc/metadata/rhel6/V-38499.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38499
-status: implemented
-tag: auth
----
-
-The Ansible task will search for password hashes in ``/etc/passwd`` using
-awk and report a failure if any are found.
diff --git a/doc/metadata/rhel6/V-38500.rst b/doc/metadata/rhel6/V-38500.rst
deleted file mode 100644
index 03529480..00000000
--- a/doc/metadata/rhel6/V-38500.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38500
-status: implemented
-tag: auth
----
-
-The Ansible tasks will search for accounts in ``/etc/passwd`` that have UID 0
-that aren't the normal root account. If any matching accounts are found, a
-warning is printed to stdout and the Ansible play will fail.
-
-No action is taken on those accounts as that action may disrupt a production
-environment. Deployers are strongly urged to use ``sudo`` for these types of
-actions.
diff --git a/doc/metadata/rhel6/V-38501.rst b/doc/metadata/rhel6/V-38501.rst
deleted file mode 100644
index a58fb5d7..00000000
--- a/doc/metadata/rhel6/V-38501.rst
+++ /dev/null
@@ -1,43 +0,0 @@
----
-id: V-38501
-status: opt-in
-tag: auth
----
-
-Adjusting PAM configurations is very risky since it affects how all users
-authenticate. In addition, ``pam_faillock.so`` isn't available in Ubuntu.
-
-Another option is to utilize ``pam_tally`` to deny logins after failed
-attempts. Adjusting PAM configurations automatically can disrupt the operation
-of production systems, so this is left up to the deployer to configure.
-For more details on how to configure ``pam_tally``, refer to `this AskUbuntu
-article about pam_tally`_.
-
-Another alternative is `fail2ban`_. Read the notes below for more tails on
-this option.
-
-The Ansible tasks will install `fail2ban`_ and configure it to ban IP
-addresses using the following logic
-
-* The IP has attempted three logins in the last 10 minutes and all have failed
-* That IP will be banned for 15 minutes (via iptables rules)
-
-Deployers must opt-in for fail2ban to be installed and configured. To opt-in,
-set the ``security_install_fail2ban`` Ansible variable to ``yes``. The time
-period for bans can also be configured (in seconds) via tha
-``security_fail2ban_bantime`` variable:
-
-.. code-block:: yaml
-
- security_install_fail2ban: yes
- security_fail2ban_bantime: 900
-
-**NOTE:** Fail2ban can only review authentication attempts for services that
-listen on the network, such as ssh. It has no control over physical consoles.
-Deployers are strongly urged to use stong physical security policies to
-prevent unauthorized users from accessing server consoles. In addition,
-deployers must secure out-of-band access methods, like IPMI, as they can be
-vectors for physical console access as well.
-
-.. _this AskUbuntu article about pam_tally: http://askubuntu.com/questions/59459/how-do-i-enable-account-lockout-using-pam-tally
-.. _fail2ban: https://en.wikipedia.org/wiki/Fail2ban
diff --git a/doc/metadata/rhel6/V-38502.rst b/doc/metadata/rhel6/V-38502.rst
deleted file mode 100644
index f02ed570..00000000
--- a/doc/metadata/rhel6/V-38502.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38502
-status: implemented
-tag: auth
----
-
-The user and group ownership of ``/etc/passwd`` is root by default. The Ansible
-task will ensure that the default is maintained.
diff --git a/doc/metadata/rhel6/V-38503.rst b/doc/metadata/rhel6/V-38503.rst
deleted file mode 100644
index 84787e95..00000000
--- a/doc/metadata/rhel6/V-38503.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38503
-status: implemented
-tag: auth
----
-
-The user and group ownership of ``/etc/passwd`` is root by default. The Ansible
-task will ensure that the default is maintained.
diff --git a/doc/metadata/rhel6/V-38504.rst b/doc/metadata/rhel6/V-38504.rst
deleted file mode 100644
index b01a883e..00000000
--- a/doc/metadata/rhel6/V-38504.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38504
-status: implemented
-tag: auth
----
-
-Ubuntu 14.04 and Ubuntu 16.04 set the mode of ``/etc/shadow`` to ``0640``, but
-CentOS 7 sets it to ``000``. The STIG requires the mode to be ``000`` and the
-Ansible tasks in the security role ensure that the mode meets the requirement.
-
-**Special note for Ubuntu:** This change doesn't affect how the system operates
-since root is the only user that should be able to read from and write to
-``/etc/shadow``. Allowing users to read the file could open up the system to
-attacks since the password hashes can be dumped and brute forced.
diff --git a/doc/metadata/rhel6/V-38511.rst b/doc/metadata/rhel6/V-38511.rst
deleted file mode 100644
index 7d3d0b7c..00000000
--- a/doc/metadata/rhel6/V-38511.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38511
-status: implemented
-tag: misc
----
-
-Running virtual infrastructure requires IP forwarding to be enabled on various
-interfaces. The STIG allows for this, so long as the system is being operated
-as a router (as is the case for an OpenStack host).
diff --git a/doc/metadata/rhel6/V-38512.rst b/doc/metadata/rhel6/V-38512.rst
deleted file mode 100644
index 8a380292..00000000
--- a/doc/metadata/rhel6/V-38512.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38512
-status: exception
-tag: network
----
-
-Although a minimal set of iptables rules are configured on openstack-ansible
-hosts, the "deny all" requirement of the STIG is not met. This is largely left
-up to the deployer to do, based on their assessment of their own network
-segmentation.
-
-Deployers are urged to review the network access controls that are applied
-on the network devices between their OpenStack environment and the rest of
-their network.
diff --git a/doc/metadata/rhel6/V-38513.rst b/doc/metadata/rhel6/V-38513.rst
deleted file mode 100644
index 4b4ec54d..00000000
--- a/doc/metadata/rhel6/V-38513.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38513
-status: exception - manual intervention
-tag: network
----
-
-Although a minimal set of iptables rules are configured on openstack-ansible
-hosts, the "deny all" requirement of the STIG is not met. This is largely left
-up to the deployer to do, based on their assessment of their own network
-segmentation.
-
-Deployers are urged to review the network access controls that are applied
-on the network devices between their OpenStack environment and the rest of
-their network.
diff --git a/doc/metadata/rhel6/V-38514.rst b/doc/metadata/rhel6/V-38514.rst
deleted file mode 100644
index c834849f..00000000
--- a/doc/metadata/rhel6/V-38514.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38514
-status: implemented
-tag: kernel
----
-
-The Datagram Congestion Control Protocol (DCCP) must be disabled if it's not
-needed. Although this protocol is occasionally used in some OpenStack
-environments for quality of service functions, it is not in the default
-implementation.
-
-To opt-out of this change, simply change the following variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_module_dccp: no
-
-**NOTE:** The module will be disabled on the next reboot.
diff --git a/doc/metadata/rhel6/V-38515.rst b/doc/metadata/rhel6/V-38515.rst
deleted file mode 100644
index af224af7..00000000
--- a/doc/metadata/rhel6/V-38515.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38515
-status: implemented
-tag: kernel
----
-
-The Stream Control Transmission Protocol (SCTP) must be disabled. To opt-out of
-this change, set the following variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_module_sctp: no
-
-**NOTE:** The module will be disabled on the next reboot.
diff --git a/doc/metadata/rhel6/V-38516.rst b/doc/metadata/rhel6/V-38516.rst
deleted file mode 100644
index 78e84122..00000000
--- a/doc/metadata/rhel6/V-38516.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38516
-status: implemented
-tag: kernel
----
-
-The `Reliable Datagram Sockets (RDS)`_ protocol must be disabled. The Ansible
-tasks in this role will disable the module.
-
-.. _Reliable Datagram Sockets (RDS): https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets
-
-To opt-out of this change, set the following variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_module_rds: no
-
-**NOTE:** The module will be disabled on the next reboot.
diff --git a/doc/metadata/rhel6/V-38517.rst b/doc/metadata/rhel6/V-38517.rst
deleted file mode 100644
index fc5d5ed5..00000000
--- a/doc/metadata/rhel6/V-38517.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38517
-status: implemented
-tag: kernel
----
-
-The `Transparent Inter-Process Communication (TIPC)`_ protocol must be
-disabled. To opt-out of this change, set the following variable to ``no``:
-
-.. _Transparent Inter-Process Communication (TIPC): https://en.wikipedia.org/wiki/TIPC
-
-.. code-block:: yaml
-
- security_disable_module_tipc: no
-
-**NOTE:** The module will be disabled on the next reboot.
diff --git a/doc/metadata/rhel6/V-38518.rst b/doc/metadata/rhel6/V-38518.rst
deleted file mode 100644
index 0ca417b3..00000000
--- a/doc/metadata/rhel6/V-38518.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38518
-status: exception
-tag: file_perms
----
-
-Different systems may have different log files populated depending on the type
-of data that ``rsyslogd`` receives. By default, log files are created with the
-user and group ownership set to root.
-
-Deployers should review the files generated by the ``rsyslogd`` daemon to
-verify that they have the most restrictive ownership and permissions.
diff --git a/doc/metadata/rhel6/V-38519.rst b/doc/metadata/rhel6/V-38519.rst
deleted file mode 100644
index c3bd6a67..00000000
--- a/doc/metadata/rhel6/V-38519.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38519
-status: exception
-tag: file_perms
----
-
-Different systems may have different log files populated depending on the type
-of data that ``rsyslogd`` receives. By default, log files are created with the
-user and group ownership set to root.
-
-Deployers should review the files generated by the ``rsyslogd`` daemon to
-verify that they have the most restrictive ownership and permissions.
diff --git a/doc/metadata/rhel6/V-38520.rst b/doc/metadata/rhel6/V-38520.rst
deleted file mode 100644
index baaa7a1d..00000000
--- a/doc/metadata/rhel6/V-38520.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38520
-status: exception - manual intervention
-tag: log
----
-
-At the moment, openstack-ansible already sends logs to the rsyslog container
-from various containers and hosts. However, deployers are strongly urged
-to forward these logs to a system outside their openstack-ansible environment
-to ensure that they cannot be altered.
-
-Some compliance programs require centralized logging, including PCI-DSS.
diff --git a/doc/metadata/rhel6/V-38521.rst b/doc/metadata/rhel6/V-38521.rst
deleted file mode 100644
index 6751a53b..00000000
--- a/doc/metadata/rhel6/V-38521.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38521
-status: exception - manual intervention
-tag: log
----
-
-At the moment, openstack-ansible already sends logs to the rsyslog container
-from various containers and hosts. However, deployers are strongly urged
-to forward these logs to a system outside their openstack-ansible environment
-to ensure that they cannot be altered.
-
-Some compliance programs require centralized logging, including PCI-DSS.
diff --git a/doc/metadata/rhel6/V-38522.rst b/doc/metadata/rhel6/V-38522.rst
deleted file mode 100644
index c785ed94..00000000
--- a/doc/metadata/rhel6/V-38522.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38522
-status: implemented
-tag: misc
----
-
-Rules are added for auditing changes to system time made via ``settimeofday``.
diff --git a/doc/metadata/rhel6/V-38523.rst b/doc/metadata/rhel6/V-38523.rst
deleted file mode 100644
index 2ea5258e..00000000
--- a/doc/metadata/rhel6/V-38523.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38523
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38524.rst b/doc/metadata/rhel6/V-38524.rst
deleted file mode 100644
index b32c35c7..00000000
--- a/doc/metadata/rhel6/V-38524.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38524
-status: opt-in
-tag: kernel
----
-
-The STIG requires that ICMPv4 redirects are disabled on the host. However, this
-can cause problems with LXC-based deployments, such as environments deployed
-with OpenStack-Ansible.
-
-Deployers can opt-in for this change by setting the following Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_icmpv4_redirects: yes
diff --git a/doc/metadata/rhel6/V-38525.rst b/doc/metadata/rhel6/V-38525.rst
deleted file mode 100644
index 5778d348..00000000
--- a/doc/metadata/rhel6/V-38525.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38525
-status: implemented
-tag: auditd
----
-
-Rules are added for auditing changes to system time done via ``stime``.
diff --git a/doc/metadata/rhel6/V-38526.rst b/doc/metadata/rhel6/V-38526.rst
deleted file mode 100644
index 27efc170..00000000
--- a/doc/metadata/rhel6/V-38526.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38526
-status: opt-in
-tag: kernel
----
-
-The STIG requires that secure ICMP redirects are disabled, but this can cause
-issues in some virtualized or containerized environments. The Ansible tasks
-in the security role will not disable these redirects by default.
-
-Deployers who want to enable the task (and disable ICMP redirects), should set
-the following Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_icmpv4_redirects_secure: yes
diff --git a/doc/metadata/rhel6/V-38527.rst b/doc/metadata/rhel6/V-38527.rst
deleted file mode 100644
index 88bf3242..00000000
--- a/doc/metadata/rhel6/V-38527.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38527
-status: implemented
-tag: auditd
----
-
-Rules are added for auditing changes to system time done via
-``clock_settime``.
diff --git a/doc/metadata/rhel6/V-38528.rst b/doc/metadata/rhel6/V-38528.rst
deleted file mode 100644
index 16f486b0..00000000
--- a/doc/metadata/rhel6/V-38528.rst
+++ /dev/null
@@ -1,26 +0,0 @@
----
-id: V-38528
-status: opt-in
-tag: kernel
----
-
-The STIG requires that all martian packets are logged by setting the sysctl
-parameter ``net.ipv4.conf.all.log_martians`` to ``1``.
-
-Although the logs can be valuable in some situations, the setting can generate
-a *significant* amount of logging in OpenStack environments, especially those
-that use neutron's Linux bridge networking. In some situations, the logging can
-flood the physical terminal and make troubleshooting at the console or via out
-of band (like iKVM, DRAC and iLO) **extremely difficult**.
-
-The role will ensure that martian packet logging is disabled by default.
-Deployers that need this logging enabled will need to set the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_sysctl_enable_martian_logging: yes
-
-Wikpedia's article on `martian packets`_ provides additional information.
-
-.. _martian packets: https://en.wikipedia.org/wiki/Martian_packet
diff --git a/doc/metadata/rhel6/V-38529.rst b/doc/metadata/rhel6/V-38529.rst
deleted file mode 100644
index 78ed16e9..00000000
--- a/doc/metadata/rhel6/V-38529.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38529
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38530.rst b/doc/metadata/rhel6/V-38530.rst
deleted file mode 100644
index 552fe6cb..00000000
--- a/doc/metadata/rhel6/V-38530.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38530
-status: implemented
-tag: auditd
----
-
-Rules are added to auditd to log all attempts to change the system time using
-``/etc/localtime``.
diff --git a/doc/metadata/rhel6/V-38531.rst b/doc/metadata/rhel6/V-38531.rst
deleted file mode 100644
index 7bccd652..00000000
--- a/doc/metadata/rhel6/V-38531.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38531
-status: implemented
-tag: auditd
----
-
-The audit rules from V-38534 already cover all account modifications.
diff --git a/doc/metadata/rhel6/V-38532.rst b/doc/metadata/rhel6/V-38532.rst
deleted file mode 100644
index e6d33f48..00000000
--- a/doc/metadata/rhel6/V-38532.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38532
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38533.rst b/doc/metadata/rhel6/V-38533.rst
deleted file mode 100644
index 9478de85..00000000
--- a/doc/metadata/rhel6/V-38533.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38533
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38534.rst b/doc/metadata/rhel6/V-38534.rst
deleted file mode 100644
index 6b00d0e0..00000000
--- a/doc/metadata/rhel6/V-38534.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38534
-status: implemented
-tag: auditd
----
-
-Audit rules are added in a task so that any events associated with
-account modifications are logged. The new audit rule will be loaded immediately
-with ``augenrules --load``.
diff --git a/doc/metadata/rhel6/V-38535.rst b/doc/metadata/rhel6/V-38535.rst
deleted file mode 100644
index 956bd4ce..00000000
--- a/doc/metadata/rhel6/V-38535.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38535
-status: implemented
-tag: kernel
----
-
-The Ansible tasks will ensure that ``net.ipv4.icmp_echo_ignore_broadcasts`` is
-set to ``1``, which will cause the system to stop responding to ICMPv4 packets
-sent to the broadcast address.
diff --git a/doc/metadata/rhel6/V-38536.rst b/doc/metadata/rhel6/V-38536.rst
deleted file mode 100644
index e7b35ed7..00000000
--- a/doc/metadata/rhel6/V-38536.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38536
-status: implemented
-tag: auditd
----
-
-The audit rules from V-38534 already cover all account modifications.
diff --git a/doc/metadata/rhel6/V-38537.rst b/doc/metadata/rhel6/V-38537.rst
deleted file mode 100644
index 31e9c245..00000000
--- a/doc/metadata/rhel6/V-38537.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38537
-status: implemented
-tag: kernel
----
-
-The Ansible tasks will ensure that
-``net.ipv4.icmp_ignore_bogus_error_responses`` is set to ``1``. This prevents
-a host from responding to bogus ICMPv4 error messages.
diff --git a/doc/metadata/rhel6/V-38538.rst b/doc/metadata/rhel6/V-38538.rst
deleted file mode 100644
index 2dadb702..00000000
--- a/doc/metadata/rhel6/V-38538.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38538
-status: implemented
-tag: auditd
----
-
-The audit rules from V-38534 already cover all account modifications.
diff --git a/doc/metadata/rhel6/V-38539.rst b/doc/metadata/rhel6/V-38539.rst
deleted file mode 100644
index 3e5ac159..00000000
--- a/doc/metadata/rhel6/V-38539.rst
+++ /dev/null
@@ -1,27 +0,0 @@
----
-id: V-38539
-status: implemented
-tag: kernel
----
-
-The STIG recommends enabling TCP SYN cookies to deal with TCP SYN floods.
-
-Note that high-traffic environments may require TCP SYN cookies to be disabled.
-Certain load balancers may forward requests in such a way that web servers may
-think they're being SYN flooded during peak traffic events. Putting well-
-configured hardware network devices in front of OpenStack environments is
-always recommended and this may allow some deployers to turn off SYN cookies
-within their environment.
-
-Deployers can disable TCP SYN cookies by setting an Ansible variable:
-
-.. code-block:: yaml
-
- security_sysctl_enable_tcp_syncookies: no
-
-Most operating systems, such as Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 have
-TCP syncookies enabled by default upon installation. For more information on
-TCP SYN cookies and TCP SYN floods, refer to these links:
-
-* `Wikipedia: SYN flood `_
-* `Wikipedia: SYN cookies `_
diff --git a/doc/metadata/rhel6/V-38540.rst b/doc/metadata/rhel6/V-38540.rst
deleted file mode 100644
index 0c7b64a9..00000000
--- a/doc/metadata/rhel6/V-38540.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38540
-status: implemented
-tag: auditd
----
-
-Rules are added that allows auditd to track network configuration changes.
diff --git a/doc/metadata/rhel6/V-38541.rst b/doc/metadata/rhel6/V-38541.rst
deleted file mode 100644
index b511fd0d..00000000
--- a/doc/metadata/rhel6/V-38541.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38541
-status: implemented
-tag: auditd
----
-
-For Ubuntu, rules are added to auditd that will log any changes made in the
-``/etc/apparmor`` directory.
-
-For CentOS, rules are added to auditd that will log any changes made in the
-``/etc/selinux`` directory.
-
-To opt-out of this change, set the following Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_mac_changes: no
diff --git a/doc/metadata/rhel6/V-38542.rst b/doc/metadata/rhel6/V-38542.rst
deleted file mode 100644
index c9ec5fd2..00000000
--- a/doc/metadata/rhel6/V-38542.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38542
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38543.rst b/doc/metadata/rhel6/V-38543.rst
deleted file mode 100644
index 3abd610e..00000000
--- a/doc/metadata/rhel6/V-38543.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38543
-status: opt-in
-tag: auditd
----
-
-The audit rules which monitor ``chmod``, ``fchmod``, and ``fchmodat``
-syscalls can cause high CPU and I/O load during OpenStack-Ansible deployments
-and while updating packages with apt. By default, these rules are disabled.
-
-These audit rules can be enabled by setting any of the following variables:
-
-.. code-block:: yaml
-
- security_audit_DAC_chmod: yes
- security_audit_DAC_fchmod: yes
- security_audit_DAC_fchmodat: yes
diff --git a/doc/metadata/rhel6/V-38544.rst b/doc/metadata/rhel6/V-38544.rst
deleted file mode 100644
index aaad20b4..00000000
--- a/doc/metadata/rhel6/V-38544.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38544
-status: exception
-tag: kernel
----
-
-The STIG makes several requirements for IPv4 network restrictions, but these
-restrictions can impact certain network interfaces and cause service
-disruptions. Some security configurations make sense for certain types of
-network interfaces, like bridges, but other restrictions cause the network
-interface to stop passing valid traffic between hosts, containers, or virtual
-machines.
-
-The default network scripts and LXC userspace tools already configure various
-network devices to their most secure setting. Since some hosts will act as
-routers, enabling security configurations that restrict network traffic can
-cause service disruptions for OpenStack environments.
diff --git a/doc/metadata/rhel6/V-38545.rst b/doc/metadata/rhel6/V-38545.rst
deleted file mode 100644
index d2135219..00000000
--- a/doc/metadata/rhel6/V-38545.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38545
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``chown`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``chown`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_chown: yes
diff --git a/doc/metadata/rhel6/V-38546.rst b/doc/metadata/rhel6/V-38546.rst
deleted file mode 100644
index 16114862..00000000
--- a/doc/metadata/rhel6/V-38546.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38546
-status: opt-in
-tag: kernel
----
-
-The STIG requires IPv6 to be disabled system-wide unless it is needed for the
-system to operate. Deployers must consider how their network is configured
-before disabling IPv6 entirely.
-
-To opt-in for this change, set the following Ansible variable to ``yes``:
-
-.. code-block:: yaml
-
- security_disable_ipv6: yes
-
-**NOTE:** This change will go into effect **immediately** on the system and
-persist through reboots.
diff --git a/doc/metadata/rhel6/V-38547.rst b/doc/metadata/rhel6/V-38547.rst
deleted file mode 100644
index cbc9e923..00000000
--- a/doc/metadata/rhel6/V-38547.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38547
-status: opt-in
-tag: auditd
----
-
-The audit rules which monitor ``chmod``, ``fchmod``, and ``fchmodat``
-syscalls can cause high CPU and I/O load during OpenStack-Ansible deployments
-and while updating packages with apt. By default, these rules are disabled.
-
-These audit rules can be enabled by setting any of the following variables:
-
-.. code-block:: yaml
-
- security_audit_DAC_chmod: yes
- security_audit_DAC_fchmod: yes
- security_audit_DAC_fchmodat: yes
diff --git a/doc/metadata/rhel6/V-38548.rst b/doc/metadata/rhel6/V-38548.rst
deleted file mode 100644
index 10df5483..00000000
--- a/doc/metadata/rhel6/V-38548.rst
+++ /dev/null
@@ -1,19 +0,0 @@
----
-id: V-38548
-status: opt-in
-tag: kernel
----
-
-Accepting ICMP redirects has few legitimate uses. It should be disabled unless
-it is absolutely required.
-
-It is configurable by ``security_disable_icmpv6_redirects`` variable. This
-feature is disabled by default. Disabling IPv6 redirects can cause issues with
-OpenStack environments which have IPv6 enabled and are routing IPv6 traffic.
-
-Deployers can opt-in to this change and disable ICMPv6 redirects by setting
-the following Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_icmpv6_redirects: yes
diff --git a/doc/metadata/rhel6/V-38549.rst b/doc/metadata/rhel6/V-38549.rst
deleted file mode 100644
index 5ab1a3f3..00000000
--- a/doc/metadata/rhel6/V-38549.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38549
-status: exception - manual intervention
-tag: network
----
-
-Adding IPv6 firewalling on OpenStack hosts is left up to the deployer to
-configure. Deployers are urged to use proper network segmentation between
-their OpenStack infrastructure and virtual machines, which will mitigate
-many of the most critical threats.
diff --git a/doc/metadata/rhel6/V-38550.rst b/doc/metadata/rhel6/V-38550.rst
deleted file mode 100644
index 1dedbedb..00000000
--- a/doc/metadata/rhel6/V-38550.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38550
-status: opt-in
-tag: auditd
----
-
-The audit rules which monitor ``chmod``, ``fchmod``, and ``fchmodat``
-syscalls can cause high CPU and I/O load during OpenStack-Ansible deployments
-and while updating packages with apt. By default, these rules are disabled.
-
-These audit rules can be enabled by setting any of the following variables:
-
-.. code-block:: yaml
-
- security_audit_DAC_chmod: yes
- security_audit_DAC_fchmod: yes
- security_audit_DAC_fchmodat: yes
diff --git a/doc/metadata/rhel6/V-38551.rst b/doc/metadata/rhel6/V-38551.rst
deleted file mode 100644
index 5f879a9c..00000000
--- a/doc/metadata/rhel6/V-38551.rst
+++ /dev/null
@@ -1,22 +0,0 @@
----
-id: V-38551
-status: exception - manual intervention
-tag: network
----
-
-Filtering IPv6 traffic is left up to the deployer to implement. The
-openstack-ansible roles don't configure IPv6 (at this time) and adding
-persistent ip6tables rules could harm a running system.
-
-However, deployers are strongly recommended to implement IPv6 filtering at the
-edges of the network via network devices. In addition, deployers should be
-aware that link-local IPv6 addresses are configured automatcally by the system
-and those addresses could open up new network paths for future attacks.
-
-For example, if IPv4 access was tightly controlled and segmented, hosts and/or
-containers could possibly communicate across these boundaries using IPv6
-link-local addresses. For more detailed information on this security topic,
-review Cisco's documentation titled `IPv6 Security Brief`_ that is available
-on their website.
-
-.. _IPv6 Security Brief: http://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/enterprise-ipv6-solution/white_paper_c11-678658.html
diff --git a/doc/metadata/rhel6/V-38552.rst b/doc/metadata/rhel6/V-38552.rst
deleted file mode 100644
index 7da11a1b..00000000
--- a/doc/metadata/rhel6/V-38552.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38552
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``fchown`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``fchown`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_fchown: yes
diff --git a/doc/metadata/rhel6/V-38553.rst b/doc/metadata/rhel6/V-38553.rst
deleted file mode 100644
index c6d222ad..00000000
--- a/doc/metadata/rhel6/V-38553.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38553
-status: exception - manual intervention
-tag: network
----
-
-Adding IPv6 firewalling on OpenStack hosts is left up to the deployer to
-configure. Deployers are urged to use proper network segmentation between
-their OpenStack infrastructure and virtual machines, which will mitigate
-many of the most critical threats.
diff --git a/doc/metadata/rhel6/V-38554.rst b/doc/metadata/rhel6/V-38554.rst
deleted file mode 100644
index f70173dc..00000000
--- a/doc/metadata/rhel6/V-38554.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38554
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``fchownat`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``fchownat`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_fchownat: yes
diff --git a/doc/metadata/rhel6/V-38555.rst b/doc/metadata/rhel6/V-38555.rst
deleted file mode 100644
index 23a9fe92..00000000
--- a/doc/metadata/rhel6/V-38555.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38555
-status: exception - manual intervention
-tag: network
----
-
-Adding IPv4 firewalling on OpenStack hosts is left up to the deployer to
-configure. Deployers are urged to use proper network segmentation between
-their OpenStack infrastructure and virtual machines, which will mitigate
-many of the most critical threats.
diff --git a/doc/metadata/rhel6/V-38556.rst b/doc/metadata/rhel6/V-38556.rst
deleted file mode 100644
index e245864f..00000000
--- a/doc/metadata/rhel6/V-38556.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38556
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``fremovexattr`` are disabled
-by default as they can generate an excessive amount of logs in a short period
-of time, especially during a deployment.
-
-Deployers can enable auditing for ``fremovexattr`` usage by setting the
-following Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_fremovexattr: yes
diff --git a/doc/metadata/rhel6/V-38557.rst b/doc/metadata/rhel6/V-38557.rst
deleted file mode 100644
index a770df81..00000000
--- a/doc/metadata/rhel6/V-38557.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38557
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``fsetxattr`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``fsetxattr`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_fsetxattr: yes
diff --git a/doc/metadata/rhel6/V-38558.rst b/doc/metadata/rhel6/V-38558.rst
deleted file mode 100644
index bc42996d..00000000
--- a/doc/metadata/rhel6/V-38558.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38558
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``lchown`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``lchown`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_lchown: yes
diff --git a/doc/metadata/rhel6/V-38559.rst b/doc/metadata/rhel6/V-38559.rst
deleted file mode 100644
index 77006cc8..00000000
--- a/doc/metadata/rhel6/V-38559.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38559
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``lremovexattr`` are disabled
-by default as they can generate an excessive amount of logs in a short period
-of time, especially during a deployment.
-
-Deployers can enable auditing for ``lremovexattr`` usage by setting the
-following Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_lremovexattr: yes
diff --git a/doc/metadata/rhel6/V-38560.rst b/doc/metadata/rhel6/V-38560.rst
deleted file mode 100644
index f30d30ac..00000000
--- a/doc/metadata/rhel6/V-38560.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38560
-status: exception - manual intervention
-tag: network
----
-
-Adding IPv4 firewalling on OpenStack hosts is left up to the deployer to
-configure. Deployers are urged to use proper network segmentation between
-their OpenStack infrastructure and virtual machines, which will mitigate
-many of the most critical threats.
diff --git a/doc/metadata/rhel6/V-38561.rst b/doc/metadata/rhel6/V-38561.rst
deleted file mode 100644
index 83dc479a..00000000
--- a/doc/metadata/rhel6/V-38561.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38561
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``lxsetxattr`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``lsetxattr`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_lsetxattr: yes
diff --git a/doc/metadata/rhel6/V-38563.rst b/doc/metadata/rhel6/V-38563.rst
deleted file mode 100644
index 16443b4f..00000000
--- a/doc/metadata/rhel6/V-38563.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38563
-status: implemented
-tag: auditd
----
-
-Audit rules are added in a task so that any events associated with the
-discretionary access controls (DAC) permission modifications are logged.
-The new audit rule will be loaded immediately with ``augenrules --load``.
diff --git a/doc/metadata/rhel6/V-38565.rst b/doc/metadata/rhel6/V-38565.rst
deleted file mode 100644
index cec0d930..00000000
--- a/doc/metadata/rhel6/V-38565.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38565
-status: opt-in
-tag: auditd
----
-
-The audit rules for permission changes made with ``setxattr`` are disabled by
-default as they can generate an excessive amount of logs in a short period of
-time, especially during a deployment.
-
-Deployers can enable auditing for ``lsetxattr`` usage by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_DAC_lsetxattr: yes
diff --git a/doc/metadata/rhel6/V-38566.rst b/doc/metadata/rhel6/V-38566.rst
deleted file mode 100644
index f6eafdc7..00000000
--- a/doc/metadata/rhel6/V-38566.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38566
-status: opt-in
-tag: auditd
----
-
-The audit rules for logging failed access attempts can generate significant
-amounts of log traffic in some environments. These rules are disabled by
-default.
-
-To opt-in for this change and enable audit logging for these events, adjust
-the following Ansible variable:
-
-.. code-block:: yaml
-
- security_auditd_failed_access: yes
diff --git a/doc/metadata/rhel6/V-38567.rst b/doc/metadata/rhel6/V-38567.rst
deleted file mode 100644
index a46e73e3..00000000
--- a/doc/metadata/rhel6/V-38567.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38567
-status: exception
-tag: file_perms
----
-
-Keeping the list of setuid/setgid applications up to date and adding the paths
-to those files within the ``audit.rules`` file is challenging. Deployers are
-urged to use setuid/setgid sparingly and carefully monitor all applications
-with those permissions set.
diff --git a/doc/metadata/rhel6/V-38568.rst b/doc/metadata/rhel6/V-38568.rst
deleted file mode 100644
index 20c4035c..00000000
--- a/doc/metadata/rhel6/V-38568.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38568
-status: implemented
-tag: auditd
----
-
-Rules are added for auditd to log successful filesystem mounts.
diff --git a/doc/metadata/rhel6/V-38569.rst b/doc/metadata/rhel6/V-38569.rst
deleted file mode 100644
index 47163ed1..00000000
--- a/doc/metadata/rhel6/V-38569.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38569
-status: exception
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38570.rst b/doc/metadata/rhel6/V-38570.rst
deleted file mode 100644
index b25f7202..00000000
--- a/doc/metadata/rhel6/V-38570.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38570
-status: exception
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38571.rst b/doc/metadata/rhel6/V-38571.rst
deleted file mode 100644
index 26729681..00000000
--- a/doc/metadata/rhel6/V-38571.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38571
-status: exception
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38572.rst b/doc/metadata/rhel6/V-38572.rst
deleted file mode 100644
index 0d2c9777..00000000
--- a/doc/metadata/rhel6/V-38572.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38572
-status: exception
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38573.rst b/doc/metadata/rhel6/V-38573.rst
deleted file mode 100644
index 82c80797..00000000
--- a/doc/metadata/rhel6/V-38573.rst
+++ /dev/null
@@ -1,43 +0,0 @@
----
-id: V-38573
-status: opt-in
-tag: auth
----
-
-Adjusting PAM configurations is very risky since it affects how all users
-authenticate. In addition, ``pam_faillock.so`` isn't available in Ubuntu.
-
-Another option is to utilize ``pam_tally`` to deny logins after failed
-attempts. Adjusting PAM configurations automatically can disrupt the operation
-of production systems, so this is left up to the deployer to configure.
-For more details on how to configure ``pam_tally``, refer to `this AskUbuntu
-article about pam_tally`_.
-
-Another alternative is `fail2ban`_. Read the notes below for more tails on
-this option.
-
-The Ansible tasks will install `fail2ban`_ and configure it to ban IP
-addresses using the following logic
-
-* The IP has attempted three logins in the last 10 minutes and all have failed
-* That IP will be banned for 15 minutes (via iptables rules)
-
-Deployers must opt-in for fail2ban to be installed and configured. To opt-in,
-set the ``security_install_fail2ban`` Ansible variable to ``yes``. The time
-period for bans can also be configured (in seconds) via tha
-``security_fail2ban_bantime`` variable:
-
-.. code-block:: yaml
-
- security_install_fail2ban: yes
- security_fail2ban_bantime: 900
-
-**NOTE:** Fail2ban can only review authentication attempts for services that
-listen on the network, such as ssh. It has no control over physical consoles.
-Deployers are strongly urged to use stong physical security policies to
-prevent unauthorized users from accessing server consoles. In addition,
-deployers must secure out-of-band access methods, like IPMI, as they can be
-vectors for physical console access as well.
-
-.. _this AskUbuntu article about pam_tally: http://askubuntu.com/questions/59459/how-do-i-enable-account-lockout-using-pam-tally
-.. _fail2ban: https://en.wikipedia.org/wiki/Fail2ban
diff --git a/doc/metadata/rhel6/V-38574.rst b/doc/metadata/rhel6/V-38574.rst
deleted file mode 100644
index 9db6745d..00000000
--- a/doc/metadata/rhel6/V-38574.rst
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: V-38574
-status: implemented
-tag: auth
----
-
-The STIG requires SHA512 to be used for hashing password since it is
-in the list of FIPS 140-2 approved hashing algorithms. This is also the
-default in Ubuntu 14.04, Ubuntu 16.04, and CentOS 7.
-
-The Ansible tasks will verify that the secure default is still set in the
-system's PAM configuration. If it has been altered, the playbook will fail
-and display an error.
-
-Further reading:
-
-* `FIPS 140-2 on Wikipedia`_
-* `FIPS 140-2 from NIST`_
-
-.. _FIPS 140-2 on Wikipedia: https://en.wikipedia.org/wiki/FIPS_140-2
-.. _FIPS 140-2 from NIST: http://csrc.nist.gov/groups/STM/cmvp/standards.html
diff --git a/doc/metadata/rhel6/V-38575.rst b/doc/metadata/rhel6/V-38575.rst
deleted file mode 100644
index 5248c8c5..00000000
--- a/doc/metadata/rhel6/V-38575.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38575
-status: opt-in
-tag: auditd
----
-
-The audit rules for monitoring deleted files can cause very high system load
-during OpenStack-Ansible deployments and during package updates using apt.
-It's recommended that deployers keep these rules disabled unless they're
-explicitly required.
-
-These rules are disabled by default, but they can be enabled by setting the
-following Ansible variable:
-
-.. code-block:: yaml
-
- security_audit_deletions: yes
diff --git a/doc/metadata/rhel6/V-38576.rst b/doc/metadata/rhel6/V-38576.rst
deleted file mode 100644
index a9f49bd9..00000000
--- a/doc/metadata/rhel6/V-38576.rst
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: V-38576
-status: implemented
-tag: auth
----
-
-The STIG requires SHA512 to be used for hashing password since it is
-in the list of FIPS 140-2 approved hashing algorithms. This is also the
-default in Ubuntu 14.04, Ubuntu 16.04, and CentOS 7.
-
-The Ansible tasks will verify that the secure default is still set in
-``/etc/login.defs``. If it has been altered, the playbook will fail
-and display an error.
-
-Further reading:
-
-* `FIPS 140-2 on Wikipedia`_
-* `FIPS 140-2 from NIST`_
-
-.. _FIPS 140-2 on Wikipedia: https://en.wikipedia.org/wiki/FIPS_140-2
-.. _FIPS 140-2 from NIST: http://csrc.nist.gov/groups/STM/cmvp/standards.html
diff --git a/doc/metadata/rhel6/V-38577.rst b/doc/metadata/rhel6/V-38577.rst
deleted file mode 100644
index 4d3f4b1b..00000000
--- a/doc/metadata/rhel6/V-38577.rst
+++ /dev/null
@@ -1,26 +0,0 @@
----
-id: V-38577
-status: implemented
-tag: auth
----
-
-The STIG requires SHA512 to be used for hashing password since it is
-in the list of FIPS 140-2 approved hashing algorithms. This is also the
-default in Ubuntu 14.04, Ubuntu 16.04, and CentOS 7.
-
-The ``libuser`` package isn't installed by default in Ubuntu or via
-openstack-ansible. The Ansible tasks will do the following:
-
-* Check to see if libuser is installed
-* If it's installed, it will check for the password hashing algorithm in
- ``/etc/libuser.conf``
-* If libuser is installed **and** the password hashing algorithm isn't SHA512,
- an error will be printed and the playbook will fail
-
-Further reading:
-
-* `FIPS 140-2 on Wikipedia`_
-* `FIPS 140-2 from NIST`_
-
-.. _FIPS 140-2 on Wikipedia: https://en.wikipedia.org/wiki/FIPS_140-2
-.. _FIPS 140-2 from NIST: http://csrc.nist.gov/groups/STM/cmvp/standards.html
diff --git a/doc/metadata/rhel6/V-38578.rst b/doc/metadata/rhel6/V-38578.rst
deleted file mode 100644
index 217e5f42..00000000
--- a/doc/metadata/rhel6/V-38578.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38578
-status: implemented
-tag: auditd
----
-
-Rules are added to audit changes to ``/etc/sudoers``.
diff --git a/doc/metadata/rhel6/V-38579.rst b/doc/metadata/rhel6/V-38579.rst
deleted file mode 100644
index 216eab49..00000000
--- a/doc/metadata/rhel6/V-38579.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38579
-status: implemented
-tag: boot
----
-
-Ubuntu 14.04 sets the ownership on ``/boot/grub/grub.cfg`` to root by default.
-The Ansible task will ensure that the secure default is maintained.
-
-In Ubuntu 16.04 and CentOS 7, the bootloader configuration files in
-``/boot/grub2`` are owned by the root user by default.
-
-Deployers should monitor these files for changes in ownership, permissions and
-contents. The ``aide`` daemon is installed by the security role to monitor
-these files.
diff --git a/doc/metadata/rhel6/V-38580.rst b/doc/metadata/rhel6/V-38580.rst
deleted file mode 100644
index 787d52ba..00000000
--- a/doc/metadata/rhel6/V-38580.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38580
-status: implemented
-tag: auditd
----
-
-Rules will be added to auditd so that any kernel module loading or unloading
-events will be logged.
diff --git a/doc/metadata/rhel6/V-38581.rst b/doc/metadata/rhel6/V-38581.rst
deleted file mode 100644
index a6504651..00000000
--- a/doc/metadata/rhel6/V-38581.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38581
-status: implemented
-tag: file_perms
----
-
-The group ownership for ``/boot/grub/grub.cfg`` will be set to `root`.
diff --git a/doc/metadata/rhel6/V-38582.rst b/doc/metadata/rhel6/V-38582.rst
deleted file mode 100644
index 71d8abdd..00000000
--- a/doc/metadata/rhel6/V-38582.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38582
-status: implemented
-tag: services
----
-
-If the ``xinetd`` package is installed, it will be stopped immediately and
-will not start on the next boot. No action is taken if xinetd isn't installed.
-
-To opt-out of this change, simply adjust the following configuration item to
-``no``:
-
-.. code-block:: yaml
-
- security_disable_xinetd: no
diff --git a/doc/metadata/rhel6/V-38583.rst b/doc/metadata/rhel6/V-38583.rst
deleted file mode 100644
index f91bf30b..00000000
--- a/doc/metadata/rhel6/V-38583.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38583
-status: exception
-tag: boot
----
-
-For Ubuntu 14.04, the permissions on ``/boot/grub/grub.cfg`` will be set to
-``0644``.
-
-Ubuntu 16.04 and CentOS 7 use grub2. The configuration files in ``/boot/grub2``
-are regenerated when new kernels are installed or when the root user
-regenerates the configuration file. File ownership and permissions are set
-appropriately after each of these events.
diff --git a/doc/metadata/rhel6/V-38584.rst b/doc/metadata/rhel6/V-38584.rst
deleted file mode 100644
index c968faa9..00000000
--- a/doc/metadata/rhel6/V-38584.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38584
-status: implemented
-tag: services
----
-
-The ``xinetd`` service will be removed by the Ansible tasks, if it is
-installed. To opt-out of this change, adjust the following variable
-to ``no``:
-
-.. code-block:: yaml
-
- security_remove_xinetd: no
diff --git a/doc/metadata/rhel6/V-38585.rst b/doc/metadata/rhel6/V-38585.rst
deleted file mode 100644
index 0d0dc020..00000000
--- a/doc/metadata/rhel6/V-38585.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38585
-status: exception - manual intervention
-tag: boot
----
-
-Configuring a password for the bootloader is left up to the deployer to
-configure. Each deployer should consider the potential damage to their
-system should someone gain unauthorized physical access at the server
-itself or via an out-of-band management solution (like IPMI, DRAC, or iLO).
diff --git a/doc/metadata/rhel6/V-38586.rst b/doc/metadata/rhel6/V-38586.rst
deleted file mode 100644
index 2a10ea60..00000000
--- a/doc/metadata/rhel6/V-38586.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38586
-status: exception
-tag: boot
----
-
-As with V-38585, this is left to the deployer to configure based on their
-exposure to physical threats. If there is a concern around a user gaining
-unauthorized physical access and/or gaining access through an out-of-band
-access mechanism, deployers are strongly urged to consider applying this
-security configuration.
diff --git a/doc/metadata/rhel6/V-38587.rst b/doc/metadata/rhel6/V-38587.rst
deleted file mode 100644
index a7885c4c..00000000
--- a/doc/metadata/rhel6/V-38587.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38587
-status: implemented
-tag: services
----
-
-The ``telnetd`` service will be removed by the Ansible tasks, if it is
-installed. To opt-out of this change, adjust the following variable
-to ``no``:
-
-.. code-block:: yaml
-
- security_remove_telnet_server: no
diff --git a/doc/metadata/rhel6/V-38588.rst b/doc/metadata/rhel6/V-38588.rst
deleted file mode 100644
index 9c448178..00000000
--- a/doc/metadata/rhel6/V-38588.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38588
-status: exception
-tag: boot
----
-
-As with V-38585, this configuration is left up to the deployer to determine
-their risk of attacks via physical access or out-of-band access to a server
-console.
diff --git a/doc/metadata/rhel6/V-38589.rst b/doc/metadata/rhel6/V-38589.rst
deleted file mode 100644
index 07246fef..00000000
--- a/doc/metadata/rhel6/V-38589.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38589
-status: implemented
-tag: services
----
-
-Running a telnet daemon isn't recommended under most situations, so the telnet
-server package will be removed from the system if it is installed. The telnet
-server is removed by the Ansible tasks for V-38587, so no action is required
-here.
diff --git a/doc/metadata/rhel6/V-38590.rst b/doc/metadata/rhel6/V-38590.rst
deleted file mode 100644
index 7ddbf1fa..00000000
--- a/doc/metadata/rhel6/V-38590.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38590
-status: exception
-tag: console
----
-
-While providing text screen locking does add additional security, deployers
-are strongly urged to limit physical access and out-of-band access to
-servers where someone else might be able to join a user's session when
-they step away. In addition, if a user is logging in remotely via ssh,
-they should lock their entire workstation to prevent unauthorized access
-to their system as well as the systems they are actively accessing.
diff --git a/doc/metadata/rhel6/V-38591.rst b/doc/metadata/rhel6/V-38591.rst
deleted file mode 100644
index 6449580b..00000000
--- a/doc/metadata/rhel6/V-38591.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38591
-status: implemented
-tag: services
----
-
-The ``rshd`` service will be removed by the Ansible tasks, if it is
-installed. To opt-out of this change, adjust the following variable
-to ``no``:
-
-.. code-block:: yaml
-
- security_remove_rsh_server: no
diff --git a/doc/metadata/rhel6/V-38592.rst b/doc/metadata/rhel6/V-38592.rst
deleted file mode 100644
index 1c607280..00000000
--- a/doc/metadata/rhel6/V-38592.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38592
-status: exception - manual intervention
-tag: auth
----
-
-Adjusting PAM configurations on a running system carries a fair amount of risk,
-and deployers are urged to rely upon ssh keys or centralized authentication
-for user authentication.
-
-Centralized authentication systems provide a benefit of locking a user's
-account in all systems they have access to, rather than locking access to only
-one system.
diff --git a/doc/metadata/rhel6/V-38593.rst b/doc/metadata/rhel6/V-38593.rst
deleted file mode 100644
index 76d9f30c..00000000
--- a/doc/metadata/rhel6/V-38593.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38593
-status: implemented
-tag: console
----
-
-A default warning banner will replace the contents of ``/etc/issue.net``. To
-configure the banner, simply edit ``files/login_banner.txt``.
diff --git a/doc/metadata/rhel6/V-38594.rst b/doc/metadata/rhel6/V-38594.rst
deleted file mode 100644
index 3bf7d906..00000000
--- a/doc/metadata/rhel6/V-38594.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38594
-status: implemented
-tag: services
----
-
-Running a rsh daemon isn't recommended under most situations, so the rsh server
-package will be removed from the system if it is installed. The rsh server is
-removed by the Ansible tasks for V-38591, so no action is required here.
diff --git a/doc/metadata/rhel6/V-38595.rst b/doc/metadata/rhel6/V-38595.rst
deleted file mode 100644
index cd2c18f1..00000000
--- a/doc/metadata/rhel6/V-38595.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38595
-status: exception - manual intervention
-tag: auth
----
-
-Use of additional factors for authentication is left up to the deployer, but
-it is strongly recommended.
diff --git a/doc/metadata/rhel6/V-38596.rst b/doc/metadata/rhel6/V-38596.rst
deleted file mode 100644
index 527e6476..00000000
--- a/doc/metadata/rhel6/V-38596.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38596
-status: implemented
-tag: kernel
----
-
-The Ansible tasks will set ``kernel.randomize_va_space`` to ``2`` immediately
-and will also ensure that the setting is applied on the next boot. This setting
-is currently the default in Ubuntu 14.04, Ubuntu 16.04, and CentOS 7.
diff --git a/doc/metadata/rhel6/V-38597.rst b/doc/metadata/rhel6/V-38597.rst
deleted file mode 100644
index 896c0ffd..00000000
--- a/doc/metadata/rhel6/V-38597.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38597
-status: implemented
-tag: kernel
----
-
-Non-Executable Memory (NX) is the successor to ExecShield, and it is enabled by
-default on Ubuntu 14.04, Ubuntu 16.04, and CentOS 7.
-
-For more information, refer to `Ubuntu's security feature documentation on
-NX`_.
-
-.. _Ubuntu's security feature documentation on NX: https://wiki.ubuntu.com/Security/Features#nx
diff --git a/doc/metadata/rhel6/V-38598.rst b/doc/metadata/rhel6/V-38598.rst
deleted file mode 100644
index 7db843c9..00000000
--- a/doc/metadata/rhel6/V-38598.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38598
-status: implemented
-tag: services
----
-
-On Ubuntu, the ``rexecd`` daemon is part of the package that contains the
-``rsh`` daemon. CentOS 7 doesn't provide the ``rexecd`` daemon in any packages.
-
-Running a rsh daemon isn't recommended under most situations, so the rsh server
-package will be removed from the system if it is installed. The rsh server is
-removed by the Ansible tasks for V-38591, so no action is required here.
diff --git a/doc/metadata/rhel6/V-38599.rst b/doc/metadata/rhel6/V-38599.rst
deleted file mode 100644
index d7fb24ae..00000000
--- a/doc/metadata/rhel6/V-38599.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38599
-status: implemented
-tag: services
----
-
-If the ``vsftpd`` package is installed, a login banner will be applied so that
-users will see if after logging in. This package isn't installed by default
-in Ubuntu 14.04 and it isn't installed by openstack-ansible either.
diff --git a/doc/metadata/rhel6/V-38600.rst b/doc/metadata/rhel6/V-38600.rst
deleted file mode 100644
index 0c625931..00000000
--- a/doc/metadata/rhel6/V-38600.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38600
-status: implemented
-tag: kernel
----
-
-The Ansible tasks will disable the sending of ICMPv4 redirects by setting
-the sysctl variable ``net.ipv4.conf.default.send_redirects`` to ``0``. However,
-bridging still requires redirects to be enabled, so those interfaces won't
-be affected by this change.
diff --git a/doc/metadata/rhel6/V-38601.rst b/doc/metadata/rhel6/V-38601.rst
deleted file mode 100644
index 3634d662..00000000
--- a/doc/metadata/rhel6/V-38601.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38601
-status: implemented
-tag: kernel
----
-
-The Ansible tasks will set ``net.ipv4.conf.all.send_redirects`` to ``0`` so
-that hosts will stop sending ICMPv4 redirects on all interfaces.
diff --git a/doc/metadata/rhel6/V-38602.rst b/doc/metadata/rhel6/V-38602.rst
deleted file mode 100644
index c284b23d..00000000
--- a/doc/metadata/rhel6/V-38602.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38602
-status: implemented
-tag: services
----
-
-In Ubuntu, the ``rlogind`` daemon is part of the package that contains the
-``rsh`` daemon. CentOS 7 does not provide the ``rlogind`` daemon in any
-packages.
-
-Running a rsh daemon isn't recommended under most situations, so the rsh server
-package will be removed from the system if it is installed. The rsh server is
-removed by the Ansible tasks for V-38591, so no action is required here.
diff --git a/doc/metadata/rhel6/V-38603.rst b/doc/metadata/rhel6/V-38603.rst
deleted file mode 100644
index c1ae31b9..00000000
--- a/doc/metadata/rhel6/V-38603.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38603
-status: implemented
-tag: services
----
-
-This packages is named differently depending on the Linux distribution:
-
-* Ubuntu 14.04: ``nis``
-* Ubuntu 16.04: ``nis``
-* CentOS 7: ``ypserv``
-
-The Ansible tasks will remove the appropriate package if it is installed. To
-opt-out of this change, adjust the following configuration variable to ``no``:
-
-.. code-block:: yaml
-
- security_remove_ypserv: no
diff --git a/doc/metadata/rhel6/V-38604.rst b/doc/metadata/rhel6/V-38604.rst
deleted file mode 100644
index fcb4aa24..00000000
--- a/doc/metadata/rhel6/V-38604.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38604
-status: implemented
-tag: services
----
-
-The ``ypbind`` service is removed entirely as part of V-38603.
diff --git a/doc/metadata/rhel6/V-38605.rst b/doc/metadata/rhel6/V-38605.rst
deleted file mode 100644
index 78ad7de2..00000000
--- a/doc/metadata/rhel6/V-38605.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38605
-status: implemented
-tag: services
----
-
-The ``cron`` service is running by default in Ubuntu 14.04, Ubuntu 16.04, and
-CentOS 7. It is required for various OpenStack services to function properly.
-The Ansible tasks in this role will ensure that ``cron`` is running and is
-configured to start at boot time.
diff --git a/doc/metadata/rhel6/V-38606.rst b/doc/metadata/rhel6/V-38606.rst
deleted file mode 100644
index 42e7a455..00000000
--- a/doc/metadata/rhel6/V-38606.rst
+++ /dev/null
@@ -1,20 +0,0 @@
----
-id: V-38606
-status: implemented
-tag: services
----
-
-The package containing the tftp daemon has different names depending on the
-Linux distribution:
-
-* Ubuntu 14.04: ``tftpd``
-* Ubuntu 16.04: ``tftpd``
-* CentOS 7: ``tftp-server``
-
-The Ansible tasks will select the appropriate package for the Linux
-distribution and remove the package. To opt-out, adjust the following
-configuration variable to ``no``:
-
-.. code-block:: yaml
-
- security_remove_tftp_server: no
diff --git a/doc/metadata/rhel6/V-38607.rst b/doc/metadata/rhel6/V-38607.rst
deleted file mode 100644
index 4486f709..00000000
--- a/doc/metadata/rhel6/V-38607.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38607
-status: implemented
-tag: sshd
----
-
-The tasks in ``sshd.yml`` will ensure that SSH requires all connections to use
-protocol version 2.
diff --git a/doc/metadata/rhel6/V-38608.rst b/doc/metadata/rhel6/V-38608.rst
deleted file mode 100644
index 7dc2b033..00000000
--- a/doc/metadata/rhel6/V-38608.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38608
-status: implemented
-tag: sshd
----
-
-The ``ClientAliveInterval`` in the ssh configuration will be set to 15 minutes
-as recommended by the STIG. However, this time is configurable by setting
-``security_ssh_client_alive_interval`` to another value, in seconds.
-
-To change to 10 minutes, adjust the configuration item to 600 seconds:
-
-.. code-block:: yaml
-
- security_ssh_client_alive_interval: 600
diff --git a/doc/metadata/rhel6/V-38609.rst b/doc/metadata/rhel6/V-38609.rst
deleted file mode 100644
index 7baf02dc..00000000
--- a/doc/metadata/rhel6/V-38609.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38609
-status: implemented
-tag: services
----
-
-The package containing the ``tftpd`` service is removed by V-38606.
diff --git a/doc/metadata/rhel6/V-38610.rst b/doc/metadata/rhel6/V-38610.rst
deleted file mode 100644
index 56b9dc50..00000000
--- a/doc/metadata/rhel6/V-38610.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38610
-status: implemented
-tag: sshd
----
-
-The STIG recommends setting ``ClientAliveCountMax`` to ensure that ssh
-connections will close after reaching the ``ClientAliveInterval`` one
-time. To change this setting, simply change this configuration option
-to something other than ``0``:
-
-.. code-block:: yaml
-
- security_ssh_client_alive_count_max: 0
diff --git a/doc/metadata/rhel6/V-38611.rst b/doc/metadata/rhel6/V-38611.rst
deleted file mode 100644
index 4a7e3ad4..00000000
--- a/doc/metadata/rhel6/V-38611.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38611
-status: implemented
-tag: sshd
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 configure the ssh daemon so that rsh's
-``.rhosts`` files are ignored by default. The Ansible tasks will ensure that
-this setting has not changed from the default.
diff --git a/doc/metadata/rhel6/V-38612.rst b/doc/metadata/rhel6/V-38612.rst
deleted file mode 100644
index 397dddf0..00000000
--- a/doc/metadata/rhel6/V-38612.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38612
-status: implemented
-tag: sshd
----
-
-The Ansible tasks in the security role ensure that the ssh daemon does not
-allow host based authentication.
diff --git a/doc/metadata/rhel6/V-38613.rst b/doc/metadata/rhel6/V-38613.rst
deleted file mode 100644
index 5c89a689..00000000
--- a/doc/metadata/rhel6/V-38613.rst
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: V-38613
-status: opt-in
-tag: sshd
----
-
-Although the STIG recommends disabling root logins via ssh, the default in
-this role is to allow it with a key authentication. The OpenStack-Ansible
-deployment uses the root user by default at this time, but that may change
-later and allow for this configuration to be set.
-
-To disallow root logins via ssh, simply adjust this configuration variable:
-
-.. code-block:: yaml
-
- security_ssh_permit_root_login: 'no'
-
-**NOTE:** The quotes around ``'no'`` or ``'yes'`` are very important. Ansible
-will treat ``no`` and ``yes`` as booleans by default and that will cause a
-``True`` to land in your sshd configuration file. This will causes errors
-during sshd's startup.
diff --git a/doc/metadata/rhel6/V-38614.rst b/doc/metadata/rhel6/V-38614.rst
deleted file mode 100644
index 8245b005..00000000
--- a/doc/metadata/rhel6/V-38614.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38614
-status: implemented
-tag: sshd
----
-
-The tasks in ``sshd.yml`` will ensure that SSH does not allow empty passwords.
diff --git a/doc/metadata/rhel6/V-38615.rst b/doc/metadata/rhel6/V-38615.rst
deleted file mode 100644
index 1900cac6..00000000
--- a/doc/metadata/rhel6/V-38615.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38615
-status: implemented
-tag: sshd
----
-
-The ssh daemon will be configured so that a warning banner will be displayed
-after login. To configure the banner, edit the ``files/login_banner.txt``
-file.
diff --git a/doc/metadata/rhel6/V-38616.rst b/doc/metadata/rhel6/V-38616.rst
deleted file mode 100644
index 4ae1ae14..00000000
--- a/doc/metadata/rhel6/V-38616.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38616
-status: implemented
-tag: sshd
----
-
-The ssh daemon will be configured to disallow user environment settings that
-may allow users to bypass access restrictions in some cases.
diff --git a/doc/metadata/rhel6/V-38617.rst b/doc/metadata/rhel6/V-38617.rst
deleted file mode 100644
index 7a87b7e8..00000000
--- a/doc/metadata/rhel6/V-38617.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38617
-status: implemented
-tag: sshd
----
-
-The ssh daemon will be configured to use the approved list of ciphers as
-recommended by the STIG.
diff --git a/doc/metadata/rhel6/V-38618.rst b/doc/metadata/rhel6/V-38618.rst
deleted file mode 100644
index ff079f13..00000000
--- a/doc/metadata/rhel6/V-38618.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38618
-status: implemented
-tag: services
----
-
-The avahi daemon will be disabled if the package is installed.
diff --git a/doc/metadata/rhel6/V-38619.rst b/doc/metadata/rhel6/V-38619.rst
deleted file mode 100644
index 4b27f4a9..00000000
--- a/doc/metadata/rhel6/V-38619.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38619
-status: implemented
-tag: misc
----
-
-The Ansible tasks will check for ``.netrc`` files in ``/root`` and
-``/home`` on the system and print a failure warning if any are found.
diff --git a/doc/metadata/rhel6/V-38620.rst b/doc/metadata/rhel6/V-38620.rst
deleted file mode 100644
index 0014c766..00000000
--- a/doc/metadata/rhel6/V-38620.rst
+++ /dev/null
@@ -1,34 +0,0 @@
----
-id: V-38620
-status: implemented
-tag: misc
----
-
-The ``chrony`` service is installed to manage clock synchronization for hosts
-and to serve as an NTP server for NTP clients. Chrony was chosen over ntpd
-because it's actively maintained and has some enhancements for virtualized
-environments.
-
-Deployers can opt out of the ``chrony`` installation by setting the following
-Ansible variable:
-
-.. code-block:: yaml
-
- security_enable_chrony: no
-
-There are two configurations available for users to adjust chrony's default
-configuration:
-
-The ``security_ntp_servers`` variable is a list of NTP servers that
-chrony should use to synchronize time. They are set to North American NTP
-servers by default.
-
-The ``security_allowed_ntp_subnets`` variable is a list of subnets (in CIDR
-notation) that are allowed to reach your servers running chrony. A sane
-default is chosen (all RFC1918 networks are allowed), but this can be easily
-adjusted.
-
-For more information on chrony, review the `chrony documentation`_ at the
-upstream site, or run `man chrony` on a host with chrony installed.
-
-.. _chrony documentation: http://chrony.tuxfamily.org/faq.html
diff --git a/doc/metadata/rhel6/V-38621.rst b/doc/metadata/rhel6/V-38621.rst
deleted file mode 100644
index 0dd69d4e..00000000
--- a/doc/metadata/rhel6/V-38621.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38621
-status: implemented
-tag: misc
----
-
-**Fixed by another STIG**
-
-The Ansible tasks for V-38620 will configure the ``chrony`` daemon and allow
-deployers to specify their NTP servers. Deployers that are subject to US DoD
-requirements will need to use DoD-approved time servers. Refer to the STIG in
-the STIG viewer using the link above this "Developer Notes" section.
diff --git a/doc/metadata/rhel6/V-38622.rst b/doc/metadata/rhel6/V-38622.rst
deleted file mode 100644
index b10105c2..00000000
--- a/doc/metadata/rhel6/V-38622.rst
+++ /dev/null
@@ -1,25 +0,0 @@
----
-id: V-38622
-status: implemented
-tag: mail
----
-
-The STIG requires that postfix only listens on the localhost so that it isn't
-abused as a mail relay. The Ansible task will adjust the ``inet_interfaces``
-line in the Postfix configuration and restart postfix if the line is changed.
-
-Although it's not common, some deployers may need to configure hosts so they
-can receive email over the network. In that case, deployers would need to set
-the following Ansible variable:
-
-.. code-block:: yaml
-
- security_postfix_inet_interfaces: all
-
-Note that postfix can have ``inet_interfaces`` set to ``localhost`` and it can
-still send email on the network. The ``inet_interfaces`` directive only
-controls where postfix **listens** for incoming email.
-
-For more information, review the postfix documentation for `inet_interfaces`_.
-
-.. _inet_interfaces: http://www.postfix.org/postconf.5.html#inet_interfaces
diff --git a/doc/metadata/rhel6/V-38623.rst b/doc/metadata/rhel6/V-38623.rst
deleted file mode 100644
index 0cac5a10..00000000
--- a/doc/metadata/rhel6/V-38623.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38623
-status: implemented
-tag: file_perms
----
-
-The mode on rsyslog files is set to ``0640`` by default in Ubuntu 14.04 and
-Ubuntu 16.04 by default. CentOS 7 sets the mode to ``0600`` by default. The
-Ansible tasks will adjust the rsyslog configuration so that any new log files
-will have the mode set to ``0600``.
-
-This will take effect the next time that log files are rotated with
-``logrotate`` (configured in V-38624). Deployers can also make this change
-manually with ``chmod``.
diff --git a/doc/metadata/rhel6/V-38624.rst b/doc/metadata/rhel6/V-38624.rst
deleted file mode 100644
index d03289e5..00000000
--- a/doc/metadata/rhel6/V-38624.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38624
-status: implemented
-tag: misc
----
-
-The STIG requires that system logs are rotated daily, but the check only
-involves verifying that logrotate is installed and activated by cron. The
-openstack-ansible project already configures weekly log rotation with
-compression. For high-traffic logging environments, changing the frequency
-to weekly in ``/etc/logrotate.conf`` may help.
diff --git a/doc/metadata/rhel6/V-38625.rst b/doc/metadata/rhel6/V-38625.rst
deleted file mode 100644
index ed304a9c..00000000
--- a/doc/metadata/rhel6/V-38625.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38625
-status: exception - manual intervention
-tag: auth
----
-
-Deployers that use LDAP authentication for systems are strongly urged to use
-TLS connectivity between client hosts and LDAP servers to prevent eavesdroppers
-on the network from reading the authentication attempts as they are made. The
-certificates on the LDAP server must be trusted by each client.
-
-The tasks in the security role do not adjust the LDAP configuration since this
-could disrupt future authentication attempts.
diff --git a/doc/metadata/rhel6/V-38626.rst b/doc/metadata/rhel6/V-38626.rst
deleted file mode 100644
index d1dda851..00000000
--- a/doc/metadata/rhel6/V-38626.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38626
-status: exception - manual intervention
-tag: auth
----
-
-Deployers that use LDAP authentication for systems are strongly urged to use
-TLS connectivity between client hosts and LDAP servers to prevent eavesdroppers
-on the network from reading the authentication attempts as they are made. The
-certificates on the LDAP server must be trusted by each client.
-
-The tasks in the security role do not adjust the LDAP configuration since this
-could disrupt future authentication attempts.
diff --git a/doc/metadata/rhel6/V-38627.rst b/doc/metadata/rhel6/V-38627.rst
deleted file mode 100644
index d433da61..00000000
--- a/doc/metadata/rhel6/V-38627.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38627
-status: implemented
-tag: services
----
-
-The STIG requires that any LDAP server packages on the system are removed.
-The Ansible role will remove ``slapd`` from the server if it is present.
-
-To opt-out of this change, set the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_remove_ldap_server: no
diff --git a/doc/metadata/rhel6/V-38628.rst b/doc/metadata/rhel6/V-38628.rst
deleted file mode 100644
index bd14c863..00000000
--- a/doc/metadata/rhel6/V-38628.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38628
-status: implemented
-tag: auditd
----
-
-This STIG requirement overlaps with V-38632.
diff --git a/doc/metadata/rhel6/V-38629.rst b/doc/metadata/rhel6/V-38629.rst
deleted file mode 100644
index 07898e8d..00000000
--- a/doc/metadata/rhel6/V-38629.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38629
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38630.rst b/doc/metadata/rhel6/V-38630.rst
deleted file mode 100644
index d9e79c71..00000000
--- a/doc/metadata/rhel6/V-38630.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38630
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38631.rst b/doc/metadata/rhel6/V-38631.rst
deleted file mode 100644
index e54ad5e9..00000000
--- a/doc/metadata/rhel6/V-38631.rst
+++ /dev/null
@@ -1,7 +0,0 @@
----
-id: V-38631
-status: implemented
-tag: auditd
----
-
-This STIG requirement overlaps with V-38632.
diff --git a/doc/metadata/rhel6/V-38632.rst b/doc/metadata/rhel6/V-38632.rst
deleted file mode 100644
index 21d09ee1..00000000
--- a/doc/metadata/rhel6/V-38632.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38632
-status: implemented
-tag: auditd
----
-
-The tasks in auth.yml will install `auditd`_ and ensure it is running.
-
-.. _auditd: http://people.redhat.com/sgrubb/audit/
diff --git a/doc/metadata/rhel6/V-38633.rst b/doc/metadata/rhel6/V-38633.rst
deleted file mode 100644
index 721e6211..00000000
--- a/doc/metadata/rhel6/V-38633.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38633
-status: implemented
-tag: auditd
----
-
-The default setting for ``security_max_log_file`` in Ubuntu 14.04, Ubuntu
-16.04, and CentOS 7 matches the STIG requirement of rotating logs when they
-reach 6MB. The Ansible task for this STIG requirement ensures that the secure
-default is maintained.
-
-Deployers who want to exceed the STIG guideline can increase the size of logs
-by adjusting the following Ansible variable:
-
-.. code-block:: yaml
-
- security_max_log_file: 6
diff --git a/doc/metadata/rhel6/V-38634.rst b/doc/metadata/rhel6/V-38634.rst
deleted file mode 100644
index c42a7235..00000000
--- a/doc/metadata/rhel6/V-38634.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38634
-status: implemented
-tag: auditd
----
-
-The default action for ``security_max_log_file_action`` on Ubuntu 14.04, Ubuntu
-16.04, and CentOS 7 is to rotate the logs. This meets the STIG requirements and
-the Ansible task will ensure that the secure default is maintained.
-
-Use caution when changing this option. Certain values, like ``SUSPEND`` will
-cause the audit daemon to lock the machine when the maximum size for a log
-file is reached. Review the audit documentation carefully before making
-adjustments.
diff --git a/doc/metadata/rhel6/V-38635.rst b/doc/metadata/rhel6/V-38635.rst
deleted file mode 100644
index b2fae013..00000000
--- a/doc/metadata/rhel6/V-38635.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38635
-status: implemented
-tag: auditd
----
-
-Audit rules are added in a task so that any events associated with altering
-system time are logged. The new audit rule will be loaded immediately with
-``augenrules --load``.
diff --git a/doc/metadata/rhel6/V-38636.rst b/doc/metadata/rhel6/V-38636.rst
deleted file mode 100644
index d09cb184..00000000
--- a/doc/metadata/rhel6/V-38636.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38636
-status: implemented
-tag: auditd
----
-
-Ubuntu keeps 5 rotated logs with the ``security_num_logs`` option and this
-meets the STIG requirement. The Ansible task will ensure that the secure
-default is maintained.
-
-Deployers who want to allow logs to grow to larger sizes prior to rotation can
-adjust the following Ansible variable:
-
-.. code-block:: yaml
-
- security_num_logs: 5
diff --git a/doc/metadata/rhel6/V-38637.rst b/doc/metadata/rhel6/V-38637.rst
deleted file mode 100644
index 1fbd0b39..00000000
--- a/doc/metadata/rhel6/V-38637.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38637
-status: implemented
-tag: auditd
----
-
-The auditd package is verified with ``debsums`` in Ubuntu and with ``rpm`` in
-CentOS. The playbook will fail immediately if any of the files from the auditd
-package have been altered. This could be the sign of a system compromise.
-
-.. note::
-
- If the ``debsums`` package isn't installed on Ubuntu, the Ansible task will
- install it during the playbook run.
diff --git a/doc/metadata/rhel6/V-38638.rst b/doc/metadata/rhel6/V-38638.rst
deleted file mode 100644
index c3ad3ffd..00000000
--- a/doc/metadata/rhel6/V-38638.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38638
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38639.rst b/doc/metadata/rhel6/V-38639.rst
deleted file mode 100644
index 52da4564..00000000
--- a/doc/metadata/rhel6/V-38639.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38639
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38640.rst b/doc/metadata/rhel6/V-38640.rst
deleted file mode 100644
index 164be01b..00000000
--- a/doc/metadata/rhel6/V-38640.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38640
-status: implemented
-tag: services
----
-
-The Ansible tasks in the security role will disable the abrtd service and stop
-the service immediately. To opt-out of this change, set the following Ansible
-variable:
-
-.. code-block:: yaml
-
- security_disable_abrtd: no
diff --git a/doc/metadata/rhel6/V-38641.rst b/doc/metadata/rhel6/V-38641.rst
deleted file mode 100644
index 691e7dec..00000000
--- a/doc/metadata/rhel6/V-38641.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38641
-status: implemented
-tag: services
----
-
-The Ansible tasks in the security role will disable the atd service and stop
-the service immediately. To opt-out of this change, set the following Ansible
-variable:
-
-.. code-block:: yaml
-
- security_disable_atd: no
diff --git a/doc/metadata/rhel6/V-38642.rst b/doc/metadata/rhel6/V-38642.rst
deleted file mode 100644
index 5e42e5a0..00000000
--- a/doc/metadata/rhel6/V-38642.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38642
-status: opt-in
-tag: file_perms
----
-
-The STIG requires that daemons have their umask set to ``027`` or ``022``.
-Since changing umasks can disrupt some systems, this is an opt-in change.
-
-Deployers that want this change applied to their systems must set the Ansible
-variable ``security_umask_daemons_init`` to ``027``.
diff --git a/doc/metadata/rhel6/V-38643.rst b/doc/metadata/rhel6/V-38643.rst
deleted file mode 100644
index ec879c98..00000000
--- a/doc/metadata/rhel6/V-38643.rst
+++ /dev/null
@@ -1,23 +0,0 @@
----
-id: V-38643
-status: exception
-tag: file_perms
----
-
-Searching for world-writable files on a host deployed with openstack-ansible
-can be very time consuming and it can create unnecessary I/O load on hosts.
-Deployers are urged to check for world-writable files on a regular basis in
-directories where those files might be a concern (especially web accessible
-directories).
-
-The command provided with the STIG is helpful for finding these types of files:
-
-.. code-block:: bash
-
- find ${MOUNT_POINT} -xdev -type f -perm -002
-
-Running ``find /`` isn't recommended on systems without LVM storage for
-containers since it will eventually search through the filesystems of the LXC
-containers that are deployed by openstack-ansible. The ``-xdev`` option
-prevents ``find`` from wandering into other mounted filesystems and will
-prevent it from searching through containers in logical volumes.
diff --git a/doc/metadata/rhel6/V-38644.rst b/doc/metadata/rhel6/V-38644.rst
deleted file mode 100644
index d33604d3..00000000
--- a/doc/metadata/rhel6/V-38644.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38644
-status: implemented
-tag: misc
----
-
-Time synchronization is added within the fixes for V-38620 (where ``chrony`` is
-installed and configured). The ``ntpdate`` service is not used.
diff --git a/doc/metadata/rhel6/V-38645.rst b/doc/metadata/rhel6/V-38645.rst
deleted file mode 100644
index 151df41f..00000000
--- a/doc/metadata/rhel6/V-38645.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38645
-status: opt-in
-tag: file_perms
----
-
-Changing umask settings can disrupt some systems and this change requires a
-deployer to opt-in. To opt-in for this change and adjust the umask, set the
-following Ansible variable:
-
-.. code-block:: yaml
-
- security_umask_login_defs: 077
diff --git a/doc/metadata/rhel6/V-38646.rst b/doc/metadata/rhel6/V-38646.rst
deleted file mode 100644
index 3c009db7..00000000
--- a/doc/metadata/rhel6/V-38646.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38646
-status: exception - manual intervention
-tag: services
----
-
-Very few environments run the ``oddjobd`` service, and those that do run it are
-usually associated with highly-available, clustered systems. Deployers will
-need to disable this service manually if it is running on the system.
diff --git a/doc/metadata/rhel6/V-38647.rst b/doc/metadata/rhel6/V-38647.rst
deleted file mode 100644
index a552f6ae..00000000
--- a/doc/metadata/rhel6/V-38647.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38647
-status: implemented
-tag: file_perms
----
-
-Ubuntu 14.04 doesn't use umask settings in ``/etc/profile``. Those settings
-are expected to be in ``/etc/login.defs`` instead.
-
-For CentOS 7, umask settings are present in ``/etc/profile`` but they are
-overidden by settings in ``/etc/login.defs``.
-
-See V-38645 for more details.
diff --git a/doc/metadata/rhel6/V-38648.rst b/doc/metadata/rhel6/V-38648.rst
deleted file mode 100644
index ce08b3da..00000000
--- a/doc/metadata/rhel6/V-38648.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38648
-status: implemented
-tag: services
----
-
-Although some OpenStack implementations use ``qpidd`` for their messaging hub,
-neither Ubuntu or openstack-ansible configures the service on the hosts by
-default. The Ansible task for this STIG will check to see if the init script
-exists for ``qpidd``. If it does, the daemon will be stopped and disable on
-the next boot.
-
-To opt-out of this change, adjust the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_qpidd: no
diff --git a/doc/metadata/rhel6/V-38649.rst b/doc/metadata/rhel6/V-38649.rst
deleted file mode 100644
index 8880fca2..00000000
--- a/doc/metadata/rhel6/V-38649.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38649
-status: opt-in
-tag: file_perms
----
-
-Since umask changes can be disruptive on some systems, the deployer must opt-in
-for this change to happen. If the ``security_umask_csh`` Ansible variable is
-set **and** the csh package is installed, the Ansible tasks will ensure the
-appropriate umask is set in the csh configuration file.
-
-If users have an active csh shell session, they will need to logout and create
-a new session to pick up the new umask change.
diff --git a/doc/metadata/rhel6/V-38650.rst b/doc/metadata/rhel6/V-38650.rst
deleted file mode 100644
index cbbcfdce..00000000
--- a/doc/metadata/rhel6/V-38650.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38650
-status: implemented
-tag: services
----
-
-Ubuntu doesn't provide packages containing the ``rdisc`` service at this time.
-
-In CentOS, the ``rdisc`` service will be stopped and disabled if it is present
-on the system. To opt-out of this change, set the following Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_rdisc: no
diff --git a/doc/metadata/rhel6/V-38651.rst b/doc/metadata/rhel6/V-38651.rst
deleted file mode 100644
index 21887fc0..00000000
--- a/doc/metadata/rhel6/V-38651.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38651
-status: opt-in
-tag: file_perms
----
-
-Changing the umask for the bash shell is an opt-in setting. Deployers that
-want to set the umask for bash sessions to match the STIG requirement must
-set the Ansible variable ``security_umask_bash`` to ``077``.
diff --git a/doc/metadata/rhel6/V-38652.rst b/doc/metadata/rhel6/V-38652.rst
deleted file mode 100644
index d9be6ec1..00000000
--- a/doc/metadata/rhel6/V-38652.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38652
-status: exception - manual intervention
-tag: misc
----
-
-Deployers are urged to use the ``nodev`` option on any remotely mounted
-filesystems whenever possible.
-
-The security role does not take action on filesystem mounts since this could
-affect the stability or availability of the host.
diff --git a/doc/metadata/rhel6/V-38653.rst b/doc/metadata/rhel6/V-38653.rst
deleted file mode 100644
index 8b6af349..00000000
--- a/doc/metadata/rhel6/V-38653.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38653
-status: exception
-tag: misc
----
-
-The OpenStack-Ansible project doesn't install snmpd by default. Deployers are
-strongly recommended to use SNMPv3 with strong passwords for all connectivity
-if they choose to install snmpd.
diff --git a/doc/metadata/rhel6/V-38654.rst b/doc/metadata/rhel6/V-38654.rst
deleted file mode 100644
index 9fe0fe21..00000000
--- a/doc/metadata/rhel6/V-38654.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38654
-status: exception - manual intervention
-tag: misc
----
-
-Deployers are urged to use the ``nosuid`` option on any remotely mounted
-filesystems whenever possible.
-
-The security role does not take action on filesystem mounts since this could
-affect the stability or availability of the host.
diff --git a/doc/metadata/rhel6/V-38655.rst b/doc/metadata/rhel6/V-38655.rst
deleted file mode 100644
index a0342799..00000000
--- a/doc/metadata/rhel6/V-38655.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38655
-status: exception - manual intervention
-tag: misc
----
-
-Deployers are strongly urged to mount any additional disks with the ``noexec``
-mount option set whenever possible.
-
-For more information about the ``noexec`` mount option, review this `good
-answer from a ServerFault user about noexec`_.
-
-.. _good answer from a ServerFault user about noexec: http://serverfault.com/questions/72356/how-useful-is-mounting-tmp-noexec
diff --git a/doc/metadata/rhel6/V-38656.rst b/doc/metadata/rhel6/V-38656.rst
deleted file mode 100644
index 477a72b9..00000000
--- a/doc/metadata/rhel6/V-38656.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38656
-status: implemented
-tag: services
----
-
-The Ansible tasks will check to see if the samba package is installed and the
-configuration file will be adjusted. If adjustments are made, the service will
-be restarted.
diff --git a/doc/metadata/rhel6/V-38657.rst b/doc/metadata/rhel6/V-38657.rst
deleted file mode 100644
index fb4eeea5..00000000
--- a/doc/metadata/rhel6/V-38657.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38657
-status: exception - manual intervention
-tag: services
----
-
-Deployers are urged to require SMB client signing if they ever mount samba
-shares within their infrastructure.
diff --git a/doc/metadata/rhel6/V-38658.rst b/doc/metadata/rhel6/V-38658.rst
deleted file mode 100644
index 66cd565f..00000000
--- a/doc/metadata/rhel6/V-38658.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38658
-status: exception - manual intervention
-tag: auth
----
-
-Making adjustments to PAM configurations via automated methods is risky since
-it can disrupt user authentication on various hosts. Deployers are strongly
-urged to rely on ssh keys as opposed to enforcing password complexity and
-rotation requirements.
diff --git a/doc/metadata/rhel6/V-38659.rst b/doc/metadata/rhel6/V-38659.rst
deleted file mode 100644
index 33e6ff2c..00000000
--- a/doc/metadata/rhel6/V-38659.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38659
-status: exception - initial provisioning
-tag: misc
----
-
-Creating encrypted storage is left up to the deployer to consider and
-implement. Although encrypting data at rest on storage volumes does reduce
-the chances of data theft if the server is physically compromised, it doesn't
-provide protection from a user who is logged in while the server is running.
-
-Linux systems provide various options for storage encryption. The `Linux
-Unified Key Setup`_ is a good implementation to review.
-
-.. _Linux Unified Key Setup: https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup
diff --git a/doc/metadata/rhel6/V-38660.rst b/doc/metadata/rhel6/V-38660.rst
deleted file mode 100644
index 46db6ed8..00000000
--- a/doc/metadata/rhel6/V-38660.rst
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: V-38660
-status: implemented
-tag: misc
----
-
-The Ansible tasks will check to see if the SNMP configuration file is present.
-If the file is present, and the file contains configurations for insecure SNMP
-protocols, an error will be printed and the playbook will fail.
-
-The task specifically looks for uncommented configuration lines containing:
-
-* ``v1``
-* ``v2c``
-* ``com2sec``
-* ``community``
-
-`Red Hat's guide to SNMP`_ has some example configurations that deployers
-can use to enable SNMPv3.
-
-.. _Red Hat's guide to SNMP: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-System_Monitoring_Tools-Net-SNMP-Configuring.html
diff --git a/doc/metadata/rhel6/V-38661.rst b/doc/metadata/rhel6/V-38661.rst
deleted file mode 100644
index 15c68c74..00000000
--- a/doc/metadata/rhel6/V-38661.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38661
-status: exception - initial provisioning
-tag: misc
----
-
-Creating encrypted storage is left up to the deployer to consider and
-implement. Although encrypting data at rest on storage volumes does reduce
-the chances of data theft if the server is physically compromised, it doesn't
-provide protection from a user who is logged in while the server is running.
-
-Linux systems provide various options for storage encryption. The `Linux
-Unified Key Setup`_ is a good implementation to review.
-
-.. _Linux Unified Key Setup: https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup
diff --git a/doc/metadata/rhel6/V-38662.rst b/doc/metadata/rhel6/V-38662.rst
deleted file mode 100644
index 87183c91..00000000
--- a/doc/metadata/rhel6/V-38662.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38662
-status: exception - initial provisioning
-tag: misc
----
-
-Creating encrypted storage is left up to the deployer to consider and
-implement. Although encrypting data at rest on storage volumes does reduce
-the chances of data theft if the server is physically compromised, it doesn't
-provide protection from a user who is logged in while the server is running.
-
-Linux systems provide various options for storage encryption. The `Linux
-Unified Key Setup`_ is a good implementation to review.
-
-.. _Linux Unified Key Setup: https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup
diff --git a/doc/metadata/rhel6/V-38663.rst b/doc/metadata/rhel6/V-38663.rst
deleted file mode 100644
index 49b9a102..00000000
--- a/doc/metadata/rhel6/V-38663.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38663
-status: exception - ubuntu
-tag: package
----
-
-Verifying ownership and permissions of installed packages isn't possible in the
-current version of ``dpkg`` as it is with ``rpm``. This security configuration
-is skipped for Ubuntu.
-
-For CentOS, this check is done as part of V-38637.
diff --git a/doc/metadata/rhel6/V-38664.rst b/doc/metadata/rhel6/V-38664.rst
deleted file mode 100644
index 2dc84507..00000000
--- a/doc/metadata/rhel6/V-38664.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38664
-status: exception - ubuntu
-tag: package
----
-
-Verifying ownership and permissions of installed packages isn't possible in the
-current version of ``dpkg`` as it is with ``rpm``. This security configuration
-is skipped for Ubuntu. For CentOS, this check is done as part of V-38637.
diff --git a/doc/metadata/rhel6/V-38665.rst b/doc/metadata/rhel6/V-38665.rst
deleted file mode 100644
index 40877998..00000000
--- a/doc/metadata/rhel6/V-38665.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38665
-status: exception - ubuntu
-tag: package
----
-
-Verifying ownership and permissions of installed packages isn't possible in the
-current version of ``dpkg`` as it is with ``rpm``. This security configuration
-is skipped for Ubuntu. For CentOS, this check is done as part of V-38637.
diff --git a/doc/metadata/rhel6/V-38666.rst b/doc/metadata/rhel6/V-38666.rst
deleted file mode 100644
index 95f36511..00000000
--- a/doc/metadata/rhel6/V-38666.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38666
-status: exception - manual intervention
-tag: misc
----
-
-The installation of an antivirus program is left up to the deployer. There are
-strong arguments against virus scanners due to detection failures and
-performance impacts.
-
-The following links provide more information about installing antivirus
-software on Ubuntu and CentOS:
-
-* `Ubuntu documentation - Antivirus`_
-* `CentOS Blog - How to Install ClamAV and Configure Daily Scanning on CentOS`_
-
-.. _Ubuntu documentation - Antivirus: https://help.ubuntu.com/community/Antivirus
-.. _CentOS Blog - How to Install ClamAV and Configure Daily Scanning on CentOS: https://www.centosblog.com/how-to-install-clamav-and-configure-daily-scanning-on-centos/
diff --git a/doc/metadata/rhel6/V-38667.rst b/doc/metadata/rhel6/V-38667.rst
deleted file mode 100644
index 23984c46..00000000
--- a/doc/metadata/rhel6/V-38667.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38667
-status: implemented
-tag: lsm
----
-
-The openstack-ansible project already installs and configures AppArmor, which
-is a Linux Security Module providing similar functionality to SELinux. In
-addition, AIDE is installed to monitor system files in the Ansible tasks for
-V-38429.
diff --git a/doc/metadata/rhel6/V-38668.rst b/doc/metadata/rhel6/V-38668.rst
deleted file mode 100644
index 2bc38544..00000000
--- a/doc/metadata/rhel6/V-38668.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38668
-status: implemented
-tag: console
----
-
-In Ubuntu 14.04, the Ansible tasks disable the control-alt-delete keyboard
-sequence via a configuration in ``/etc/init/control-alt-delete.conf``. A
-reboot is recommended to apply the change.
-
-Linux distributions that use systemd, such as Ubuntu 16.04 and CentOS 7,
-disable the key sequence by masking the ``ctrl-alt-del.target`` with
-``systemctl``.
diff --git a/doc/metadata/rhel6/V-38669.rst b/doc/metadata/rhel6/V-38669.rst
deleted file mode 100644
index 01f59cc9..00000000
--- a/doc/metadata/rhel6/V-38669.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38669
-status: implemented
-tag: mail
----
-
-The ``postfix`` package will be installed and configured to run at boot time.
-Review the documentation for V-38446 to ensure that root's email is
-forwarded to an email account that can monitor for critical alerts and other
-notifications.
diff --git a/doc/metadata/rhel6/V-38670.rst b/doc/metadata/rhel6/V-38670.rst
deleted file mode 100644
index 15848b6e..00000000
--- a/doc/metadata/rhel6/V-38670.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38670
-status: implemented
-tag: aide
----
-
-The ``aide`` package is already installed as part of the Ansible tasks to fix
-V-38429, but these Ansible tasks will verify that the cron job file is actually
-in place.
-
-The cron job is installed as part of the ``aide`` package installation. If the
-cron job is missing, an error will be printed and the playbook will fail.
diff --git a/doc/metadata/rhel6/V-38671.rst b/doc/metadata/rhel6/V-38671.rst
deleted file mode 100644
index 7f8d55bd..00000000
--- a/doc/metadata/rhel6/V-38671.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38671
-status: implemented
-tag: services
----
-
-The security role will remove the sendmail package if it exists on the system.
-To opt-out of this change, adjust the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_remove_sendmail: no
diff --git a/doc/metadata/rhel6/V-38672.rst b/doc/metadata/rhel6/V-38672.rst
deleted file mode 100644
index 330a22dc..00000000
--- a/doc/metadata/rhel6/V-38672.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38672
-status: implemented
-tag: services
----
-
-Ubuntu doesn't provide the ``netconsole`` package and the daemon isn't included
-in any other Ubuntu packages.
-
-In CentOS, the ``netconsole`` daemon will be stopped and disabled if it is
-found to be installed. Deployers can opt-out of this change by setting the
-following Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_netconsole: no
diff --git a/doc/metadata/rhel6/V-38673.rst b/doc/metadata/rhel6/V-38673.rst
deleted file mode 100644
index fb70c016..00000000
--- a/doc/metadata/rhel6/V-38673.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38673
-status: implemented
-tag: aide
----
-
-AIDE is configured to exclude certain directories, and that list of directories
-is controlled by the ``security_aide_exclude_dirs`` Ansible variable.
diff --git a/doc/metadata/rhel6/V-38674.rst b/doc/metadata/rhel6/V-38674.rst
deleted file mode 100644
index efa6995f..00000000
--- a/doc/metadata/rhel6/V-38674.rst
+++ /dev/null
@@ -1,32 +0,0 @@
----
-id: V-38674
-status: implemented
-tag: x11
----
-
-In Ubuntu 14.04, the upstart init system looks for the default runlevel in the
-``/etc/init/rc-sysinit.conf`` file. The tasks in the security role will ensure
-that the ``DEFAULT_RUNLEVEL`` environment variable is set to ``2``, which is a
-non-graphical runlevel.
-
-In Ubuntu 16.04 and CentOS 7, systemd handles various targets, which are
-similar to runlevels from earlier init systems. There are two targets that are
-important for this STIG:
-
-* ``graphical.target``: similar to runlevel 5 from earlier init systems
-* ``multi-user.target``: similar to runlevel 2 or 3 from earlier init systems
-
-The tasks in the security role will ensure that the default target is the
-``multi-user.target``, which provides a text-based system.
-
-Deployers can opt out of this change by setting an Ansible variable:
-
-.. code-block:: yaml
-
- security_disable_x_windows: no
-
-.. note::
-
- This change will not take effect until the server is rebooted. Changing a
- runlevel on an actively running system can cause certain services to stop,
- start, or restart.
diff --git a/doc/metadata/rhel6/V-38675.rst b/doc/metadata/rhel6/V-38675.rst
deleted file mode 100644
index 9be319e1..00000000
--- a/doc/metadata/rhel6/V-38675.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38675
-status: implemented
-tag: misc
----
-
-The security role will add a file in ``/etc/security/limits.d/`` that disables
-core dumps for all users. Although this setting is more secure, it can prevent
-users from debugging kernel errors.
-
-To opt-out of this change, set the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_core_dumps: no
diff --git a/doc/metadata/rhel6/V-38676.rst b/doc/metadata/rhel6/V-38676.rst
deleted file mode 100644
index 5e041aeb..00000000
--- a/doc/metadata/rhel6/V-38676.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-38676
-status: implemented
-tag: services
----
-
-The Ansible tasks will remove the ``xserver-xorg`` package if it is present.
-
-To opt-out of the change, set the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_remove_xorg: no
diff --git a/doc/metadata/rhel6/V-38677.rst b/doc/metadata/rhel6/V-38677.rst
deleted file mode 100644
index 35416b05..00000000
--- a/doc/metadata/rhel6/V-38677.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38677
-status: implemented
-tag: nfsd
----
-
-If the system has NFS exports configured, the Ansible tasks will search for
-``insecure_locks`` in the options column for any of the available exports. If
-the option is found, the playbook will fail with an error.
diff --git a/doc/metadata/rhel6/V-38678.rst b/doc/metadata/rhel6/V-38678.rst
deleted file mode 100644
index fe184142..00000000
--- a/doc/metadata/rhel6/V-38678.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38678
-status: implemented
-tag: auditd
----
-
-When auditd notices that free disk space on its logging partition is low, it
-will trigger the ``security_space_left_action``. The threshold of remaining
-disk space is configured by ``security_space_left`` in
-``/etc/audit/auditd.conf``.
-
-By default, Ubuntu 14.04, Ubuntu 16.04 and CentOS 7 set this value to 75
-megabytes. The STIG doesn't set a specific requirement for the exact size, so
-the Ansible task will ensure that the default of 75 megabytes is set.
diff --git a/doc/metadata/rhel6/V-38679.rst b/doc/metadata/rhel6/V-38679.rst
deleted file mode 100644
index 5a29a05e..00000000
--- a/doc/metadata/rhel6/V-38679.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38679
-status: exception
-tag: services
----
-
-The DHCP client is needed for containers to function properly and may be
-needed for some hosts as well. Deployers should examine their networking
-configuration to verify if DHCP clients can be disabled.
diff --git a/doc/metadata/rhel6/V-38680.rst b/doc/metadata/rhel6/V-38680.rst
deleted file mode 100644
index 38ef2d6f..00000000
--- a/doc/metadata/rhel6/V-38680.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38680
-status: implemented
-tag: mail
----
-
-The Ansible tasks will ensure that mail for the ``auditd`` user is forwarded
-to the ``root`` user for review.
-
-Deployers are strongly urged to review V-38446 to ensure they have set the
-``security_root_forward_email`` variable so that the email system can route
-these critical notifications to a monitored mailbox.
diff --git a/doc/metadata/rhel6/V-38681.rst b/doc/metadata/rhel6/V-38681.rst
deleted file mode 100644
index 837330ef..00000000
--- a/doc/metadata/rhel6/V-38681.rst
+++ /dev/null
@@ -1,17 +0,0 @@
----
-id: V-38681
-status: implemented
-tag: auth
----
-
-The Ansible tasks will run ``pwck`` to find any groups that are defined in
-``/etc/passwd`` but not in ``/etc/group``. This could be a sign of an
-accidental misconfiguration or a more serious security problem. If the command
-returns output about missing groups, the playbook will fail.
-
-To see the exact problems on the system when the playbook fails, run this
-command as root:
-
-.. code-block:: bash
-
- pwck -r | grep 'no group'
diff --git a/doc/metadata/rhel6/V-38682.rst b/doc/metadata/rhel6/V-38682.rst
deleted file mode 100644
index d7017dcf..00000000
--- a/doc/metadata/rhel6/V-38682.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38682
-status: implemented
-tag: kernel
----
-
-The Ansible task will disable the bluetooth kernel modules to meet the STIG
-requirements. To opt-out of this change, adjust the following Ansible variable
-to ``no``:
-
-.. code-block:: yaml
-
- disable_bluetooth_module: no
-
-**NOTE:** The module will be disabled on the next system reboot.
diff --git a/doc/metadata/rhel6/V-38683.rst b/doc/metadata/rhel6/V-38683.rst
deleted file mode 100644
index efa6945d..00000000
--- a/doc/metadata/rhel6/V-38683.rst
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: V-38683
-status: implemented
-tag: auth
----
-
-The Ansible task will use the ``pwck`` command to search for non-unique
-usernames on the system. If any matching usernames are found, an error
-will be printed and the playbook will fail.
-
-**NOTE:** The ``pwck`` command will find other abnormalities on the system,
-including users that exist in ``/etc/passwd`` but not in ``/etc/shadow``, and
-vice versa. If the playbook fails on this task, try to run this command
-on the system as root to find out what caused the failure:
-
-.. code-block:: bash
-
- pwck -rq
diff --git a/doc/metadata/rhel6/V-38684.rst b/doc/metadata/rhel6/V-38684.rst
deleted file mode 100644
index 92fb86b8..00000000
--- a/doc/metadata/rhel6/V-38684.rst
+++ /dev/null
@@ -1,15 +0,0 @@
----
-id: V-38684
-status: opt-in
-tag: misc
----
-
-Ubuntu does not set a limit on the maximum number of active sessions that
-a single user can have at one time. The STIG requires setting a limit of
-``10``.
-
-To opt-in for this change, set the following Ansible variable:
-
-.. code-block:: yaml
-
- security_max_simultaneous_logins: 10
diff --git a/doc/metadata/rhel6/V-38685.rst b/doc/metadata/rhel6/V-38685.rst
deleted file mode 100644
index e9203879..00000000
--- a/doc/metadata/rhel6/V-38685.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38685
-status: exception - manual intervention
-tag: misc
----
-
-It's not possible to determine which accounts may be temporary or permanent
-via automated methods, so this configuration change is left to deployers to
-configure and manage. Refer to the documentation in the STIG Viewer (link
-above) about configuring temporary accounts with an expiration date.
diff --git a/doc/metadata/rhel6/V-38686.rst b/doc/metadata/rhel6/V-38686.rst
deleted file mode 100644
index f2ec11d4..00000000
--- a/doc/metadata/rhel6/V-38686.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38686
-status: exception - manual intervention
-tag: network
----
-
-Although a minimal set of iptables rules are configured on OpenStack-Ansible
-hosts, the "deny all" requirement of the STIG is not met. This is largely left
-up to the deployer to do, based on their assessment of their own network
-segmentation.
-
-Deployers are urged to review the network access controls that are applied
-on the network devices between their OpenStack environment and the rest of
-their network.
diff --git a/doc/metadata/rhel6/V-38687.rst b/doc/metadata/rhel6/V-38687.rst
deleted file mode 100644
index d610c25a..00000000
--- a/doc/metadata/rhel6/V-38687.rst
+++ /dev/null
@@ -1,8 +0,0 @@
----
-id: V-38687
-status: exception - manual intervention
-tag: network
----
-
-The configuration of encrypted tunnels between deployers and their OpenStack
-environment is left up to the deployers to configure.
diff --git a/doc/metadata/rhel6/V-38688.rst b/doc/metadata/rhel6/V-38688.rst
deleted file mode 100644
index 9fbc1e6e..00000000
--- a/doc/metadata/rhel6/V-38688.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38688
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38689.rst b/doc/metadata/rhel6/V-38689.rst
deleted file mode 100644
index 2cfa9624..00000000
--- a/doc/metadata/rhel6/V-38689.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-38689
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-38690.rst b/doc/metadata/rhel6/V-38690.rst
deleted file mode 100644
index 180f8ab1..00000000
--- a/doc/metadata/rhel6/V-38690.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38690
-status: exception - manual intervention
-tag: auth
----
-
-It's not possible to determine which accounts may be temporary or permanent
-via automated methods, so this configuration change is left to deployers to
-configure and manage. Refer to the documentation in the STIG Viewer (link
-above) about configuring temporary accounts with an expiration date.
diff --git a/doc/metadata/rhel6/V-38691.rst b/doc/metadata/rhel6/V-38691.rst
deleted file mode 100644
index 3b57d311..00000000
--- a/doc/metadata/rhel6/V-38691.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38691
-status: implemented
-tag: services
----
-
-The Ansible tasks will disable the ``bluetooth`` service and stop it if it is
-running on the system.
-
-To opt-out of this change, adjust the following Ansible variable to ``no``:
-
-.. code-block:: yaml
-
- security_disable_bluetooth: no
diff --git a/doc/metadata/rhel6/V-38692.rst b/doc/metadata/rhel6/V-38692.rst
deleted file mode 100644
index e3af1906..00000000
--- a/doc/metadata/rhel6/V-38692.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38692
-status: opt-in
-tag: auth
----
-
-Deployers must opt-in for this change by setting the following Ansible
-variable:
-
-.. code-block:: yaml
-
- security_inactive_account_lock_days: 35
-
-The STIG requires this to be set to 35 days at a maximum. The Ansible tasks
-will not make any changes to ``/etc/default/useradd`` unless
-``security_inactive_account_lock_days`` is set.
diff --git a/doc/metadata/rhel6/V-38693.rst b/doc/metadata/rhel6/V-38693.rst
deleted file mode 100644
index deeb2fcf..00000000
--- a/doc/metadata/rhel6/V-38693.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38693
-status: exception - manual intervention
-tag: auth
----
-
-Password complexity requirements are left up to the deployer. Deployers are
-urged to rely on SSH keys as often as possible to avoid problems with
-passwords.
-
-Review the pam_cracklib documentation by running ``man pam_cracklib`` or
-read the `detailed documentation from Hal Pomeranz`_.
-
-.. _detailed documentation from Hal Pomeranz: http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html
diff --git a/doc/metadata/rhel6/V-38694.rst b/doc/metadata/rhel6/V-38694.rst
deleted file mode 100644
index a2e9fb6c..00000000
--- a/doc/metadata/rhel6/V-38694.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-38694
-status: opt-in
-tag: auth
----
-
-Deployers must opt-in for this change by setting the following Ansible
-variable:
-
-.. code-block:: yaml
-
- security_inactive_account_lock_days: 35
-
-The STIG requires this to be set to 35 days at a maximum. The Ansible tasks
-will not make any changes to ``/etc/default/useradd`` unless
-``security_inactive_account_lock_days`` is set.
diff --git a/doc/metadata/rhel6/V-38695.rst b/doc/metadata/rhel6/V-38695.rst
deleted file mode 100644
index ab5c4da4..00000000
--- a/doc/metadata/rhel6/V-38695.rst
+++ /dev/null
@@ -1,12 +0,0 @@
----
-id: V-38695
-status: implemented
-tag: aide
----
-
-The AIDE package is already installed as part of the Ansible tasks to fix
-V-38429, but these Ansible tasks will verify that the cron job file is actually
-in place. The cron job is installed as part of the aide package installation.
-
-If the cron job is missing, an error will be printed and the playbook will
-fail.
diff --git a/doc/metadata/rhel6/V-38696.rst b/doc/metadata/rhel6/V-38696.rst
deleted file mode 100644
index 566e14ce..00000000
--- a/doc/metadata/rhel6/V-38696.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38696
-status: implemented
-tag: aide
----
-
-The AIDE package is already installed as part of the Ansible tasks to fix
-V-38429, but these Ansible tasks will verify that the cron job file is actually
-in place. The cron job is installed as part of the aide package installation.
-If the cron job is missing, an error will be printed and the playbook will
-fail.
diff --git a/doc/metadata/rhel6/V-38697.rst b/doc/metadata/rhel6/V-38697.rst
deleted file mode 100644
index 91d2d6b2..00000000
--- a/doc/metadata/rhel6/V-38697.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-38697
-status: exception
-tag: misc
----
-
-Running a ``find`` command on the system during the playbook run is
-time-consuming and will also slow down disk I/O while it runs. Deployers
-are urged to review public directories to ensure the sticky bit is
-configured.
-
-Further reading: `sticky bit on Wikipedia`_
-
-.. _sticky bit on Wikipedia: https://en.wikipedia.org/wiki/Sticky_bit
diff --git a/doc/metadata/rhel6/V-38698.rst b/doc/metadata/rhel6/V-38698.rst
deleted file mode 100644
index 8a27ddcb..00000000
--- a/doc/metadata/rhel6/V-38698.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38698
-status: implemented
-tag: aide
----
-
-The AIDE package is already installed as part of the Ansible tasks to fix
-V-38429, but these Ansible tasks will verify that the cron job file is actually
-in place. The cron job is installed as part of the aide package installation.
-If the cron job is missing, an error will be printed and the playbook will
-fail.
diff --git a/doc/metadata/rhel6/V-38699.rst b/doc/metadata/rhel6/V-38699.rst
deleted file mode 100644
index 94577399..00000000
--- a/doc/metadata/rhel6/V-38699.rst
+++ /dev/null
@@ -1,20 +0,0 @@
----
-id: V-38699
-status: exception - manual intervention
-tag: file_perms
----
-
-The STIG requires administrators to search for directories meeting all of the
-following criteria:
-
-* World writable
-* Owned by a normal user (UID > 499)
-
-It requires that those directories are owned by root to prevent users from
-removing and replacing files. This ``find`` command isn't run within the
-Ansible tasks in ansible-hardening because it can be a very
-time-consuming task and it can slow down disk I/O while it runs.
-
-Deployers are strongly urged to review the permissions and ownerships of
-critical directories on their systems regularly to verify that they meet
-the requirements of this STIG.
diff --git a/doc/metadata/rhel6/V-38700.rst b/doc/metadata/rhel6/V-38700.rst
deleted file mode 100644
index f2c89609..00000000
--- a/doc/metadata/rhel6/V-38700.rst
+++ /dev/null
@@ -1,11 +0,0 @@
----
-id: V-38700
-status: implemented
-tag: aide
----
-
-The AIDE package is already installed as part of the Ansible tasks to fix
-V-38429, but these Ansible tasks will verify that the cron job file is actually
-in place. The cron job is installed as part of the aide package installation.
-If the cron job is missing, an error will be printed and the playbook will
-fail.
diff --git a/doc/metadata/rhel6/V-38701.rst b/doc/metadata/rhel6/V-38701.rst
deleted file mode 100644
index ddce1996..00000000
--- a/doc/metadata/rhel6/V-38701.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38701
-status: exception
-tag: services
----
-
-Neither OpenStack-Ansible or any of the operating systems supported by the
-security role will install the ``tftp`` daemon by default. Deployers with a
-``tftp`` server deployed should review the risks associated with running the
-service and configure it to meet the STIG's requirements.
diff --git a/doc/metadata/rhel6/V-38702.rst b/doc/metadata/rhel6/V-38702.rst
deleted file mode 100644
index 72bb0433..00000000
--- a/doc/metadata/rhel6/V-38702.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-38702
-status: implemented
-tag: misc
----
-
-The security role will ensure that the appropriate log configuration lines are
-applied to ``/etc/vsftpd.conf`` to meet the STIG requirements. If the
-``vsftpd`` package isn't installed, the Ansible tasks won't make any changes to
-the system.
diff --git a/doc/metadata/rhel6/V-43150.rst b/doc/metadata/rhel6/V-43150.rst
deleted file mode 100644
index 8ab1b018..00000000
--- a/doc/metadata/rhel6/V-43150.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-43150
-status: exception
-tag: x11
----
-
-Deployers are urged to use graphical desktops only on client machines that
-connect to the OpenStack environment, rather than configuring graphical
-desktops within the OpenStack infrastructure itself.
diff --git a/doc/metadata/rhel6/V-51337.rst b/doc/metadata/rhel6/V-51337.rst
deleted file mode 100644
index 760195c6..00000000
--- a/doc/metadata/rhel6/V-51337.rst
+++ /dev/null
@@ -1,45 +0,0 @@
----
-id: V-51337
-status: implemented
-tag: lsm
----
-
-The tasks in the security role will enable the Linux Security
-Module (LSM) that is appropriate for the Linux distribution in use.
-
-For Ubuntu, the default LSM is AppArmor. Refer to Ubuntu's `AppArmor
-documentation`_ for more details on how AppArmor works. The tasks will enable
-AppArmor and start it immediately on the system.
-
-For CentOS, the default LSM is SELinux. Refer to Red Hat's `Security-Enhanced
-Linux`_ documentation for more details on SELinux. The tasks will enable
-SELinux on the next boot.
-
-.. note::
-
- **If SELinux was disabled before the security role was applied, the
- filesystem will be automatically relabeled on the next boot.** For most
- systems, this process only takes a few minutes. However, it can take
- additional time to finish on systems with slow disks or a large number of
- files.
-
- Deployers are strongly urged to relabel the filesystem if the system has
- never had SELinux in enforcing mode previously. Rebooting into enforcing
- mode with a partially-labeled filesystem can lead to unnecessary SELinux
- policy denials.
-
-Deployers can opt-out of this change by setting the following Ansible variable:
-
-.. code-block:: yaml
-
- security_enable_linux_security_module: False
-
-Setting the variable to ``False`` will prevent the tasks from making any
-adjustments to the LSM status.
-
-On CentOS 7, the security role will verify that SELinux is in *Enforcing* mode.
-If SELinux is in *Disabled* or *Permissive* mode, the playbook will fail with
-an error message.
-
-.. _AppArmor documentation: https://help.ubuntu.com/community/AppArmor
-.. _Security-Enhanced Linux: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/
diff --git a/doc/metadata/rhel6/V-51363.rst b/doc/metadata/rhel6/V-51363.rst
deleted file mode 100644
index 34ed4413..00000000
--- a/doc/metadata/rhel6/V-51363.rst
+++ /dev/null
@@ -1,13 +0,0 @@
----
-id: V-51363
-status: implemented
-tag: lsm
----
-
-For Ubuntu, the standard AppArmor policies provided by the AppArmor package are
-loaded. The OpenStack-Ansible project also configures AppArmor to limit the
-actions of containers and reduce the changes (and potential damages) of a
-container breakout.
-
-On CentOS 7, the ``selinux-policy-targeted`` package provides SELinux policies
-that enforce limits on system services and users.
diff --git a/doc/metadata/rhel6/V-51369.rst b/doc/metadata/rhel6/V-51369.rst
deleted file mode 100644
index 2e573212..00000000
--- a/doc/metadata/rhel6/V-51369.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-51369
-status: implemented
-tag: misc
----
-
-For Ubuntu, the standard AppArmor policies provided by the AppArmor package are
-loaded. The OpenStack-Ansible project also configures AppArmor to limit the
-actions of containers and reduce the changes (and potential damages) of a
-container breakout.
-
-On CentOS 7, the ``selinux-policy-targeted`` package provides SELinux policies
-that enforce limits on system services and users. SELinux is configured to use
-the ``targeted`` policy by default.
diff --git a/doc/metadata/rhel6/V-51379.rst b/doc/metadata/rhel6/V-51379.rst
deleted file mode 100644
index 44b241d1..00000000
--- a/doc/metadata/rhel6/V-51379.rst
+++ /dev/null
@@ -1,14 +0,0 @@
----
-id: V-51379
-status: exception - ubuntu
-tag: lsm
----
-
-The security role will search for unlabeled devices on CentOS and the playbook
-will fail with an error message if any unlabeled devices are found.
-
-Although SELinux works through a labeling system where every file (including
-devices) receives a label, AppArmor on Ubuntu works purely through policies
-without labels. However, OpenStack-Ansible does configure several AppArmor
-policies to reduce the chances and impact of LXC container breakouts on
-OpenStack hosts.
diff --git a/doc/metadata/rhel6/V-51391.rst b/doc/metadata/rhel6/V-51391.rst
deleted file mode 100644
index d7c4f20e..00000000
--- a/doc/metadata/rhel6/V-51391.rst
+++ /dev/null
@@ -1,16 +0,0 @@
----
-id: V-51391
-status: implemented
-tag: aide
----
-
-When AIDE is first installed for V-38429, a new database will be created.
-The creation process takes some time because AIDE needs to review each file
-in its list of monitored files to get timestamps and hashes. The
-initialization will be forked into the background so that it doesn't slow
-down the playbook run.
-
-Some directories are excluded from AIDE runs to prevent AIDE from wandering
-into directories where it shouldn't be hashing/monitoring files. The
-``defaults/main.yml`` file has some recommended directories as part of the
-``security_aide_exclude_dirs`` variable.
diff --git a/doc/metadata/rhel6/V-51875.rst b/doc/metadata/rhel6/V-51875.rst
deleted file mode 100644
index ce226132..00000000
--- a/doc/metadata/rhel6/V-51875.rst
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: V-51875
-status: implemented
-tag: auth
----
-
-Ubuntu 14.04, Ubuntu 16.04, and CentOS 7 already enable the display of the last
-successful login for a user immediately after login. An Ansible task ensures
-this setting is applied and restarts the ssh daemon if necessary.
diff --git a/doc/metadata/rhel6/V-54381.rst b/doc/metadata/rhel6/V-54381.rst
deleted file mode 100644
index c0a50132..00000000
--- a/doc/metadata/rhel6/V-54381.rst
+++ /dev/null
@@ -1,24 +0,0 @@
----
-id: V-54381
-status: opt-in
-tag: auditd
----
-
-The STIG requires that the audit system must switch the entire system into
-single-user mode when the space for logging becomes dangerously low.
-
-.. note::
-
- **This will cause serious service disruptions for any environment and
- should only be enabled for extremely high security environments.**
-
-The ``security_admin_space_left_action`` configuration is set to ``SUSPEND`` by
-default, and this will cause logging to be temporarily suspended until disk
-space is freed.
-
-For extremely high security environments, this Ansible variable can be
-provided to meet the requirements of the STIG:
-
-.. code-block:: yaml
-
- security_admin_space_left_action: SINGLE
diff --git a/doc/metadata/rhel6/V-57569.rst b/doc/metadata/rhel6/V-57569.rst
deleted file mode 100644
index 109dd868..00000000
--- a/doc/metadata/rhel6/V-57569.rst
+++ /dev/null
@@ -1,10 +0,0 @@
----
-id: V-57569
-status: exception - initial provisioning
-tag: boot
----
-
-Altering partitions and how they are mounted is left up to the deployer
-to configure during the OS installation process. Mounting ``/tmp/``
-with the ``noexec`` option is highly recommended to prevent scripts
-or binaries from being executed from ``/tmp``.
diff --git a/doc/metadata/rhel6/V-58901.rst b/doc/metadata/rhel6/V-58901.rst
deleted file mode 100644
index 11f7f809..00000000
--- a/doc/metadata/rhel6/V-58901.rst
+++ /dev/null
@@ -1,28 +0,0 @@
----
-id: V-58901
-status: implemented
-tag: auth
----
-
-This STIG requires that ``NOPASSWD`` and ``!authenticate`` are not used within
-the sudoers configuration files. Using these directives reduces the security
-of the system.
-
-``NOPASSWD`` allows users to run commands as root without providing a password
-first. Using ``!authenticate`` with the ``Defaults`` directive will disable
-password usage for any users which use ``sudo``.
-
-There are two configuration options for handling these changes. By default,
-both of these options are set to ``no``, which means that the sudoers
-configuration files will not be altered:
-
-.. code-block:: yaml
-
- security_sudoers_remove_nopasswd: no
- security_sudoers_remove_authenticate: no
-
-Setting ``security_sudoers_remove_nopasswd`` to ``yes`` will cause the Ansible
-tasks to search for any lines containing ``NOPASSWD`` and comment them out of
-the configuration. Setting ``security_sudoers_remove_authenticate`` will do the
-same actions on lines containing ``!authenticate``. Lines that are already
-commented will be left unaltered.
diff --git a/doc/metadata/template_all.j2 b/doc/metadata/template_all.j2
deleted file mode 100644
index acff15d9..00000000
--- a/doc/metadata/template_all.j2
+++ /dev/null
@@ -1,24 +0,0 @@
-{% set page_title = "Review All STIG Controls" %}
-{{ "=" * page_title | length }}
-{{ page_title }}
-{{ "=" * page_title | length }}
-
-Navigating the list
-===================
-
-Use your browser's search function (usually CTRL-f or ⌘-f) to find the
-security configuration in the full list shown here. You can search for STIG
-ID numbers, such as ``V-38463``, or for particular topics, like ``audit``.
-
-----
-
-{% for stig_id in stig_ids | sort %}
-.. _stig-{{ stig_id }}:
-
-{% include "template_doc.j2" %}
-
-{% if not loop.last %}
-----
-{% endif %}
-
-{% endfor %}
diff --git a/doc/metadata/template_doc.j2 b/doc/metadata/template_doc.j2
deleted file mode 100644
index ac98c285..00000000
--- a/doc/metadata/template_doc.j2
+++ /dev/null
@@ -1,16 +0,0 @@
-{% set rule = all_deployer_notes[stig_id] %}
-{% set page_title = rule['title'] | trim + ' (' + rule['id'] + ')'%}
-{{ page_title }}
-{{ "-" * page_title | length }}
-
-{{ rule['description']}}
-
-Details: `{{ rule['id'] }} in STIG Viewer`_
-
-.. _{{ rule['id'] }} in STIG Viewer: https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2015-05-26/finding/{{ rule['id'] }}
-
-Notes for deployers and auditors
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Implementation Status:** {{ rule['deployer_notes']['status'] | title }}
-{{ rule['deployer_notes']['content'] }}
diff --git a/doc/metadata/template_toc.j2 b/doc/metadata/template_toc.j2
deleted file mode 100644
index 3dac60fb..00000000
--- a/doc/metadata/template_toc.j2
+++ /dev/null
@@ -1,31 +0,0 @@
-{% set page_title = "STIG Controls by " + toc_type | title %}
-{{ "=" * page_title | length }}
-{{ page_title }}
-{{ "=" * page_title | length }}
-
-.. contents::
- :depth: 2
- :backlinks: none
-
-{% for section_header, stig_id_list in stig_dict.items() %}
-
-{% if toc_type == 'tag' %}
-{% set section_title = section_header + " (" + stig_id_list | length | string + " controls)" %}
-{% else %}
-{% set section_title = section_header | title + " (" + stig_id_list | length | string + " controls)" %}
-{% endif %}
-.. _{{ toc_type | replace(' ', '-') }}-{{ section_header | replace(' ', '-') }}:
-
-{{ section_title }}
-{{ "=" * section_title | length }}
-
-{% for stig_id in stig_id_list | sort %}
-
-{% include "template_doc.j2" %}
-
-{% if not loop.last %}
-----
-{% endif %}
-
-{% endfor %}
-{% endfor %}
diff --git a/doc/source/_exts/metadata-docs.py b/doc/source/_exts/metadata-docs.py
deleted file mode 100755
index c0cc6743..00000000
--- a/doc/source/_exts/metadata-docs.py
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2016, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Build documentation from STIG and deployer notes."""
-from __future__ import print_function, unicode_literals
-from collections import defaultdict, OrderedDict
-import os
-import re
-from textwrap import fill
-import yaml
-
-
-import jinja2
-from lxml import etree
-
-
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-METADATA_DIR = "{0}/../../metadata".format(SCRIPT_DIR)
-DOC_SOURCE_DIR = "{0}/..".format(SCRIPT_DIR)
-JINJA_ENV = jinja2.Environment(
- loader=jinja2.FileSystemLoader(METADATA_DIR),
- trim_blocks=True,
- keep_trailing_newline=False,
-)
-
-XCCDF_FILE = 'U_RedHat_6_V1R12_Manual-xccdf.xml'
-XCCDF_NAMESPACE = {'x': 'http://checklists.nist.gov/xccdf/1.1'}
-
-
-def read_xml():
- """Read XCCDF XML file and parse it into an etree."""
- with open("{0}/{1}".format(METADATA_DIR, XCCDF_FILE), 'r') as f:
- tree = etree.parse(f)
- return tree
-
-
-def element_flatten(element):
- """Flatten the element into a single item if it's a single item list."""
- # If there's only one result in the list, then return that single result.
- if isinstance(element, list) and len(element) == 1:
- return element[0]
- else:
- return element
-
-
-def extract_description(description_text):
- """Take the description text and extract the VulnDiscussion tag."""
- parser = etree.XMLParser(recover=True)
- temp_string = "{0}".format(description_text)
- temp = etree.fromstring(temp_string, parser)
- return next(x.text for x in temp.iter() if x.tag == 'VulnDiscussion')
-
-
-def filter_xpath(tree, xpath_string):
- """Apply an xpath filter to the XML and return data."""
- element = tree.xpath(xpath_string, namespaces=XCCDF_NAMESPACE)
- return element_flatten(element)
-
-
-def filter_find(tree, xpath_string):
- """Do a find on the tree to get specific data."""
- element = tree.find(xpath_string, namespaces=XCCDF_NAMESPACE)
- return element_flatten(element)
-
-
-def filter_findall(tree, xpath_string):
- """Do a find on the tree to get specific data."""
- element = tree.findall(xpath_string, namespaces=XCCDF_NAMESPACE)
- return element_flatten(element)
-
-
-def get_deployer_notes(stig_id):
- """Read deployer notes based on the STIG ID."""
- filename = "{0}/rhel6/{1}.rst".format(METADATA_DIR, stig_id)
-
- # Does this deployer note exist?
- if not os.path.isfile(filename):
- return False
-
- # Read the note and parse it with YAML
- with open(filename, 'r') as f:
- rst_file = f.read()
-
- # Split the RST into frontmatter and text
- # NOTE(mhayden): Can't use the standard yaml.load_all() here at it will
- # have scanner errors in documents that have colons (:).
- yaml_boundary = re.compile(r'^-{3,}$', re.MULTILINE)
- _, metadata, text = yaml_boundary.split(rst_file, 2)
-
- # Assemble the metadata and the text from the deployer note.
- post = yaml.safe_load(metadata)
- post['content'] = text
-
- return post
-
-
-def render_all(stig_ids, all_deployer_notes):
- """Generate documentation RST for each STIG configuration."""
- template = JINJA_ENV.get_template('template_all.j2')
- return template.render(
- stig_ids=stig_ids,
- all_deployer_notes=all_deployer_notes,
- )
-
-
-def render_doc(stig_rule, deployer_notes):
- """Generate documentation RST for each STIG configuration."""
- template = JINJA_ENV.get_template('template_doc.j2')
- return template.render(
- rule=stig_rule,
- notes=deployer_notes
- )
-
-
-def render_toc(toc_type, stig_dict, all_deployer_notes):
- """Generate documentation RST for each STIG configuration."""
- template = JINJA_ENV.get_template('template_toc.j2')
- return template.render(
- toc_type=toc_type,
- stig_dict=stig_dict,
- all_deployer_notes=all_deployer_notes,
- )
-
-
-def write_file(filename, content):
- """Write contents to files."""
- file_path = "{0}/{1}".format(DOC_SOURCE_DIR, filename)
- with open(file_path, 'w') as f:
- f.write(content.encode('utf-8'))
-
- return True
-
-
-def generate_docs():
- """The main function."""
- tree = read_xml()
-
- # Create a simple list to capture all of the STIGs
- stig_ids = []
-
- # Create defaultdicts to hold information to build our table of
- # contents files for sphinx.
- all_deployer_notes = defaultdict(list)
- severity = defaultdict(list)
- tag = defaultdict(list)
- status = defaultdict(list)
-
- # Loop through the groups and extract rules
- group_elements = filter_xpath(tree, "/x:Benchmark/x:Group")
- for group_element in group_elements:
- rule_element = filter_find(group_element, 'x:Rule')
-
- # We have to extract a piece of the description since it contains
- # multiple sections. We only want the VulnDiscussion section.
- raw_description = filter_find(rule_element,
- 'x:description').text
- description = fill(extract_description(raw_description), width=78)
-
- # Build a dictionary with all of our rule data.
- rule = {
- 'id': group_element.attrib['id'],
- 'title': filter_find(rule_element, 'x:title').text,
- 'severity': rule_element.attrib['severity'],
- 'description': description,
- 'fix': filter_find(rule_element, 'x:fixtext').text,
- 'check': filter_find(rule_element,
- 'x:check/x:check-content').text,
- }
-
- # Get the deployer notes from YAML
- deployer_notes = get_deployer_notes(rule['id'])
- rule['deployer_notes'] = deployer_notes
-
- all_deployer_notes[rule['id']] = rule
- stig_ids.append(rule['id'])
- severity[rule['severity']].append(rule['id'])
- status[deployer_notes['status']].append(rule['id'])
- tag[deployer_notes['tag']].append(rule['id'])
-
- keyorder = ['high', 'medium', 'low']
- severity = OrderedDict(sorted(severity.items(),
- key=lambda x: keyorder.index(x[0])))
- status = OrderedDict(sorted(status.items(), key=lambda x: x[0]))
- tag = OrderedDict(sorted(tag.items(), key=lambda x: x[0]))
-
- all_toc = render_all(stig_ids, all_deployer_notes)
- severity_toc = render_toc('severity',
- severity,
- all_deployer_notes)
- status_toc = render_toc('implementation status',
- status,
- all_deployer_notes)
- tag_toc = render_toc('tag',
- tag,
- all_deployer_notes)
-
- write_file("auto_controls-all.rst", all_toc)
- write_file("auto_controls-by-severity.rst", severity_toc)
- write_file("auto_controls-by-status.rst", status_toc)
- write_file("auto_controls-by-tag.rst", tag_toc)
-
-
-def setup(app):
- """Set up the Sphinx extension."""
- generate_docs()
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 8fa057dc..0ecd6ed9 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -49,7 +49,6 @@ sys.setrecursionlimit(4000)
# ones.
extensions = [
'openstackdocstheme',
- 'metadata-docs',
'metadata-docs-rhel7',
]
diff --git a/doc/source/controls.rst b/doc/source/controls.rst
deleted file mode 100644
index 04d1314b..00000000
--- a/doc/source/controls.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-Security hardening controls in detail (RHEL 6 STIG)
-===================================================
-
-The Security Technical Implementation Guide (STIG) for Red Hat Enterprise Linux
-6 contains over 200 security controls. The links below will allow you to review
-each control based on a certain set of criteria.
-
-Controls are divided into groups based on certain properties:
-
-* **Severity:** Normally high, medium and low. High severity items are the ones
- which should be completed first, since they pose the greatest threat to the
- security of a system.
- *(These severity levels are set within the STIG.)*
-
-* **Implementation status:** Each control is assessed thoroughly before Ansible
- tasks are written. Some controls may be listed as *exceptions* since they
- can't be implemented with automation, or they could cause damage to an
- existing system. Other controls are listed as *opt-in* when they are
- implemented, but they require a deployer to enable them.
- *(This categorization comes from ansible-hardening, not the STIG.)*
-
-* **Tag:** The controls are also separated based on which parts of the system
- they act upon. Something that secures ``grub`` would be tagged with *boot*
- while controls for ``sshd`` would be tagged with *auth*.
- *(This categorization comes from ansible-hardening, not the STIG.)*
-
-You can also review the STIG controls in one very large page. This can be
-helpful when you need to search using your web browser.
-
-.. note::
-
- The RHEL 6 STIG content is deprecated in the Ocata release and will be
- removed in a future release. Deployers can choose to deploy the RHEL 6
- STIG content by setting the ``stig_version`` Ansible variable:
-
- .. code-block:: console
-
- ansible-playbook -i hosts playbook.yml -e stig_version=rhel7
-
-.. toctree::
- :maxdepth: 2
-
- auto_controls-by-severity.rst
- auto_controls-by-status.rst
- auto_controls-by-tag.rst
- auto_controls-all.rst
diff --git a/doc/source/faq.rst b/doc/source/faq.rst
index 2bffbaca..6050d656 100644
--- a/doc/source/faq.rst
+++ b/doc/source/faq.rst
@@ -49,7 +49,6 @@ servers running the following Linux distributions:
* openSUSE Leap 42.2 and 42.3
* Red Hat Enterprise Linux 7 *(partial automated test coverage)*
* SUSE Linux Enterprise 12 (*experimental*)
-* Ubuntu 14.04 Trusty *(Deprecated)*
* Ubuntu 16.04 Xenial
The OpenStack gating system tests the role against each of these distributions
diff --git a/doc/source/index.rst b/doc/source/index.rst
index b18ca111..6d201e89 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -46,8 +46,9 @@ from the talk are
Documentation
-------------
-The following documentation applies to the Pike release. Documentation from
-previous releases are available in the *Releases* section below.
+The following documentation applies to the Queens release (currently under
+active development). Documentation for the latest stable and previous stable
+releases is found within the *Releases* section below.
.. toctree::
:maxdepth: 2
@@ -59,32 +60,36 @@ previous releases are available in the *Releases* section below.
controls-rhel7.rst
developer-guide.rst
-Legacy RHEL 6 STIG Content
---------------------------
-
-The RHEL 7 STIG content was first added in the Ocata release using the
-pre-release STIG content (version 0.2). The Pike release contains the final
-STIG release content which also included a numbering change from the
-``RHEL-xx-xxxxxx`` style to the traditional ``V-xxxxx`` style.
-
-The original RHEL 6 STIG content was deprecated in the Ocata release and will
-be removed in the Queens release (early 2018). The documentation for the
-RHEL 6 STIG content is still available:
-
-.. toctree::
- :maxdepth: 2
-
- controls.rst
-
Releases
--------
Deployers should use the latest stable release for all production deployments.
+Queens
+~~~~~~
+
+* **Status:** Active development
+
+* **Supported Operating Systems:**
+
+ * CentOS 7
+ * Debian 8 Jessie
+ * Fedora 26
+ * openSUSE Leap 42.2 and 42.3
+ * Red Hat Enterprise Linux 7 *(partial automated test coverage)*
+ * SUSE Linux Enterprise 12 (*experimental*)
+ * Ubuntu 16.04 Xenial
+
+* **Documentation:**
+
+ * `ansible-hardening Queens Release Notes`_
+
+.. _ansible-hardening Queens Release Notes: http://docs.openstack.org/releasenotes/ansible-hardening/unreleased.html
+
Pike
~~~~
-* **Status:** Active development *(anticipated release: September 2017)*
+* **Status:** Latest stable release *(released: September 2017)*
* **Supported Operating Systems:**
@@ -101,7 +106,8 @@ Pike
* `ansible-hardening Pike Release Notes`_
-.. _ansible-hardening Pike Release Notes: http://docs.openstack.org/releasenotes/ansible-hardening/unreleased.html
+.. _ansible-hardening Pike Documentation: http://docs.openstack.org/developer/ansible-hardening/pike/
+.. _ansible-hardening Pike Release Notes: http://docs.openstack.org/releasenotes/ansible-hardening/pike.html
Ocata
~~~~~
diff --git a/tasks/rhel6stig/aide.yml b/tasks/rhel6stig/aide.yml
deleted file mode 100644
index f5da669f..00000000
--- a/tasks/rhel6stig/aide.yml
+++ /dev/null
@@ -1,94 +0,0 @@
----
-# Copyright 2016, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Verify that AIDE configuration directory exists
- stat:
- path: /etc/aide/aide.conf.d
- register: aide_conf
- check_mode: no
- tags:
- - always
-
-- name: V-38489 - Exclude certain directories from AIDE
- template:
- src: ZZ_aide_exclusions.j2
- dest: /etc/aide/aide.conf.d/ZZ_aide_exclusions
- when: aide_conf.stat.exists | bool
- tags:
- - aide
- - cat2
- - V-38489
-
-- name: Check to see if AIDE database is already in place
- stat:
- path: "{{ aide_database_file }}"
- register: aide_database
- check_mode: no
- tags:
- - always
-
-- name: V-38489 - Initialize AIDE (this will take a few minutes)
- command: "aideinit"
- changed_when: false
- register: aide_init
- when:
- - aide_conf.stat.exists | bool
- - not aide_database.stat.exists | bool
- - security_initialize_aide | bool
- tags:
- - aide
- - cat2
- - V-38489
-
-# NOTE(mhayden): This is only needed for CentOS 7 and RHEL 7 since Ubuntu
-# copies the new AIDE database into place automatically with its AIDE wrapper
-# script.
-- name: V-38489 - Move AIDE database into place
- command: "mv /var/lib/aide/aide.db.new.gz {{ aide_database_file }}"
- changed_when: false
- when:
- - aide_init | changed
- - ansible_os_family | lower == 'redhat'
- tags:
- - aide
- - cat2
- - V-38489
-
-# NOTE(mhayden): This is only needed for CentOS 7 and RHEL 7 since the AIDE
-# package doesn't come with a cron job file. Ubuntu packages a cron job for
-# AIDE checks already.
-- name: Create AIDE cron job (for V-38670)
- cron:
- name: aide
- cron_file: aide
- user: root
- special_time: daily
- job: "aide --check"
- when:
- - ansible_os_family | lower == 'redhat'
- tags:
- - aide
- - cat2
- - V-38670
-
-- name: Check for AIDE cron job (for V-38670)
- stat:
- path: "{{ aide_cron_job_path }}"
- register: v38670_result
- changed_when: False
- tags:
- - aide
- - cat2
- - V-38670
diff --git a/tasks/rhel6stig/apt.yml b/tasks/rhel6stig/apt.yml
deleted file mode 100644
index 77b46039..00000000
--- a/tasks/rhel6stig/apt.yml
+++ /dev/null
@@ -1,129 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Update apt if needed
- apt:
- update_cache: yes
- cache_valid_time: "{{ cache_timeout }}"
- tags:
- - auditd-apt-packages
-
-# Notes for V-38476 ###########################################################
-#
-# These GPG keys are valid as of Ubuntu 14.04 in late 2015, but they could
-# change or additional keys may be added in the future.
-#
-- name: Gather current GPG keys for apt (for V-38476)
- command: apt-key list
- register: v38476_result
- changed_when: "v38476_result.rc != 0"
- check_mode: no
-
-- name: V-38476 - Vendor-provided cryptographic certificates must be installed to verify the integrity of system software.
- fail:
- msg: "Missing Ubuntu Archive signing keys"
- when: "'437D05B5' not in v38476_result.stdout or 'C0B21F32' not in v38476_result.stdout"
- tags:
- - package
- - cat1
- - V-38476
-
-# Notes for V-38462 ###########################################################
-#
-# Ubuntu checks packages against GPG signatures by default. It can be turned
-# off for all package installations by a setting in /etc/apt/apt.conf.d and we
-# search for that here. Users can pass an argument on the apt command line
-# to bypass the checks as well, but that's outside the scope of this check
-# and remediation.
-#
-- name: Search for AllowUnauthenticated in /etc/apt/apt.conf.d/ (for V-38462)
- command: grep -r '^[^#].*AllowUnauthenticated \"true\"' /etc/apt/apt.conf.d/
- register: v38462_result
- changed_when: False
- failed_when: False
- check_mode: no
- tags:
- - package
- - cat1
- - V-38462
-
-- name: V-38462 - Package management tool must verify authenticity of packages
- fail:
- msg: "Remove AllowUnauthenticated from files in /etc/apt/apt.conf.d/ to ensure packages are verified."
- when: "v38462_result.rc == 0"
- tags:
- - package
- - cat1
- - V-38462
-
-- name: Install unattended-upgrades package (for V-38481)
- apt:
- name: unattended-upgrades
- state: "{{ security_package_state }}"
- when: security_unattended_upgrades_enabled | bool
- tags:
- - package
- - cat2
- - V-38481
-
-- name: V-38481 - System security patches and updates must be installed and up-to-date
- copy:
- src: 20auto-upgrades
- dest: /etc/apt/apt.conf.d/20auto-upgrades
- when: security_unattended_upgrades_enabled | bool
- tags:
- - package
- - cat2
- - V-38481
-
-- name: Enable unattended upgrades notifications (for V-38481)
- lineinfile:
- dest: /etc/apt/apt.conf.d/50unattended-upgrades
- regexp: '^(\/\/)?Unattended-Upgrade::Mail "root";'
- line: 'Unattended-Upgrade::Mail "root";'
- create: yes
- when:
- - security_unattended_upgrades_enabled | bool
- - security_unattended_upgrades_notifications | bool
- tags:
- - package
- - cat2
- - V-38481
-
-- name: Add or remove packages based on STIG requirements
- apt:
- name: "{{ stig_packages | selectattr('enabled') | selectattr('state', 'equalto', item) | sum(attribute='packages', start=[]) }}"
- state: "{{ item }}"
- with_items:
- - "{{ stig_packages | selectattr('enabled') | map(attribute='state') | unique | list }}"
- tags:
- - cat1
- - auth
- - services
- - V-38439 # install: aide, aide-common
- - V-38620 # install: chrony
- - V-38624 # install: logrotate
- - V-38631 # install: auditd_pkg
- - V-38632 # install: auditd_pkg
- - V-38637 # install: debsums
- - V-38669 # install: postfix
- - V-51337 # install: apparmor
- - V-38583 # remove: xinetd
- - V-38587 # remove: telnet-server
- - V-38591 # remove: rsh-server
- - V-38603 # remove: ypserv
- - V-38606 # remove: tftp-server
- - V-38627 # remove: openldap-servers
- - V-38671 # remove: sendmail
diff --git a/tasks/rhel6stig/auditd.yml b/tasks/rhel6stig/auditd.yml
deleted file mode 100644
index 7eed5769..00000000
--- a/tasks/rhel6stig/auditd.yml
+++ /dev/null
@@ -1,290 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38631/38632 - The operating system must produce audit records (start auditd)
- service:
- name: auditd
- state: started
- enabled: true
- when: not check_mode
- tags:
- - auditd
- - cat2
- - V-38632
- - V-38631
-
-- name: Verify that auditd.conf exists
- stat:
- path: /etc/audit/auditd.conf
- register: auditd_conf
- check_mode: no
- tags:
- - auditd
- - always
-
-- name: V-38633 - The system must set a maximum audit log file size
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?max_log_file(?!_action)"
- line: "max_log_file = {{ security_max_log_file }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38633
-
-- name: V-38634 - The system must rotate audit log files that reach the max file size
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?max_log_file_action ="
- line: "max_log_file_action = {{ security_max_log_file_action }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38634
-
-- name: V-38636 - The system must retain enough rotated audit logs to cover the required log retention period.
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?num_logs ="
- line: "num_logs = {{ security_num_logs }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38636
-
-# The debsums command returns 0 if the files haven't been altered but it
-# returns 2 otherwise. We also will check to see if auditd has been installed
-# and fail if it's not installed.
-- name: Checking auditd package contents for alterations with debsums (for V-38637)
- command: debsums auditd -c
- register: v38637_result
- changed_when: False
- failed_when: "'not installed' in v38637_result.stdout"
- when: ansible_pkg_mgr == 'apt'
- tags:
- - auditd
- - cat2
- - V-38637
-
-- name: V-38637 - Contents of auditd package must be verified
- fail:
- msg: "Could not verify that files from auditd package are unaltered"
- when:
- - not check_mode
- - ansible_pkg_mgr == 'apt'
- - v38637_result.rc == 2
- tags:
- - auditd
- - cat2
- - V-38637
-
-- name: Check audit package contents for alterations with rpm (for V-38637)
- shell: "rpmverify audit audit-libs | grep -v '\\.conf$' | wc -l"
- register: v38637_result
- changed_when: False
- when: ansible_pkg_mgr == 'yum'
- tags:
- - auditd
- - cat2
- - V-38637
-
-- name: V-38637 - Contents of auditd package must be verified
- fail:
- msg: "Could not verify that files from auditd package are unaltered"
- when:
- - not check_mode
- - ansible_pkg_mgr == 'yum'
- - v38637_result.stdout != "0"
- tags:
- - auditd
- - cat2
- - V-38637
-
-- name: Verify that auditd log directory exists (for V-38445)
- stat:
- path: /var/log/audit/
- register: auditd_log_dir
- check_mode: no
- tags:
- - auditd
- - always
-
-- name: V-38445 - Audit log files must be group-owned by root
- file:
- dest: /var/log/audit/
- group: root
- recurse: true
- when: auditd_log_dir.stat.exists | bool
- tags:
- - auditd
- - cat2
- - V-38445
-
-- name: V-38464 - The audit system must take action for disk errors
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?disk_error_action"
- line: "disk_error_action = {{ security_disk_error_action }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38464
-
-- name: V-38468 - The audit system must take action when the disk is full
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?disk_full_action"
- line: "disk_full_action = {{ security_disk_full_action }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38468
-
-- name: V-38678 - Lower limit of available disk space when auditd triggers space_left_action
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?space_left(?!_action)"
- line: "space_left = {{ security_space_left }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38678
-
-- name: V-38470 - The audit system must take action when the disk is almost full
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?space_left_action"
- line: "space_left_action = {{ security_space_left_action }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38470
-
-- name: V-38680 - Audit system must send email notifications when storage capacity is low
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?action_mail_acct"
- line: "action_mail_acct = {{ security_action_mail_acct }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-38680
-
-- name: V-38495 - Audit log files must be owned by root
- file:
- dest: /var/log/audit/
- owner: root
- recurse: true
- when: auditd_log_dir.stat.exists | bool
- tags:
- - auditd
- - cat2
- - V-38495
-
-# TODO: Ansible 2.0 offers the find module and that will allow this task to
-# avoid using the shell module to get a list of logs. This task should be
-# adjusted to use the find module when Ansible 2.0 is fully released.
-- name: Get a list of audit logs in the auditd directory (for V-38498)
- command: ls /var/log/audit/
- register: v38498_result
- changed_when: false
- when: auditd_log_dir.stat.exists | bool
- tags:
- - auditd
- - cat2
- - V-38498
-
-# On most systems, the active log file is 0600 and the older logs are 0400.
-# This task ensures that all logs meet or exceed the STIG requirement.
-- name: V-38498 - Audit log files must have mode 0640 or less
- file:
- dest: "/var/log/audit/{{ item }}"
- mode: "u-x,g-wx,o-rwx"
- with_items: "{{ v38498_result.stdout_lines | default([]) }}"
- when: auditd_log_dir.stat.exists | bool
- tags:
- - auditd
- - cat2
- - V-38498
-
-- name: Remove system default audit.rules file
- file:
- path: /etc/audit/rules.d/audit.rules
- state: absent
- notify:
- - generate auditd rules
- tags:
- - always
-
-- name: Auditd rules (includes several STIGs)
- template:
- src: osas-auditd.j2
- dest: /etc/audit/rules.d/osas-auditd.rules
- notify:
- - generate auditd rules
- tags:
- - auditd
- - cat3
-
-- name: V-38471 - Forward auditd records to syslog
- lineinfile:
- dest: /etc/audisp/plugins.d/syslog.conf
- regexp: "^(#)?active"
- line: "active = yes"
- state: present
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat3
- - V-38471
-
-- name: V-54381 - The audit system must switch to single user mode when disk space is low
- lineinfile:
- dest: /etc/audit/auditd.conf
- regexp: "^(#)?admin_space_left_action"
- line: "admin_space_left_action = {{ security_admin_space_left_action }}"
- when: auditd_conf.stat.exists | bool
- notify:
- - restart auditd
- tags:
- - auditd
- - cat2
- - V-54381
diff --git a/tasks/rhel6stig/auth.yml b/tasks/rhel6stig/auth.yml
deleted file mode 100644
index 9511029d..00000000
--- a/tasks/rhel6stig/auth.yml
+++ /dev/null
@@ -1,408 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38475 - Set minimum length for passwords
- lineinfile:
- dest: /etc/login.defs
- regexp: "^(#)?PASS_MIN_LEN"
- line: "PASS_MIN_LEN {{ security_password_minimum_length }}"
- when: security_password_minimum_length is defined
- tags:
- - auth
- - cat2
- - V-38475
-
-- name: V-38477 - Set minimum time for password changes
- lineinfile:
- dest: /etc/login.defs
- regexp: "^(#)?PASS_MIN_DAYS"
- line: "PASS_MIN_DAYS {{ security_password_minimum_days }}"
- when: security_password_minimum_days is defined
- tags:
- - auth
- - cat2
- - V-38477
-
-- name: V-38479 - Set maximum age for passwords
- lineinfile:
- dest: /etc/login.defs
- regexp: "^(#)?PASS_MAX_DAYS"
- line: "PASS_MAX_DAYS {{ security_password_maximum_days }}"
- when: security_password_maximum_days is defined
- tags:
- - auth
- - cat2
- - V-38479
-
-- name: V-38480 - Warn users prior to password expiration
- lineinfile:
- dest: /etc/login.defs
- regexp: "^(#)?PASS_WARN_AGE"
- line: "PASS_WARN_AGE {{ security_password_warn_age }}"
- when: security_password_warn_age is defined
- tags:
- - auth
- - cat3
- - V-38480
-
-- name: V-38496 - Get all system accounts
- shell: "awk -F: '$1 !~ /^root$/ && $3 < 500 {print $1}' /etc/passwd"
- register: v38496_system_users
- changed_when: False
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38496
-
-- name: V-38496 - Loop through system accounts to find unlocked accounts
- shell: "awk -F: '$1 ~ /^{{ item }}$/ && $2 !~ /^[!*]/ {print $1}' /etc/shadow"
- register: v38496_unlocked_system_users
- changed_when: False
- check_mode: no
- with_items: "{{ v38496_system_users.stdout_lines | default([]) }}"
- tags:
- - auth
- - cat2
- - V-38496
-
-# We need to loop through our list of accounts and get the ones that were
-# returned by the awk command in the previous task.
-- name: V-38496 - Gather problematic system accounts
- set_fact:
- v38496_violations: "{{ v38496_unlocked_system_users.results | map(attribute='stdout') | reject('equalto', '') | join(', ') }}"
- tags:
- - auth
- - cat2
- - V-38496
-
-# The playbook will fail here if any default system accounts besides root are
-# not locked.
-- name: V-38496 - Default operating system accounts (other than root) must be locked
- fail:
- msg: "System accounts are unlocked: {{ v38496_violations }}"
- when: v38496_violations | length > 0
- tags:
- - auth
- - cat2
- - V-38496
-
-- name: V-38497 - The system must not have accounts configured with blank or null passwords. (Ubuntu)
- lineinfile:
- dest: "{{ pam_auth_file }}"
- state: present
- regexp: "^(.*)nullok_secure(.*)$"
- line: '\1\2'
- backup: yes
- backrefs: yes
- when:
- - ansible_os_family == 'Debian'
- - security_pam_remove_nullok | bool
- tags:
- - auth
- - cat1
- - V-38497
-
-- name: V-38497 - The system must not have accounts configured with blank or null passwords. (CentOS)
- lineinfile:
- dest: "{{ pam_auth_file }}"
- state: present
- regexp: "^({{ item }}.*sufficient.*)nullok(.*)$"
- line: '\1\2'
- backup: yes
- backrefs: yes
- with_items:
- - auth
- - password
- when:
- - ansible_os_family == 'RedHat'
- - security_pam_remove_nullok | bool
- tags:
- - auth
- - cat1
- - V-38497
-
-- name: Check if /etc/hosts.equiv exists (for V-38491)
- stat:
- path: /etc/hosts.equiv
- register: v38491_equiv_check
- changed_when: v38491_equiv_check.stat.exists == True
- tags:
- - auth
- - cat1
- - V-38491
-
-- name: Check if root has a .rhosts file (for V-38491)
- stat:
- path: /root/.rhosts
- register: v38491_rhosts_check
- changed_when: v38491_rhosts_check.stat.exists == True
- tags:
- - auth
- - cat1
- - V-38491
-
-- name: V-38491 - No .rhosts or hosts.equiv present on system
- fail:
- msg: "Remove all .rhosts and hosts.equiv files"
- when: v38491_equiv_check.stat.exists == True or v38491_rhosts_check.stat.exists == True
- tags:
- - auth
- - cat1
- - V-38491
-
-- name: Check for accounts with UID 0 other than root (for V-38500)
- shell: "awk -F: '($1 != \"root\") && ($3 == 0) {print}' /etc/passwd | wc -l"
- register: v38500_result
- changed_when: v38500_result.stdout != '0'
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38500
-
-- name: V-38500 - The root account must be the only account with UID 0
- fail:
- msg: "Another account besides root has UID 0"
- when: v38500_result.stdout != '0'
- tags:
- - auth
- - cat2
- - V-38500
-
-# Ban the offending IP for 15 minutes to meet the spirit of the STIG.
-# Yes, the bantime we want to modify has two spaces before the equal sign.
-- name: V-38501 - The system must disable accounts after excessive login failures (configure fail2ban)
- template:
- src: jail.local.j2
- dest: /etc/fail2ban/jail.d/jail.local
- when: security_install_fail2ban | bool
- notify:
- - restart fail2ban
- tags:
- - auth
- - cat2
- - V-38501
-
-- name: Search /etc/passwd for password hashes (for V-38499)
- shell: "awk -F: '($2 != \"x\") {print}' /etc/passwd | wc -l"
- register: v38499_result
- changed_when: False
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38499
-
-- name: V-38499 - The /etc/passwd file must not contain password hashes
- fail:
- msg: "Remove password hashes from /etc/password to remediate"
- when: "v38499_result.stdout != '0'"
- tags:
- - auth
- - cat2
- - V-38499
-
-- name: V-38450 - The /etc/passwd file must be owned by root
- file:
- path: /etc/passwd
- owner: root
- tags:
- - auth
- - cat2
- - V-38450
-
-- name: V-38451 - The /etc/passwd file must be group-owned by root
- file:
- path: /etc/passwd
- group: root
- tags:
- - auth
- - cat2
- - V-38451
-
-# Ubuntu's default is 0644 already
-- name: V-38457 - The /etc/passwd file must have mode 0644 or less permissive
- file:
- path: /etc/passwd
- mode: 0644
- tags:
- - auth
- - cat2
- - V-38457
-
-# SHA512 is the minimum requirement and it happens to be Ubuntu 14.04's default
-# hashing algorithm as well.
-- name: Check password hashing algorithm used by PAM (for V-38574)
- command: "grep '^\\s*password.*pam_unix.*sha512' {{ pam_password_file }}"
- register: v38574_result
- changed_when: False
- failed_when: False
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38574
-
-# If SHA512 isn't in use for some reason, we should fail and display an error.
-- name: V-38574 - System must use FIPS 140-2 approved hashing algorithm for passwords (PAM)
- fail:
- msg: "Must use SHA512 for password hashing (via PAM)"
- when: v38574_result.rc != 0
- tags:
- - auth
- - cat2
- - V-38574
-
-- name: Check password hashing algorithm used in login.defs (for V-38576)
- command: "grep '^ENCRYPT_METHOD.*SHA512' /etc/login.defs"
- register: v38576_result
- changed_when: v38576_result.rc != 0
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38576
-
-# If SHA512 isn't in use for some reason, we should fail and display an error.
-- name: V-38576 - System must use FIPS 140-2 approved hashing algorithm for passwords (login.defs)
- fail:
- msg: "Must use SHA512 for password hashing (in /etc/login.defs)"
- when: v38576_result.rc != 0
- tags:
- - auth
- - cat2
- - V-38576
-
-# Neither Ubuntu or openstack-ansible installs libuser by default, so there's
-# no need to install it here unless the deployer has it installed for some
-# reason.
-- name: Check if libuser is installed (for V-38577)
- shell: "dpkg --status libuser | grep '^Status.*ok installed'"
- register: v38577_libuser_check
- changed_when: False
- failed_when: False
- check_mode: no
- tags:
- - auth
- - cat2
- - V-38577
-
-# Only look at libuser.conf when we are sure that libuser is installed
-- name: If libuser is installed, verify hashing algorithm in use (for V-38577)
- command: "grep '^crypt_style = sha512' /etc/libuser.conf"
- register: v38577_result
- when: v38577_libuser_check.rc == 0
- changed_when: v38577_result.rc != 0
- tags:
- - auth
- - cat2
- - V-38577
-
-# If libuser is installed *AND* it's using unacceptable password hashing
-# algorithms, throw an error and a failure.
-- name: V-38577 - System must use FIPS 140-2 approved hashing algorithm for passwords (libuser)
- fail:
- msg: "libuser isn't configured to use SHA512 hashing for passwords"
- when: v38577_libuser_check.rc == 0 and v38577_result.rc != 0
- tags:
- - auth
- - cat2
- - V-38577
-
-- name: V-38681 - Check for missing GID's in /etc/group
- shell: "pwck -r | grep 'no group'"
- register: v38681_result
- changed_when: False
- failed_when: v38681_result.rc > 1
- check_mode: no
- tags:
- - auth
- - cat3
- - V-38681
-
-- name: V-38681 - All GID's in /etc/passwd must be defined in /etc/group
- fail:
- msg: "GID's in /etc/passwd aren't in /etc/group"
- when: v38681_result.rc != 1
- tags:
- - auth
- - cat3
- - V-38681
-
-- name: V-38692 - Lock inactive accounts
- lineinfile:
- dest: /etc/default_useradd
- regexp: "^(#)?INACTIVE"
- line: "INACTIVE {{ security_inactive_account_lock_days }}"
- when: security_inactive_account_lock_days is defined
- tags:
- - auth
- - cat3
- - V-38692
-
-- name: Checking for accounts with non-unique usernames (for V-38683)
- shell: pwck -rq | wc -l
- register: v38683_result
- changed_when: False
- check_mode: no
- tags:
- - auth
- - cat3
- - V-38683
-
-- name: V-38683 - All accounts on the system must have unique user/account names
- fail:
- msg: "Found accounts without unique usernames"
- when: v38683_result.stdout != '0'
- tags:
- - auth
- - cat3
- - V-38683
-
-- name: Search for sudoers files (for V-58901)
- find:
- paths: "/etc/sudoers*"
- file_type: file
- register: v58901_result
- check_mode: no
- tags:
- - auth
- - cat2
- - V-58901
-
-# The lineinfile module can't be used here since we may need to comment out
-# multiple lines.
-- name: Comment out sudoers lines with NOPASSWD present (for V-58901)
- command: "sed -e '/NOPASSWD/ s/^#*/#/' -i {{ item.path }}"
- changed_when: false
- with_items: "{{ v58901_result.files | default([]) }}"
- when: security_sudoers_remove_nopasswd | bool
- tags:
- - auth
- - cat2
- - V-58901
-
-# The lineinfile module can't be used here since we may need to comment out
-# multiple lines.
-- name: Comment out sudoers lines with !authenticate present (for V-58901)
- command: "sed -e '/!authenticate/ s/^#*/#/' -i {{ item.path }}"
- changed_when: false
- with_items: "{{ v58901_result.files | default([]) }}"
- when: security_sudoers_remove_authenticate | bool
- tags:
- - auth
- - cat2
- - V-58901
diff --git a/tasks/rhel6stig/boot.yml b/tasks/rhel6stig/boot.yml
deleted file mode 100644
index c74e05be..00000000
--- a/tasks/rhel6stig/boot.yml
+++ /dev/null
@@ -1,66 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Check to see if grub.cfg exists
- stat:
- path: "{{ grub_conf_file }}"
- register: grub_cfg
- check_mode: no
-
-- name: V-38438 - Auditing must be enabled at boot by setting a kernel parameter
- lineinfile:
- dest: /etc/default/grub.d/99-enable-auditd.cfg
- line: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT audit=1"'
- create: yes
- notify:
- - update grub config
- tags:
- - boot
- - cat1
- - V-38438
- when:
- - security_enable_audit_during_boot | bool
-
-- name: V-38579 - Bootloader configuration files must be owned by root
- file:
- path: "{{ grub_conf_file }}"
- owner: root
- tags:
- - boot
- - cat2
- - V-38579
- when:
- - grub_cfg.stat.exists
-
-- name: V-38581 - Bootloader configuration files must be group-owned by root
- file:
- path: "{{ grub_conf_file }}"
- group: root
- tags:
- - boot
- - cat2
- - V-38581
- when:
- - grub_cfg.stat.exists
-
-- name: V-38583 - Bootloader configuration files must have mode 0644 or less
- file:
- path: "{{ grub_conf_file }}"
- mode: 0644
- tags:
- - boot
- - cat2
- - V-38583
- when: grub_cfg.stat.exists
diff --git a/tasks/rhel6stig/console.yml b/tasks/rhel6stig/console.yml
deleted file mode 100644
index 3754a6c8..00000000
--- a/tasks/rhel6stig/console.yml
+++ /dev/null
@@ -1,61 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38668 - The x86 Ctrl-Alt-Delete key sequence must be disabled (init)
- lineinfile:
- dest: /etc/init/control-alt-delete.conf
- regexp: '^(#)?exec shutdown -r now "Control-Alt-Delete pressed"'
- line: '#exec shutdown -r now "Control-Alt-Delete pressed"'
- state: present
- when:
- - ansible_service_mgr != 'systemd'
- tags:
- - console
- - cat1
- - V-38668
-
-# This returns an exit code of 0 if it's running, 3 if it's masked.
-- name: Check if ctrl-alt-del.target is already masked (systemd)
- command: systemctl status ctrl-alt-del.target
- register: cad_mask_check
- changed_when: False
- check_mode: no
- failed_when: False
- when:
- - ansible_service_mgr == 'systemd'
- tags:
- - always
- - console
- - cat1
- - V-38668
-
-- name: V-38668 - The x86 Ctrl-Alt-Delete key sequence must be disabled (systemd)
- command: systemctl mask ctrl-alt-del.target
- when:
- - ansible_service_mgr == 'systemd'
- - "'masked' in cad_mask_check.stdout"
- tags:
- - console
- - cat1
- - V-38668
-
-- name: V-38593 - Display a login banner for console prompts
- copy:
- src: login_banner.txt
- dest: /etc/issue.net
- tags:
- - console
- - cat2
- - V-38593
diff --git a/tasks/rhel6stig/file_perms.yml b/tasks/rhel6stig/file_perms.yml
deleted file mode 100644
index 23b634a0..00000000
--- a/tasks/rhel6stig/file_perms.yml
+++ /dev/null
@@ -1,188 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38443 - The /etc/gshadow file must be owned by root
- file:
- dest: /etc/gshadow
- owner: root
- tags:
- - file_perms
- - cat2
- - V-38443
-
-- name: V-38448 - The /etc/gshadow file must be group-owned by root
- file:
- dest: /etc/gshadow
- group: root
- tags:
- - file_perms
- - cat2
- - V-38448
-
-- name: V-38449 - The /etc/gshadow file must have mode 0000
- file:
- dest: /etc/gshadow
- mode: 0000
- tags:
- - file_perms
- - cat2
- - V-38449
-
-- name: V-38458 - The /etc/group file must be owned by root
- file:
- dest: /etc/group
- owner: root
- tags:
- - file_perms
- - cat2
- - V-38458
-
-- name: V-38459 - The /etc/group file must be group-owned by root
- file:
- dest: /etc/group
- group: root
- tags:
- - file_perms
- - cat2
- - V-38459
-
-- name: V-38461 - The /etc/group file must have mode 0644 or less
- file:
- dest: /etc/group
- mode: 0644
- tags:
- - file_perms
- - cat2
- - V-38461
-
-# NOTE(mhayden): The log directory permissions change each time auditd is
-# restarted. This causes the idempotent checks to fail and that's why there is
-# a 'changed_when: False' on this task.
-- name: V-38493 - Audit log directories must have mode 0755 or less
- file:
- dest: /var/log/audit/
- state: directory
- mode: 0750
- changed_when: False
- tags:
- - file_perms
- - cat2
- - V-38493
-
-- name: V-38502 - The /etc/shadow file must be owned by root
- file:
- dest: /etc/shadow
- owner: root
- tags:
- - file_perms
- - cat2
- - V-38502
-
-- name: V-38503 - The /etc/shadow file must be group-owned by root
- file:
- dest: /etc/shadow
- group: root
- tags:
- - file_perms
- - cat2
- - V-38503
-
-- name: V-38504 - The /etc/shadow file must have mode 0000
- file:
- dest: /etc/shadow
- mode: 0000
- tags:
- - file_perms
- - cat2
- - V-38504
-
-# This change will go into effect on the next log rotation.
-- name: V-38623 - All rsyslog-generated files must have mode 0600 or less
- lineinfile:
- dest: /etc/rsyslog.conf
- regexp: "^(#)?\\$FileCreateMode"
- line: "$FileCreateMode 0600"
- notify:
- - restart rsyslog
- tags:
- - file_perms
- - cat2
- - V-38623
-
-# BEGIN: UMASK ADJUSTMENTS ####################################################
-# Please read the documentation and the comments in defaults/main.yml prior
-# to making any umask-related changes.
-
-# Ubuntu 14.04 and CentOS 7 both have a default umask set to 022 already.
-- name: V-38642 - System default umask for daemons must be 027 or 022
- lineinfile:
- dest: "{{ daemon_init_params_file }}"
- regexp: "^umask "
- line: "umask {{ security_umask_daemons_init }}"
- when: security_umask_daemons_init is defined
- tags:
- - file_perms
- - cat3
- - V-38642
-
-# Ubuntu 14.04's default umask in /etc/login.defs is 022
-- name: V-38645 - System default umask in /etc/login.defs must be 077
- lineinfile:
- dest: /etc/login.defs
- regexp: "^UMASK"
- line: "UMASK {{ security_umask_login_defs }}"
- when: security_umask_login_defs is defined
- tags:
- - file_perms
- - cat3
- - V-38645
-
-# Ubuntu 14.04 and openstack-ansible don't install csh by default. We will
-# check if csh is installed and then apply the umask setting if needed.
-- name: Check if csh is installed (for V-38649)
- shell: dpkg --status csh | grep ^Status | grep "ok installed"
- register: v38649_result
- changed_when: False
- failed_when: False
- when: security_umask_csh is defined
- tags:
- - file_perms
- - cat3
- - V-38649
-
-- name: V-38649 - System default umask for csh must be 077
- lineinfile:
- dest: /etc/csh.cshrc
- regexp: "^(#)?umask"
- line: "umask {{ security_umask_csh }}"
- create: yes
- when: security_umask_csh is defined and v38649_result.rc == 0
- tags:
- - file_perms
- - cat3
- - V-38649
-
-- name: V-38651 - System default umask for bash must be 077
- lineinfile:
- dest: /etc/bash.bashrc
- regexp: "^(#)?umask"
- line: "umask {{ security_umask_bash }}"
- when: security_umask_bash is defined
- tags:
- - file_perms
- - cat3
- - V-38651
-
-# END: UMASK ADJUSTMENTS ######################################################
diff --git a/tasks/rhel6stig/kernel.yml b/tasks/rhel6stig/kernel.yml
deleted file mode 100644
index dc7c23d0..00000000
--- a/tasks/rhel6stig/kernel.yml
+++ /dev/null
@@ -1,222 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38528 - The system must log martian packets
- sysctl:
- name: net.ipv4.conf.all.log_martians
- value: "{{ (security_sysctl_enable_martian_logging | bool) | ternary('1', '0') }}"
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat3
- - V-38528
-
-# This is the default in Ubuntu 14.04
-- name: V-38537 - The system must ignore ICMPv4 bogus error responses
- sysctl:
- name: net.ipv4.icmp_ignore_bogus_error_responses
- value: 1
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat3
- - V-38537
-
-# This is the default in Ubuntu 14.04
-- name: V-38535 - The system must not respond to ICMPv4 sent to the broadcast address
- sysctl:
- name: net.ipv4.icmp_echo_ignore_broadcasts
- value: 1
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat3
- - V-38535
-
-- name: V-38539 - Enable TCP syncookies
- sysctl:
- name: net.ipv4.tcp_syncookies
- value: "{{ (security_sysctl_enable_tcp_syncookies | bool) | ternary('1', '0') }}"
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat2
- - V-38539
-
-# This is the default in Ubuntu 14.04
-- name: V-38596 - Enable virtual address space randomization
- sysctl:
- name: kernel.randomize_va_space
- value: 2
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat2
- - V-38596
-
-- name: V-38600 - Disable sending ICMPv4 redirects
- sysctl:
- name: net.ipv4.conf.default.send_redirects
- value: 0
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat2
- - V-38600
-
-- name: V-38601 - Disable sending ICMPv4 redirects on all interfaces
- sysctl:
- name: net.ipv4.conf.all.send_redirects
- value: 0
- state: present
- sysctl_set: yes
- tags:
- - kernel
- - cat2
- - V-38601
-
-- name: V-38490 - Disable usb-storage module
- lineinfile:
- dest: /etc/modprobe.d/V-38490-disable-usb-storage.conf
- line: "install usb-storage /bin/true"
- create: yes
- when: security_disable_module_usb_storage | bool
- tags:
- - kernel
- - cat2
- - V-38490
-
-- name: V-38514 - Disable DCCP
- lineinfile:
- dest: /etc/modprobe.d/V-38514-disable-dccp.conf
- line: "install dccp /bin/true"
- create: yes
- when: security_disable_module_dccp | bool
- tags:
- - kernel
- - cat2
- - V-38514
-
-- name: V-38515 - Disable SCTP
- lineinfile:
- dest: /etc/modprobe.d/V-38515-disable-sctp.conf
- line: "install sctp /bin/true"
- create: yes
- when: security_disable_module_sctp | bool
- tags:
- - kernel
- - cat2
- - V-38515
-
-- name: V-38516 - Disable RDS
- lineinfile:
- dest: /etc/modprobe.d/V-38516-disable-rds.conf
- line: "install rds /bin/true"
- create: yes
- when: security_disable_module_rds | bool
- tags:
- - kernel
- - cat3
- - V-38516
-
-- name: V-38517 - Disable TIPC
- lineinfile:
- dest: /etc/modprobe.d/V-38517-disable-tipc.conf
- line: "install tipc /bin/true"
- create: yes
- when: security_disable_module_tipc | bool
- tags:
- - kernel
- - cat2
- - V-38517
-
-- name: Disable IPv6
- sysctl:
- name: "{{ item }}"
- value: 1
- state: present
- sysctl_set: yes
- with_items:
- - net.ipv6.conf.all.disable_ipv6
- - net.ipv6.conf.default.disable_ipv6
- when: security_disable_ipv6 | bool
- tags:
- - kernel
- - cat2
- - V-38546
-
-- name: V-38682 - Disable bluetooth module
- copy:
- src: V-38682-modprobe.conf
- dest: /etc/modprobe.d/disable-bluetooth.conf
- when: security_disable_module_bluetooth | bool
- tags:
- - kernel
- - cat2
- - V-38682
-
-- name: V-38524 - The system must not accept ICMPv4 redirect packets on any interface
- sysctl:
- name: net.ipv4.conf.all.accept_redirects
- value: 0
- state: present
- sysctl_set: yes
- when: security_disable_icmpv4_redirects | bool
- tags:
- - kernel
- - cat2
- - V-38524
-
-- name: CVE-2016-5696 - Sets the global challenge ACK counter to a large value
- sysctl:
- name: net.ipv4.tcp_challenge_ack_limit
- value: 1073741823
- state: present
- sysctl_set: yes
- when: security_set_tcp_challenge_ack_limit | bool
- tags:
- - kernel
- - cat3
- - CVE-2016-5696
-
-- name: V-38526 - The system must not accept ICMPv4 secure redirect packets on any interface
- sysctl:
- name: net.ipv4.conf.all.secure_redirects
- value: 0
- state: present
- sysctl_set: yes
- when: security_disable_icmpv4_redirects_secure | bool
- tags:
- - kernel
- - cat2
- - V-38526
-
-- name: V-38548 - The system must ignore ICMPv6 redirects by default
- sysctl:
- name: net.ipv6.conf.all.accept_redirects
- value: 0
- state: present
- sysctl_set: yes
- when: security_disable_icmpv6_redirects | bool
- tags:
- - kernel
- - cat2
- - V-38548
diff --git a/tasks/rhel6stig/lsm.yml b/tasks/rhel6stig/lsm.yml
deleted file mode 100644
index f3832b0d..00000000
--- a/tasks/rhel6stig/lsm.yml
+++ /dev/null
@@ -1,52 +0,0 @@
----
-# Copyright 2016, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Ensure AppArmor is running (for V-51337)
- service:
- name: apparmor
- state: started
- enabled: yes
- when:
- - ansible_os_family == "Debian"
- - security_enable_linux_security_module | bool
- - not check_mode
- tags:
- - cat2
- - V-51337
-
-- name: Ensure SELinux is in enforcing mode on the next reboot (for V-51337)
- selinux:
- state: enforcing
- policy: targeted
- register: selinux_status_change
- when:
- - ansible_os_family == "RedHat"
- - security_enable_linux_security_module | bool
- - not check_mode
- tags:
- - cat2
- - V-51337
-
-- name: Relabel files on next boot if SELinux mode changed (for V-51337)
- file:
- path: /.autorelabel
- state: touch
- when:
- - ansible_os_family == "RedHat"
- - security_enable_linux_security_module | bool
- - selinux_status_change | changed
- tags:
- - cat2
- - V-51337
diff --git a/tasks/rhel6stig/mail.yml b/tasks/rhel6stig/mail.yml
deleted file mode 100644
index a5f58f59..00000000
--- a/tasks/rhel6stig/mail.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38669 - The postfix service must be enabled for mail delivery (enable postfix)
- service:
- name: postfix
- state: started
- enabled: yes
- when: not check_mode
- tags:
- - mail
- - cat3
- - V-38669
-
-- name: V-38669 - Use only IPv4 addresses in mynetworks if IPv6 is disabled
- lineinfile:
- dest: /etc/postfix/main.cf
- regexp: "^(#)?mynetworks"
- line: "mynetworks = 127.0.0.0/8"
- when: security_disable_ipv6 | bool
- tags:
- - mail
- - cat3
- - V-38669
-
-# Be sure to set security_root_forward_email so that this task is executed. See
-# the documentation for more details.
-- name: V-38446 - Mail system must forward root's email
- lineinfile:
- dest: /etc/aliases
- regexp: "^root"
- line: "root: {{ security_root_forward_email }}"
- when: security_root_forward_email is defined
- notify:
- - rehash aliases
- tags:
- - mail
- - cat2
- - V-38446
-
-- name: Verify that Postfix's main.cf exists
- stat:
- path: /etc/postfix/main.cf
- register: postfix_main_cf
- check_mode: no
- tags:
- - always
-
-- name: V-38622 - Mail relaying must be restricted
- lineinfile:
- dest: /etc/postfix/main.cf
- regexp: "^(#)?inet_interfaces"
- line: "inet_interfaces = {{ security_postfix_inet_interfaces }}"
- when: postfix_main_cf.stat.exists | bool
- notify:
- - restart postfix
- tags:
- - mail
- - cat2
- - V-38622
diff --git a/tasks/rhel6stig/main.yml b/tasks/rhel6stig/main.yml
deleted file mode 100644
index 979afcb3..00000000
--- a/tasks/rhel6stig/main.yml
+++ /dev/null
@@ -1,49 +0,0 @@
----
-# Copyright 2016, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
- - name: Install EPEL repository
- yum:
- name: "{{ security_epel_release_package }}"
- state: "{{ security_package_state }}"
- when:
- - ansible_pkg_mgr == 'yum'
-
- - include: apt.yml
- static: no
- when: ansible_pkg_mgr == 'apt'
- tags:
- - apt
- - package
-
- - include: rpm.yml
- static: no
- when: ansible_pkg_mgr == 'yum' or ansible_pkg_mgr == 'dnf'
- tags:
- - package
- - rpm
-
- - include: aide.yml
- - include: auditd.yml
- - include: auth.yml
- - include: boot.yml
- - include: console.yml
- - include: file_perms.yml
- - include: kernel.yml
- - include: lsm.yml
- - include: mail.yml
- - include: misc.yml
- - include: nfsd.yml
- - include: services.yml
- - include: sshd.yml
diff --git a/tasks/rhel6stig/misc.yml b/tasks/rhel6stig/misc.yml
deleted file mode 100644
index 1d178542..00000000
--- a/tasks/rhel6stig/misc.yml
+++ /dev/null
@@ -1,339 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: V-38670 - System must detect unauthorized changes to software and information
- fail:
- msg: "AIDE cron job is missing"
- when:
- - not check_mode
- - v38670_result.stat.exists == False
- tags:
- - cat2
- - V-38670
-
-- name: Search for .netrc files (for V-38619)
- shell: find /root /home -xdev -name .netrc | wc -l
- register: v38619_result
- changed_when: False
- check_mode: no
- tags:
- - cat2
- - V-38619
-
-- name: V-38619 - There must be no .netrc files on the system
- fail:
- msg: ".netrc files found -- they must be removed"
- when: v38619_result.stdout != '0'
- tags:
- - cat2
- - V-38619
-
-- name: V-38620 - Synchronize system clock (enable chrony)
- service:
- name: "{{ chrony_service }}"
- state: started
- enabled: yes
- when:
- - not check_mode
- - security_enable_chrony | bool
- tags:
- - cat2
- - V-38620
-
-- name: V-38620 - Synchronize system clock (configuration file)
- template:
- src: chrony.conf.j2
- dest: "{{ chrony_conf_file }}"
- when:
- - not check_mode
- - security_enable_chrony | bool
- notify:
- - restart chrony
- tags:
- - cat2
- - V-38620
-
-- name: Check for logrotate cron job (for V-38624)
- stat:
- path: /etc/cron.daily/logrotate
- register: v38624_result
- tags:
- - cat3
- - V-38624
-
-- name: V-38624 - System logs must be rotated daily (verify cron job)
- fail:
- msg: "Cron job for logrotate is missing"
- when:
- - not check_mode
- - not v38624_result.stat.exists | bool
- tags:
- - cat3
- - V-38624
-
-- name: Check if samba is installed (for V-38656)
- stat:
- path: /etc/samba/smb.conf
- register: v38656_result
- changed_when: false
- tags:
- - cat3
- - V-38656
-
-- name: V-38656 - System must use SMB client signing
- lineinfile:
- dest: /etc/samba/smb.conf
- regexp: "^(;)?client signing"
- line: "client signing = mandatory"
- insertafter: "############ Misc ############"
- when: v38656_result.stat.exists | bool
- notify:
- - restart samba
- tags:
- - cat3
- - V-38656
-
-- name: Check if SNMP daemon is installed using dpkg (for V-38660)
- shell: "dpkg --status snmpd | grep \"^Status:.*ok installed\""
- register: v38660_snmpd_apt
- changed_when: False
- failed_when: False
- check_mode: no
- when: ansible_pkg_mgr == 'apt'
- tags:
- - cat2
- - V-38660
-
-- name: Check if SNMP daemon is installed using rpm (for V-38660)
- shell: "rpm -qi net-snmp"
- register: v38660_snmpd_rpm
- changed_when: False
- failed_when: False
- check_mode: no
- when: ansible_pkg_mgr == 'yum'
- tags:
- - cat2
- - V-38660
- - skip_ansible_lint
-
-- name: Set fact for SNMP being installed
- set_fact:
- snmpd_installed: True
- when: |
- (v38660_snmpd_apt.rc is defined and v38660_snmpd_apt.rc == 0) or
- (v38660_snmpd_rpm.rc is defined and v38660_snmpd_rpm.rc == 0)
- tags:
- - cat2
- - V-38660
-
-# We shouldn't get any output from this grep since it looks for configuration
-# lines for the SNMP v1 and v2c protocols.
-- name: Check for insecure SNMP protocols (for V-38660)
- shell: "egrep 'v1|v2c|com2sec|community' /etc/snmp/snmpd.conf | grep -v '^\\s*#'"
- register: v38660_result
- changed_when: False
- failed_when: False
- check_mode: no
- when:
- - snmpd_installed is defined
- - snmpd_installed | bool
- tags:
- - cat2
- - V-38660
-
-- name: V-38660 - The snmpd service must only use SNMPv3 or newer
- fail:
- msg: "Insecure SNMP configuration found -- use SNMPv3 only"
- when:
- - not check_mode
- - snmpd_installed is defined
- - snmpd_installed | bool
- - v38660_result.rc == 0
- tags:
- - cat2
- - V-38660
-
-- name: V-38675 - Process core dump must be disabled
- lineinfile:
- dest: /etc/security/limits.d/V-38675-coredump.conf
- line: "* hard core 0"
- create: yes
- when: security_disable_core_dumps is defined
- tags:
- - cat3
- - V-38675
-
-- name: V-38684 - Maximum simultaneous logins per user
- lineinfile:
- dest: /etc/security/limits.d/V-38684-maxlogins.conf
- line: "* hard maxlogins {{ security_max_simultaneous_logins }}"
- create: yes
- when: security_max_simultaneous_logins is defined
- tags:
- - cat3
- - V-38684
-
-- name: Check if vsftpd installed using dpkg (for V-38599 and V-38702)
- shell: "dpkg --status vsftpd | grep \"^Status:.*ok installed\""
- register: v38599_vsftpd_apt
- changed_when: False
- failed_when: False
- check_mode: no
- when: ansible_pkg_mgr == 'apt'
- tags:
- - cat2
- - cat3
- - V-38599
- - V-38702
-
-- name: Check if vsftpd installed using rpm (for V-38599 and V-38702)
- shell: "rpm -qi vsftpd"
- register: v38599_vsftpd_rpm
- changed_when: False
- failed_when: False
- check_mode: no
- when: ansible_pkg_mgr == 'yum'
- tags:
- - cat2
- - cat3
- - V-38599
- - V-38702
- - skip_ansible_lint
-
-- name: Set fact for vsftpd being installed
- set_fact:
- vsftpd_installed: True
- when: |
- (v38599_vsftpd_apt.rc is defined and v38599_vsftpd_apt.rc == 0) or
- (v38599_vsftpd_rpm.rc is defined and v38599_vsftpd_rpm.rc == 0)
- tags:
- - cat2
- - cat3
- - V-38599
- - V-38702
-
-- name: Copy login banner (for V-38599)
- copy:
- src: login_banner.txt
- dest: /etc/issue.net
- when:
- - vsftpd_installed is defined
- - vsftpd_installed | bool
- notify:
- - restart vsftpd
- tags:
- - cat2
- - V-38599
-
-- name: V-38599 - Set warning banner for FTPS/FTP logins
- lineinfile:
- dest: "{{ vsftpd_conf_file }}"
- regexp: "^(#)?banner_file"
- line: "banner_file=/etc/issue.net"
- when:
- - vsftpd_installed is defined
- - vsftpd_installed | bool
- notify:
- - restart vsftpd
- tags:
- - cat2
- - V-38599
-
-- name: V-38702 - Enable xferlog
- lineinfile:
- dest: "{{ vsftpd_conf_file }}"
- regexp: "^(#)?xferlog_enable"
- line: "xferlog_enable=YES"
- when:
- - vsftpd_installed is defined
- - vsftpd_installed | bool
- notify:
- - restart vsftpd
- tags:
- - cat3
- - V-38702
-
-- name: V-38702 - Disable xferlog_std_format
- lineinfile:
- dest: "{{ vsftpd_conf_file }}"
- regexp: "^(#)?xferlog_std_format"
- line: "xferlog_std_format=NO"
- when:
- - vsftpd_installed is defined
- - vsftpd_installed | bool
- notify:
- - restart vsftpd
- tags:
- - cat3
- - V-38702
-
-- name: V-38702 - Enable log_ftp_protocol
- lineinfile:
- dest: "{{ vsftpd_conf_file }}"
- regexp: "^(#)?log_ftp_protocol"
- line: "log_ftp_protocol=YES"
- when:
- - vsftpd_installed is defined
- - vsftpd_installed | bool
- notify:
- - restart vsftpd
- tags:
- - cat3
- - V-38702
-
-- name: V-38674 - X Windows must not be enabled (upstart)
- lineinfile:
- dest: /etc/init/rc-sysinit.conf
- regexp: "^env DEFAULT_RUNLEVEL"
- line: "env DEFAULT_RUNLEVEL=2"
- when:
- - security_disable_x_windows | bool
- - ansible_service_mgr != 'systemd'
- tags:
- - cat2
- - V-38674
-
-- name: V-38674 - X Windows must not be enabled (systemd)
- command: "systemctl set-default multi-user.target"
- register: systemctl_default_target
- changed_when: "'Created symlink' in systemctl_default_target.stdout"
- when:
- - security_disable_x_windows | bool
- - ansible_service_mgr == 'systemd'
- tags:
- - cat2
- - V-38674
-
-- name: Check for unlabeled device files (for V-51379)
- command: "find /dev -context '*unlabeled_t*'"
- register: v51379_unlabeled_devices
- changed_when: False
- check_mode: no
- when:
- - ansible_os_family == 'RedHat'
- tags:
- - cat1
- - V-51379
-
-- name: V-51379 - All device files must be monitored by the Linux Security Module
- fail:
- msg: "Devices were found without SELinux labels: {{ v51379_unlabeled_devices.stdout_lines | join(', ') }}"
- when:
- - ansible_os_family == 'RedHat'
- - v51379_unlabeled_devices.stdout is defined
- - v51379_unlabeled_devices.stdout | length > 0
- tags:
- - cat1
- - V-51379
diff --git a/tasks/rhel6stig/nfsd.yml b/tasks/rhel6stig/nfsd.yml
deleted file mode 100644
index d6c816b6..00000000
--- a/tasks/rhel6stig/nfsd.yml
+++ /dev/null
@@ -1,74 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate a list of services
-- name: Check if /etc/exports exists
- stat:
- path: /etc/exports
- register: exports
- check_mode: no
- tags:
- - nfs
- - cat1
- - cat2
- - cat3
-
-- name: Check if 'all_squash' appears in /etc/exports (for V-38460)
- command: grep all_squash /etc/exports
- register: v38460_result
- changed_when: v38460_result | success
- failed_when: False
- when: exports.stat.exists
- tags:
- - nfs
- - cat3
- - V-38460
-
-- name: V-38460 - The NFS server must not have the all_squash option enabled
- fail:
- msg: "Remove all_squash from /etc/exports"
- changed_when: v38460_result | success
- when:
- - exports.stat.exists
- - v38460_result | success
- - not check_mode
- tags:
- - nfs
- - cat3
- - V-38460
-
-- name: Check if 'insecure_locks' appears in /etc/exports (for V-38677)
- command: grep insecure_locks /etc/exports
- register: v38677_result
- changed_when: v38677_result | success
- failed_when: False
- when: exports.stat.exists
- tags:
- - nfs
- - cat3
- - V-38677
-
-- name: V-38677 - The NFS server must not have the insecure_locks option enabled
- fail:
- msg: "Remove insecure_locks from /etc/exports"
- changed_when: v38677_result | success
- when:
- - exports.stat.exists
- - v38677_result | success
- - not check_mode
- tags:
- - nfs
- - cat3
- - V-38677
diff --git a/tasks/rhel6stig/rpm.yml b/tasks/rhel6stig/rpm.yml
deleted file mode 100644
index 03b6d8fa..00000000
--- a/tasks/rhel6stig/rpm.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Check if CentOS 7 GPG keys are installed (for V-38476)
- command: rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b
- register: v38476_result
- changed_when: v38476_result | failed
- failed_when: False
- check_mode: no
- when:
- - ansible_distribution == 'CentOS'
- tags:
- - package
- - cat1
- - V-38476
- - skip_ansible_lint
-
-- name: V-38476 - Vendor-provided cryptographic certificates must be installed to verify the integrity of system software. (CentOS)
- fail:
- msg: "Missing CentOS 7 GPG keys"
- when:
- - ansible_distribution == 'CentOS'
- - v38476_result | failed
- tags:
- - package
- - cat1
- - V-38476
-
-- name: Check if Red Hat Enterprise Linux 7 GPG keys are installed (for V-38476)
- command: "rpm -qi {{ item }}"
- register: v38476_result
- changed_when: v38476_result | failed
- failed_when: False
- check_mode: no
- with_items:
- - gpg-pubkey-fd431d51-4ae0493b
- - gpg-pubkey-2fa658e0-45700c69
- when:
- - ansible_distribution == 'RedHat'
- tags:
- - package
- - cat1
- - V-38476
- - skip_ansible_lint
-
-- name: V-38476 - Vendor-provided cryptographic certificates must be installed to verify the integrity of system software. (Red Hat Enterprise Linux)
- fail:
- msg: "Missing Red Hat Enterprise Linux 7 GPG keys"
- when:
- - ansible_distribution == 'RedHat'
- - v38476_result | failed
- tags:
- - package
- - cat1
- - V-38476
-
-- name: Search for yum repositories with GPG checks disabled
- command: grep -r "gpgcheck=0" /etc/yum.repos.d/
- register: v38462_result
- changed_when: False
- failed_when: False
- check_mode: no
- tags:
- - package
- - cat1
- - V-38462
-
-- name: V-38462 - Package management tool must verify authenticity of packages
- fail:
- msg: "Ensure all repo files in /etc/yum.repos.d/ have 'gpgcheck=1' set."
- when: "v38462_result.rc == 0"
- tags:
- - package
- - cat1
- - V-38462
-
-- name: V-38481 - System security patches and updates must be installed and up-to-date
- lineinfile:
- dest: /etc/yum/yum-cron.conf
- regexp: "^apply_updates"
- line: "apply_updates = yes"
- state: present
- when: security_unattended_upgrades_enabled | bool
- tags:
- - package
- - cat2
- - V-38481
-
-- name: Add or remove packages based on STIG requirements
- yum:
- name: "{{ stig_packages | selectattr('enabled') | selectattr('state', 'equalto', item) | sum(attribute='packages', start=[]) }}"
- state: "{{ item }}"
- with_items:
- - "{{ stig_packages | selectattr('enabled') | map(attribute='state') | unique | list }}"
- tags:
- - cat1
- - auth
- - services
- - V-38439 # install: aide, aide-common
- - V-38481 # install: yum-cron
- - V-38620 # install: chrony
- - V-38624 # install: logrotate
- - V-38631 # install: auditd_pkg
- - V-38632 # install: auditd_pkg
- - V-38669 # install: postfix
- - V-51337 # install: SELinux
- - V-38583 # remove: xinetd
- - V-38587 # remove: telnet-server
- - V-38591 # remove: rsh-server
- - V-38603 # remove: ypserv
- - V-38606 # remove: tftp-server
- - V-38627 # remove: openldap-servers
- - V-38671 # remove: sendmail
diff --git a/tasks/rhel6stig/services.yml b/tasks/rhel6stig/services.yml
deleted file mode 100644
index 55ca6f35..00000000
--- a/tasks/rhel6stig/services.yml
+++ /dev/null
@@ -1,167 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-- name: Generate list of services_installed
- command: "find /etc/init.d/ -printf '%f\n'"
- register: sysv_services_installed
- changed_when: false
- check_mode: no
- tags:
- - services
- - cat1
- - cat2
- - cat3
-
-- name: Generate a list of systemd service unit files
- shell: "systemctl list-units --type=service --no-legend | awk '{print $1}'"
- register: systemd_services_installed
- changed_when: false
- check_mode: no
- tags:
- - services
- - cat1
- - cat2
- - cat3
-
-- name: Register which services are installed depending on platform
- set_fact:
- services_installed: "{{ (ansible_service_mgr == 'systemd') | ternary (systemd_services_installed, sysv_services_installed)}}"
-
-- name: V-38437 - Automated file system mounting tools must be disabled
- service:
- name: autofs
- state: stopped
- enabled: no
- when:
- - security_disable_autofs | bool
- - "'autofs' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38437
-
-- name: V-38640 - The abrt service must be disabled
- service:
- name: abrtd
- state: stopped
- enabled: no
- when:
- - security_disable_abrtd | bool
- - "'abrtd' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38640
-
-- name: V-38641 - The atd service must be disabled
- service:
- name: atd
- state: stopped
- enabled: no
- when:
- - security_disable_atd | bool
- - "'atd' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38641
-
-- name: V-38648 - The qpidd service must be disabled
- service:
- name: qpidd
- state: stopped
- enabled: no
- when:
- - security_disable_qpidd | bool
- - "'qpidd' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38648
-
-- name: V-38691 - The bluetooth service must be disabled
- service:
- name: bluetooth
- state: stopped
- enabled: no
- when:
- - security_disable_bluetooth | bool
- - "'bluetooth' in services_installed.stdout"
- tags:
- - services
- - cat2
- - V-38691
-
-- name: V-38582 - xinetd must be disabled if not in use
- service:
- name: xinetd
- state: stopped
- enabled: no
- when:
- - security_disable_xinetd | bool
- - "'xinetd' in services_installed.stdout"
- tags:
- - services
- - cat2
- - V-38582
-
-- name: V-38605 - The cron service must be running
- service:
- name: "{{ cron_service }}"
- state: started
- enabled: yes
- tags:
- - services
- - cat2
- - V-38605
-
-- name: V-38618 - avahi must be disabled
- service:
- name: avahi-daemon
- state: stopped
- enabled: no
- when:
- - security_disable_avahi | bool
- - "'avahi' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38618
-
-- name: V-38650 - rdisc must be disabled
- service:
- name: rdisc
- state: stopped
- enabled: no
- when:
- - security_disable_rdisc | bool
- - "'rdisc' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38650
-
-- name: V-38672 - netconsole must be disabled
- service:
- name: netconsole
- state: stopped
- enabled: no
- when:
- - security_disable_netconsole | bool
- - "'netconsole' in services_installed.stdout"
- tags:
- - services
- - cat3
- - V-38672
diff --git a/tasks/rhel6stig/sshd.yml b/tasks/rhel6stig/sshd.yml
deleted file mode 100644
index 12a45103..00000000
--- a/tasks/rhel6stig/sshd.yml
+++ /dev/null
@@ -1,234 +0,0 @@
----
-# Copyright 2015, Rackspace US, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Adding additional sshd configuration options is usually easy, but if a
-# configuration file ends with certain configurations, like a "Match" stanza,
-# we need a blank line to separate those configurations from the ones that
-# are added by the security role. For that reason, we check for the existence
-# of a marker line here and add a marker line to the file if it doesn't exist.
-- name: Check for security role marker in sshd_config
- command: "grep '^# ansible-hardening configurations' /etc/ssh/sshd_config"
- register: sshd_marker_check
- changed_when: False
- check_mode: no
- failed_when: False
- tags:
- - ssh
-
-# Check for "Match" stanzas in the sshd_config.
-- name: Check for Match stanzas in sshd_config
- command: "grep '^Match' /etc/ssh/sshd_config"
- register: sshd_match_check
- changed_when: False
- check_mode: no
- failed_when: False
- tags:
- - ssh
-
-# If the marker is missing, and "Match" stanzas are present, we must carefully
-# add a marker line above any "Match" stanzas in the configuration file. This
-# is done by finding the first match with sed and then adding a marker
-# line above it.
-- name: Add security role marker with sed above Match stanza
- shell: |
- sed -i '0,/^Match/s/^Match/\n# ansible-hardening configurations\n\n&/' /etc/ssh/sshd_config
- when:
- - sshd_marker_check.rc != 0
- - sshd_match_check.rc == 0
- tags:
- - ssh
-
-# If the marker is missing, but there are no "Match" stanzas present, we can
-# simply add the security role marker to the bottom of the sshd_config.
-- name: Add security role marker to the end of the sshd_config
- lineinfile:
- dest: /etc/ssh/sshd_config
- line: "\n# ansible-hardening configurations"
- state: present
- insertbefore: EOF
- validate: '/usr/sbin/sshd -T -f %s'
- when:
- - sshd_marker_check.rc != 0
- - sshd_match_check.rc != 0
- tags:
- - ssh
-
-- name: V-38484 - User must get date/time of last successful login
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?PrintLastLog'
- line: 'PrintLastLog yes'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38484
-
-- name: V-38607 - The SSH daemon must be configured to use only the SSHv2 protocol
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?Protocol \d'
- line: 'Protocol 2'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat1
- - V-38607
-
-- name: V-38614 - The SSH daemon must not allow authentication using an empty password
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?PermitEmptyPasswords'
- line: 'PermitEmptyPasswords no'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat1
- - V-38614
-
-- name: V-38612 - The SSH daemon must not allow host-based authentication
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?HostbasedAuthentication'
- line: 'HostbasedAuthentication no'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38612
-
-- name: V-38608 - Set a timeout interval for idle ssh sessions
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?ClientAliveInterval'
- line: 'ClientAliveInterval {{ security_ssh_client_alive_interval }}'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38608
-
-- name: V-38610 - Set a timeout count on idle ssh sessions
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?ClientAliveCountMax'
- line: 'ClientAliveCountMax {{ security_ssh_client_alive_count_max }}'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38610
-
-- name: V-38611 - The sshd daemon must ignore .rhosts files
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?IgnoreRhosts'
- line: 'IgnoreRhosts yes'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38611
-
-- name: V-38613 - The ssh daemon must not permit root logins
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?PermitRootLogin'
- line: 'PermitRootLogin {{ security_ssh_permit_root_login }}'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- notify:
- - restart ssh
- tags:
- - ssh
- - cat2
- - V-38613
-
-- name: Copy the login banner for sshd (for V-38615)
- copy:
- src: login_banner.txt
- dest: /etc/issue.net
- tags:
- - ssh
- - cat2
- - V-38615
-
-- name: V-38615 - The ssh daemon must display a login banner
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?Banner'
- line: 'Banner /etc/issue.net'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- tags:
- - ssh
- - cat2
- - V-38615
-
-- name: V-38616 - The ssh daemon must not permit user environment settings
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?PermitUserEnvironment'
- line: 'PermitUserEnvironment no'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- tags:
- - ssh
- - cat3
- - V-38616
-
-- name: V-38617 - The ssh daemon must be configured to use approved ciphers
- lineinfile:
- state: present
- dest: /etc/ssh/sshd_config
- regexp: '^(#)?Ciphers'
- line: 'Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc'
- insertafter: "^# ansible-hardening configurations"
- validate: '/usr/sbin/sshd -T -f %s'
- tags:
- - ssh
- - cat2
- - V-38617
diff --git a/tests/test.yml b/tests/test.yml
index 467bbccc..44706e09 100644
--- a/tests/test.yml
+++ b/tests/test.yml
@@ -34,46 +34,6 @@
state: installed
when: ansible_os_family == 'RedHat'
changed_when: False
- post_tasks:
- - name: Stat 20auto-upgrades file
- stat:
- path: /etc/apt/apt.conf.d/20auto-upgrades
- register: auto_upgrades_file
- when:
- - not check_mode
- - stig_version == 'rhel6'
- - ansible_pkg_mgr == 'apt'
- - name: Slurp contents of 50unattended-upgrades file
- slurp:
- src: /etc/apt/apt.conf.d/50unattended-upgrades
- register: unattended_upgrades_file_encoded
- when:
- - not check_mode
- - stig_version == 'rhel6'
- - ansible_pkg_mgr == 'apt'
- - name: Decode slurp'd 50-unattended-upgrades file
- set_fact:
- unattended_upgrades_file: "{{ unattended_upgrades_file_encoded.content | b64decode }}"
- when:
- - not check_mode
- - stig_version == 'rhel6'
- - ansible_pkg_mgr == 'apt'
- - name: Ensure auto updates has been enabled
- assert:
- that:
- - auto_upgrades_file.stat.exists
- when:
- - not check_mode
- - stig_version == 'rhel6'
- - ansible_pkg_mgr == 'apt'
- - name: Ensure that auto update notifications has been enabled
- assert:
- that:
- - "'\nUnattended-Upgrade::Mail \"root\";\n' in unattended_upgrades_file"
- when:
- - not check_mode
- - stig_version == 'rhel6'
- - ansible_pkg_mgr == 'apt'
roles:
- role: "ansible-hardening"
vars:
diff --git a/tox.ini b/tox.ini
index 57fceb28..266a5b1e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -110,17 +110,6 @@ commands =
bash -c "{toxinidir}/tests/tests-repo-clone.sh"
bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
-[testenv:func_rhel6]
-deps =
- {[testenv:ansible]deps}
-setenv =
- {[testenv]setenv}
- # NOTE(mhayden): Disabling chrony since it causes conflicts in CI.
- ANSIBLE_PARAMETERS=-e stig_version=rhel6 --skip-tags V-38462,V-38660 -e security_enable_chrony=no
-commands =
- bash -c "{toxinidir}/tests/tests-repo-clone.sh"
- bash -c "{toxinidir}/tests/common/test-ansible-functional.sh"
-
[testenv:linters]
deps =
{[testenv:ansible]deps}
diff --git a/vars/debian.yml b/vars/debian.yml
index ae6736f9..7a82883d 100644
--- a/vars/debian.yml
+++ b/vars/debian.yml
@@ -50,62 +50,6 @@ ssh_keysign_path: /usr/lib/openssh
# Other configuration
security_interactive_user_minimum_uid: 500
-# RHEL 6 STIG: Packages to add/remove
-stig_packages:
- - packages:
- - auditd
- - audispd-plugins
- - aide
- - aide-common
- - chrony
- - debsums
- - logrotate
- - postfix
- state: "{{ security_package_state }}"
- enabled: True
- - packages:
- - apparmor
- - apparmor-profiles
- - apparmor-utils
- state: "{{ security_package_state }}"
- enabled: "{{ security_enable_linux_security_module }}"
- - packages:
- - fail2ban
- state: "{{ security_package_state }}"
- enabled: "{{ security_install_fail2ban }}"
- - packages:
- - xinetd
- state: absent
- enabled: "{{ security_remove_xinetd }}"
- - packages:
- - nis
- state: absent
- enabled: "{{ security_remove_ypserv }}"
- - packages:
- - tftpd
- state: absent
- enabled: "{{ security_remove_tftp_server }}"
- - packages:
- - slapd
- state: absent
- enabled: "{{ security_remove_ldap_server }}"
- - packages:
- - sendmail
- state: absent
- enabled: "{{ security_remove_sendmail }}"
- - packages:
- - xorg-xserver
- state: absent
- enabled: "{{ security_remove_xorg }}"
- - packages:
- - rsh-server
- state: absent
- enabled: "{{ security_remove_rsh_server }}"
- - packages:
- - telnetd
- state: absent
- enabled: "{{ security_remove_telnet_server }}"
-
# RHEL 7 STIG: Packages to add/remove
stig_packages_rhel7:
- packages:
diff --git a/vars/redhat.yml b/vars/redhat.yml
index b900ae3b..0e1c666f 100644
--- a/vars/redhat.yml
+++ b/vars/redhat.yml
@@ -47,67 +47,6 @@ ssh_keysign_path: /usr/libexec/openssh
# Other configuration
security_interactive_user_minimum_uid: 1000
-# RHEL 6 STIG: Packages to add/remove
-stig_packages:
- - packages:
- - audit
- - audispd-plugins
- - aide
- - chrony
- - logrotate
- - postfix
- state: "{{ security_package_state }}"
- enabled: True
- - packages:
- - esc
- - pam_pkcs11
- - authconfig
- state: "{{ security_package_state }}"
- enabled: "{{ security_install_multifactor_auth_packages }}"
- - packages:
- - libselinux-python
- - policycoreutils-python
- - selinux-policy
- - selinux-policy-targeted
- state: "{{ security_package_state }}"
- enabled: "{{ security_enable_linux_security_module }}"
- - packages:
- - yum-cron
- state: "{{ security_package_state }}"
- enabled: "{{ security_unattended_upgrades_enabled }}"
- - packages:
- - xinetd
- state: absent
- enabled: "{{ security_remove_xinetd }}"
- - packages:
- - ypserv
- state: absent
- enabled: "{{ security_remove_ypserv }}"
- - packages:
- - tftp-server
- state: absent
- enabled: "{{ security_remove_tftp_server }}"
- - packages:
- - openldap-servers
- state: absent
- enabled: "{{ security_remove_ldap_server }}"
- - packages:
- - sendmail
- state: absent
- enabled: "{{ security_remove_sendmail }}"
- - packages:
- - xorg-x11-server-Xorg
- state: absent
- enabled: "{{ security_remove_xorg }}"
- - packages:
- - rsh-server
- state: absent
- enabled: "{{ security_remove_rsh_server }}"
- - packages:
- - telnet-server
- state: absent
- enabled: "{{ security_remove_telnet_server }}"
-
# RHEL 7 STIG: Packages to add/remove
stig_packages_rhel7:
- packages: