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
Enter the following commands: grep "Action" /usr/local/apache2/conf/httpd.conf grep "AddHandler" /usr/local/apache2/conf/httpd.conf If either of these exist and they configure /bin/csh, or any other shell as a viewer for documents, this is a finding.
Disable MIME types for csh or sh shell programs.
This check is limited to CGI/interactive content and not static HTML. Search for backup copies of CGI scripts on the web server or ask the SA or the Web Administrator if they keep backup copies of CGI scripts on the web server. Common backup file extensions are: *.bak, *.old, *.temp, *.tmp, *.backup, *.??0. This would also apply to .jsp files. UNIX: find / -name “*.bak” –print find / -name “*.*~” –print find / -name “*.old” –print If files with these extensions are found in either the document directory or the home directory of the web server, this is a finding. If files with these extensions are stored in a repository (not in the document root) as backups for the web server, this is a finding. If files with these extensions have no relationship with web activity, such as a backup batch file for operating system utility, and they are not accessible by the web application, this is not a finding.
Ensure that CGI backup scripts are not left on the production web server.
The reviewer should make a note of the name of the account being used for the web service. This information may be needed later in the SRR. There may also be other server services running related to the web server in support of a particular web application, these passwords must be entrusted to the SA or Web Manager as well. Query the SA or Web Manager to determine if they have the web service password(s). If the web services password(s) are not entrusted to the SA or Web Manager, this is a finding. NOTE: For installations that run as a service, or without a password, the SA or Web Manager having an Admin account on the system would meet the intent of this check.
Ensure the SA or Web Manager are entrusted with the web service(s) password.
Determine whether the public web server has a two-way trusted relationship with any private asset located within the network. Private web server resources (e.g., drives, folders, printers, etc.) will not be directly mapped to or shared with public web servers. If sharing is selected for any web folder, this is a finding. The following checks indicate inappropriate sharing of private resources with the public web server: If private resources (e.g., drives, partitions, folders/directories, printers, etc.) are shared with the public web server, then this is a finding.
Configure the public web server to not have a trusted relationship with any system resource that is also not accessible to the public. Web content is not to be shared via Microsoft shares or NFS mounts.
Query the SA and the Web Manager to determine if a compiler is present on the server. If a compiler is present, this is a finding. NOTE: If the web server is part of an application suite and a compiler is needed for installation, patching, and upgrading of the suite or if the compiler is embedded and can't be removed without breaking the suite, document the installation of the compiler with the ISSO/ISSM and verify that the compiler is restricted to administrative users only. If documented and restricted to administrative users, this is not a finding.
Remove any compiler found on the production web server, but if the compiler program is needed to patch or upgrade an application suite in a production environment or the compiler is embedded and will break the suite if removed, document the compiler installation with the ISSO/ISSM and ensure that the compiler is restricted to only administrative users.
Interview the SA or web administrator to see where the public web server is logically located in the data center. Review the site’s network diagram to see how the web server is connected to the LAN. Visually check the web server hardware connections to see if it conforms to the site’s network diagram. An improperly located public web server is a potential threat to the entire network. If the web server is not isolated in an accredited DoD DMZ Extension, this is a finding.
Logically relocate the public web server to be isolated from internal systems. In addition, ensure the public web server does not have trusted connections with assets outside the confines of the demilitarized zone (DMZ) other than application and/or database servers that are a part of the same system as the web server.
Verify the site’s network diagram and visually check the web server, to ensure that the private web server is located on a separate controlled access subnet and is not a part of the public DMZ that houses the public web servers. In addition, the private web server needs to be isolated via a controlled access mechanism from the local general population LAN.
Isolate the private web server from the public DMZ and separate it from the internal general population LAN.
To determine the version of the Apache software that is running on the system. Use the command: httpd –v httpd2 –v If the version of Apache is not at the following version or higher, this is a finding. Apache httpd server version 2.2 - Release 2.2.31 (July 2015) Note: In some situations, the Apache software that is being used is supported by another vendor, such as Oracle in the case of the Oracle Application Server or IBMs HTTP Server. The versions of the software in these cases may not match the above mentioned version numbers. If the site can provide vendor documentation showing the version of the web server is supported, this would not be a finding.
Install the current version of the web server software and maintain appropriate service packs and patches.
Obtain a list of the user accounts for the system, noting the priviledges for each account. Verify with the system administrator or the ISSO that all privileged accounts are mission essential and documented. Verify with the system administrator or the ISSO that all non-administrator access to shell scripts and operating system functions are mission essential and documented. If undocumented privileged accounts are found, this is a finding. If undocumented access to shell scripts or operating system functions is found, this is a finding.
Ensure non-administrators are not allowed access to the directory tree, the shell, or other operating system functions and utilities.
Determine which tool or control file is used to control the configuration of the web server. If the control of the web server is done via control files, verify who has update access to them. If tools are being used to configure the web server, determine who has access to execute the tools. If accounts other than the SA, the web manager, or the web manager designees have access to the web administration tool or control files, this is a finding.
Restrict access to the web administration tool to only the web manager and the web manager’s designees.
If the site requires the use of a particular piece of software, the ISSO will need to maintain documentation identifying this software as necessary for operations. The software must be operated at the vendor’s current patch level and must be a supported vendor release. If programs or utilities that meet the above criteria are installed on the Web Server, and appropriate documentation and signatures are in evidence, this is not a finding. Determine whether the web server is configured with unnecessary software. Determine whether processes other than those that support the web server are loaded and/or run on the web server. Examples of software that should not be on the web server are all web development tools, office suites (unless the web server is a private web development server), compilers, and other utilities that are not part of the web server suite or the basic operating system. Check the directory structure of the server and ensure that additional, unintended, or unneeded applications are not loaded on the system. If, after review of the application on the system, there is no justification for the identified software, this is a finding.
Remove any unnecessary applications.
To locate the htpasswd file enter the following command: Find / -name htpasswd Permissions should be r-x r - x - - - (550) If permissions on htpasswd are greater than 550, this is a finding. Owner should be the SA or Web Manager account, if another account has access to this file, this is a finding.
The SA or Web Manager account should own the htpasswd file and permissions should be set to 550.
This check verifies that the SA or Web Manager controlled account owns the key web server files. These same files, which control the configuration of the web server, and thus its behavior, must also be accessible by the account that runs the web service process. If it exists, the following file need to be owned by a privileged account. .htaccess httpd.conf Use the command find / -name httpd.conf to find the file Change to the Directory that contains the httpd.conf file Use the command ls -l httpd.conf to determine ownership of the file -The Web Manager or the SA should own all the system files and directories. -The configurable directories can be owned by the WebManager or equivalent user. Permissions on these files should be 660 or more restrictive. If root or an authorized user does not own the web system files and the permission are not correct, this is a finding.
The site needs to ensure that the owner should be the non-privileged web server account or equivalent which runs the web service; however, the group permissions represent those of the user accessing the web site that must execute the directives in .htacces.
Proposed Questions: How many user accounts are associated with the Web server operation and maintenance? Where are these accounts documented? Use the command line utility more /etc/passwd to identify the accounts on the web server. Query the SA or Web Manager regarding the use of each account and each group. If the documentation does not match the users and groups found on the server, this is a finding.
Document the administrative users and groups which have access rights to the web server in the web site SOP or in an equivalent document.
Apache directory and file permissions and ownership should be set per the following table.. The installation directories may vary from one installation to the next. If used, the WebAmins group should contain only accounts of persons authorized to manage the web server configuration, otherwise the root group should own all Apache files and directories. Note: This check also applies to any other directory where CGI scripts are located. There may be additional directories based the local implementation, and permissions should apply to directories of similar content. Ex. all web content directories should follow the permissions for /htdocs. If the files and directories are not set to the following permissions or more restrictive, this is a finding. To locate the ServerRoot directory enter the following command. grep ^ ServerRoot /usr/local/apache2/conf/httpd.conf /Server root dir apache root WebAdmin 771/660 /apache/cgi-bin root WebAdmin 775/775 /apache/bin root WebAdmin 550/550 /apache/config root WebAdmin 770/660 /apache/htdocs root WebAdmin 775/664 /apache/logs root WebAdmin 750/640 NOTE: The permissions are noted as directories / files.
Use the chmod command to set permissions on the web server system directories and files as follows. root dir apache root WebAdmin 771/660 /apache/cgi-bin root WebAdmin 775/775 /apache/bin root WebAdmin 550/550 /apache/config root WebAdmin 770/660 /apache/htdocs root WebAdmin 775/664 /apache/logs root WebAdmin 750/640
"To determine if email applications are excepting incoming connections (on standard ports)enter the following command: telnet localhost 25 review the command results, If an e-mail program is installed and that program has been configured to accept inbound email, this is a finding."
Configure the email application to not allow incoming connections.
CGI or equivalent files must be monitored by a security tool that reports unauthorized changes. It is the purpose of such software to monitor key files for unauthorized changes to them. The reviewer should query the ISSO, the SA, and the web administrator and verify the information provided by asking to see the template file or configuration file of the software being used to accomplish this security task. Example file extensions for files considered to provide active content are, but not limited to, .cgi, .asp, .aspx, .class, .vb, .php, .pl, and .c. If the site does not have a process in place to monitor changes to CGI program files, this is a finding.
Use a monitoring tool to monitor changes to the CGI or equivalent directory. This can be done with something as simple as a script or batch file that would identify a change in the file.
Interview the Information Systems Security Officer (ISSO), SA, Web Manager, Webmaster or developers as necessary to determine whether or not a tested and verifiable backup strategy has been implemented for web server software as well as all web server data files. Proposed Questions: Who maintains the backup and recovery procedures? Do you have a copy of the backup and recovery procedures? Where is the off-site backup location? Is the contingency plan documented? When was the last time the contingency plan was tested? Are the test dates and results documented? If there is not a backup and recovery process for the web server, this is a finding.
Document the backup procedures.
Request a copy of and review the web server’s installation and configuration plan. Ensure that the server is in compliance with this plan. If the server is not in compliance with the plan, this is a finding. Query the SA to ascertain if and where the additional services are installed. Confirm that the additional service or application is not installed on the same partition as the operating systems root directory or the web document root. If it is, this is a finding.
Move or install additional services and applications to partitions that are not the operating system root or the web document root.
Enter the following command: grep "ServerTokens" /usr/local/apache2/conf/httpd.conf The directive ServerTokens must be set to “Prod” (ex. ServerTokens Prod). This directive controls whether Server response header field that is sent back to clients that includes a description of the OS-type of the server as well as information about compiled-in modules. If the web server or operating system information are sent to the client via the server response header or the directive does not exist, this is a finding. Note: The default value is set to Full.
Edit the /usr/local/apache2/conf/httpd.conf file and ensure the directive is set to Prod.
Query the web administrator to determine if the site has a detailed process as part of its configuration management plan to stay compliant with all security-related patches. Proposed Questions: How does the SA stay current with web server vendor patches? How is the SA notified when a new security patch is issued by the vendor? (Exclude the IAVM.) What is the process followed for applying patches to the web server? If the site is not in compliance with all applicable security patches, this is a finding.
Establish a detailed process as part of the configuration management plan to stay compliant with all web server security-related patches.
Enter the following command: find / -name ssl.conf note the path of the file. grep "SSLCACertificateFile" /path/of/ssl.conf Review the results to determine the path of the SSLCACertificateFile. more /path/of/ca-bundle.crt Examine the contents of this file to determine if the trusted CAs are DoD approved. If the trusted CA that is used to authenticate users to the web site does not lead to an approved DoD CA, this is a finding. NOTE: There are non DoD roots that must be on the server in order for it to function. Some applications, such as anti-virus programs, require root CAs to function. DoD approved certificate can include the External Certificate Authorities (ECA), if approved by the DAA. The PKE InstallRoot 3.06 System Administrator Guide (SAG), dated 8 Jul 2008, contains a complete list of DoD, ECA, and IECA CAs.
Configure the web server’s trust store to trust only DoD-approved PKIs (e.g., DoD PKI, DoD ECA, and DoD-approved external partners).
Query the SA to determine if all directories that contain samples and any scripts used to execute the samples have been removed from the server. Each web server has its own list of sample files. This may change with the software versions, but the following are some examples of what to look for (This should not be the definitive list of sample files, but only an example of the common samples that are provided with the associated web server. This list will be updated as additional information is discovered.): ls -Ll /usr/local/apache2/manual. If there is a requirement to maintain these directories at the site for training or other such purposes, have permissions or set the permissions to only allow access to authorized users. If any sample files are found on the web server, this is a finding.
Ensure sample code and documentation have been removed from the web server.
The reviewer should query the ISSO, the SA, the web administrator, or developers as necessary to determine if the web server is configured to utilize an approved DoD certificate validation process. The web administrator should be questioned to determine if a validation process is being utilized on the web server. To validate this, the reviewer can ask the web administrator to describe the validation process being used. They should be able to identify either the use of certificate revocation lists (CRLs) or Online Certificate Status Protocol (OCSP). If the production web server is accessible, the SA or the web administrator should be able to demonstrate the validation of good certificates and the rejection of bad certificates. If CRLs are being used, the SA should be able to identify how often the CRL is updated and the location from which the CRL is downloaded. If the web administrator cannot identify the type of validation process being used, this is a finding.
Configure DoD Private Web Servers to conduct certificate revocation checking utilizing certificate revocation lists (CRLs) or Online Certificate Status Protocol (OCSP).
To view the Timeout value enter the following command: grep "Timeout" /usr/local/apache2/conf/httpd.conf. Verify the value is 300 or less if not, this is a finding. Note:If the directive does not exist, this is not a finding because it will default to 300. It is recommended that the directive be explicitly set to prevent unexpected results should the defaults for any reason be changed (i.e. software update).
Edit the httpd.conf file and set the value of "Timeout" to 300 seconds or less.
To view the KeepAlive value enter the following command: grep "KeepAlive" /usr/local/apache2/conf/httpd.conf. Verify the Value of KeepAlive is set to “On” If not, this is a finding. NOTE: This vulnerability can be documented locally with the ISSM/ISSO if the site has operational reasons for not using persistent connections. If the site has this documentation, this should be marked as Not a Finding.
Edit the httpd.conf file and set the value of "KeepAlive" to "On"
To view the KeepAliveTimeout value enter the following command: grep "KeepAliveTimeout" /usr/local/apache2/conf/httpd.conf. If the value of "KeepAliveTimeout" is not set to 15 or less, this is a finding. Note: If the directive does not exist, this is not a finding because it will default to 5. It is recommended that the directive be explicitly set to prevent unexpected results should the defaults for any reason change(i.e. software update).
Edit the httpd.conf file and set the value of "KeepAliveTimeout" to the value of 15 or less.
Locate the Apache httpd.conf file. If you cannot locate the file, you can do a search of the drive to find the location of the file. Open the httpd.conf file with an editor and search for the following directive: StartServers The value needs to be between 5 and 10 If the directive is set improperly, this is a finding. If the directive does not exist, this is NOT a finding because it will default to 5. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software. NOTE: This vulnerability can be documented locally with the ISSM/ISSO if the site has operational reasons for the use of increased or decreased value. If the site has this documentation, this should be marked as Not a Finding.
Open the httpd.conf file with an editor and search for the following directive: StartServer Set the directive to a value between 5 and 10, add the directive if it does not exist. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software.
Open the httpd.conf file with an editor and search for the following directive: MinSpareServers The value needs to be between 5 and 10 If the directive is set improperly, this is a finding. If the directive is not found, you will need to review the httpd.conf file to see if there are other .conf files that are included of "linked" to the httpd.conf. The other conf files may contain these directives. If the directive does not exist, this is NOT a finding because it will default to 5. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software. NOTE: This vulnerability can be documented locally with the ISSM/ISSO if the site has operational reasons for the use of increased or decreased value. If the site has this documentation, this should be marked as Not a Finding.
Open the httpd.conf file with an editor and search for the following directive: MinSpareServers Set the directive to a value of between 5 and 10, add the directive if it does not exist. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software.
Open the httpd.conf file with an editor and search for the following directive: MaxSpareServers The value needs to be 10 or less If the directive is set improperly, this is a finding. If the directive is not found, you will need to review the httpd.conf file to see if there are other .conf files that are included of "linked" to the httpd.conf. The other conf files may contain these directives. If the directive does not exist, this is NOT a finding because it will default to 10. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software. NOTE: This vulnerability can be documented locally with the ISSM/ISSO if the site has operational reasons for the use of increased value. If the site has this documentation, this should be marked as Not a Finding.
Open the httpd.conf file with an editor and search for the following directive: MaxSpareServers Set the directive to a value of 10 or less, add the directive if it does not exist. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software.
Open the httpd.conf file with an editor and search for the following directive: MaxClients The value needs to be 256 or less If the directive is set improperly, this is a finding. If the directive does not exist, this is NOT a finding because it will default to 256. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software. NOTE: This vulnerability can be documented locally with the ISSM/ISSO if the site has operational reasons for the use of increased value. If the site has this documentation, this should be marked as Not a Finding.
Open the httpd.conf file with an editor and search for the following directive: MaxClients Set the directive to a value of 256 or less, add the directive if it does not exist. It is recommended that the directive be explicitly set to prevent unexpected results if the defaults change with updated software.
Search for the unnecessary CGI programs which may be found in the directories configured with ScriptAlias, Script or other Script* directives. Often, CGI directories are named cgi-bin. Also, CGI AddHandler or SetHandler directives may also be in use for specific handlers such as perl, python and PHP. To search the http.conf file for Options enter the following command: grep "Options" /usr/local/apache2/conf/httpd.conf. For every instance of “Options” in the httpd.conf file other than where CGI files are specifically located, the “ExecCGI” must be explicitly disabled (-ExecCGI). If the value for Options is not returned with a “-ExecCGI” , this is a finding.
Locate any cgi-bin files and directories enabled in the Apache configuration via Script, ScriptAlias or other Script* directives. Remove the printenv default CGI in cgi-bin directory if it is installed. rm $APACHE_PREFIX/cgi-bin/printenv. Remove the test-cgi file from the cgi-bin directory if it is installed. rm $APACHE_PREFIX/cgi-bin/test-cgi. Review and remove any other cgi-bin files which are not needed for business purposes.
To view the Options value enter the following command: grep "Options" /usr/local/apache2/conf/httpd.conf. Review all uncommented Options statements for the following value: -FollowSymLinks If the value is found with an Options statement, and it does not have a preceding ‘-‘, this is a finding. Notes: - If the value does NOT exist, this is a finding. - If all enabled Options statement are set to None this is not a finding.
Edit the httpd.conf file and set the value of "FollowSymLinks" to "-FollowSymLinks".
To view the Options value enter the following command: grep "Options" /usr/local/apache2/conf/httpd.conf. Review all uncommented Options statements for the following values: +IncludesNoExec -IncludesNoExec -Includes If these values don’t exist this is a finding. Notes: - If the value does NOT exist, this is a finding. - If all enabled Options statement are set to None this is not a finding.
Edit the httpd.conf file and add one of the following to the enabled Options directive: +IncludesNoExec -IncludesNoExec -Includes Remove the ‘Includes’ or ‘+Includes’ setting from the options statement.
To view the MultiViews value enter the following command: grep "MultiView" /usr/local/apache2/conf/httpd.conf. Review all uncommented Options statements for the following value: -MultiViews If the value is found on the Options statement, and it does not have a preceding ‘-‘, this is a finding. Notes: - If the value does NOT exist, this is a finding. - If all enabled Options statement are set to None this is not a finding.
Edit the httpd.conf file and add the "-" to the MultiViews setting, or set the options directive to None.
To view the Indexes value enter the following command: grep "Indexes" /usr/local/apache2/conf/httpd.conf. Review all uncommented Options statements for the following value: -Indexes If the value is found on the Options statement, and it does not have a preceding ‘-‘, this is a finding. Notes: - If the value does NOT exist, this is a finding. - If all enabled Options statement are set to None this is not a finding.
Edit the httpd.conf file and add an "-" to the Indexes setting, or set the options directive to None.
To view the LimitRequestBody value enter the following command: grep "LimitRequestBody" /usr/local/apache2/conf/httpd.conf. If the value of LimitRequestBody is not set to 1 or greater or does not exist, this is a finding. Note: The default value is set to unlimited. It is recommended that the directive be explicitly set to prevent unexpected results should the defaults change with updated software.
Edit the httpd.conf file and specify a size for the LimitRequestBody directive.
To view the LimitRequestFields value enter the following command: grep "LimitRequestFields" /usr/local/apache2/conf/httpd.conf. If the value of LimitRequestFields is not set to a value greater than 0, this is a finding.
Edit the httpd.conf file and set LimitRequestFields Directive to a value greater than 0.
To view the LimitRequestFieldSize value enter the following command: grep "LimitRequestFieldSize" /usr/local/apache2/conf/httpd.conf. If no LimitRequestFieldSize directives exist, this is a Finding. Although the default value is 8190, this directive must be explicitly set. If the value of LimitRequestFieldSize is not set to 8190, this is a finding.
Edit the httpd.conf file and ensure the LimitRequestFieldSize is explicitly configured and set to 8190 or other approved value.
To view the LimitRequestLine value enter the following command: grep "LimitRequestLine" /usr/local/apache2/conf/httpd.conf. If the value of LimitRequestLine is not set to 8190, this is a finding. If no LimitRequestLine directives exist, this is a Finding. Although the default value is 8190, this directive must be explicitly set.
Edit the httpd.conf file and set the LimitRequestLine to 8190 or other approved value. If no LimitRequestLine directives exist, explicitly add the directive and set to 8190.
Enter the following command: /usr/local/Apache2.2/bin/httpd –M This will provide a list of the loaded modules. Validate that all displayed modules are required for operations. If any module is not required for operation, this is a finding. Note: The following modules are needed for basic web function and do not need to be reviewed: core_module http_module so_module mpm_prefork_module
Disable any modules that are not needed.
Enter the following command: /usr/local/Apache2.2/bin/httpd –M. This will provide a list of all loaded modules. If any of the following modules are found, this is a finding. dav_module dav_fs_module dav_lock_module
Edit the httpd.conf file and remove the following modules: dav_module dav_fs_module dav_lock_module
Enter the following command: /usr/local/Apache2.2/bin/httpd –M. This will provide a list of all loaded modules. If any of the following modules are found, this is a finding. info_module status_module
Edit the httpd.conf file and disable info_module and status_module.
Note: If the Apache web server is only performing in a proxy server role and does not host any websites nor support any applications, this check is Not Applicable. Enter the following command: /usr/local/Apache2.2/bin/httpd –M. This will provide a list of all loaded modules. If any of the following modules are found, this is a finding: proxy_module proxy_ajp_module proxy_balancer_module proxy_ftp_module proxy_http_module proxy_connect_module
Edit the httpd.conf file and remove the following modules: proxy_module proxy_ajp_module proxy_balancer_module proxy_ftp_module proxy_http_module proxy_connect_module
Enter the following command: /usr/local/Apache2.2/bin/httpd –M. This will provide a list of all loaded modules. If userdir_module is listed, this is a finding.
Edit the httpd.conf file and remove userdir_module.
Enter the following command: more /usr/local/Apache2.2/conf/httpd.conf. Review the httpd.conf file and search for the following uncommented directive: PidFile Note the location and name of the PID file. If the PidFile directive is not found enabled in the conf file, use /logs as the directory containing the Scoreboard file. Verify the permissions and ownership on the folder containing the PID file. If any user accounts other than root, auditor, or the account used to run the web server have permission to, or ownership of, this folder, this is a finding. If the PID file is located in the web server DocumentRoot this is a finding.
Modify the location, permissions, and/or ownership for the PID file folder.
To determine the location of the file enter the following command: find / -name ScoreBoard. To view the permissions on the file enter the following command: ls -lL /path/of/ScoreBoard. If the permissions on the file are not set to 644 or is configured to be less restrictive, this is a finding.
The scoreboard file is created when the server starts, and is deleted when it shuts down, set the permissions during the creation of the file.
Enter the following command: more /usr/local/Apache2.2/conf/httpd.conf. Review the httpd.conf file and search for the following directive: Directory For every root directory entry (i.e. <Directory />) ensure the following exists; if not, this is a finding. Order deny,allow Deny from all If the statement above is not found in the root directory statement, this is a finding. If Allow directives are included in the root directory statement, this is a finding.
Edit the httpd.conf file and set the root directory directive as follows: Directory Order deny,allow Deny from all
Enter the following command: more /usr/local/Apache2.2/conf/httpd.conf. Review the httpd.conf file and search for the following directive: Directory For every root directory entry (i.e. <Directory />) ensure the following entry exists: Options None If the statement above is not found in the root directory statement, this is a finding. If Allow directives are included in the root directory statement, this is a finding. If the root directory statement is not found at all, this is a finding.
Ensure the root directory has the appropriate Options assignment.
Enter the following command: grep "TraceEnable" /usr/local/apache2/conf/httpd.conf. Review the results for the following directive: TraceEnable. For any enabled TraceEnable directives ensure they are part of the server level configuration (i.e. not nested in a <Directory> or <Location> directive). Also ensure that the TraceEnable directive is set to “Off”. If the TraceEnable directive is not part of the server level configuration and/or is not set to “Off”, this is a finding. If the directive does not exist in the conf file, this is a finding because the default value is "On".
Edit the httpd.conf file and add or set the value of EnableTrace to "Off".
Enter the following command: grep "Listen" /usr/local/apache2/conf/httpd.conf Review the results for the following directive: Listen For any enabled Listen directives ensure they specify both an IP address and port number. If the Listen directive is found with only an IP address, or only a port number specified, this is finding. If the IP address is all zeros (i.e. 0.0.0.0:80 or [::ffff:0.0.0.0]:80, this is a finding. If the Listen directive does not exist, this is a finding.
Edit the httpd.conf file and set the "Listen directive" to listen on a specific IP address and port.
Enter the following command: grep "ScriptAlias" /usr/local/apache2/conf/httpd.conf. If any enabled ScriptAlias directive do not have matching URL-path and file-path or directory-path entries, this is a finding.
Edit the httpd.conf file and set the ScriptAlias URL-path and file-path or directory-path entries.
Enter the following command: /usr/local/Apache2.2/bin/httpd –M. This will provide a list of all loaded modules. If autoindex_module is found, this is a finding.
Edit the httpd.conf file and remove autoindex_module.
Enter the following command: more /usr/local/Apache2.2/conf/httpd.conf. Review the httpd.conf file and search for the following directive: Directory For every root directory entry (i.e. <Directory />) ensure the following entry exists: AllowOverride None If the statement above is not found in the root directory statement, this is a finding. If Allow directives are included in the root directory statement, this is a finding. If the root directory statement is not listed at all, this is a finding.
Edit the httpd.conf file and add or set the value of AllowOverride to "None".
Note: If HTTP commands (GET, PUT, POST, DELETE) are not being used and server is solely configured as a proxy server, this is Not Applicable. Enter the following command: more /usr/local/apache2/conf/httpd.conf For every enabled <Directory> directive (except root), ensure the following entry exists: Order allow,deny <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept> If the statement above is found in the root directory statement (i.e. <Directory />), this is a finding. If the statement above is found enabled but without the appropriate LimitExcept or Order statement, this is a finding. If the statement is not found inside an enabled <Directory> directive, this is a finding. Note: If the LimitExcept statement above is operationally limiting. This should be explicitly documented with the Web Manager, at which point this can be considered not a finding.
Edit the httpd.conf file and add the following entries for every enabled directory except root. Order allow,deny <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept>
Locate the Apache httpd.conf and ssl.conf file if available. Open the httpd.conf and ssl.conf file with an editor and search for the following uncommented directive: SSLCipherSuite For all enabled SSLCipherSuite directives, ensure the cipher specification string contains the kill cipher from list option for all export cipher suites, i.e., !EXPORT, which may be abbreviated !EXP. If the SSLCipherSuite directive does not contain !EXPORT or there are no enabled SSLCipherSuite directives, this is a finding.
Update the cipher specification string for all enabled SSLCipherSuite directives to include !EXPORT.