Creacion de VirtualHost falso en Apache para mejorar la seguridad

Como todos sabemos, existen multiples aplicaciones que intentan descubrir vulnerabilidades de seguridad de una manera automatizada.

La inmensa mayoria intentan averiguar si está el mod_proxy activado y desprotegido para poder redirigir peticiones a otros servidores. Desgraciadamente, existen muchos servidores con una seguridad muy baja que son usados para atacar otros servidores web.

Ademas muchos virus se sirven de vulnerabilidades conocidas en servidores web sin parchear para propagarse.

Existe un pequeño hack poco utilizado para librarse del 99% de estas conexiones. Y es tan sencillo como crear un VirtualHost que dirija a un directorio vacio, y ponerlo el primero en la cadena de VirtualHost en nuestro httpd.conf.

Por ejemplo:

NameVirtualHost IP_de_mi_server:80
<VirtualHost IP_de_mi_server:80>
DocumentRoot /opt/null
ServerName mivhostnulo.com
</VirtualHost>

Seguido del resto de nuestros hosts.

Si quereis ver las peticiones que ese Virtualhost esta rechazando (no os asusteis) añadid una linea de log:

CustomLog /var/log/httpd/archivo_error_hostnulo.log combined

Valores para optimizar servidor Apache

Antes de pasar nuestro servidor Web a entornos de producción en Internet deberíamos modificar:
Parámetros por defecto de timeout y keep Alive

Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15

Un timeout de 2 minutos para una página web es demasiado, al igual que 15 segundos para mantener una conexión Keep Alive.

Timeout 60
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

Por defecto damos demasiada información de nuestro servidor cambiamos:

ServerSignature On
ServerTokens OS

Por

ServerSignature Off
ServerTokens Prod