VMware NSX-T Manager NDM Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates No substantive changes
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.
No substantive changes detected against the previous release. 23 rules matched cleanly.
- RMF Control
- AC-3
- Severity
- H
- CCI
- CCI-000213
- Version
- TNDM-3X-000010
- Vuln IDs
-
- V-251778
- Rule IDs
-
- SV-251778r851738_rule
Checks: C-55238r810335_chk
From the NSX-T Manager web interface, go to System >> Users and Roles >> User Role Assignment. View each user and group and verify the role assigned to it. Application service account and user required privileges must be documented. If any user/group or service account are assigned to roles with privileges that are beyond those assigned by the SSP, this is a finding.
Fix: F-55192r810336_fix
View the SSP to determine the required organization-defined roles and the least privilege policies required for each role. For example, audit administrator, crypto administrator, system administrator, etc. Assign users to roles based on SSP and least privileges. Carefully assign capabilities to each role based on SSP role assignments. To create a new role with reduced permissions, do the following: From the NSX-T Manager web interface, go to System >> Users and Roles >> Roles. Click "Add Role", provide a name and the required permissions, and then click "Save". To update user or group permissions to an existing role with reduced permissions, do the following: From the NSX-T Manager web interface, go to System >> Users and Roles >> User Role Assignment. Click the menu dropdown next to the target user or group and select "Edit". Remove the existing role, select the new one, and then click "Save".
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- TNDM-3X-000012
- Vuln IDs
-
- V-251779
- Rule IDs
-
- SV-251779r810340_rule
Checks: C-55239r810338_chk
From an NSX-T Manager shell, run the following command(s): > get auth-policy api lockout-reset-period Expected result: 900 seconds If the output does not match the expected result, this is a finding. > get auth-policy api lockout-period Expected result: 900 seconds If the output does not match the expected result, this is a finding. > get auth-policy api max-auth-failures Expected result: 3 If the output does not match the expected result, this is a finding. > get auth-policy cli lockout-period Expected result: 900 seconds If the output does not match the expected result, this is a finding. > get auth-policy cli max-auth-failures Expected result: 3 If the output does not match the expected result, this is a finding.
Fix: F-55193r810339_fix
From an NSX-T Manager shell, run the following command(s): > set auth-policy api lockout-reset-period 900 > set auth-policy api lockout-period 900 > set auth-policy api max-auth-failures 3 > set auth-policy cli lockout-period 900 > set auth-policy cli max-auth-failures 3
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- TNDM-3X-000041
- Vuln IDs
-
- V-251780
- Rule IDs
-
- SV-251780r810343_rule
Checks: C-55240r810341_chk
From an NSX-T Manager shell, run the following command(s): > get auth-policy minimum-password-length Expected result: 15 characters If the output does not match the expected result, or is greater than 15, this is a finding.
Fix: F-55194r810342_fix
From an NSX-T Manager shell, run the following command(s): > set auth-policy minimum-password-length 15
- RMF Control
- SC-10
- Severity
- H
- CCI
- CCI-001133
- Version
- TNDM-3X-000052
- Vuln IDs
-
- V-251781
- Rule IDs
-
- SV-251781r810346_rule
Checks: C-55241r810344_chk
From an NSX-T Manager shell, run the following command(s): > get service http | find Session Expected result: Session timeout: 600 If the output does not match the expected result, this is a finding. From an NSX-T Manager shell, run the following command(s): > get cli-timeout Expected result: 600 seconds If the output does not match the expected result, this is a finding.
Fix: F-55195r810345_fix
From an NSX-T Manager shell, run the following command(s): > set service http session-timeout 600 > set cli-timeout 600
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001893
- Version
- TNDM-3X-000068
- Vuln IDs
-
- V-251782
- Rule IDs
-
- SV-251782r851739_rule
Checks: C-55242r810347_chk
From the NSX-T Manager web interface, go to System >> Fabric >> Profiles >> Node Profiles. Click "All NSX Nodes" and verify the NTP servers listed. or From an NSX-T Manager shell, run the following command(s): > get ntp-server If the output does not contain at least two authoritative time sources, this is a finding. If the output contains unknown or non-authoritative time sources, this is a finding.
Fix: F-55196r810348_fix
To configure a profile to apply NTP servers to all NSX-T Manager nodes, do the following: From the NSX-T Manager web interface, go to System >> Fabric >> Profiles >> Node Profiles. Click "All NSX Nodes" and then click "Edit". Under NTP servers, remove any unknown or non-authoritative NTP servers, enter at least two authoritative servers, and then click "Save". or From an NSX-T Manager shell, run the following command(s): > del ntp-server <server-ip or server-name> > set ntp-server <server-ip or server-name>
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001890
- Version
- TNDM-3X-000069
- Vuln IDs
-
- V-251783
- Rule IDs
-
- SV-251783r851740_rule
Checks: C-55243r810350_chk
From the NSX-T Manager web interface, go to System >> Fabric >> Profiles >> Node Profiles. Click "All NSX Nodes" and verify the time zone. or From an NSX-T Manager shell, run the following command(s): > get clock If system clock is not configured with the UTC time zone, this is a finding. Note: This check must be run from each NSX-T Manager as they are configured individually if done from the command line.
Fix: F-55197r810351_fix
To configure a profile to apply NTP servers to all NSX-T Manager nodes, do the following: From the NSX-T Manager web interface, go to System >> Fabric >> Profiles >> Node Profiles. Click "All NSX Nodes", and then click "Edit". In the time zone drop-down list, select "UTC", and then click "Save". or From an NSX-T Manager shell, run the following command(s): > set timezone UTC Note: This fix must be run from each NSX-T Manager as they are configured individually if done from the command line.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-002007
- Version
- TNDM-3X-000076
- Vuln IDs
-
- V-251784
- Rule IDs
-
- SV-251784r851741_rule
Checks: C-55244r810353_chk
From an NSX-T Manager shell, run the following command(s): > get service http | find Session Expected result: Session timeout: 600 If the output does not match the expected result, this is a finding. From an NSX-T Manager shell, run the following command(s): > get cli-timeout Expected result: 600 seconds If the output does not match the expected result, this is a finding.
Fix: F-55198r810354_fix
From an NSX-T Manager shell, run the following command(s): > set service http session-timeout 600 > set cli-timeout 600
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-002385
- Version
- TNDM-3X-000080
- Vuln IDs
-
- V-251785
- Rule IDs
-
- SV-251785r851742_rule
Checks: C-55245r810356_chk
From an NSX-T Manager shell, run the following command(s): > get service http | find limit Expected result: Client API rate limit: 100 requests/sec Client API concurrency limit: 40 connections Global API concurrency limit: 199 connections If the output does not match the expected result, this is a finding.
Fix: F-55199r810357_fix
From an NSX-T Manager shell, run the following command(s): > set service http client-api-rate-limit 100 > set service http client-api-concurrency-limit 40 > set service http global-api-concurrency-limit 199
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- TNDM-3X-000083
- Vuln IDs
-
- V-251786
- Rule IDs
-
- SV-251786r810361_rule
Checks: C-55246r810359_chk
From an NSX-T Manager shell, run the following command(s): > get service async_replicator | find Logging > get service http | find Logging > get service manager | find Logging > get service policy | find Logging Expected result: Logging level: info If the output does not match the expected result, this is a finding.
Fix: F-55200r810360_fix
From an NSX-T Manager shell, run the following command(s): > set service async_replicator logging-level info > set service http logging-level info > set service manager logging-level info > set service policy logging-level info
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- TNDM-3X-000088
- Vuln IDs
-
- V-251787
- Rule IDs
-
- SV-251787r851743_rule
Checks: C-55247r810362_chk
From an NSX-T Manager shell, run the following command(s): > get logging-servers If any configured logging-servers are not configured with protocol of "tcp", "li-tls", or "tls" and level of "info", this is a finding. If no logging-servers are configured, this is a finding. Note: This check must be run from each NSX-T Manager as they are configured individually.
Fix: F-55201r810363_fix
(Optional) From an NSX-T Manager shell, run the following command(s) to clear any existing incorrect logging-servers: > clear logging-servers From an NSX-T Manager shell, run the following command(s) to configure a tcp syslog server: > set logging-server <server-ip or server-name> proto tcp level info From an NSX-T Manager shell, run the following command(s) to configure a tls syslog server: > set logging-server <server-ip or server-name> proto tls level info serverca ca.pem clientca ca.pem certificate cert.pem key key.pem From an NSX-T Manager shell, run the following command(s) to configure an li-tls syslog server: > set logging-server <server-ip or server-name> proto li-tls level info serverca root-ca.crt Note: If using the protocols TLS or LI-TLS to configure a secure connection to a log server, the server and client certificates must be stored in /image/vmware/nsx/file-store on each NSX-T Manager appliance.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- TNDM-3X-000090
- Vuln IDs
-
- V-251788
- Rule IDs
-
- SV-251788r810367_rule
Checks: C-55248r810365_chk
From an NSX-T Manager shell, run the following command(s): > get service async_replicator | find Logging > get service http | find Logging > get service manager | find Logging > get service policy | find Logging Expected result: Logging level: info If the output does not match the expected result, this is a finding.
Fix: F-55202r810366_fix
From an NSX-T Manager shell, run the following command(s): > set service async_replicator logging-level info > set service http logging-level info > set service manager logging-level info > set service policy logging-level info
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000370
- Version
- TNDM-3X-000092
- Vuln IDs
-
- V-251789
- Rule IDs
-
- SV-251789r819722_rule
Checks: C-55249r819177_chk
From the NSX-T Manager web interface, go to System >> Users and Roles >> VMware Identity Manager. If the VMware Identity Manager integration is not enabled, this is a finding. If the user is not redirected to VMware Identity Manager or Workspace ONE Access when attempting to log in to the NSX-T Manager web interface and prompted to select a certificate and enter a PIN, this is a finding.
Fix: F-55203r819721_fix
To configure NSX-T to integrate with VMware Identity Manager or Workspace ONE Access as the authentication source, do the following: From the NSX-T Manager web interface, go to System >> Users and Roles >> VMware Identity Manager and click "Edit". If using an external load balancer for the NSX-T Management cluster, enable "External Load Balancer Integration". If using a cluster VIP, leave this disabled. Click the toggle button to enable "VMware Identity Manager Integration". Enter the VMware Identity Manager or Workspace ONE Access appliance name, OAuth Client ID, OAuth Client Secret, and certificate thumbprint as provided by the administrators. Enter the NSX Appliance FQDN. For a cluster, enter the load balancer FQDN or cluster VIP FQDN. Click "Save", import users and groups, and then assign them roles. Ensure the VMware Identity Manager administrators have configured the certificate authentication adapter to provide two-factor authentication.
- RMF Control
- CP-9
- Severity
- M
- CCI
- CCI-000537
- Version
- TNDM-3X-000093
- Vuln IDs
-
- V-251790
- Rule IDs
-
- SV-251790r810373_rule
Checks: C-55250r810371_chk
From the NSX-T Manager web interface, go to System >> Backup and Restore to view the backup configuration. If backup is not configured and scheduled on a recurring frequency, this is a finding.
Fix: F-55204r810372_fix
To configure a backup destination, do the following: From the NSX-T Manager web interface, go to System >> Backup and Restore, and then click "Edit" next to SFTP Server. Enter the target SFTP server, Directory Path, Username, Password, SSH Fingerprint, and Passphrase, and then click "Save". To configure a backup schedule do the following: From the NSX-T Manager web interface, go to System >> Backup and Restore, and then click "Edit" next to Schedule. Click the "Recurring Backup" toggle and configure an interval between backups. Enable "Detect NSX configuration change" to trigger backups on detection of configuration changes and specify an interval for detecting changes. Click "Save".
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- TNDM-3X-000094
- Vuln IDs
-
- V-251791
- Rule IDs
-
- SV-251791r810376_rule
Checks: C-55251r810374_chk
From the NSX-T Manager web interface, go to System >> Backup and Restore to view the backup configuration. If backup is not configured and scheduled on a recurring frequency, this is a finding.
Fix: F-55205r810375_fix
To configure a backup destination, do the following: From the NSX-T Manager web interface, go to System >> Backup and Restore, and then click "Edit" next to SFTP Server. Enter the target SFTP server, Directory Path, Username, Password, SSH Fingerprint, and Passphrase, and then click "Save". To configure a backup schedule do the following: From the NSX-T Manager web interface, go to System >> Backup and Restore, and then click "Edit" next to Schedule. Click the "Recurring Backup" toggle and configure an interval between backups. Enable "Detect NSX configuration change" to trigger backups on detection of configuration changes and specify an interval for detecting changes. Click "Save".
- RMF Control
- SC-17
- Severity
- M
- CCI
- CCI-001159
- Version
- TNDM-3X-000095
- Vuln IDs
-
- V-251792
- Rule IDs
-
- SV-251792r810379_rule
Checks: C-55252r810377_chk
NSX-T Manager uses a certificate for each manager and one for the cluster VIP. In some cases these are the same, but each node and cluster VIP certificate must be checked individually. Browse to the NSX-T Manager web interface for each node and cluster VIP and view the certificate and its issuer of the website. or From an NSX-T Manager shell, run the following command(s): > get certificate api > get certificate cluster Save the output to a .cer file to examine. If the certificate the NSX-T Manager web interface or cluster is using is not issued by an approved DoD certificate authority and is not currently valid, this is a finding.
Fix: F-55206r810378_fix
Obtain a certificate or certificates signed by an approved DoD certification authority. This can be done individually by generating CSRs through the NSX-T Manager web interface >> System >> Certificates >> CSRs >> Generate CSR or outside of NSX-T if a common manager and cluster certificate is desired. Import the certificate(s) into NSX-T by doing the following: From the NSX-T Manager web interface, go to System >> Certificates >> Import >> Import Certificate. Provide a name for the certificate and paste the certificates contents and key. Uncheck "Service Certificate" and click "Import". After import note the ID of the certificate(s). Using curl or another REST API client perform the following API calls and replace the certificate IDs noted in the previous steps. To replace a managers certificate: POST https://<nsx-mgr>/api/v1/node/services/http?action=apply_certificate&certificate_id=e61c7537-3090-4149-b2b6-19915c20504f To replace the cluster certificate: POST https://<nsx-mgr>/api/v1/cluster/api-certificate?action=set_cluster_certificate&certificate_id=d60c6a07-6e59-4873-8edb-339bf75711ac Note: If an NSX Intelligence appliance is deployed with the NSX Manager cluster, update the NSX Manager node IP, certificate, and thumbprint information that is on the NSX Intelligence appliance. See VMware Knowledge Base article https://kb.vmware.com/s/article/78505 for more information.
- RMF Control
- SI-2
- Severity
- H
- CCI
- CCI-002605
- Version
- TNDM-3X-000096
- Vuln IDs
-
- V-251793
- Rule IDs
-
- SV-251793r851744_rule
Checks: C-55253r810380_chk
From an NSX-T Manager shell, run the following command(s): > get logging-servers If any configured logging-servers are not configured with protocol of "tcp", "li-tls", or "tls" and level of "info", this is a finding. If no logging-servers are configured, this is a finding. Note: This check must be run from each NSX-T Manager as they are configured individually.
Fix: F-55207r810381_fix
(Optional) From an NSX-T Manager shell, run the following command(s) to clear any existing incorrect logging-servers: > clear logging-servers From an NSX-T Manager shell, run the following command(s) to configure a tcp syslog server: > set logging-server <server-ip or server-name> proto tcp level info From an NSX-T Manager shell, run the following command(s) to configure a tls syslog server: > set logging-server <server-ip or server-name> proto tls level info serverca ca.pem clientca ca.pem certificate cert.pem key key.pem From an NSX-T Manager shell, run the following command(s) to configure a li-tls syslog server: > set logging-server <server-ip or server-name> proto li-tls level info serverca root-ca.crt Note: If using the protocols TLS or LI-TLS to configure a secure connection to a log server, the server and client certificates must be stored in /image/vmware/nsx/file-store on each NSX-T Manager appliance.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- TNDM-3X-000097
- Vuln IDs
-
- V-251794
- Rule IDs
-
- SV-251794r810385_rule
Checks: C-55254r810383_chk
From the NSX-T Manager web interface, go to the System >> Upgrade. If the NSX-T Manager current version is not the latest approved for use in DoD and supported by the vendor, this is a finding.
Fix: F-55208r810384_fix
To upgrade NSX-T, reference the upgrade guide in the documentation for the relevant version being upgraded. Refer to the NSX-T documentation and release notes for information on the latest releases. https://docs.vmware.com/en/VMware-NSX-T-Data-Center/index.html If NSX-T is part of a VMware Cloud Foundation, refer to that documentation for latest supported versions and upgrade guidance.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- TNDM-3X-000098
- Vuln IDs
-
- V-251795
- Rule IDs
-
- SV-251795r810388_rule
Checks: C-55255r810386_chk
From the NSX-T Manager web interface, go to System >> Customer Experience Improvement Program. If Joined is set to "Yes", this is a finding.
Fix: F-55209r810387_fix
From the NSX-T Manager web interface, go to System >> Customer Experience Improvement Program, and then click "Edit". Uncheck "Join the VMware Customer Experience Improvement Program" and click "Save".
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000382
- Version
- TNDM-3X-000099
- Vuln IDs
-
- V-251796
- Rule IDs
-
- SV-251796r810391_rule
Checks: C-55256r810389_chk
From an NSX-T Manager shell, run the following command(s): > get service ssh Expected results: Service name: ssh Service state: stopped Start on boot: False If the output does not match the expected results, this is a finding.
Fix: F-55210r810390_fix
From an NSX-T Manager shell, run the following command(s): > stop service ssh > clear service ssh start-on-boot
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- TNDM-3X-000100
- Vuln IDs
-
- V-251797
- Rule IDs
-
- SV-251797r810394_rule
Checks: C-55257r810392_chk
If NSX-T is not at least version 3.1.1, this is not applicable. From the NSX-T Manager web interface, go to the System >> Users and Roles >> Local Users and view the status column. If the audit, guestuser1, or guestuser2 local accounts are active, this is a finding.
Fix: F-55211r810393_fix
From the NSX-T Manager web interface, go to the System >> Users and Roles >> Local Users. Select the menu drop down next to the user to modify and click "Deactivate User".
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- TNDM-3X-000101
- Vuln IDs
-
- V-251798
- Rule IDs
-
- SV-251798r810397_rule
Checks: C-55258r810395_chk
Viewing TLS protocol enablement must be done via the API. Execute the following API call using curl or another REST API client: GET https://<nsx-mgr>/api/v1/cluster/api-service Expected result: "protocol_versions": [ { "name": "TLSv1.1", "enabled": false }, { "name": "TLSv1.2", "enabled": true } ], If TLS 1.1 is enabled, this is a finding.
Fix: F-55212r810396_fix
Capture the output from the check GET command and update the TLS 1.1 protocol to false. Execute the following API call using curl or another REST API client: PUT https://<nsx-mgr>/api/v1/cluster/api-service Example request body: { "global_api_concurrency_limit": 199, "client_api_rate_limit": 100, "client_api_concurrency_limit": 40, "connection_timeout": 30, "redirect_host": "", "cipher_suites": [ {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_256_GCM_SHA384"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_128_GCM_SHA256"} {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384}", {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA256"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_128_CBC_SHA256"}, {"enabled": false, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"}, {"enabled": false, "name": "TLS_RSA_WITH_AES_128_CBC_SHA"} ], "protocol_versions": [ {"enabled": false, "name": "TLSv1.1"}, {"enabled": true, "name": "TLSv1.2"} ] } Note: Changes are applied to all nodes in the cluster. The API service on each node will restart after it is updated using this API. There may be a delay of up to a minute or so between the time this API call completes and when the new configuration goes into effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- TNDM-3X-000102
- Vuln IDs
-
- V-251799
- Rule IDs
-
- SV-251799r810400_rule
Checks: C-55259r810398_chk
From the NSX-T Manager web interface, go to the System >> Fabric >> Profiles >> Node Profiles. Click "All NSX Nodes" and view the SNMP Polling and Traps configuration. If SNMP v2c Polling or Traps are configured, this is a finding.
Fix: F-55213r810399_fix
From the NSX-T Manager web interface, go to the System >> Fabric >> Profiles >> Node Profiles. Click on "All NSX Nodes" and delete and v2c Polling or Trap configurations.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- TNDM-3X-000103
- Vuln IDs
-
- V-251800
- Rule IDs
-
- SV-251800r810403_rule
Checks: C-55260r810401_chk
From the NSX-T Manager web interface, go to the Home >> Monitoring Dashboards >> Compliance Report. Review the compliance report for code 72024 with description Load balancer FIPS global setting disabled. Note: This may also be checked via the API call GET https://<nsx-mgr>/policy/api/v1/infra/global-config If the global FIPS setting is disabled for load balancers, this is a finding.
Fix: F-55214r810402_fix
Execute the following API call using curl or another REST API client: PUT https://<nsx-mgr>/policy/api/v1/infra/global-config Example request body: { "fips": { "lb_fips_enabled": true }, "resource_type": "GlobalConfig", "_revision": 2 } The global setting is used when the new load balancer instances are created. Changing the setting does not affect existing load balancer instances. To update existing load balancers to use this setting, do the following: From the NSX-T Manager web interface, go to the Networking >> Load Balancing and then click "Edit" on the target load balancer. In the attachment field, click the "X" to detach the load balancer from its current Gateway and click "Save". Edit the target load balancer again, reattach it to its Gateway, and then click "Save". Caution: Detaching a load balancer from the tier-1 gateway results in a traffic interruption for the load balancer instance.