HowTo/Gateway/es

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

<languages />

Cómo configurar un EepGateway[Bearbeiten]

Porqué usar EepGateways[Bearbeiten]

Por lo usual, administrar un outproxy (un proxy a la clearnet) conlleva muchos riesgos. No sabes si los usuarios abusarán de tu servicio, con spam, o incluso publicando CP. Y todo esto te traerá problemas. La policía podría aparecer en tu puerta y joderte la vida. ¿Y qué pasa si configuro un outproxy sólo para ciertas webs?. Esto es posible, pero no es bueno. ¿Y qué pasa con las gateways?, por ejemplo, si un usuario visita http://yourdomain.i2p/oforum/ el verá el foro onion desde tor. De esta forma el usuario puede sólo visitar y trastear en el foro onion a través de tu servicio. Es mucho más seguro que ejecutar un outproxy abierto.

Qué necesitas para configurar una EepGateway[Bearbeiten]

Si quieres configurar una EepGateway para acceder a Internet directamente, todo lo que necesitas es un proxy reverso. Recomiendo esteNginx. Es un servidor web y proxy reverso de Rusia. Puedes ejecutarlo en widnows o linux. Funciona como un interfaz que pasa todas las peticiones a los servidores reales. El binario de windows ocupa menos de 1MB. Y es mucho más fácil de usar que apache.

¿Y sobre nuestro foro onion? Necesita Tor. Bien, conectarse a través de un proxy detrás de Nginx tiene truco. Nginx no soporta los proxies normales. Por lo que tenemos que modificar las cabeceras para aparentar las repuestas de un navegador web. En windows recomiendo este Proxomitron, un brillante interceptor proxy japonés. Ya que el gran programador murió joven, no ha tenido más desarrollo. La última versión es la 4.5Nj. No uses la 4.5Nm que tiene errores.

Cómo configurar una EepGateway[Bearbeiten]

Lets see the right requests flow in our proxy chain. Take TwiGate (twitter) for example:

User Gateway Proxy Chain
browser1=>i2p i2p=>nginx nginx=>normal internet
HOST example.i2p example.i2p twitter.com
URI TwiGate/** TwiGate/** /**

Here you can see, Nginx should change the URI from /TwiGate/** to /**, and REDIRECT this request to "twitter.com"

Es fácil trabajar con el módulo para reescribir URL de Nginx. Usando la función de reescribir URL y el comando proxy_pass, puedes hacer lo siguiente

location /TwiGate {     
rewrite TwiGate(\/|)(.*)$ /$2 break;
proxy_pass http://www.twitter.com
allow 127.0.0.1;
deny  all;
break;
} 

¿Pero is si es a través de un proxy normal? Por ejemplo OFGate (Foro Onion: l6nvqsqivhrunqvs.onion).

Primero aprendamos lo básico sobre las peticiones proxy

En HTPP 1.1, las peticiones enviadas el proxy se parecen a esto:

GET /targetURI HTTP/1.1 HOST: targetHOST.com 

Mientras que en HTTP 1.0, la cabecera del HOST no ha sido introducida, por lo que debe aparecer como:

GET http://targetHOST/targetURI HTTP/1.0 

Nginx parece que sólo soporta HTTP 1.0 como respaldo. En otras palabras, Nginx sólo puede hablar HTTP 1.0 con el proxy de descarga.

Después de aprender las limitaciones, veamos qué peticiones necesitamos en la cadena proxy:

HTTP/1.0 User Gateway Proxy Chain
browser2=>i2p i2p=>nginx nginx=>polipo/privoxy/polipo/privoxy=>tor
HOST example.i2p example.i2p 127.0.0.1:{ProxyPort eg 777}
URI /OFGate/** /OFGate/** http://l6nvqsqivhrunqvs.onion/**

fácil, la siguiente configuración parece suficiente:

location /onionpickers {
rewrite TwiGate(\/|)(.*)$ http://'''www.twitter.com'''/$2 break;
proxy_pass 127.0.0.1:777;
allow 127.0.0.1;
deny  all;
break;
} 

Ya que las peticiones son pasadas a 127.0.0.1:777 (nuestro proxy local) y la URL contiene la web objetivo todo parece correcto, pero en la realidad no fucniona:

Veamos otra limitación/característica de Nginx:

Importante: Reescribir una URL con una URL que contenga el nombre de HOST causará un REDIRECCIÓN forzada. Por lo que incluso si los comandos break y proxy_pass' están configurados, Nginx aun seguirá enviando una respuesta REDIRECT al usuario, diciendo al navegador que navegue fuera de nuestra web y visite el HOST directamente.

Esto parece un callejón sin salida. Pero encontramos algo interesante. Reescribiendo la URL con "http://twitter.com/.../" causará una REDIRECCIÓN, mientras que "HTTP://twitter.com/../" no lo hará. Lo malo es que no Privoxy ni Polipo reconocen dicha petición.

Aunque Proxomitron sí reconoce y arregla las peticiones HTTP mal formadas además de pasarlas al proxy de descarga. Por lo que ahora configuramos Nginx así:

location /onionpickers {
rewrite OFGate(\/|)(.*)$ HTTP://l6nvqsqivhrunqvs.onion/$2 break;
proxy_pass 127.0.0.1:777;
allow 127.0.0.1;
deny  all;
break;
} 

Proxomitron también puede ayudar a modificar la fuente de la página web. Cambiando todo el código de una URL a una URL relativa. Por lo que no estará conectada directamente al usuario.

Pulsa el botón de página web en Proxomotion y crea las siguientes reglas:

[Patterns]
Name = Oinon-redirect
URL = *l6nvqsqivhrunqvs.onion/*
Limit = 256
Match = ("[^"']++|url\([^\(]++)\1http://l6nvqsqivhrunqvs.onion[/]+
Replace = \1/onionpickers/
Name = Oinon-redirect2
URL = *l6nvqsqivhrunqvs.onion/*
Limit = 256
Match = : url\(("|)\1(/[^\)]++\);)\2
Replace = : url\(\1/onionpickers\2
Name = Oinon-redirect
Img Active = TRUE
URL = *l6nvqsqivhrunqvs.onion/*
Limit = 256
Match = <img\ssrc(\s|)=("/)\2
Replace = <img src=\2onionpickers/
Name = Oinon-redirect3
URL = *l6nvqsqivhrunqvs.onion/*
Limit = 256
Match = (")\1(/|)\?\w\2\=(\w")\3
Replace = \1/onionpickers/?\2=\3