5.4 Ensure Default HTML Content Is Removed - 'Server Status handler does not exist'

Information

Apache installations have default content that is not needed or appropriate for production use. The primary function for this sample content is to provide a default web site, provide user manuals or to demonstrate special features of the web server. All content that is not needed should be removed.

Rationale:

Historically these sample content and features have been remotely exploited and can provide different levels of access to the server. In the Microsoft arena, Code Red exploited a problem with the index service provided by the Internet Information Service. Usually these routines are not written for production use and consequently little thought was given to security in their development.

Solution

Review all pre-installed content and remove content which is not required. In particular look for the unnecessary content which may be found in the document root directory, a configuration directory such as 'conf/extra' directory, or as a Unix/Linux package.
1. Remove the default index.html or welcome page if it is a separate package. If it is part of main Apache 'httpd' package such as it is on Red Hat Linux, then comment out the configuration as shown below. Removing a file such as the 'welcome.conf', is not recommended as it may get replaced if the package is updated.

#
# This configuration file enables the default 'Welcome'
# page if there is no default index page present for
# the root URL. To disable the Welcome page, comment
# out all the lines below.
#
##<LocationMatch '^/+$'>
## Options -Indexes
## ErrorDocument 403 /error/noindex.html
##</LocationMatch>

2. Remove the Apache user manual content or comment out configurations referencing the manual

# yum erase httpd-manual

3. Remove or comment out any Server Status handler configuration.

#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the '.example.com' to match your domain to enable.
#
##<Location /server-status>
## SetHandler server-status
## Order deny,allow
## Deny from all
## Allow from .example.com
##</Location>

4. Remove or comment out any Server Information handler configuration.

#
# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_info.c be loaded).
# Change the '.example.com' to match your domain to enable.
#
##<Location /server-info>
## SetHandler server-info
## Order deny,allow
## Deny from all
## Allow from .example.com
##</Location>

5. Remove or comment out any other handler configuration such as perl-status.

# This will allow remote server configuration reports, with the URL of
# http://servername/perl-status
# Change the '.example.com' to match your domain to enable.
#
##<Location /perl-status>
## SetHandler perl-script
## PerlResponseHandler Apache2::Status
## Order deny,allow
## Deny from all
## Allow from .example.com
##</Location>

See Also

https://workbench.cisecurity.org/files/2378

Item Details

Category: CONFIGURATION MANAGEMENT

References: 800-53|CM-6, CSCv6|18.9, CSCv7|5.1

Plugin: Unix

Control ID: 0fd321a1af2df1776b32dc4db192c63db710a31461c1d583f0c467e3f1f813c4