Filtrado por la cabecera X-Forwarded-For

A menudo nos encontramos con la necesidad de filtrar el acceso a nuestros VirtualHost por la ip de origen del cliente que se conecta, pero nuestros servidores web se encuentran detrás de un balanceador y la ip que se nos presenta es la de estos ultimos, afortunadamente, con un poco de configuración extra, se puede conseguir….

Lo primero de todo es que hacer que nuestro apache carge el módulo setenvif. Este modulo se compila por defecto a no ser que explicitamente le digas que no lo haga (–disable-setenvif), por lo que lo único de lo que tenemos que asegurarnos es de cargarlo:

LoadModule setenvif_module modules/mod_setenvif.so

Llegado este punto, ya podemos hacer nuestro filtrado por la cabecera X-Forwarded-For, para ello dentro de la directiva Directory asignamos el contenido de la cabecera X-Forwarded-For a una variable:

SetEnvIf X-Forwarded-for «213.5.6.7» EMPRESA-A

Una vez asignada la variable ya podemos filtrar el acceso:

Allow from env=EMPRESA-A

La configuración entera seria algo así:

<Directory /CODE/cuatro/foros/admin>
SetEnvIf X-Forwarded-for «213.5.6.7» EMPRESA-A
Order Deny,Allow
Deny from all
Allow from env=EMPRESA-A
</Directory>

Espero te pueda ayudar…

 

Comments 0

Add Comment