1

Hilo: Redirigir dominio con ProxyPass

Hola,

La verdad es que ya van un par de ocasiones que intento usar ProxyPass para redirigir las peticiones de un dominio determinado a un equipo de la red local pero sin éxito.

He probado con las versiones de Apache 2.2.8 y 2.0.54 de Debian Lenny y Sarge respectivamente. He activado el módulo "proxy" y configurado el siguiente VirtualHost (en realidad probé infinidad de combinaciones por si sonaba la flauta):

<VirtualHost *>
   ServerName dominio.publico.com
   ProxyPass / http://ip_local/
   ProxyPassReverse / http://ip_local/
</VirtualHost>

El resultado es siempre el mismo: error 403.

Agradecería cualquier indicación.


Saludos.

2

Re: Redirigir dominio con ProxyPass

huh, q raro. Deberia funcionar a la primera y sin hacer ninguna cosa rara.

El 403 te sale en el apache que hace de proxy? o en el de backend?

1- Si usas SSL, SSLProxyProxyEngine On.
2- Pon roxyRequests Off, o usaran tu server como relay para SPAM (esto es un clasico XD )
3- Busca en los ficheros de configuracion, SEGURO que tienes algo en el fichero de configuracion del mod_proxy que te deniega todos los accesos. En ubuntu esta en mods-enabled/mod_proxy.conf

Si acierto, te toca invitar a una birra ;-)

Kitai

3

Re: Redirigir dominio con ProxyPass

Mil gracias, una birrra no, te debo un barril entero :D

Resulta que en la configuración del modulo deniega todo, además veo que ya viene ahí el ProxyRequests y no tengo que meterlo en el VHost

<IfModule mod_proxy.c>
        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.

        ProxyRequests Off

        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Deny from all
                #Allow from .example.com
        </Proxy>

        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block

        ProxyVia On
</IfModule>

Y lo del SSL también me sirve, ya que mi intención es redireccionar ambos.

4

Re: Redirigir dominio con ProxyPass

Ahora tengo un problema que no sé si tendrá solución. Al usar el proxy el servidor local registra en los logs la IP del servidor que hace de proxy, ¿hay alguna forma de que guarde la IP del cliente que hace la petición?

5

Re: Redirigir dominio con ProxyPass

Hummm, no, pero si puedes hacerlo con algun truco.

La IP del CLIENTE del que se ha hecho proxy se guarda en la variable X-HTTP-FORWARDED.

Puedes crear un CustomLog nuevo, y almacenar esa variable. No se si era con %S{VARIABLE} o parecido. Miralo en el manual que ahi aparece bien.

Kitai

6

Re: Redirigir dominio con ProxyPass

Interesante, lo cierto es que no sé si me servirá ya que el equipo local utiliza un mod propietario para registrar los logs y ahí no puedo meter mano. Pero es bueno saberlo.

7

Re: Redirigir dominio con ProxyPass

Seria fácil modificar el modulo ese
la cuestion es meter codigo para que SI EXISTE la cabecera X-HTTP-FORWARDED ...logee esa en vez de la otra

Kitai

8

Re: Redirigir dominio con ProxyPass

Llevo un rato intentándolo sin resultados. La cabecera es X_HTTP_FORWARDED_FOR pero debo ser un inútil.

En este artículo explican lo mismo que he hecho:
http://www.hcastelli.com.ar/linux/apache-log-y-x-forwarded-for/

De todas formas sospecho que ese header ya no se envía, he probado con varios navegadores y en esta página no sale:
http://www.hyra-gotland.se/

Usando el add-on "Live HTTP Headers" para Firefox tampoco aparece.

9

Re: Redirigir dominio con ProxyPass

Algo he logrado.
He impreso la variable $_SERVERS de PHP para saber qué headers tengo disponibles.
HTTP_X_FORWARDED_FOR me da la IP del cliente al usar el proxy, si no uso proxy está vacío.
REMOTE_ADDR me da la IP del proxy al usar proxy y la del cliente al no usarlo.

El problema es que estos dos headers sólo tienen dato si hago peticiones a páginas PHP; si son a html, imágenes, directorios... la variable está vacía.
¿alguien sabe a qué se puede deber?


P.D.: el formato del string es con "e" en vez de "i" (enviroment variable)

ultima edicion por Resete-e (2008-04-03 12:29:23)

10

Re: Redirigir dominio con ProxyPass

Lo raro es que no te las de el Apache directamente. Yo recuerdo en tiempos que habia problemas porque no siempre las mostraba. Pero de inicio si te mostraba la mayoria.
Que raro...

Le pegare una pensada

kitai

11

Re: Redirigir dominio con ProxyPass

Tranquilo, ya lo he solucionado. Aunque es cierto que me gustaría saber por qué pasa eso tampoco quiero hacerte perder el tiempo.

El problema es que estoy instalando un servidor de analítica web, es un Apache con un módulo propietario compilado para registrar los logs.
En el LogFormat se usa un parámetro que registra los campos especificados en otros ficheros de configuración de la herramienta. Puedo añadir algunas cosillas pero casualmente cuando añado el X-Forwarded-For deja de funcionar.
De todas formas la propia herramienta contempla esta posibilidad de usar el x-Forwarded-For a través de su propia configuración.


Un saludo y muchas gracias.