5.13 Ensure the IP Addresses for Listening for Requests Are Specified

Information

The Apache 'Listen' directive specifies the IP addresses and port numbers the Apache web server will listen for requests. Rather than be unrestricted to listen on all IP addresses available to the system, the specific IP address or addresses intended should be explicitly specified. Specifically, a 'Listen' directive with no IP address specified, or with an IP address of zeros should not be used.

Rationale:

Having multiple interfaces on web servers is fairly common, and without explicit 'Listen' directives, the web server is likely to be listening on an inappropriate IP address / interface that was not intended for the web server. Single homed system with a single IP addressed are also required to have an explicit IP address in the 'Listen' directive, in case additional interfaces are added to the system at a later date.

Solution

Perform the following to implement the recommended state:

1. Find any 'Listen' directives in the Apache configuration file with no IP address specified, or with an IP address of all zeros similar to the examples below. Keep in mind there may be both IPv4 and IPv6 addresses on the system.

Listen 80
Listen 0.0.0.0:80
Listen [::ffff:0.0.0.0]:80

2. Modify the 'Listen' directives in the Apache configuration file to have explicit IP addresses according to the intended usage. Multiple 'Listen'directives may be specified for each IP address & Port.

Listen 10.1.2.3:80
Listen 192.168.4.5:80
Listen [2001:db8::a00:20ff:fea7:ccea]:80

See Also

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