VMware vSphere 8.0 ESXi Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +4 ✎ 10
Comparison against the immediately-prior release (V1R1). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Added rules 4
- V-265974 Medium The ESXi host must use DOD-approved encryption to protect the confidentiality of network sessions.
- V-265975 Medium The ESXi host must disable key persistence.
- V-265976 Medium The ESXi host must deny shell access for the dcui account.
- V-265977 Medium The ESXi host must disable virtual hardware management network interfaces.
Content changes 10
- V-258739 Medium check The ESXi host must set a timeout to automatically end idle shell sessions after fifteen minutes.
- V-258741 Medium checkfix The ESXi host must enable Secure Boot.
- V-258742 Medium check The ESXi host must enforce an unlock timeout of 15 minutes after a user account is locked out.
- V-258756 Medium check The ESXi host must automatically stop shell services after 10 minutes.
- V-258757 Medium check The ESXi host must set a timeout to automatically end idle DCUI sessions after 10 minutes.
- V-258769 Medium checkfix The ESXi host must configure the firewall to block network traffic by default.
- V-258779 Medium checkfix The ESXi host must verify certificates for SSL syslog endpoints.
- V-258787 Medium fix The ESXi host must enable audit logging.
- V-258794 Medium checkfix The ESXi host must configure the firewall to restrict access to services running on the host.
- V-258797 Medium fix The ESXi host must configure a persistent log location for all locally stored logs.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- ESXI-80-000005
- Vuln IDs
-
- V-258728
- Rule IDs
-
- SV-258728r958388_rule
Checks: C-62468r933243_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Security.AccountLockFailures" value and verify it is set to "3". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.AccountLockFailures If the "Security.AccountLockFailures" setting is set to a value other than "3", this is a finding.
Fix: F-62377r933244_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Security.AccountLockFailures" value and configure it to "3". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.AccountLockFailures | Set-AdvancedSetting -Value 3
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- ESXI-80-000006
- Vuln IDs
-
- V-258729
- Rule IDs
-
- SV-258729r958390_rule
Checks: C-62469r933246_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Annotations.WelcomeMessage" value and verify it contains the standard mandatory DOD notice and consent banner. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Annotations.WelcomeMessage If the "Annotations.WelcomeMessage" setting does not contain the standard mandatory DOD notice and consent banner, this is a finding.
Fix: F-62378r933247_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Annotations.WelcomeMessage" value and set it to the following. Click "OK". {bgcolor:black} {/color}{align:left}{bgcolor:black}{color:yellow}{hostname} , {ip}{/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:black}{color:yellow}{esxproduct} {esxversion}{/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:black}{color:yellow}{memory} RAM{/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:black}{color:white} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} using this IS (which includes any device attached to this IS), you consent to the following conditions: {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} - The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} enforcement (LE), and counterintelligence (CI) investigations. {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} - At any time, the USG may inspect and seize data stored on this IS. {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} - Communications using, or data stored on, this IS are not private, are subject to routine monitoring, {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} interception, and search, and may be disclosed or used for any USG-authorized purpose. {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} - This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} for your personal benefit or privacy. {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} - Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} or monitoring of the content of privileged communications, or work product, related to personal representation {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} product are private and confidential. See User Agreement for details. {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{align:left}{bgcolor:yellow}{color:black} {/color}{/bgcolor}{/align} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} {bgcolor:black} {/color}{align:left}{bgcolor:dark-grey}{color:white} <F2> Accept Conditions and Customize System / View Logs{/align}{align:right}<F12> Accept Conditions and Shut Down/Restart {bgcolor:black} {/color}{/color}{/bgcolor}{/align} {bgcolor:black} {/color}{bgcolor:dark-grey}{color:black} {/color}{/bgcolor} or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Annotations.WelcomeMessage | Set-AdvancedSetting -Value "<Banner text above>"
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- ESXI-80-000008
- Vuln IDs
-
- V-258730
- Rule IDs
-
- SV-258730r958398_rule
Checks: C-62470r933249_chk
For environments that do not use vCenter server to manage ESXi, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile. Scroll down to "Lockdown Mode" and verify it is set to "Enabled" (Normal or Strict). or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Select Name,@{N="Lockdown";E={$_.Extensiondata.Config.LockdownMode}} If "Lockdown Mode" is disabled, this is a finding.
Fix: F-62379r933250_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile >> Lockdown Mode. Click edit and select either the "Normal" or "Strict" radio buttons. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $level = "lockdownNormal" OR "lockdownStrict" $vmhost = Get-VMHost -Name <hostname> | Get-View $lockdown = Get-View $vmhost.ConfigManager.HostAccessManager $lockdown.ChangeLockdownMode($level) Note: In strict lockdown mode, the Direct Console User Interface (DCUI) service is stopped. If the connection to vCenter Server is lost and the vSphere Client is no longer available, the ESXi host becomes inaccessible.
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- ESXI-80-000010
- Vuln IDs
-
- V-258731
- Rule IDs
-
- SV-258731r958402_rule
Checks: C-62471r933252_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.HostClientSessionTimeout" value and verify it is set to "900" or less. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.HostClientSessionTimeout If the "UserVars.HostClientSessionTimeout" setting is not set to "900" or less, this is a finding.
Fix: F-62380r933253_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.HostClientSessionTimeout" value and configure it to "900". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.HostClientSessionTimeout | Set-AdvancedSetting -Value "900"
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- ESXI-80-000014
- Vuln IDs
-
- V-258732
- Rule IDs
-
- SV-258732r958408_rule
Checks: C-62472r933255_chk
From an ESXi shell, run the following command: # esxcli system security fips140 ssh get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.security.fips140.ssh.get.invoke() Expected result: Enabled: true If the FIPS mode is not enabled for SSH, this is a finding.
Fix: F-62381r933256_fix
From an ESXi shell, run the following command: # esxcli system security fips140 ssh set -e true or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.security.fips140.ssh.set.CreateArgs() $arguments.enable = $true $esxcli.system.security.fips140.ssh.set.Invoke($arguments)
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- ESXI-80-000015
- Vuln IDs
-
- V-258733
- Rule IDs
-
- SV-258733r958412_rule
Checks: C-62473r933258_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Config.HostAgent.log.level" value and verify it is set to "info". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.log.level If the "Config.HostAgent.log.level" setting is not set to "info", this is a finding. Note: Verbose logging level is acceptable for troubleshooting purposes.
Fix: F-62382r933259_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Config.HostAgent.log.level" value and configure it to "info". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.log.level | Set-AdvancedSetting -Value "info"
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- ESXI-80-000035
- Vuln IDs
-
- V-258734
- Rule IDs
-
- SV-258734r1003558_rule
Checks: C-62474r933261_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Security.PasswordQualityControl" value and verify it is set to "similar=deny retry=3 min=disabled,disabled,disabled,disabled,15". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordQualityControl If the "Security.PasswordQualityControl" setting is set to a value other than "similar=deny retry=3 min=disabled,disabled,disabled,disabled,15", this is a finding.
Fix: F-62383r933262_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Security.PasswordQualityControl" value and configure it to "similar=deny retry=3 min=disabled,disabled,disabled,disabled,15". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordQualityControl | Set-AdvancedSetting -Value "similar=deny retry=3 min=disabled,disabled,disabled,disabled,15"
- RMF Control
- Severity
- M
- CCI
- CCI-004061
- Version
- ESXI-80-000043
- Vuln IDs
-
- V-258735
- Rule IDs
-
- SV-258735r1003559_rule
Checks: C-62475r933264_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Security.PasswordHistory" value and verify it is set to "5" or greater. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordHistory If the "Security.PasswordHistory" setting is set to a value other than 5 or greater, this is a finding.
Fix: F-62384r933265_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Security.PasswordHistory" value and configure it to "5". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordHistory | Set-AdvancedSetting -Value 5
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- ESXI-80-000047
- Vuln IDs
-
- V-258736
- Rule IDs
-
- SV-258736r958478_rule
Checks: C-62476r933267_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Config.HostAgent.plugins.solo.enableMob" value and verify it is set to "false". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.plugins.solo.enableMob If the "Config.HostAgent.plugins.solo.enableMob" setting is not set to "false", this is a finding.
Fix: F-62385r933268_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Config.HostAgent.plugins.solo.enableMob" value and configure it to "false". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.plugins.solo.enableMob | Set-AdvancedSetting -Value false
- RMF Control
- IA-2
- Severity
- L
- CCI
- CCI-000764
- Version
- ESXI-80-000049
- Vuln IDs
-
- V-258737
- Rule IDs
-
- SV-258737r1003560_rule
Checks: C-62477r933270_chk
For systems that do not use Active Directory and have no local user accounts other than root and/or service accounts, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Authentication Services. Verify the "Directory Services Type" is set to "Active Directory". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostAuthentication For systems that do not use Active Directory and do have local user accounts, other than root and/or service accounts, this is a finding. If the "Directory Services Type" is not set to "Active Directory", this is a finding.
Fix: F-62386r933271_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Authentication Services. Click "Join Domain..." and enter the AD domain to join. Select the "Using credentials" radio button and enter the credentials of an account with permissions to join machines to AD (use UPN naming "user@domain"). Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostAuthentication | Set-VMHostAuthentication -JoinDomain -Domain "domain name" -User "username" -Password "password" If any local user accounts are present besides root and service accounts, delete them by going to Host UI >> Manage >> Security & Users >> Users.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000765
- Version
- ESXI-80-000052
- Vuln IDs
-
- V-258738
- Rule IDs
-
- SV-258738r1003561_rule
Checks: C-62478r933273_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k ignorerhosts or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ignorerhosts'} Example result: ignorerhosts yes If "ignorerhosts" is not configured to "yes", this is a finding.
Fix: F-62387r933274_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k ignorerhosts -v yes or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'ignorerhosts' $arguments.value = 'yes' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- ESXI-80-000068
- Vuln IDs
-
- V-258739
- Rule IDs
-
- SV-258739r1003562_rule
Checks: C-62479r1003518_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.ESXiShellInteractiveTimeOut" value and verify it is set to "900" or less and not "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiShellInteractiveTimeOut If the "UserVars.ESXiShellInteractiveTimeOut" setting is set to a value greater than "900" or "0", this is a finding.
Fix: F-62388r933277_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.ESXiShellInteractiveTimeOut" value and configure it to "900". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001494
- Version
- ESXI-80-000085
- Vuln IDs
-
- V-258740
- Rule IDs
-
- SV-258740r958612_rule
Checks: C-62480r933279_chk
If the ESXi host does not have a compatible TPM, this finding is downgraded to a CAT III. From an ESXi shell, run the following command: # esxcli system settings encryption get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.settings.encryption.get.invoke() | Select RequireSecureBoot Expected result: Require Secure Boot: true If "Require Secure Boot" is not enable, this is a finding.
Fix: F-62389r933280_fix
This setting cannot be configured until Secure Boot is properly enabled in the servers firmware. From an ESXi shell, run the following commands: # esxcli system settings encryption set --require-secure-boot=true # /sbin/auto-backup.sh or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.settings.encryption.set.CreateArgs() $arguments.requiresecureboot = $true $esxcli.system.settings.encryption.set.Invoke($arguments) Evacuate the host and gracefully reboot for changes to take effect.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001496
- Version
- ESXI-80-000094
- Vuln IDs
-
- V-258741
- Rule IDs
-
- SV-258741r1003563_rule
Checks: C-62481r1003520_chk
From an ESXi shell, run the following command: # /usr/lib/vmware/secureboot/bin/secureBoot.py -s or From a PowerCLI command prompt while connected to the ESXi host, run the following command: ((Get-VMHost).ExtensionData.Capability).UefiSecureBoot If Secure Boot is not enabled, this is a finding.
Fix: F-62390r1003521_fix
From an ESXi shell, run the following command: # /usr/lib/vmware/secureboot/bin/secureBoot.py -c If the output indicates that Secure Boot cannot be enabled, correct the discrepancies and try again. Once all discrepancies are resolved, the server ESXi is installed on can be updated to enable Secure Boot in the firmware. To enable Secure Boot in the server's firmware, follow the instructions for the specific manufacturer.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-002238
- Version
- ESXI-80-000111
- Vuln IDs
-
- V-258742
- Rule IDs
-
- SV-258742r1003564_rule
Checks: C-62482r1003523_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Security.AccountUnlockTime" value and verify it is set to "900" or less and not "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.AccountUnlockTime If the "Security.AccountUnlockTime" setting is less than 900 or 0, this is a finding.
Fix: F-62391r933286_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Security.AccountUnlockTime" value and configure it to "900". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.AccountUnlockTime | Set-AdvancedSetting -Value 900
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- ESXI-80-000113
- Vuln IDs
-
- V-258743
- Rule IDs
-
- SV-258743r958752_rule
Checks: C-62483r933288_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.auditRecord.storageCapacity" value and verify it is set to "100". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.storageCapacity If the "Syslog.global.auditRecord.storageCapacity" setting is not set to 100, this is a finding.
Fix: F-62392r933289_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.auditRecord.storageCapacity" value and configure it to "100". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.storageCapacity | Set-AdvancedSetting -Value 100
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000015
- Version
- ESXI-80-000114
- Vuln IDs
-
- V-258744
- Rule IDs
-
- SV-258744r1003565_rule
Checks: C-62484r933291_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.logHost" value and verify it is set to a site-specific syslog server. Syslog servers are specified in the following formats: udp://<IP or FQDN>:514 tcp://<IP or FQDN>:514 ssl://<IP or FQDN>:1514 Multiple servers can also be specified when separated by commas. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.logHost If the "Syslog.global.logHost" setting is not set to a valid, site-specific syslog server, this is a finding.
Fix: F-62393r933292_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.logHost" value and configure it to a site-specific syslog server. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.logHost | Set-AdvancedSetting -Value "enter site specific servers"
- RMF Control
- Severity
- M
- CCI
- CCI-004923
- Version
- ESXI-80-000124
- Vuln IDs
-
- V-258745
- Rule IDs
-
- SV-258745r1003566_rule
Checks: C-62485r933294_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Time Configuration. Verify NTP or PTP are configured, and one or more authoritative time sources are listed. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Verify the NTP or PTP service is running and configured to start and stop with the host. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-VMHostNTPServer Get-VMHost | Get-VMHostService | Where {$_.Label -eq "NTP Daemon" -or $_.Label -eq "PTP Daemon"} If the NTP service is not configured with authoritative DOD time sources or the service is not configured to start and stop with the host ("Policy" of "on" in PowerCLI) or is stopped, this is a finding. If PTP is used instead of NTP, this is not a finding.
Fix: F-62394r933295_fix
To configure NTP, perform the following: From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Time Configuration. Click "Add Service" and select "Network Time Protocol". Enter or update the NTP servers listed with a comma-separated list of authoritative time servers. Click "OK". From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Select the "NTP Daemon" service and click "Edit Startup Policy". Select "Start and stop with host". Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $NTPServers = "ntpserver1","ntpserver2" Get-VMHost | Add-VMHostNTPServer $NTPServers Get-VMHost | Get-VMHostService | Where {$_.Label -eq "NTP Daemon"} | Set-VMHostService -Policy On Get-VMHost | Get-VMHostService | Where {$_.Label -eq "NTP Daemon"} | Start-VMHostService To configure PTP, perform the following: From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Time Configuration. Click "Add Service" and select "Precision Time Protocol". Select the network adapter that can receive the PTP traffic. If NTP servers are available, select "Enable fallback" and enter or update the NTP servers listed with a comma separate list of authoritative time servers. Click "OK". From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Select the "PTP Daemon" service and click "Edit Startup Policy". Select "Start and stop with host". Click "OK".
- RMF Control
- Severity
- H
- CCI
- CCI-003992
- Version
- ESXI-80-000133
- Vuln IDs
-
- V-258746
- Rule IDs
-
- SV-258746r1003567_rule
Checks: C-62486r933297_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile. Under "Host Image Profile Acceptance Level" view the acceptance level. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.software.acceptance.get.Invoke() If the acceptance level is "CommunitySupported", this is a finding.
Fix: F-62395r933298_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile. Under "Host Image Profile Acceptance Level", click "Edit". Using the drop-down selection, set the acceptance level as "VMwareCertified", "VMwareAccepted", or "PartnerSupported". The default is "PartnerSupported". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.software.acceptance.set.CreateArgs() $arguments.level = "PartnerSupported" $esxcli.software.acceptance.set.Invoke($arguments) Note: "VMwareCertified" or "VMwareAccepted" may be substituted for "PartnerSupported", depending on local requirements. These are case sensitive.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001967
- Version
- ESXI-80-000145
- Vuln IDs
-
- V-258747
- Rule IDs
-
- SV-258747r971545_rule
Checks: C-62487r933300_chk
If iSCSI is not used, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Storage >> Storage Adapters. Select the iSCSI adapter >> Properties >> Authentication >> Method. View the CHAP configuration and verify CHAP is required for target and host authentication. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostHba | Where {$_.Type -eq "iscsi"} | Select AuthenticationProperties -ExpandProperty AuthenticationProperties If iSCSI is used and CHAP is not set to "required" for both the target and host, this is a finding. If iSCSI is used and unique CHAP secrets are not used for each host, this is a finding.
Fix: F-62396r933301_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Storage >> Storage Adapters. Select the iSCSI adapter >> Properties >> Authentication. Click "Edit...". Set "Authentication Method" to "Use bidirectional CHAP" and enter a unique secret for each traffic flow direction. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostHba | Where {$_.Type -eq "iscsi"} | Set-VMHostHba -ChapType Required -ChapName "chapname" -ChapPassword "password" -MutualChapEnabled $true -MutualChapName "mutualchapname" -MutualChapPassword "mutualpassword"
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- ESXI-80-000160
- Vuln IDs
-
- V-258748
- Rule IDs
-
- SV-258748r958908_rule
Checks: C-62488r933303_chk
For environments that do not use vCenter server to manage ESXi, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> VMkernel adapters. Review the VLAN associated with any vMotion VMkernel(s) and verify they are dedicated for that purpose and are logically separated from other functions. If long distance or cross vCenter vMotion is used, the vMotion network can be routable but must be accessible to only the intended ESXi hosts. If the vMotion port group is not on an isolated VLAN and/or is routable to systems other than ESXi hosts, this is a finding.
Fix: F-62397r933304_fix
Configuration of the vMotion VMkernel will be unique to each environment. For example, to modify the IP address and VLAN information to the correct network on a distributed switch, do the following: From the vSphere Client, go to Networking. Select a distributed switch >> Select a port group >> Configure >> Settings >> Properties. Click "Edit" and select VLAN. Change the "VLAN Type" to "VLAN" and change the "VLAN ID" to a network allocated and dedicated to vMotion traffic exclusively. Click "OK".
- RMF Control
- SC-8
- Severity
- H
- CCI
- CCI-002420
- Version
- ESXI-80-000161
- Vuln IDs
-
- V-258749
- Rule IDs
-
- SV-258749r1003568_rule
Checks: C-62489r933306_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.ESXiVPsDisabledProtocols" value and verify it is set to "sslv3,tlsv1,tlsv1.1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiVPsDisabledProtocols If the "UserVars.ESXiVPsDisabledProtocols" setting is set to a value other than "sslv3,tlsv1,tlsv1.1", this is a finding.
Fix: F-62398r933307_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.ESXiVPsDisabledProtocols" value and configure it to "sslv3,tlsv1,tlsv1.1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiVPsDisabledProtocols | Set-AdvancedSetting -Value "sslv3,tlsv1,tlsv1.1"
- RMF Control
- SC-13
- Severity
- M
- CCI
- CCI-002450
- Version
- ESXI-80-000187
- Vuln IDs
-
- V-258750
- Rule IDs
-
- SV-258750r959006_rule
Checks: C-62490r933309_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k ciphers or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ciphers'} Expected result: ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr If the output matches the ciphers in the expected result or a subset thereof, this is not a finding. If the ciphers in the output contain any ciphers not listed in the expected result, this is a finding.
Fix: F-62399r933310_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k ciphers -v aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'ciphers' $arguments.value = 'aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000189
- Vuln IDs
-
- V-258751
- Rule IDs
-
- SV-258751r959010_rule
Checks: C-62491r933312_chk
For environments that do not use vCenter server to manage ESXi, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "DCUI.Access" value and verify only the root user is listed. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name DCUI.Access and verify it is set to root. If the "DCUI.Access" is not restricted to "root", this is a finding. Note: This list is only for local user accounts and should only contain the root user.
Fix: F-62400r933313_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "DCUI.Access" value and configure it to "root". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name DCUI.Access | Set-AdvancedSetting -Value "root"
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- ESXI-80-000191
- Vuln IDs
-
- V-258752
- Rule IDs
-
- SV-258752r958390_rule
Checks: C-62492r933315_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Config.Etc.issue" value and verify it contains the standard mandatory DOD notice and consent banner. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.Etc.issue If the "Config.Etc.issue" setting does not contain the standard mandatory DOD notice and consent banner, this is a finding.
Fix: F-62401r933316_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Config.Etc.issue" value and set it to the following: "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 From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.Etc.issue | Set-AdvancedSetting -Value "<Banner text above>"
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- ESXI-80-000192
- Vuln IDs
-
- V-258753
- Rule IDs
-
- SV-258753r958390_rule
Checks: C-62493r933318_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k banner or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'banner'} Example result: banner /etc/issue If "banner" is not configured to "/etc/issue", this is a finding.
Fix: F-62402r933319_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k banner -v /etc/issue or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'banner' $arguments.value = '/etc/issue' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- ESXI-80-000193
- Vuln IDs
-
- V-258754
- Rule IDs
-
- SV-258754r958478_rule
Checks: C-62494r933321_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under Services, locate the "SSH" service and verify it is "Stopped". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "SSH"} If the SSH service is "Running", this is a finding.
Fix: F-62403r933322_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services", select the "SSH" service and click the "Stop" button. Click the "Edit Startup policy..." button. Select the "Start and stop manually" radio button. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "SSH"} | Set-VMHostService -Policy Off Get-VMHost | Get-VMHostService | Where {$_.Label -eq "SSH"} | Stop-VMHostService
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- ESXI-80-000194
- Vuln IDs
-
- V-258755
- Rule IDs
-
- SV-258755r958478_rule
Checks: C-62495r933324_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under Services, locate the "ESXi Shell" service and verify it is "Stopped". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "ESXi Shell"} If the ESXi Shell service is "Running", this is a finding.
Fix: F-62404r933325_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services", select the "ESXi Shell" service and click the "Stop" button. Click the "Edit Startup policy..." button. Select the "Start and stop manually" radio button. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "ESXi Shell"} | Set-VMHostService -Policy Off Get-VMHost | Get-VMHostService | Where {$_.Label -eq "ESXi Shell"} | Stop-VMHostService
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- ESXI-80-000195
- Vuln IDs
-
- V-258756
- Rule IDs
-
- SV-258756r1003569_rule
Checks: C-62496r1003529_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.ESXiShellTimeOut" value and verify it is set to "600" or less and not "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiShellTimeOut If the "UserVars.ESXiShellTimeOut" setting is set to a value greater than "600" or "0", this is a finding.
Fix: F-62405r933328_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.ESXiShellTimeOut" value and configure it to "600". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.ESXiShellTimeOut | Set-AdvancedSetting -Value 600
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- ESXI-80-000196
- Vuln IDs
-
- V-258757
- Rule IDs
-
- SV-258757r1003570_rule
Checks: C-62497r1003531_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.DcuiTimeOut" value and verify it is set to "600" or less and not "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.DcuiTimeOut If the "UserVars.DcuiTimeOut" setting is set to a value greater than "600" or "0", this is a finding.
Fix: F-62406r933331_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.DcuiTimeOut" value and configure it to "600". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.DcuiTimeOut | Set-AdvancedSetting -Value 600
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- ESXI-80-000198
- Vuln IDs
-
- V-258758
- Rule IDs
-
- SV-258758r958908_rule
Checks: C-62498r933333_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> VMkernel adapters. Review each VMkernel adapter that is used for management traffic and view the "Enabled services". Review the VLAN associated with each VMkernel that is used for management traffic. Verify with the system administrator that they are dedicated for that purpose and are logically separated from other functions. If any services other than "Management" are enabled on the Management VMkernel adapter, this is a finding. If the network segment is accessible, except to networks where other management-related entities are located such as vCenter, this is a finding. If there are any other systems or devices such as VMs on the ESXi management segment, this is a finding.
Fix: F-62407r933334_fix
Configuration of the management VMkernel will be unique to each environment. For example, to modify the IP address and VLAN information to the correct network on a distributed switch, do the following: From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> VMkernel adapters. Select the Management VMkernel and click "Edit". On the Port properties tab, uncheck all services except for "Management". Click "OK". From the vSphere Client, go to Networking. Select a distributed switch >> Select a port group >> Configure >> Settings >> Properties. Click "Edit" and select VLAN. Change the "VLAN Type" to "VLAN" and change the "VLAN ID" to a network allocated and dedicated to management traffic exclusively. Click "OK".
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- ESXI-80-000199
- Vuln IDs
-
- V-258759
- Rule IDs
-
- SV-258759r958908_rule
Checks: C-62499r933336_chk
If IP-based storage is not used, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> VMkernel adapters. Review each VMkernel adapter that is used for IP-based storage traffic and view the "Enabled services". Review the VLAN associated with each VMkernel that is used for IP-based storage traffic. Verify with the system administrator that they are dedicated for that purpose and are logically separated from other functions. If any services are enabled on an NFS or iSCSI IP-based storage VMkernel adapter, this is a finding. If any services are enabled on a vSAN VMkernel adapter other than vSAN, this is a finding. If any IP-based storage networks are not isolated from other traffic types, this is a finding.
Fix: F-62408r933337_fix
Configuration of an IP-Based VMkernel will be unique to each environment. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> VMkernel adapters. Select the VMkernel used for IP-based storage and click "Edit". On the "Port" properties tab, uncheck all services. Click "OK". Note: For VMkernels used for vSAN leave the vSAN service enabled and uncheck all others. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual switches. Find the port group that is dedicated to IP-based storage and click the '...' button next to the name. Click "Edit Settings". On the "Properties" tab, change the "VLAN ID" to one dedicated for IP-based storage traffic. Click "OK".
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000201
- Vuln IDs
-
- V-258760
- Rule IDs
-
- SV-258760r959010_rule
Checks: C-62500r933339_chk
For environments that do not use vCenter server to manage ESXi, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile. Under "Lockdown Mode", review the Exception Users list. or From a PowerCLI command prompt while connected to the ESXi host, run the following script: $vmhost = Get-VMHost | Get-View $lockdown = Get-View $vmhost.ConfigManager.HostAccessManager $lockdown.QueryLockdownExceptions() If the Exception Users list contains accounts that do not require special permissions, this is a finding. Note: The Exception Users list is empty by default and should remain that way except under site-specific circumstances.
Fix: F-62409r933340_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Security Profile. Under "Lockdown Mode", click "Edit" and remove unnecessary users from the Exception Users list.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000202
- Vuln IDs
-
- V-258761
- Rule IDs
-
- SV-258761r959010_rule
Checks: C-62501r933342_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k hostbasedauthentication or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'hostbasedauthentication'} Example result: hostbasedauthentication no If "hostbasedauthentication" is not configured to "no", this is a finding.
Fix: F-62410r933343_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k hostbasedauthentication -v no or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'hostbasedauthentication' $arguments.value = 'no' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000204
- Vuln IDs
-
- V-258762
- Rule IDs
-
- SV-258762r959010_rule
Checks: C-62502r933345_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k permituserenvironment or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permituserenvironment'} Example result: permituserenvironment no If "permituserenvironment" is not configured to "no", this is a finding.
Fix: F-62411r933346_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k permituserenvironment -v no or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'permituserenvironment' $arguments.value = 'no' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- ESXI-80-000207
- Vuln IDs
-
- V-258763
- Rule IDs
-
- SV-258763r959010_rule
Checks: C-62503r933348_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k gatewayports or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'gatewayports'} Example result: gatewayports no If "gatewayports" is not configured to "no", this is a finding.
Fix: F-62412r933349_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k gatewayports -v no or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'gatewayports' $arguments.value = 'no' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000209
- Vuln IDs
-
- V-258764
- Rule IDs
-
- SV-258764r959010_rule
Checks: C-62504r933351_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k permittunnel or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permittunnel'} Example result: permittunnel no If "permittunnel" is not configured to "no", this is a finding.
Fix: F-62413r933352_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k permittunnel -v no or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'permittunnel' $arguments.value = 'no' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- ESXI-80-000210
- Vuln IDs
-
- V-258765
- Rule IDs
-
- SV-258765r959010_rule
Checks: C-62505r933354_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k clientalivecountmax or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientalivecountmax'} Example result: clientalivecountmax 3 If "clientalivecountmax" is not configured to "3", this is a finding.
Fix: F-62414r933355_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k clientalivecountmax -v 3 or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'clientalivecountmax' $arguments.value = '3' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- ESXI-80-000211
- Vuln IDs
-
- V-258766
- Rule IDs
-
- SV-258766r959010_rule
Checks: C-62506r933357_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k clientaliveinterval or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientaliveinterval'} Example result: clientaliveinterval 200 If "clientaliveinterval" is not configured to "200", this is a finding.
Fix: F-62415r933358_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k clientaliveinterval -v 200 or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'clientaliveinterval' $arguments.value = '200' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000212
- Vuln IDs
-
- V-258767
- Rule IDs
-
- SV-258767r959010_rule
Checks: C-62507r933360_chk
From an ESXi shell, run the following command: # esxcli system snmp get or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHostSnmp | Select * If SNMP is not in use and is enabled, this is a finding. If SNMP is enabled and is not using v3 targets with authentication, this is a finding. Note: SNMP v3 targets can only be viewed and configured via the "esxcli" command.
Fix: F-62416r933361_fix
To disable SNMP from an ESXi shell, run the following command: # esxcli system snmp set -e no or From a PowerCLI command prompt while connected to the ESXi Host: Get-VMHostSnmp | Set-VMHostSnmp -Enabled $false
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- ESXI-80-000213
- Vuln IDs
-
- V-258768
- Rule IDs
-
- SV-258768r959010_rule
Checks: C-62508r933363_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Mem.ShareForceSalting" value and verify it is set to "2". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Mem.ShareForceSalting If the "Mem.ShareForceSalting" setting is not set to 2, this is a finding.
Fix: F-62417r933364_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Mem.ShareForceSalting" value and set it to "2". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Mem.ShareForceSalting | Set-AdvancedSetting -Value 2
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000214
- Vuln IDs
-
- V-258769
- Rule IDs
-
- SV-258769r1003571_rule
Checks: C-62509r1003533_chk
From an ESXi shell, run the following command: # esxcli network firewall get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.network.firewall.get.invoke() If the "Default Action" does not equal "DROP", this is a finding. If "Enabled" does not equal "true", this is a finding.
Fix: F-62418r1003534_fix
From an ESXi shell, run the following command: # esxcli network firewall set --default-action false --enabled true or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.network.firewall.set.CreateArgs() $arguments.enabled = $true $arguments.defaultaction = $false $esxcli.network.firewall.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000215
- Vuln IDs
-
- V-258770
- Rule IDs
-
- SV-258770r959010_rule
Checks: C-62510r933369_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Net.BlockGuestBPDU" value and verify it is set to "1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.BlockGuestBPDU If the "Net.BlockGuestBPDU" setting is not set to "1", this is a finding.
Fix: F-62419r933370_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Net.BlockGuestBPDU" value and configure it to "1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.BlockGuestBPDU | Set-AdvancedSetting -Value 1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000216
- Vuln IDs
-
- V-258771
- Rule IDs
-
- SV-258771r959010_rule
Checks: C-62511r933372_chk
Note: This control addresses ESXi standard switches. Distributed switches are addressed in the vCenter STIG. If there is no standard switch on the ESXi host, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click the '...' button next to each port group and select "Edit Settings". Click the "Security" tab. Verify that "Forged transmits" is set to "Reject" and that "Override" is not checked. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy Get-VirtualPortGroup | Get-SecurityPolicy | Select-Object * If the "Forged Transmits" policy is set to "Accept" (or "true", via PowerCLI) or the security policy inherited from the virtual switch is overridden, this is a finding.
Fix: F-62420r933373_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click "Edit" and select Security. Set "Forged transmits" to "Reject". Click "OK". For each port group, click the '...' button and select "Edit Settings" then Security. Set "Forged transmits" to "Reject" and uncheck the "Override" box. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy | Set-SecurityPolicy -ForgedTransmits $false Get-VirtualPortGroup | Get-SecurityPolicy | Set-SecurityPolicy -ForgedTransmitsInherited $true
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- ESXI-80-000217
- Vuln IDs
-
- V-258772
- Rule IDs
-
- SV-258772r959010_rule
Checks: C-62512r933375_chk
This control addresses ESXi standard switches. Distributed switches are addressed in the vCenter STIG. If there is no standard switch on the ESXi host, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click the '...' button next to each port group and select "Edit Settings". Click the "Security" tab. Verify that "MAC Address Changes" is set to "Reject" and that "Override" is not checked. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy Get-VirtualPortGroup | Get-SecurityPolicy | Select-Object * If the "MAC Address Changes" policy is set to "Accept" (or "true", via PowerCLI) or the security policy inherited from the virtual switch is overridden, this is a finding.
Fix: F-62421r933376_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click "Edit" and select Security. Set "MAC Address Changes" to "Reject". Click "OK". For each port group, click the '...' button and select "Edit Settings" then Security. Set "MAC Address Changes" to "Reject" and uncheck the "Override" box. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy | Set-SecurityPolicy -MacChanges $false Get-VirtualPortGroup | Get-SecurityPolicy | Set-SecurityPolicy -MacChangesInherited $true
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000218
- Vuln IDs
-
- V-258773
- Rule IDs
-
- SV-258773r959010_rule
Checks: C-62513r933378_chk
This control addresses ESXi standard switches. Distributed switches are addressed in the vCenter STIG. If there is no standard switch on the ESXi host, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click the '...' button next to each port group and select "Edit Settings". Click the "Security" tab. Verify that "Promiscuous Mode" is set to "Reject" and that "Override" is not checked. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy Get-VirtualPortGroup | Get-SecurityPolicy | Select-Object * If the "Promiscuous Mode" policy is set to "Accept" (or "true", via PowerCLI) or the security policy inherited from the virtual switch is overridden, this is a finding.
Fix: F-62422r933379_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. On each standard switch, click "Edit" and select Security. Set "Promiscuous Mode" to "Reject". Click "OK". For each port group, click the '...' button and select "Edit Settings" then Security. Set "Promiscuous Mode" to "Reject" and uncheck the "Override" box. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VirtualSwitch | Get-SecurityPolicy | Set-SecurityPolicy -AllowPromiscuous $false Get-VirtualPortGroup | Get-SecurityPolicy | Set-SecurityPolicy -AllowPromiscuousInherited $true
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000219
- Vuln IDs
-
- V-258774
- Rule IDs
-
- SV-258774r959010_rule
Checks: C-62514r933381_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Net.DVFilterBindIpAddress" value and verify the value is blank or the correct IP address of a security appliance if in use. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.DVFilterBindIpAddress If the "Net.DVFilterBindIpAddress" setting is not blank and security appliances are not in use on the host, this is a finding.
Fix: F-62423r933382_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Net.DVFilterBindIpAddress" value and remove any incorrect addresses. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.DVFilterBindIpAddress | Set-AdvancedSetting -Value ""
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000220
- Vuln IDs
-
- V-258775
- Rule IDs
-
- SV-258775r959010_rule
Checks: C-62515r933384_chk
This control addresses ESXi standard switches. Distributed switches are addressed in the vCenter STIG. If there is no standard switch on the ESXi host, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. For each standard switch, review the "VLAN ID" on each port group and verify it is not set to "4095". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VirtualPortGroup | Select Name, VLanID If any port group is configured with VLAN 4095 and is not documented as a needed exception, this is a finding.
Fix: F-62424r933385_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> Networking >> Virtual Switches. For each port group on a standard switch that is configured to a native VLAN, click the '...' button next to the port group. Click "Edit Settings". On the "Properties" tab, change the "VLAN ID" to an appropriate VLAN ID. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VirtualPortGroup -Name "portgroup name" | Set-VirtualPortGroup -VLanId "New VLAN#"
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- ESXI-80-000221
- Vuln IDs
-
- V-258776
- Rule IDs
-
- SV-258776r959010_rule
Checks: C-62516r933387_chk
Determine the current version and build: From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Summary. Note the version string next to "Hypervisor:". or From a Secure Shell (SSH) session connected to the ESXi host, or from the ESXi shell, run the following command: # vmware -v If the ESXi host does not have the latest patches, this is a finding. If the ESXi host is not on a supported release, this is a finding. The latest ESXi versions and their build numbers can be found here: https://kb.vmware.com/s/article/2143832 VMware also publishes advisories on security patches and offers a way to subscribe to email alerts for them. Go to: https://www.vmware.com/support/policies/security_response
Fix: F-62425r933388_fix
ESXi can be patched in multiple ways, and this fix text does not cover all methods. Manual patching when image profiles are not used: - Download the latest "offline bundle" .zip update from vmware.com. Verify the hash. - Transfer the file to a datastore accessible by the ESXi host, local or remote. - Put the ESXi host into maintenance mode. - From an ESXi shell, run the following command: esxcli software vib update -d <path to offline patch bundle.zip> Manual patching when image profiles are used: From an ESXi shell, run the following command: # esxcli software sources profile list -d /vmfs/volumes/<your datastore>/<bundle name.zip> Note the available profiles. The organization will usually want the one ending in "-standard". # esxcli software profile update -p <selected profile> -d /vmfs/volumes/<your datastore>/<bundle name.zip> There will be little output during the update. Once complete, reboot the host for changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000222
- Vuln IDs
-
- V-258777
- Rule IDs
-
- SV-258777r959010_rule
Checks: C-62517r933390_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.SuppressShellWarning" value and verify it is set to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.SuppressShellWarning If the "UserVars.SuppressShellWarning" setting is not set to "0", this is a finding.
Fix: F-62426r933391_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.SuppressShellWarning" value and configure it to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.SuppressShellWarning | Set-AdvancedSetting -Value 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000223
- Vuln IDs
-
- V-258778
- Rule IDs
-
- SV-258778r959010_rule
Checks: C-62518r933393_chk
From the vSphere Client go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "UserVars.SuppressHyperthreadWarning" value and verify it is set to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.SuppressHyperthreadWarning If the "UserVars.SuppressHyperthreadWarning" setting is not set to "0", this is a finding.
Fix: F-62427r933394_fix
From the vSphere Client go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "UserVars.SuppressHyperthreadWarning" value and configure it to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name UserVars.SuppressHyperthreadWarning | Set-AdvancedSetting -Value 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000224
- Vuln IDs
-
- V-258779
- Rule IDs
-
- SV-258779r1003572_rule
Checks: C-62519r1003536_chk
If SSL is not used for a syslog target, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.certificate.checkSSLCerts" value and verify it is set to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.certificate.checkSSLCerts If the "Syslog.global.certificate.checkSSLCerts" setting is not set to "true", this is a finding.
Fix: F-62428r1003537_fix
To configure SSL syslog endpoint certificate checking, it must be turned on and the trusted certificate chain must be added to ESXi's trusted store. From the vSphere Client go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.certificate.checkSSLCerts" value and configure it to "true". Copy the PEM formatted trusted CA certificate so that is accessible to the host and append the contents to /etc/vmware/ssl/castore.pem by running the following command: # <path/to/cacert> >> /etc/vmware/ssl/castore.pem or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.certificate.checkSSLCerts | Set-AdvancedSetting -Value "true" Copy the PEM formatted trusted CA certificate so that is accessible to the host. $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.security.certificatestore.add.CreateArgs() $arguments.filename = <path/to/cacert> $esxcli.system.security.certificatestore.add.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000225
- Vuln IDs
-
- V-258780
- Rule IDs
-
- SV-258780r959010_rule
Checks: C-62520r933399_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Mem.MemEagerZero" value and verify it is set to "1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Mem.MemEagerZero If the "Mem.MemEagerZero" setting is not set to "1", this is a finding.
Fix: F-62429r933400_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Mem.MemEagerZero" value and configure it to "1". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Mem.MemEagerZero | Set-AdvancedSetting -Value 1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000226
- Vuln IDs
-
- V-258781
- Rule IDs
-
- SV-258781r959010_rule
Checks: C-62521r933402_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Config.HostAgent.vmacore.soap.sessionTimeout" value and verify it is set to "30". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.vmacore.soap.sessionTimeout If the "Config.HostAgent.vmacore.soap.sessionTimeout" setting is not set to "30", this is a finding.
Fix: F-62430r933403_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Config.HostAgent.vmacore.soap.sessionTimeout" value and configure it to "30". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.vmacore.soap.sessionTimeout | Set-AdvancedSetting -Value 30
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000227
- Vuln IDs
-
- V-258782
- Rule IDs
-
- SV-258782r959010_rule
Checks: C-62522r933405_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Security.PasswordMaxDays" value and verify it is set to "90". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordMaxDays If the "Security.PasswordMaxDays" setting is not set to "90", this is a finding.
Fix: F-62431r933406_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Security.PasswordMaxDays" value and configure it to "90". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Security.PasswordMaxDays | Set-AdvancedSetting -Value 90
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000228
- Vuln IDs
-
- V-258783
- Rule IDs
-
- SV-258783r959010_rule
Checks: C-62523r933408_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services", locate the "CIM Server" service and verify it is "Stopped" and the "Startup Policy" is set to "Start and stop manually". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "CIM Server"} If the "CIM Server" service does not have a "Policy" of "off" or is running, this is a finding.
Fix: F-62432r933409_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services" select the "CIM Server" service and click the "Stop" button. Click "Edit Startup policy..." and select the "Start and stop manually" radio button. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "CIM Server"} | Set-VMHostService -Policy Off Get-VMHost | Get-VMHostService | Where {$_.Label -eq "CIM Server"} | Stop-VMHostService
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000229
- Vuln IDs
-
- V-258784
- Rule IDs
-
- SV-258784r959010_rule
Checks: C-62524r933411_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Certificate. If the issuer is not a DOD-approved certificate authority, this is a finding. If the host will never be accessed directly (virtual machine console connections bypass vCenter), this is not a finding.
Fix: F-62433r933412_fix
Join the ESXi host to vCenter before replacing the certificate. Obtain a DOD-issued certificate and private key for the host following the requirements below: Key size: 2048 bits or more (PEM encoded) Key format: PEM VMware supports PKCS8 and PKCS1 (RSA keys) x509 version 3 SubjectAltName must contain DNS Name=<machine_FQDN> CRT (Base-64) format Contains the following Key Usages: Digital Signature, Non Repudiation, Key Encipherment Start time of one day before the current time CN (and SubjectAltName) set to the host name (or IP address) that the ESXi host has in the vCenter Server inventory From the vSphere Web Client, select the ESXi host's vCenter Server >> Configure >> System >> Advanced Settings. Select the "vpxd.certmgmt.mode" value and ensure it is set to "custom". Put the host into maintenance mode. Temporarily enable Secure Shell (SSH) on the host. Use Secure Copy Protocol (SCP) to transfer the new certificate and key to /tmp. SSH to the host. Back up the existing certificate and key: # mv /etc/vmware/ssl/rui.crt /etc/vmware/ssl/rui.crt.bak # mv /etc/vmware/ssl/rui.key /etc/vmware/ssl/rui.key.bak Copy the new certificate and key to "/etc/vmware/ssl/" and rename them to "rui.crt" and "rui.key" respectively. Restart management agents to implement the new certificate: # services.sh restart
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000230
- Vuln IDs
-
- V-258785
- Rule IDs
-
- SV-258785r959010_rule
Checks: C-62525r933414_chk
From an ESXi shell, run the following command: # esxcli system ssh server config list -k allowtcpforwarding or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'allowtcpforwarding'} Example result: allowtcpforwarding no If "allowtcpforwarding" is not configured to "no", this is a finding.
Fix: F-62434r933415_fix
From an ESXi shell, run the following command: # esxcli system ssh server config set -k allowtcpforwarding -v no or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.ssh.server.config.set.CreateArgs() $arguments.keyword = 'allowtcpforwarding' $arguments.value = 'no' $esxcli.system.ssh.server.config.set.Invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000231
- Vuln IDs
-
- V-258786
- Rule IDs
-
- SV-258786r959010_rule
Checks: C-62526r933417_chk
From the vSphere Client go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services", locate the "slpd" service and verify it is "Stopped" and the "Startup Policy" is set to "Start and stop manually". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "slpd"} If the slpd service does not have a "Policy" of "off" or is running, this is a finding.
Fix: F-62435r933418_fix
From the vSphere Client go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Services. Under "Services" select the "slpd" service and click the "Stop" button. Click "Edit Startup policy..." and select the "Start and stop manually" radio button. Click "OK". or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: Get-VMHost | Get-VMHostService | Where {$_.Label -eq "slpd"} | Set-VMHostService -Policy Off Get-VMHost | Get-VMHostService | Where {$_.Label -eq "slpd"} | Stop-VMHostService
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000232
- Vuln IDs
-
- V-258787
- Rule IDs
-
- SV-258787r1003573_rule
Checks: C-62527r933420_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.auditRecord.storageEnable" value and verify it is set to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.storageEnable If the "Syslog.global.auditRecord.storageEnable" setting is not set to "true", this is a finding.
Fix: F-62436r1003539_fix
Note: ESXI-80-000113 and ESXI-80-000243 must be configured and validated prior to enabling audit logging. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.auditRecord.storageEnable" value and configure it to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.storageEnable | Set-AdvancedSetting -Value "true"
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- ESXI-80-000233
- Vuln IDs
-
- V-258788
- Rule IDs
-
- SV-258788r958754_rule
Checks: C-62528r933423_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.auditRecord.remoteEnable" value and verify it is set to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.remoteEnable If the "Syslog.global.auditRecord.remoteEnable" setting is not set to "true", this is a finding.
Fix: F-62437r933424_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.auditRecord.remoteEnable" value and configure it to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.auditRecord.remoteEnable | Set-AdvancedSetting -Value "true"
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000234
- Vuln IDs
-
- V-258789
- Rule IDs
-
- SV-258789r959010_rule
Checks: C-62529r933426_chk
If SSL is not used for a syslog target, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.certificate.strictX509Compliance" value and verify it is set to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.certificate.strictX509Compliance If the "Syslog.global.certificate.strictX509Compliance" setting is not set to "true", this is a finding.
Fix: F-62438r933427_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.certificate.strictX509Compliance" value and configure it to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.certificate.strictX509Compliance | Set-AdvancedSetting -Value "true"
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- ESXI-80-000235
- Vuln IDs
-
- V-258790
- Rule IDs
-
- SV-258790r958412_rule
Checks: C-62530r933429_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.logLevel" value and verify it is set to "info". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.logLevel If the "Syslog.global.logLevel" setting is not set to "info", this is a finding. Note: Verbose logging level is acceptable for troubleshooting purposes.
Fix: F-62439r933430_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.logLevel" value and configure it to "info". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.logLevel | Set-AdvancedSetting -Value "info"
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000236
- Vuln IDs
-
- V-258791
- Rule IDs
-
- SV-258791r959010_rule
Checks: C-62531r933432_chk
From an ESXi shell, run the following command: # stat -c "%s" /etc/vmware/settings Expected result: 0 If the output does not match the expected result, this is a finding.
Fix: F-62440r933433_fix
From an ESXi shell, run the following command: # echo -n >/etc/vmware/settings
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000237
- Vuln IDs
-
- V-258792
- Rule IDs
-
- SV-258792r959010_rule
Checks: C-62532r933435_chk
From an ESXi shell, run the following command: # grep "^vmx\.log" /etc/vmware/config If the command produces any output, this is a finding.
Fix: F-62441r933436_fix
From an ESXi shell, run the following commands: # cp /etc/vmware/config /etc/vmware/config.bak # grep -v "^vmx\.log" /etc/vmware/config.bak>/etc/vmware/config
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000238
- Vuln IDs
-
- V-258793
- Rule IDs
-
- SV-258793r959010_rule
Checks: C-62533r933438_chk
If the ESXi host does not have a compatible TPM, this finding is downgraded to a CAT III. From an ESXi shell, run the following command: # esxcli system settings encryption get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.settings.encryption.get.invoke() | Select Mode Expected result: Mode: TPM If the "Mode" is not set to "TPM", this is a finding.
Fix: F-62442r933439_fix
Ensure the TPM 2.0 chip is enabled in the BIOS and the ESX UI does not show any errors about a present but unavailable TPM. This setting cannot be configured until the TPM is properly enabled in firmware. From an ESXi shell, run the following command: # esxcli system settings encryption set --mode=TPM or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.settings.encryption.set.CreateArgs() $arguments.mode = "TPM" $esxcli.system.settings.encryption.set.Invoke($arguments) Enter the host into maintenance mode and reboot for changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000239
- Vuln IDs
-
- V-258794
- Rule IDs
-
- SV-258794r1003574_rule
Checks: C-62534r1003541_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Firewall. Under the "Allowed IP addresses" column, review the allowed IPs for each service. Check this for "Incoming" and "Outgoing" sections. or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-VMHostFirewallException | Where {($_.Enabled -eq $true) -and ($_.ExtensionData.IpListUserConfigurable -eq $true)} | Select Name,Enabled,@{N="AllIPEnabled";E={$_.ExtensionData.AllowedHosts.AllIP}},@{N="AllIPUserConfigurable";E={$_.ExtensionData.IpListUserConfigurable}} If "Allow connections from any IP address" is configured on a user-configurable enabled service, this is a finding. Note: In vSphere 8 U2 firewall rules were categorized as user or system owned for both enabling/disabling and configuring the allowed IP addresses. This control is only applicable for rules in which a user can configure the allowed IP addresses.
Fix: F-62443r1003542_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Firewall. Click "Edit...". For each user-configurable enabled service, uncheck the check box to "Allow connections from any IP address" and input the site-specific network(s) required. The following example formats are acceptable: 192.168.0.0/24 192.168.1.2, 2001::1/64 fd3e:29a6:0a81:e478::/64 or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 #This disables the allow all rule for the target service. The sshServer service is the target in this example. $arguments = $esxcli.network.firewall.ruleset.set.CreateArgs() $arguments.rulesetid = "sshServer" $arguments.allowedall = $false $esxcli.network.firewall.ruleset.set.Invoke($arguments) #Next add the allowed IPs for the service. Note that executing the "vSphere Web Client" service this way may disable access but may be done through vCenter or through the console. $arguments = $esxcli.network.firewall.ruleset.allowedip.add.CreateArgs() $arguments.rulesetid = "sshServer" $arguments.ipaddress = "10.0.0.0/8" $esxcli.network.firewall.ruleset.allowedip.add.Invoke($arguments) This must be done for each user-configurable enabled service.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000240
- Vuln IDs
-
- V-258795
- Rule IDs
-
- SV-258795r959010_rule
Checks: C-62535r933444_chk
For environments that do not use vCenter server to manage ESXi, this is not applicable. If the organization is not using Host Profiles to join Active Directory, this is not applicable. From the vSphere Client, go to Home >> Policies and Profiles >> Host Profiles. Click a Host Profile >> Configure >> Security and Services >> Security Settings >> Authentication Configuration >> Active Directory Configuration >> Join Domain Method. If the method used to join hosts to a domain is not set to "Use vSphere Authentication Proxy to add the host to domain", this is a finding. or From a PowerCLI command prompt while connected to vCenter, run the following command: Get-VMHost | Select Name, ` @{N="HostProfile";E={$_ | Get-VMHostProfile}}, ` @{N="JoinADEnabled";E={($_ | Get-VmHostProfile).ExtensionData.Config.ApplyProfile.Authentication.ActiveDirectory.Enabled}}, ` @{N="JoinDomainMethod";E={(($_ | Get-VMHostProfile).ExtensionData.Config.ApplyProfile.Authentication.ActiveDirectory | Select -ExpandProperty Policy | Where {$_.Id -eq "JoinDomainMethodPolicy"}).Policyoption.Id}} If "JoinADEnabled" is "True" and "JoinDomainMethod" is not "FixedCAMConfigOption", this is a finding.
Fix: F-62444r933445_fix
From the vSphere Client, go to Home >> Policies and Profiles >> Host Profiles. Click a Host Profile >> Configure >> Security and Services >> Security Settings >> Authentication Configuration >> Active Directory Configuration. Click "Edit Host Profile...". Set the "Join Domain Method" to "Use vSphere Authentication Proxy to add the host to domain" and provide the IP address of the vSphere Authentication Proxy server. Click "Save".
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000241
- Vuln IDs
-
- V-258796
- Rule IDs
-
- SV-258796r959010_rule
Checks: C-62536r933447_chk
For systems that do not use Active Directory, this is not applicable. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Config.HostAgent.plugins.hostsvc.esxAdminsGroup" value and verify it is not set to "ESX Admins". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.plugins.hostsvc.esxAdminsGroup If the "Config.HostAgent.plugins.hostsvc.esxAdminsGroup" setting is set to "ESX Admins", this is a finding.
Fix: F-62445r933448_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Config.HostAgent.plugins.hostsvc.esxAdminsGroup" key and configure its value to an appropriate Active Directory group other than "ESX Admins". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Config.HostAgent.plugins.hostsvc.esxAdminsGroup | Set-AdvancedSetting -Value "<site specific AD group>" Note: Changing the group name does not remove the permissions of the previous group.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- ESXI-80-000243
- Vuln IDs
-
- V-258797
- Rule IDs
-
- SV-258797r1003575_rule
Checks: C-62537r933450_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Syslog.global.logDir" value and verify it is set to a persistent location. If the value of the setting is "[] /scratch/logs", verify the advanced setting "ScratchConfig.CurrentScratchLocation" is not set to "/tmp/scratch". This is a nonpersistent location. If "Syslog.global.logDir" is not configured to a persistent location, this is a finding. or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.syslog.config.get.Invoke() | Select LocalLogOutput,LocalLogOutputIsPersistent If the "LocalLogOutputIsPersistent" value is not true, this is a finding.
Fix: F-62446r1003544_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Syslog.global.logDir" value and set it to a known persistent location. An example is shown below, where 51dda02d-fade5016-8a08-005056171889 is the UUID of the target datastore: /vmfs/volumes/51dda02d-fade5016-8a08-005056171889 or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Syslog.global.logDir | Set-AdvancedSetting -Value "New Log Location" Note: The new location should not include a subfolder as enabling audit logging will create a folder and will fail if a subfolder is specified.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000244
- Vuln IDs
-
- V-258798
- Rule IDs
-
- SV-258798r959010_rule
Checks: C-62538r933453_chk
If the ESXi host does not have a compatible TPM, this finding is downgraded to a CAT III. From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "VMkernel.Boot.execInstalledOnly" value and verify that it is "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name VMkernel.Boot.execInstalledOnly If the "VMkernel.Boot.execInstalledOnly" setting is not "true", this is a finding.
Fix: F-62447r933454_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "VMkernel.Boot.execInstalledOnly" value and configure it to "true". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name VMkernel.Boot.execInstalledOnly | Set-AdvancedSetting -Value True
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000245
- Vuln IDs
-
- V-258799
- Rule IDs
-
- SV-258799r959010_rule
Checks: C-62539r933456_chk
From an ESXi shell, run the following commands: # esxcli system settings kernel list -o disableHwrng # esxcli system settings kernel list -o entropySources or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.settings.kernel.list.invoke() | Where {$_.Name -eq "disableHwrng" -or $_.Name -eq "entropySources"} If "disableHwrng" is not set to "false", this is a finding. If "entropySources" is not set to "0", this is a finding.
Fix: F-62448r933457_fix
From an ESXi shell, run the following commands: # esxcli system settings kernel set -s disableHwrng -v FALSE # esxcli system settings kernel set -s entropySources -v 0 or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.settings.kernel.set.CreateArgs() $arguments.setting = "disableHwrng" $arguments.value = "FALSE" $esxcli.system.settings.kernel.set.invoke($arguments) $arguments.setting = "entropySources" $arguments.value = "0" $esxcli.system.settings.kernel.set.invoke($arguments) Reboot the ESXi host after updating entropy settings.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000246
- Vuln IDs
-
- V-258800
- Rule IDs
-
- SV-258800r959010_rule
Checks: C-62540r933459_chk
From an ESXi shell, run the following command: # esxcli system syslog config logfilter get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.syslog.config.logfilter.get.invoke() If "LogFilteringEnabled" is not set to "false", this is a finding.
Fix: F-62449r933460_fix
From an ESXi shell, run the following command: # esxcli system syslog config logfilter set --log-filtering-enabled=false or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.syslog.config.logfilter.set.CreateArgs() $arguments.logfilteringenabled = $false $esxcli.system.syslog.config.logfilter.set.invoke($arguments)
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- ESXI-80-000247
- Vuln IDs
-
- V-265974
- Rule IDs
-
- SV-265974r1003578_rule
Checks: C-69897r1003576_chk
From an ESXi shell, run the following command: # esxcli system tls server get --show-profile-defaults --show-current-boot-profile or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.tls.server.get.CreateArgs() $arguments.showprofiledefaults = $true $arguments.showcurrentbootprofile = $true $esxcli.system.tls.server.get.invoke($arguments) Example result: Profile: NIST_2024 Cipher List: ECDHE+AESGCM Cipher Suite: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384 Groups: prime256v1:secp384r1:secp521r1 Protocol Versions: tls1.2,tls1.3 Reboot Required: true If the TLS profile is not set to "NIST_2024" or is not the current boot profile, this is a finding.
Fix: F-69800r1003577_fix
TLS Profiles can be configured with vSphere Configuration Profiles or manually on each host for clusters not using vSphere Configuration Profiles. For ESXi hosts in clusters managed with vSphere Configuration Profiles do the following: Note: These steps assume a vSphere Configuration Profile is already in use for the target cluster. From the vSphere Client, go to Host and Clusters. Select the vCenter Server >> Select the target cluster >> Configure >> Desired State >> Configuration >> Draft. Click "Create Draft" or "Import from Host" if a draft does not exist. Select system >> tls_server >> Configure Settings. Select "NIST_2024" from the drop down for profile and click "Save". Click "Apply Changes" and run through the pre-check to enforce the change. Note: Updating this setting through a vSphere Configuration Profile will place hosts into maintenance mode and perform a rolling reboot of all hosts in the cluster. For standalone hosts or clusters not managed with vSphere Configuration Profiles do the following: Prior to changing the TLS profile it is highly recommended to place the host in maintenance mode. From an ESXi shell, run the following command: # esxcli system tls server set -p NIST_2024 or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.tls.server.set.CreateArgs() $arguments.profile = "NIST_2024" $esxcli.system.tls.server.set.invoke($arguments) A reboot is required to complete the process of changing profiles.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000248
- Vuln IDs
-
- V-265975
- Rule IDs
-
- SV-265975r1003581_rule
Checks: C-69898r1003579_chk
If the ESXi host does not have a compatible TPM, this is not applicable. From an ESXi shell, run the following command: # esxcli system security keypersistence get or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.security.keypersistence.get.invoke() If key persistence is enabled, this is a finding.
Fix: F-69801r1003580_fix
From an ESXi shell, run the following command: # esxcli system security keypersistence disable --remove-all-stored-keys or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.security.keypersistence.disable.CreateArgs() $arguments.removeallstoredkeys = $true $esxcli.system.security.keypersistence.disable.invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000249
- Vuln IDs
-
- V-265976
- Rule IDs
-
- SV-265976r1003584_rule
Checks: C-69899r1003582_chk
From an ESXi shell, run the following command: # esxcli system account list or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $esxcli.system.account.list.Invoke() | Where-Object {$_.UserID -eq 'dcui'} If shell access is not disabled for the dcui account, this is a finding.
Fix: F-69802r1003583_fix
From an ESXi shell, run the following command: # esxcli system account set -i dcui -s false or From a PowerCLI command prompt while connected to the ESXi host, run the following commands: $esxcli = Get-EsxCli -v2 $arguments = $esxcli.system.account.set.CreateArgs() $arguments.id = "dcui" $arguments.shellaccess = "false" $esxcli.system.account.set.invoke($arguments)
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- ESXI-80-000250
- Vuln IDs
-
- V-265977
- Rule IDs
-
- SV-265977r1003587_rule
Checks: C-69900r1003585_chk
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Select the "Net.BMCNetworkEnable" value and verify it is set to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.BMCNetworkEnable If the "Net.BMCNetworkEnable" setting is not set to "0", this is a finding.
Fix: F-69803r1003586_fix
From the vSphere Client, go to Hosts and Clusters. Select the ESXi Host >> Configure >> System >> Advanced System Settings. Click "Edit". Select the "Net.BMCNetworkEnable" value and configure it to "0". or From a PowerCLI command prompt while connected to the ESXi host, run the following command: Get-VMHost | Get-AdvancedSetting -Name Net.BMCNetworkEnable | Set-AdvancedSetting -Value 0