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-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 Windows PowerShell and enter the following command: Import-module webadministration Enter cd “IIS:” At the IIS: prompt, enter cd Sites At the Sites: prompt, enter cd “Default Web Site” At the “Default Web Site”: prompt, enter cd owa At the IIS:\Sites\Default Web Site\owa>: prompt, enter Get-WebConfigurationProperty -filter /system.webServer/security/access -name sslflags If the value returned is not Ssl,Ssl128, 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 quotes. Example for the Identity Name: <ServerName>\owa (Default Web site) 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 quotes. Example for the Identity Name: <ServerName>\owa (Default Web site)
Open the Exchange Management Shell and enter the following command: Get-AdminAuditLogConfig | Select Name, Identity, 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.
Open the Exchange Management Shell and enter the following commands: Get-ActiveSyncVirtualDirectory | Select Name, Identity Get-ActiveSyncVirtualDirectory -Identity '<ServerName>Microsoft-Server-ActiveSync (Default Web Site)' | fl BasicAuthEnabled, WindowsAuthEnabled, ClientCertAuth, WebSiteSSLEnabled, InternalAuthenticationMethods, ExternalAuthenticationMethods Note: The <ServerName>Microsoft-Server-ActiveSync (Default Web Site) value must be in quotes. The command should return the following: BasicAuthEnabled : False WindowsAuthEnabled : False ClientCertAuth : Required WebSiteSSLEnabled : True InternalAuthenticationMethods : {Certificate} ExternalAuthenticationMethods : {Certificate} If the values above are not returned, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-ActiveSyncVirtualDirectory -Identity ‘<ServerName>\Microsoft-Server-ActiveSync (Default Web Site)’ -BasicAuthEnabled $False -WindowsAuthEnabled $False -ClientCertAuth ‘Required’ -WebSites-InternalAuthenticationMethods ‘Certificate’ -ExternalAuthenticationMethods ‘Certificate’ Note: The <ServerName>Microsoft-Server-ActiveSync (Default Web Site) value must be in quotes.
Open a command window and enter the following commands: cd c:\Windows\SysWOW64\inetsrv Appcmd.exe list config "Default Web Site/Microsoft-Server-ActiveSync" -section:clientCertificateMappingAuthentication If clientCertificateMappingAuthentication Enabled is not set to True, this is a finding.
Open a command window and enter the following commands: cd C:\Windows\SysWOW64\InetSrv appcmd unlock config /section:clientCertificateMappingAuthentication appcmd set config "Default Web Site/Microsoft-Server-ActiveSync" -section:clientCertificateMappingAuthentication /enabled:true
Open the Exchange Management Shell and enter the following command: Get-EventLogLevel If any Diagnostic EventLogLevel 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 quotes.
Open the Exchange Management Shell and enter the following command: Get-AdminAuditLogConfig | Select Name, Identity, AdminAuditLogParameters If the value of AdminAuditLogParameters is not set to {*}, this is a finding. Note: The value of {*} indicates all parameters are being audited.
Open the Exchange Management Shell and enter the following command: Set-AdminAuditLogConfig -AdminAuditLogParameters *
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. Open the Exchange Management Shell and enter the following command: perfmon In the left pane, expand and navigate Performance >> Data Collector Sets >> User Defined. 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, navigate to, and configure User Defined >> New >> Data Collector Set to use user-defined data collection for monitoring the queues.
Open the Exchange Management Shell and enter the following command: Get-ExchangeServer –status | Select Name, Identity, ErrorReportingEnabled For each Identity, 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 quotes. Repeat the procedure for each Identity.
Review the Email Domain Security Plan (EDSP). 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. Navigate to the location of the audit data. 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 Name, Identity, 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). 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. Navigate to the location of the audit data. Restrict any unauthorized groups' or users' modify permissions for the audit logs.
Review the Email Domain Security Plan (EDSP). 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. Navigate to the location of the audit data. Restrict any unauthorized groups' or users' delete permissions for the audit logs.
Review the Email Domain Security Plan (EDSP). Determine the audit logs' assigned partition. Note: 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. 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
Open the Windows PowerShell 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 quotes. If the value of Start is not set to 4, this is a finding.
Open the Windows PowerShell and enter the following command: services.msc Navigate to and double-click on Microsoft Exchange IMAP4 Backend. Click on the General tab. In the Startup Type: dropdown, select Disabled. Click the OK button.
Open the Windows PowerShell 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 quotes. If the value of Start is not set to 4, this is a finding.
Open the Windows PowerShell 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). Determine if public folders are being used. Open the Exchange Management Shell and enter the following command: Get-PublicFolder | Select Name, Identity Note: The value returns a root directory and subdirectories. If public folders are not in use and directories exist or are being used and are not documented in the EDSP, this is a finding.
Open the Exchange Management Shell and enter the following command: Remove-PublicFolder -Identity 'IdentityName' -Recurse:$True Note: This command deletes the public folder Directory Folder and all its child public folders.
Open the Exchange Management Shell and enter the following command: Get-ActiveSyncVirtualDirectory | Select Server, Name, Identity, Path If the value of Path (the actual directory path) exists, this is a finding.
Open an Exchange Command Shell and enter the following command: Remove-ActiveSyncVirtualDirectory <ServerName>\Microsoft-Server-ActiveSync -Confirm $true Note: The physical directory must also be deleted.
Review the Email Domain Security Plan (EDSP). 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 than those listed in the EDSP, this is a finding. Note: The default installation directory is \Program Files\Microsoft\Exchange Server\V15.
Update the EDSP. Remove or modify the group or user access permissions.
Review the Email Domain Security Plan (EDSP). 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. Implement the email software baseline process.
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 on a weekly basis, this is a finding. Note: A properly configured HBSS Policy Auditor File Integrity Monitor (FIM) module will meet the requirement for file integrity checking. The Asset module within HBSS does not meet this requirement.
Update the EDSP. 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. Use an approved DoD monitoring tool.
Review the Email Domain Security Plan (EDSP). Note: Required services will vary between 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 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'} The command returns a list of installed services and the status of that service. If the site has not documented the services required for its system(s), this is a finding. If any undocumented or unnecessary services are running, this is a finding.
Update the EDSP with 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 | Select Name, Identity, InternalClientAuthenticationMethod, ExternalClientAuthenticationMethod If the value of InternalClientAuthenticationMethod and the value of ExternalClientAuthenticationMethod is not set to NTLM, this is a finding.
Open the Exchange Management Shell and enter the following commands: For InternalClientAuthenticationMethod: Set-OutlookAnywhere -Identity '<IdentityName'> -InternalClientAuthenticationMethod NTLM For ExternalClientAuthenticationMethod: Set-OutlookAnywhere -Identity '<IdentityName'> -ExternalClientAuthenticationMethod NTLM
Review the Email Domain Security Plan (EDSP). Determine where the directory Exchange is installed. Open Windows Explorer. Navigate to the directory or partition where Exchange is installed. If Exchange resides on a directory or partition other than that of the OS and does not have other applications installed (unless approved by the ISSO), this is not a finding.
Update the EDSP. Install Exchange on a dedicated application directory or partition separate than that of the OS.
Review the Email Domain Security Plan (EDSP). Determine if the Exchange Servers are using redundancy. Get-ClientAccessServer | Select Name, Site If the value returned is not at least two CAS servers, this is a finding.
Update the EDSP. Configure two or more CAS servers for load balancing.
If the exchange server does not provide OWA services, this check is Not Applicable. If the exchange server does not provide external OWA services, https does not need to be assigned to external URL, it may be blank. Open the Exchange Management Shell and enter the following command: Get-OWAVirtualDirectory | Select Name, Identity, ExternalUrl, InternalUrl If the value returned is not both ExternalUrl and InternalUrl and these are not set to https://, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-OWAVirtualDirectory -Identity '<IdentityName>\owa (Default Web Site)' -ExternalUrl 'https://URL' -InternalUrl 'https://URL' Note: The <IdentityName>\owa (default web site) value must be in quotes.
Open the Exchange Management Shell and enter the following command: Get-OWAVirtualDirectory | Select Name, Identity, SmimeEnabled If the value returned is not set to True, this is a finding.
Open the Exchange Management Shell and enter the following command: Set-OWAVirtualDirectory -Identity '<IdentityName>\owa (Default Web Site)' -SmimeEnabled $true Note: The <ServerName>\owa (Default Web Site) value must be in quotes.
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 and 81 for HTTP connections or port 443 and 444 for HTTPS connections, this is a finding. Repeat the process for each website.
Configure web ports to be 80, 81 and 443, 444, as specified by PPSM standards.