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
Open the Exchange Management Shell and enter the following command: Get-AdminAuditLogConfig | Select Name, AdminAuditLogEnabled If the value of "AdminAuditLogEnabled" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-AdminAuditLogConfig -AdminAuditLogEnabled $true
Open the Exchange Management Shell and enter the following command: Get-ExchangeCertificate | Select CertificateDomains, issuer If the value of "CertificateDomains" does not indicate it is issued by the DoD, this is a finding.
Remove the non-DoD certificate and import the correct DoD certificates.
Note: Requirement is not applicable on classified or completely closed networks. Non-Enterprise Mail Check Content: Open the Exchange Management Shell and enter the following command: Get-RemoteDomain | Select Identity, AutoForwardEnabled If the value of AutoForwardEnabled is not set to "False", this is a finding. Enterprise Mail Check Content: If the value of "AutoForwardEnabled" is set to "True", this is not a finding. and In the Exchange Management Shell, enter the following command: Get-RemoteDomain If the value of "RemoteDomain" is not set to ".mil" and/or ".gov" domain(s), this is a finding.
Non-Enterprise Mail Fix Text: Open the Exchange Management Shell and enter the following command: Set-RemoteDomain -Identity <'IdentityName'> -AutoForwardEnabled $false Note: The <IdentityName> value must be in single quotes. Enterprise Mail Fix Text: New-RemoteDomain -Name <NewRemoteDomainName> -DomainName <SMTP Address> Note: <NewRemoteDomainName> must either be a .mil or .gov domain. Set-RemoteDomain -Identity <'RemoteDomainIdentity'> -AutoForwardEnabled $true Note: The <RemoteDomainIdentity> value must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-TransportService | Select Name, Identity, ConnectivityLogEnabled If the value of "ConnectivityLogEnabled" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-TransportService -Identity <'IdentityName'> -ConnectivityLogEnabled $true Note: The <IdentityName> value must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-EventLogLevel If the Diagnostic of any EventLevel is not set to "Lowest", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-EventLogLevel -Identity <'IdentityName\EventlogName'> -Level Lowest Note: The <IdentityName\EventlogName> value must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-AdminAuditLogConfig | Select AdminAuditLogParameters Note: The value of "*" indicates all parameters are being audited. If the value of "AdminAuditLogParameters" is not set to "*", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-AdminAuditLogConfig -AdminAuditLogParameters *
Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase | Select Name, Identity, CircularLoggingEnabled If the value of "CircularLoggingEnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-MailboxDatabase -Identity <'IdentityName'> -CircularLoggingEnabled $false Note: The <IdentityName> value must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-TransportService | Select Name, Identity, MessageTrackingLogSubjectLoggingEnabled If the value of “MessageTrackingLogSubjectLoggingEnabled” is not set to “False”, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-Transportservice -MessageTrackingLogSubjectLoggingEnabled $False
Open the Exchange Management Shell and enter the following command: Get-Transportservice | Select Name, MessageTrackingLogEnabled If the value of MessageTrackingLogEnabled is not set to True, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-Transportservice <IdentityName> -MessageTrackingLogEnabled $true Note: The <IdentityName> value must be in quotes.
Note: If a third-party application is performing monitoring functions, the reviewer should verify the application is monitoring correctly and mark the vulnerability not applicable (NA). Open the Exchange Management Shell and enter the following command: perfmon Get-MonitoringItemHelp -Identity <String> -Server <ServerIdParameter> If no sets are defined or queues are not being monitored, this is a finding.
Open the Exchange Management Shell and enter the following command: perfmon In the left pane, navigate to and select Performance >> Data Collector Sets >> User Defined. Right-click on, navigate to, and configure User Defined >> New >> Data Collector Sets and configure the system to use the data collection set for monitoring the queues.
Open the Exchange Management Shell and enter the following command: Get-ExchangeServer –status | Select Name, Identity, ErrorReportingEnabled For each Exchange Server, if the value of "ErrorReportingEnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ExchangeServer -Identity <'IdentityName'> -ErrorReportingEnabled $false Note: The <IdentityName> value must be in single quotes. Repeat the process for each Exchange Server.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the authorized groups or users that should have "Read" access to the audit data. If any group or user has "Read" access to the audit data that is not documented in the EDSP, this is a finding.
Update the EDSP to specify the authorized groups or users that should have "Read" access to the audit data or verify that this information is documented by the organization. Restrict any unauthorized groups' or users' "Read" access to the audit logs.
Open the Exchange Management Shell and enter the following command: Get-OrganizationConfig | Select CustomerFeedbackEnabled If the value for "CustomerFeedbackEnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-OrganizationConfig -CustomerFeedbackEnabled $false
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the authorized groups or users that should have access to the audit data. If any group or user has modify privileges for the audit data that is not documented in the EDSP, this is a finding.
Update the EDSP to specify the authorized groups or users that should have access to the audit data or verify that this information is documented by the organization. Restrict any unauthorized groups' or users' modify permissions for the audit logs.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the authorized groups or users that should have "Delete" permissions for the audit data. If any group or user has "Delete" permissions for the audit data that is not documented in the EDSP, this is a finding.
Update the EDSP to specify the authorized groups or users that should have "Delete" permissions for the audit data or verify that this information is documented by the organization. Restrict any unauthorized groups' or users' "Delete" permissions for the audit logs.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the audit logs' assigned partition. By default, the logs are located on the application partition in \Program Files\Microsoft\Exchange Server\V15\Logging. If the log files are not on a separate partition from the application, this is a finding.
Update the EDSP to specify the audit logs' assigned partition or verify that this information is documented by the organization. Configure the audit log location to be on a partition drive separate from the application.
Open the Exchange Management Shell and enter the following command: Get-ExecutionPolicy If the value returned is not "RemoteSigned", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ExecutionPolicy RemoteSigned
Note: This requirement applies to IMAP4. IMAP Secure is not restricted and does not apply to this requirement. Open the Windows Power Shell and enter the following command: Get-ItemProperty 'hklm:\system\currentcontrolset\services\MSExchangeIMAP4' | Select Start Note: The hklm:\system\currentcontrolset\services\MSExchangeIMAP4 value must be in single quotes. If the value of "Start" is not set to "4", this is a finding.
Open the Windows Power Shell and enter the following command: services.msc Navigate to and double-click on "Microsoft Exchange IMAP4". Click on the "General" tab. In the "Startup Type" dropdown, select "Disabled". Click the "OK" button.
Open the Windows Power Shell and enter the following command: Get-ItemProperty 'hklm:\system\currentcontrolset\services\MSExchangePOP3' | Select Start Note: The hklm:\system\currentcontrolset\services\MSExchangePOP3 value must be in single quotes. If the value of "Start" is not set to "4", this is a finding.
Open the Windows Power Shell and enter the following command: services.msc Navigate to and double-click on "Microsoft Exchange POP3 Backend". Click on the "General" tab. In the "Startup Type" dropdown, select "Disabled". Click the "OK" button.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the location where the Exchange Mailbox databases reside. Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase | Select Name, Identity, EdbFilePath Open Windows Explorer, navigate to the mailbox databases, and verify they are on a dedicated partition. If the mailbox databases are not on a dedicated partition, this is a finding.
Update the EDSP to specify the location where the Exchange Mailbox databases reside or verify that this information is documented by the organization. Configure the mailbox databases on a dedicated partition.
Open the Exchange Management Shell and enter the following command: Get-SendConnector | Select Name, Identity, SmartHosts Identify the Internet-facing connectors. For each Send connector, if the value of "SmartHosts" does not return the Smart Host IP address, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-SendConnector -Identity <'IdentityName'> -SmartHosts <'IP Address of Smart Host'> -DNSRoutingEnabled $false Note: The <IdentityName> and <IP Address of Smart Host> values must be in single quotes. Repeat the procedure for each Send connector.
Note: AuthMechanism may include other mechanisms as long as the "Tls" is identified. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, AuthMechanism For each Receive connector, if the value of "AuthMechanism" is not set to "Tls", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -AuthMechanism 'Tls' Note: The <IdentityName> value must be in single quotes. Repeat the procedures for each Receive connector.
Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase| Select Name, Identity, RetainDeletedItemsUntilBackup If the value of "RetainDeletedItemsUntilBackup" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-MailboxDatabase -Identity <'IdentityName'> -RetainDeletedItemsUntilBackup $true Note: The <IdentityName> value must be in single quotes.
Review the Email Domain Security Plan (EDSP). Determine any accounts that have been authorized to have email auto-forwarded. Note: If email auto-forwarding is not being used, this check is not applicable. . Open the Exchange Management Shell and enter the following commands: Get-Mailbox | Select Name, Identity, Filter If any user has a forwarding SMTP address and is not documented in the EDSP, this is a finding. Note: If no remote SMTP domain matching the mail-enabled user or contact that allows forwarding is configured for users identified with a forwarding address, this function will not work properly.
Update the EDSP. Open the Exchange Management Shell and enter the following command: Set-Mailbox -Identity <'IdentityName'> -ForwardingSMTPAdddress $null Note: The <IdentityName> value must be in quotes.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine any accounts that have been authorized to have email auto-forwarded. Note: If email auto-forwarding is not being used, this check is not applicable (NA). Open the Exchange Management Shell and enter the following commands: Get-RemoteDomain | Select Name, Identity, DomainName, AutoForwardEnabled If any domain for a user forwarding SMTP address is not documented in the EDSP, this is a finding. Note: If no remote SMTP domain matching the mail-enabled user or contact that allows forwarding is configured for users identified with a forwarding address, this function will not work properly.
Update the EDSP to specify any accounts that have been authorized to have email auto-forwarded or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set- RemoteDomain -Identity <RemoteDomainIdParameter>
Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase | Select Name, Identity, ProhibitSendReceiveQuota If the value of "ProhibitSendReceiveQuota" is not set to "Unlimited", this is a finding. or If the value of "ProhibitSendReceiveQuota" is set to an alternate value and has signoff and risk acceptance in the EDSP, this is not a finding.
Open the Exchange Management Shell and enter the following command: Set-MailboxDatabase -Identity <'IdentityName'> -ProhibitSendReceiveQuota Unlimited Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the value for the Prohibit Send Quota limit. Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase | Select Name, Identity, ProhibitSendQuota If the value of "ProhibitSendQuota" is not set to the site's Prohibit Send Quota limit, this is a finding.
Update the EDSP to specify the value for the Prohibit Send Quota limit or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-MailboxDatabase -Identity <'IdentityName'> -ProhibitSendQuota <'QuotaLimit'> Note: The <IdentityName> and <QuotaLimit> values must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-MailboxDatabase | Select Name, Identity, MountAtStartup If the value of "MountAtStartup" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-MailboxDatabase -Identity <'IdentityName'> -MountAtStartup $true Note: The <IdentityName> value must be in single quotes.
Review the EDSP or document that contains this information. Determine the global maximum message receive size and whether signoff with risk acceptance is documented for the Receive connector to have a different value. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, MaxMessageSize Identify Internet-facing connectors. For each Receive connector, if the value of "MaxMessageSize" is not the same as the global value, this is a finding. or If "MaxMessageSize" is set to a numeric value different from the global value and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the global maximum message receive size and, if operationally necessary, to document signoff with risk acceptance for the Receive connector to have a different value, or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -MaxMessageSize <'MaxReceiveSize'> Note: The <IdentityName> and <MaxReceiveSize> values must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance. Repeat the procedure for each Receive connector.
Note: This requirement applies to IMAP4. IMAP Secure is not restricted and does not apply to this requirement. Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the Maximum Recipients per Message value. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, MaxRecipientsPerMessage For each Receive connector, evaluate the "MaxRecipientsPerMessage" value. For each Receive connector, if the value of "MaxRecipientsPerMessage" is not set to "5000", this is a finding. or If the value of "MaxRecipientsPerMessage" is set to a value other than "5000" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxRecipientsPerMessage" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -MaxRecipientsPerMessage 5000 Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance. Repeat the procedure for each Receive connector.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the Max Hop Count value for Receive connectors. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, MaxHopCount For each Receive connector, if the value of "MaxHopCount" is not set to "60", this is a finding. or If the value of "MaxHopCount" is set to a value other than "60" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxHopCount" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -MaxHopCount 60 or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance. Repeat the procedure for each Receive connector.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the maximum message send size. Open the Exchange Management Shell and enter the following command: Get-SendConnector | Select Name, Identity, MaxMessageSize For each Send connector, if the value of "MaxMessageSize" is not the same as the global value, this is a finding. or If "MaxMessageSize" is set to a numeric value different from the maximum message send size value documented in the EDSP, this is a finding.
Update the EDSP to specify the "MaxMessageSize" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-SendConnector -Identity <'IdentityName'> -MaxMessageSize <MaxSendSize> Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance. Repeat the procedures for each Send connector.
Review the Email Domain Security Plan (EDSP). Determine the value for SMTP Server Maximum Outbound Connections. Open the Exchange Management Shell and enter the following command: Get-TransportService | Select Name, Identity, MaxOutboundConnections If the value of "MaxOutboundConnections" is not set to "1000", this is a finding. or If "MaxOutboundConnections" is set to a value other than "1000" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxOutboundConnections" value. Open the Exchange Management Shell and enter the following command: Set-TransportServer -Identity <'IdentityName'> -MaxOutboundConnections 1000 Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the global maximum message receive size. Open the Exchange Management Shell and enter the following command: Get-TransportConfig | Select Name, Identity, MaxReceiveSize If the value of "MaxReceiveSize" is not set to "10MB", this is a finding. or If "MaxReceiveSize" is set to an alternate value and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxReceiveSize" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-TransportConfig -MaxReceiveSize 10MB or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the global maximum message send size. Open the Exchange Management Shell and enter the following command: Get-TransportConfig | Select Name, Identity, MaxSendSize If the value of "MaxSendSize" is not set to "10MB", this is a finding. or If "MaxSendSize" is set to an alternate value and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxSendSize" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-TransportConfig -MaxSendSize 10MB or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the value for Maximum Outbound Domain Connections. Open the Exchange Management Shell and enter the following command: Get-TransportService | Select Name, Identity, MaxPerDomainOutboundConnections If the value of "MaxPerDomainOutboundConnections" is not set to "20", this is a finding. or If "MaxPerDomainOutboundConnections" is set to a value other than "20" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "MaxPerDomainOutboundConnection" value or verify that this information is documented by the organization. Open the Exchange Management Shell and enter the following command: Set-TransportService -Identity <'IdentityName'> -MaxPerDomainOutboundConnections 20 Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the Connection Timeout value. Open the Exchange Management Shell and enter the following command: Get-SendConnector | Select Name, Identity, ConnectionInactivityTimeOut For each Send connector, if the value of "ConnectionInactivityTimeOut" is not set to "00:10:00", this is a finding. or If "ConnectionInactivityTimeOut" is set to a value other than "00:10:00" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the "ConnectionInactivityTimeOut" value. Open the Exchange Management Shell and enter the following command: Set-SendConnector -Identity <'IdentityName'> -ConnectionInactivityTimeOut 00:10:00 Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
NOTE: In some instances, AnonymousUsers may be necessary for organization-specific operations. In such cases, allowing AnonymousUsers must be paired with restricting to specific lists of servers allowed to access. In addition, the risk must be documented and accepted by the ISSO, ISSM, or AO. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, PermissionGroups For each Receive connector, if the value of "PermissionGroups" is "AnonymousUsers" for any receive connector, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -PermissionGroups and enter a valid value user group. Note: The <IdentityName> value must be in single quotes. Example: Set-ReceiveConnector -Identity <'IdentityName'> -PermissionGroups ExchangeUsers Repeat the procedures for each Receive connector.
Open the Exchange Management Shell and enter the following command: Get-RemoteDomain | Select Name, DomainName, Identity, AllowedOOFType If the value of "AllowedOOFType" is not set to "InternalLegacy", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-RemoteDomain -Identity <'IdentityName'> -AllowedOOFType 'InternalLegacy' Note: The <IdentityName> and InternalLegacy values must be in single quotes.
Review the Email Domain Security Plan (EDSP). Note: If using another DoD-approved antispam product for email or a DoD-approved email gateway spamming device, such as Enterprise Email Security Gateway (EEMSG), this is not applicable (NA). Open the Exchange Management Shell and enter the following command: Get-ContentFilterConfig | Format-Table Name,Enabled If no value is returned, this is a finding.
Update the EDSP with the anti-spam mechanism used. Install the AntiSpam module. Open the Exchange Management Shell and enter the following command: & $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1
Review the Email Domain Security Plan (EDSP). Note: If using another DoD-approved anti-spam product for email or a DoD-approved email gateway spamming device, such as Enterprise Email Security Gateway (EEMSG), this is not applicable (NA). Open the Exchange Management Shell and enter the following command: Get-ContentFilterConfig | Format-Table Name,Enabled; Get-SenderFilterConfig | Format-Table Name,Enabled; Get-SenderIDConfig | Format-Table Name,Enabled; Get-SenderReputationConfig | Format-Table Name,Enabled If any of the following values returned are not set to "True", this is a finding: Set-ContentFilterConfig Set-SenderFilterConfig Set-SenderIDConfig Set-SenderReputationConfig
Update the EDSP with the anti-spam mechanism used. Open the Exchange Management Shell and enter the following command for any values that were not set to "True": Set-ContentFilterConfig -Enabled $true Set-SenderFilterConfig -Enabled $true Set-SenderIDConfig -Enabled $true Set-SenderReputationConfig -Enabled $true
Review the Email Domain Security Plan (EDSP). Note: If using another DoD-approved antispam product for email or a DoD-approved email gateway spamming device, such as Enterprise Email Security Gateway (EEMSG), this is not applicable (NA). Determine the internal SMTP servers. Open the Exchange Management Shell and enter the following command: Get-TransportConfig | Format-List InternalSMTPServers If any internal SMTP server IP address returned does not reflect the list of accepted SMTP server IP addresses, this is a finding.
Note: Configure the IP addresses of every internal SMTP server. If the Mailbox server is the only SMTP server running the antispam agents, configure the IP address of the Mailbox server. Update the EDSP with the anti-spam mechanism used. Open the Exchange Management Shell and enter the following command: Single SMTP server address: Set-TransportConfig -InternalSMTPServers @{Add='<ip address1>'} Multiple SMTP server addresses: Set-TransportConfig -InternalSMTPServers @{Add='<ip address1>','<ip address2>'}
Note: Automated replies to .MIL or .GOV sites are allowed. Open the Exchange Management Shell and enter the following command: Get-RemoteDomain | Select Name, Identity, AutoReplyEnabled If the value of “AutoReplyEnabled” is set to “True” and is configured to only Reply to .MIL or .GOV sites, this is not a finding. If the value of "AutoReplyEnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-RemoteDomain -Identity <'IdentityName'> -AutoReplyEnabled $false Note: The <IdentityName> value must be in single quotes.
Review the Email Domain Security Plan (EDSP). Determine the anti-virus strategy. Verify the email-aware anti-virus scanner product is Exchange 2016 compatible and DoD approved. If email servers are using an email-aware anti-virus scanner product that is not DoD approved and Exchange 2016 compatible, this is a finding.
Update the EDSP to specify the organization's anti-virus strategy. Install and configure a DoD-approved compatible Exchange 2016 email-aware anti-virus scanner product.
Review the Email Domain Security Plan (EDSP). Determine the global maximum message recipient count. Open the Exchange Management Shell and enter the following command: Get-TransportConfig | Select Name, Identity, MaxRecipientEnvelopeLimit If the value of "MaxRecipientEnvelopeLimit" is not set to "5000", this is a finding. or If "MaxRecipientEnvelopeLimit" is set to an alternate value and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the global maximum message recipient count. Set-TransportConfig -MaxRecipientEnvelopeLimit 5000 or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance. Restart the Microsoft Exchange Information Store service.
Review the Email Domain Security Plan (EDSP). Determine the Connection Timeout value. Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, ConnectionTimeout For each Receive connector, if the value of "ConnectionTimeout" is not set to "00:10:00", this is a finding. or If "ConnectionTimeout" is set to other than "00:10:00" and has signoff and risk acceptance in the EDSP, this is not a finding.
Update the EDSP to specify the Connection Timeout value. Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -ConnectionTimeout 00:10:00 Note: The <IdentityName> value must be in single quotes. or Enter the value as identified by the EDSP that has obtained a signoff with risk acceptance.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the authorized groups and users that have access to the Exchange application directories. Verify the access permissions on the directory match the access permissions listed in the EDSP. If any group or user has different access permissions, this is a finding. Note: The default installation directory is \Program Files\Microsoft\Exchange Server\V15.
Update the EDSP to specify the authorized groups and users that have access to the Exchange application directories or verify that this information is documented by the organization. Navigate to the Exchange application directory and remove or modify the group or user access permissions. Note: The default installation directory is \Program Files\Microsoft\Exchange Server\V15.
Review the Email Domain Security Plan (EDSP) or document that contains this information. Determine the software baseline. Review the application software baseline procedures and implementation artifacts. Note the list of files and directories included in the baseline procedure for completeness. If an email software copy exists to serve as a baseline and is available for comparison during scanning efforts, this is not a finding.
Update the EDSP to specify the software baseline, procedures, and implementation artifacts or verify that this information is documented by the organization.
Review the Email Domain Security Plan (EDSP). Determine whether the site monitors system files (e.g., *.exe, *.bat, *.com, *.cmd, and *.dll) on servers for unauthorized changes against a baseline on a weekly basis. If software files are not monitored for unauthorized changes, this is a finding.
Update the EDSP to specify that the organization monitors system files on servers for unauthorized changes against a baseline on a weekly basis or verify that this information is documented by the organization. Monitor the software files (e.g., *.exe, *.bat, *.com, *.cmd, and *.dll) on Exchange servers for unauthorized changes against a baseline on a weekly basis. Note: This can be done with the use of various monitoring tools.
Review the Email Domain Security Plan (EDSP). Note: Required services will vary among organizations and will vary depending on the role of the individual system. Organizations will develop their own list of services, which will be documented and justified with the Information System Security Officer (ISSO). The site’s list will be provided for any security review. Services that are common to multiple systems can be addressed in one document. Exceptions for individual systems should be identified separately by system. Open a Windows PowerShell and enter the following command: Get-Service | Where-Object {$_.status -eq 'running'} Note: The command returns a list of installed services and the status of that service. If the services required are not documented in the EDSP, this is a finding. If any undocumented or unnecessary services are running, this is a finding.
Update the EDSP to specify the services required for the system to function. Remove or disable any services that are not required.
Open the Exchange Management Shell and enter the following command: Get-OutlookAnywhere Get-OutlookAnywhere | Select Name, Identity, InternalClientAuthenticationMethod, ExternalClientAuthenticationMethod If the value of "InternalClientAuthenticationMethod" and the value of "ExternalClientAuthenticationMethod" are not set to NTLM, this is a finding.
Open the Exchange Management Shell and enter the following command: For InternalClientAuthenticationMethod: Set-OutlookAnywhere -Identity '<IdentityName'> -InternalClientAuthenticationMethod NTLM For ExternalClientAuthenticationMethod: Set-OutlookAnywhere -Identity '<IdentityName'> -ExternalClientAuthenticationMethod NTLM
Review the Email Domain Security Plan (EDSP). Determine if the directory Exchange is installed. Open Windows Explorer. Navigate to where Exchange is installed. If Exchange resides on a directory or partition other than that of the operating system and does not have other applications installed (unless approved by the Information System Security Officer [ISSO]), this is not a finding.
Update the EDSP with the location of where Exchange is installed. Install Exchange on a dedicated application directory or partition separate than that of the operating system.
Open the Exchange Management Shell and enter the following command: Get-RemoteDomain | Select Identity, DeliveryReportEnabled If the value of "DeliveryReportEnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-RemoteDomain -Identity <'IdentityName'> -DeliveryReportEnabled $false Note: The <IdentityName> value must be in single quotes.
NOTE: For the purpose of this requirement, “remote” refers to those domains external to the DoDIN, whether classified or unclassified. NDRs between DoDIN networks is permitted. Open the Exchange Management Shell and enter the following command: Get-RemoteDomain | Select Name, Identity, NDREnabled If the value of "NDREnabled" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-RemoteDomain -Identity <'IdentityName'> -NDREnabled $false Note: The <IdentityName> value must be in single quotes.
Open the Exchange Management Shell and enter the following command: Get-ReceiveConnector | Select Name, Identity, Banner For each Receive connector, if the value of "Banner" is not set to "220 SMTP Server Ready", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ReceiveConnector -Identity <'IdentityName'> -Banner '220 SMTP Server Ready' Note: The <IdentityName> and 220 SMTP Server Ready values must be in single quotes. Repeat the procedures for each Receive connector.
Open the Exchange Management Shell and enter the following command: Get-SendConnector | Select Name, Identity, TlsAuthLevel For each Send connector, if the value of "TlsAuthLevel" is not set to "DomainValidation", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-SendConnector -Identity <'IdentityName'> -TlsAuthLevel DomainValidation Note: The <IdentityName> value must be in single quotes. Repeat the procedure for each Send connector.
Review the Email Domain Security Plan (EDSP). Determine if the Exchange Mailbox databases are using redundancy. Open the Exchange Management Shell. Enter the following command: Get-DatabaseAvailabilityGroup <DAGName> | Format-List If the DAG is not displayed, this is a finding.
Update the EDSP to specify how Exchange Mailbox databases use redundancy. Access the Exchange Management Shell and add new Database Availability Groups based upon the EDSP using the following command: New-DatabaseAvailabilityGroup See the following documentation for options when creating a DAG: https://docs.microsoft.com/en-us/exchange/high-availability/manage-ha/create-dags?view=exchserver-2019.
Determine the most current, approved service pack. Open the Exchange Management Shell and enter the following command: Get-ExchangeServer | fl Name, AdminDisplayVersion If the value of "AdminDisplayVersion" does not return the most current, approved service pack, this is a finding.
Install the most current, approved service pack.
Open a Windows PowerShell Module and enter the following commands: Get-Website | Select Name Get-WebBinding -Name <'WebSiteName'> | Format-List If the Web binding values returned are not on standard port 80 for HTTP connections or port 443 for HTTPS connections, this is a finding. Note: This is excluding the Exchange Back End website which uses 81/444. Repeat the process for each website.
Configure web ports to be ports 80 and 443, as specified by PPSM standards.
Open the Exchange Management Shell and enter the following command: Get-TransportAgent "Malware Agent" If the value of "Enabled" is set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: & env:ExchangeInstallPath\Scripts\Disable-Antimalwarescanning.ps1
Open the Exchange Management Shell and enter the following command: Get-RpcClientAccess | Select Server, Name, EncryptionRequired If the value of "EncryptionRequired" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-RpcClientAccess -Server <ServerName> -EncryptionRequired $true
Open a Exchange Management Shell and enter the following command: Get-OwaVirtualDirectory | select internalurl, externalurl If the value returned is not https://, this is a finding.
Configure the OWA site to require SSL port 443.
Open the Exchange Management Shell and enter the following command: Get-OwaVirtualDirectory | Select ServerName, Name, Identity, FormsAuthentication If the value of "FormsAuthentication" is not set to "False", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-OwaVirtualDirectory -Identity <'IdentityName'> -FormsAuthentication $false Note: <IdentityName> must be in single quotes. Example for the Identity Name: <ServerName>\owa (Default website) Restart the ISS service.
Open the Exchange Management Shell and enter the following command: Get-OwaVirtualDirectory | Select ServerName, Name, Identity,*Authentication If the value of "WindowsAuthentication" is not set to "True", this is a finding.
Open the Exchange Management Shell and enter the following command: Set-OwaVirtualDirectory -Identity '<IdentityName>' -WindowsAuthentication $true Note: The <IdentityName> value must be in single quotes. Example for the Identity Name: <ServerName>\owa (Default website)