Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Review the Arista Multilayer Switch configuration for a local infrequently used account to be used as an account of last resort with full access to the network device. The default account on the Arista MLS is called admin. If the account of last resort does not exist, this is a finding. To assign a password to this account, enter the following: username admin secret [password] role [role]
Configure the Arista Multilayer Switch with a local infrequently used account to be used as an account of last resort with full access to the network device.
Review the Arista Multilayer Switch configuration for the account of last resort with full access to the network device. If the account of last resort does not require a password length of at least 15 characters, this is a finding. To verify the setting is correct, run the "show running-config" command on the switch. Under the section "management security", the configuration statement "password minimum length 15" must be present, with a value set to 15 or higher.
Configure the Arista Multilayer Switch account of last resort with a password with a length of at least 15 characters. To configure the password minimum length, enter the following commands: configure management security password minimum length 15
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config: aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA: aaa accounting commands all default start-stop logging [group radius]
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config. aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA aaa accounting commands all default start-stop logging [group radius]
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config. aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA aaa accounting commands all default start-stop logging [group radius]
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config: aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA: aaa accounting commands all default start-stop logging [group radius]
Review the device configuration and verify display of the Standard DoD Notice and Consent Banner. If the banner is not displayed, this is a finding. To verify the device is configured to display the DoD Banner, review the running configuration with the "show running-config" command. Identify the section "banner login" and verify the standard DoD Banner is displayed.
Configure the switch to display the Standard DoD Notice and Consent banner. To configure the banner, enter the following commands from the configuration mode interface. Replace the bracketed data with the DoD Banner. switch(config)#banner login [DoD Banner] EOF
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config: aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA aaa accounting commands all default start-stop logging [group radius]
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config: aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA: aaa accounting commands all default start-stop logging [group radius]
Review the device configuration and verify that logging is enabled with sufficient detail to establish what type of event occurred. If logging is not enabled or does not provide sufficient detail, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging.
Enable logging on the switch with sufficient detail to establish what type of event occurred. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational
Review the switch configuration and verify that logging is enabled. If logging is not enabled or is not enabled with sufficient detail to fulfill the specifications set forth in the VulDiscussion, this is a finding. To determine if logging is enabled, enter: switch#show logging The output must show logging as enabled, with a logging level of informational or debugging. In order to ensure all user commands are captured, the following statement must be in the running config: aaa accounting commands all default start-stop logging [group radius]
Enable logging on the switch with sufficient detail to fulfill the specifications set forth in the VulDiscussion. To configure logging to a remote syslog server at the informational level, enter: switch#config switch(config)#logging host [ip address] switch(config)#logging trap informational Then configure the following AAA: aaa accounting commands all default start-stop logging [group radius]
Determine if the network device prohibits the use of all unnecessary and/or nonsecure functions, ports, protocols, and/or services, as defined in the PPSM CAL and vulnerability assessments. This can be verified by reviewing the access control list configuration on the device and comparing against the PPSM CAL. The access control list configuration must deny ports, protocols, and services defined by the PPSM CAL. IP access list configuration can be viewed via the "show ip access-lists" command. To verify an interface has the appropriate access control list on it, use the "show ip access-list" summary command. If any unnecessary or nonsecure functions are permitted, this is a finding.
Configure the network device to prohibit the use of all unnecessary and/or nonsecure functions, ports, protocols, and/or services, as defined in the PPSM CAL and vulnerability assessments. To configure an access control list, use the following commands: configure ip access-list [name] 10 deny [protocol] [src port] [src mask] [dst port] [dst mask] [options] exit To apply an access control list to an interface, use the following commands from the interface configuration mode: ip access-group [name] [direction]
Determine if the network device uses multifactor authentication for local access to privileged accounts. This requirement may be verified by demonstration or configuration review. This requirement may be met through use of a properly configured authentication server if the device is configured to use the authentication server. If multifactor authentication is not used for local access to privileged accounts, this is a finding. Review the device configuration via the "show running-config" command. The line "aaa authentication login console group [server-group] [radius/tacplus] [local]" must be present and must contain, at a minimum, the server group used for authentication, if present, or the term radius or tacplus to indicate all configured radius or tacplus servers, and the term local for local database authentication.
Configure the network device or its associated authentication server to use multifactor authentication for local access to privileged accounts. To configure the local device to authenticate via its authentication server, enter the following command from the configuration mode interface. Replace the bracketed value with the configured server group name or the name of the server type to validate against all configured servers of that type. switch(config)#aaa authentication login console group [radius] local
Determine if the network device terminates the connection associated with a device management session at the end of the session or after 10 minutes of inactivity. This requirement may be verified by demonstration or configuration review. Verify by executing a "show running-config" command, and under the "management ssh" subsection, validate the configuration statement "idle-timeout 10" is present and the value is 10 or less. If the network device does not terminate the connection associated with a device management session at the end of the session or after 10 minutes of inactivity, this is a finding.
Configure the network device to terminate the connection associated with a device management session at the end of the session or after 10 minutes of inactivity. Arista switches have a configurable timeout function that automatically closes connections to the switch upon reaching an organization-defined period of time. Configuration Example: switch(config)#management ssh switch(config-mgmt-ssh)#idle-timeout 10 Configure the switch to terminate an idle ssh connection after 10 minutes of inactivity.
Determine if the network device is configured to reveal error messages only to authorized individuals. This requirement may be verified by demonstration or configuration review. This requirement can be met by a central audit server if the network device is configured to send audit logs to that audit server. If the network device reveals error messages to any unauthorized individuals, this is a finding. This is a function of SNMP Traps. Verify the SNMP configuration is present in the output of the "show running-config" command and that SNMP is active via the "show snmp" command.
Configure the network device or its associated audit server to reveal error messages only to authorized individuals. SNMP is used to fulfill this function. An example SNMP configuration is provided below. To configure SNMP according to site-specific policies and procedures, refer to the Arista Configuration Guide Chapter 37 snmp-server engineID local snmp-server view snmpview system included snmp-server group ROgroup v3 priv read snmpview snmp-server group RWgroup v3 priv write snmpview snmp-server user disa ROgroup v3 snmp-server user disaRW RWgroup v3 snmp-server host 10.1.1.1 version 3 priv disaRW snmp-server host 10.2.2.2 version 3 noauth disaRW snmp-server host 10.3.3.3 version 3 noauth disaRW snmp-server host 127.0.0.1 version 3 noauth auth snmp-server host 172.22.29.82 version 3 noauth disaRW snmp-server enable traps
Determine if the network device activates a system alert message, sends an alarm, and/or automatically shuts down when a component failure is detected. This requirement may be verified by demonstration or configuration review. If the network device does not activate a system alert message, send an alarm, or automatically shut down when a component failure is detected, this is a finding. This is a function of SNMP Traps. Verify the SNMP configuration is present in the output of the "show running-config" command and that SNMP is active via the "show snmp" command.
Configure the network device to activate a system alert message, send an alarm, and/or automatically shut down when a component failure is detected. SNMP is used to fulfill this function. An example SNMP configuration is provided below. To configure SNMP according to site-specific policies and procedures, refer to the Arista Configuration Guide, Chapter 37. snmp-server engineID local snmp-server view snmpview system included snmp-server group ROgroup v3 priv read snmpview snmp-server group RWgroup v3 priv write snmpview snmp-server user disa ROgroup v3 snmp-server user disaRW RWgroup v3 snmp-server host 10.1.1.1 version 3 priv disaRW snmp-server host 10.2.2.2 version 3 noauth disaRW snmp-server host 10.3.3.3 version 3 noauth disaRW snmp-server host 127.0.0.1 version 3 noauth auth snmp-server host 172.22.29.82 version 3 noauth disaRW snmp-server enable traps
Check the network device configuration to determine if the device synchronizes internal information system clocks to the authoritative time source when the time difference is greater than the organization-defined time period. If this synchronization is not occurring when the time difference is greater than the organization-defined time period, this is a finding. Verify with the "show NTP status" command, which shows the state of device synchronization.
Configure the network device to synchronize internal information system clocks to the authoritative time source when the time difference is greater than the organization-defined time period. Configuration Example: switch(config)#ntp server HOST switch(config)#ntp server HOST prefer
Determine if the network device is configured to synchronize internal information system clocks with the primary and secondary time sources located in different geographic regions using redundant authoritative time sources. If the network device is not configured to synchronize internal information system clocks with the primary and secondary time sources located in different geographic regions using redundant authoritative time sources, this is a finding. Verify with: switch#show NTP status Identify the NTP status and available time sources.
Configure the network device to synchronize internal information system clocks with the primary and secondary time sources located in different geographic regions using redundant authoritative time sources. Configuration Example: switch(config)#ntp server HOST switch(config)#ntp server HOST prefer
Determine if the network device records time stamps for audit records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT). This requirement may be verified by demonstration or configuration review. If the network device does not record time stamps for audit records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT), this is a finding. This can be configured with the following command: clock timezone GMT and verified by show run section clock Log records can be validated with: show logging
Configure the network device to record time stamps for audit records that can be mapped to Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT). This can be configured with the following command: clock timezone GMT
Determine if the network device uses secure protocols instead of their unsecured counterparts. If any unsecured maintenance protocols are in use (e.g., telnet, FTP, HTTP) and these protocols are not wrapped in a secure tunnel, this is a finding. Validate by checking that unsecure protocols are either disabled or wrapped in SSH tunnels. Executing a "show run" command will provide a means to validate this config. From the output of this command, verify that there is no statement enabling telnet, there is no statement enabling FTP, and there is no statement enabling the API, or the API is configured to use only HTTPS.
Configure the network device to use secure protocols instead of their unsecured counterparts. Configuration Example: Disable unsecure protocols. configure management telnet shutdown exit management api http-commands no protocol http protocol https exit Other protocols (FTP) can be denied using AAA and RBAC. For connections that require use of these maintenance protocols, creation of SSH tunnels can fulfill this security requirement. This is summarized here and available at length in the Common Criteria guidance document. Configuration Example: management ssh tunnel NEW local port 514 ssh-server syslogServer user authuser port 22 remote host localhost port 514 no shutdown
Determine if the network device uses secure protocols instead of their unsecured counterparts. If any unsecured maintenance protocols are in use (e.g., telnet, FTP, HTTP) and these protocols are not wrapped in a secure tunnel, this is a finding. Validate by checking that unsecure protocols are either disabled or wrapped in SSH tunnels. Executing a "show run" command will provide a means to validate this config. From the output of this command, verify that there is no statement enabling telnet, no statement enabling FTP, no statement enabling HTTP, and no statement enabling the API, or the API is configured to use only HTTPS.
Configure the network device to use secure protocols instead of their unsecured counterparts. Configuration Example: Disable unsecure protocols. configure management telnet shutdown exit management api http-commands no protocol http protocol https exit Other protocols (FTP) can be denied using AAA and RBAC. For connections that require use of these maintenance protocols, creation of SSH tunnels can fulfill this security requirement. This is summarized here and available at length in the Common Criteria guidance document. Configuration Example: management ssh tunnel NEW local port 514 ssh-server syslogServer user authuser port 22 remote host localhost port 514 no shutdown
Determine if the network device generates audit records for privileged activities or other system-level access. If the network device does not generate audit records for privileged activities or other system-level access, this is a finding. Verify logging is configured to audit full-text commands. Execute a "show logging" command and review the logs to verify the full text of commands is included.
Configure the network device to generate audit records for privileged activities or other system-level access. aaa accounting commands all default start-stop aaa accounting exec default start-stop aaa accounting system default start-stop
Determine if the network device generates audit records showing starting and ending time for administrator access to the system. If the network device does not generate audit records showing starting and ending time for administrator access to the system, this is a finding. Verify by reviewing log files to show start and end times for administrator access to the system via the "show logging" command.
Configure the network device to generate audit records showing starting and ending time for administrator access to the system. Enable logging level 6 to ensure this event is captured. Switch(config)#logging trap 6 switch(config)#logging level all 6
Determine if the network device generates audit records when concurrent logons from different workstations occur. If the network device does not generate audit records when concurrent logons from different workstations occur, this is a finding. Verify by reviewing log files to show concurrent logons to the system via the "Show Logging" command.
Configure the network device to generate audit records when concurrent logons from different workstations occur. Enable logging level 6 to ensure this event is captured. Switch(config)#logging trap 6 switch(config)#logging level all 6
Determine if the network device generates audit records for all account creations, modifications, disabling, and termination events. If the network device does not generate audit records for all account creations, modifications, disabling, and termination events, this is a finding. Verify by reviewing log files to show audit records for account creation, modification, disabling, and termination via the "Show Logging" command.
Configure the network device to generate audit records for all account creations, modifications, disabling, and termination events. Enable logging level 6 to ensure this event is captured: Switch(config)#logging trap 6 switch(config)#logging level all 6
Check the network device configuration to determine if the device off-loads audit records onto a different system or media than the system being audited. If the device does not off-load audit records onto a different system or media, this is a finding. Review the configuration for the "logging host [a.b.c.d]" statement. Execute a "show logging" to verify logging host status.
Configure the network device to off-load interconnected systems in real time and off-load standalone systems weekly. Arista EOS logs can be exported to, including by a regular syslog server. Configuration Example: switch(config)#logging host[ a.b.c.d] switch(config)#logging trap informational
Review the network device account configuration files to determine if the privileged functions to access and modify audit settings and files are restricted to authorized security personnel. Review locations of audit logs generated as a result of nonlocal accesses to privileged accounts and the execution of privileged functions. Verify there are appropriate controls and permissions to protect the audit information from unauthorized access. If the audit records that are generated upon nonlocal access to privileged accounts or upon the execution of privileged functions are not protected, this is a finding. Verify remote logging is enabled via the "Show Logging" command. Verify that individual accounts do not have access to logging functionality by executing the "show user-account" command and validating that only intended users are assigned to roles that permit access to logging functions. To verify what permissions are allowed by each role, execute the "show roles" command.
Configure the system to protect the audit records of nonlocal accesses to privileged accounts and the execution of privileged functions. Enable remote logging with: config logging host a.b.c.d logging trap informational To assign a user to a role, use the command: username [name] role [role name] To deny access to logging functions via RBAC: role [name] deny command logging [all]
Review the device's configuration and verify the use of an AAA server for Account Management. Configuration must include at least one authenticated remote AAA server and verification that authentication, authorization, and accounting are enabled. In order for AAA to execute authorizations, role-based access control (RBAC) must also be configured on the switch, as shown in the configuration example. User roles do not need to follow these exact permissions, but they must comply with organizational policies for access-control. If the AAA server is not configured to centrally manage authentication settings, this is a finding. Using the "show running-config" command will display all configured AAA commands, which must include the following commands with the variables completed: aaa group server [radius/tacacs] [name] [radius/tacacs]-server host [IP Address] vrf [name] key [key] aaa authentication login default group [group name] [radius/tacacs] [local] aaa authentication login console [group] [group name/radius/tacacs+] [local] aaa authentication dot1x default group [group] [radius] aaa authentication policy on-success log aaa authentication policy on-failure log aaa authorization console aaa authorization exec default [radius/tacacs] local aaa authorization commands all default local aaa accounting exec default start-stop logging aaa accounting system default start-stop logging aaa accounting commands all default start-stop logging no aaa root Executing the "Show aaa sessions" command will verify the operation of AAA for any connected sessions. This will include the username, role, state, authentication method, and remote host information, which must match the configured remote AAA server. Verify Role Based Access Control is enabled by executing the "show roles" command, and review the configured roles to ensure they meet organization-defined requirements.
Configure AAA services via a remote AAA server for all nonlocal accounts. Configuration: aaa group server [radius/tacacs] [name] [radius/tacacs]-server host [IP Address] vrf [name] key [key] aaa authentication login default group [group name] [radius/tacacs] [local] aaa authentication login console [group] [group name/radius/tacacs+] [local] aaa authentication dot1x default group [group] [radius] aaa authentication policy on-success log aaa authentication policy on-failure log aaa authorization console aaa authorization exec default [radius/tacacs] local aaa authorization commands all default local aaa accounting exec default start-stop logging aaa accounting system default start-stop logging aaa accounting commands all default start-stop logging no aaa root Example RBAC roles: role administrator 10 permit command .* role operator 10 permit command show running-config [all|detail] sanitized 20 deny command >|>>|extension|\||session|do|delete|copy|rmdir|mkdir|python-shell|bash|platform|scp|append|redirect|tee|more|less|who|show run.* 25 deny command bash 30 deny mode config command (no |default ) (username|role|aaa|tcpdump|schedule|event.*) 40 permit command .* 30 deny mode config command (no |default ) (username|role|aaa|tcpdump|schedule|event.*) 40 permit command .*
Check the network device to determine if the network device is configured to conduct backups of system-level information contained in the information system when changes occur or weekly, whichever is sooner. If the network device does not support the organizational requirements to conduct backups of system-level data according to the defined frequency, this is a finding.
Configure the network device to conduct backups of system-level information contained in the information system when changes occur or weekly, whichever is sooner. For weekly backups, the following chronologically scheduled command will back up the switch information one per day at noon: switch(config)#schedule [name] at [hh:mm:ss] interval 1440 max-log-files 100 command bash FastCli -p 15 -c $'enable\nshow tech-support > scp:[remote destination/filename]\n' The following event-handler will schedule backups any time the configuration is changed and written to memory: event-handler Copy-Config trigger on-startup-config action bash sudo ip netns exec ns-DATA scp /mnt/flash/startup-config [user@IPaddress/filepath/filename] delay 5
Verify the Arista Multilayer Switch configuration using the “Show version” command. Review the software image version, and verify it is a minimum DoD-approved version. The current approved minimum versions are 4.16.0F, 4.15.3F, 4.14.11M, or later. If the Arista Multilayer Switch is not using a minimum approved versions of EOS, this is a finding.
Configure the Arista Multilayer Switch to use an approved software version. Download the approved version from www.arista.com/support, copy the .swi file to flash via an approved file transfer mechanism, and then enter: Enable Configure Boot system flash:<your_image.swi> Write memory reload
Review the device configuration via the “show running-config” command for the following statement: management ssh fips restrictions If this statement is not present, this is a finding.
Enable FIPS restrictions via the following commands: Enable Configure Management ssh Fips restrictions Exit Additionally, the switch should be configured to use its Hardware Random Number Generator as a source of entropy for the SSH protocol. To enable this, configure: Enable Configure Management security Entropy source hardware Once this has been changed, regenerate the SSH RSA Keys with: Reset ssh hostkey rsa