Nociones básicas sobre uso de proxies

Posted on January 9th, 2007 in Uncategorized by Miggs

TUTORIAL: Proxies

by Miggs 12/11/2006.

Introduccion

Recientemente, un amigo que esta muy Jodido (Fucked), me pidió que le explicara que son eso de los “proxies”, para que sirven, y como se usan. Así que bueno, en este tutorial intento explicar de una manera simple que es eso de los proxies. En particular voy a centrarme en HTTP Proxies ya que estos son los mas extendidos. Hoy no, pero a lo mejor en algun futuro cercano explicare como configurar SQUID.

Este tutorial esta basado en el uso proxies públicos. En el caso de que desconozcas a los admins de dichos proxies, por favor, tener cuidado!:
UN PROXY PUEDE FILTRAR Y ANALIZAR TODO EL TRAFICO QUE PASE ATRAVES DE EL. Por eso, no recomiendo que introduzcáis passwords ni información delicada mientras los uséis.

Que es un HTTP Proxy?

Un HTTP proxy no es mas un servidor que se interpone entre todas las conexiones HTTP (puerto 80 por defecto) tuyas y cualquier otro servidor. Es decir, si quieres conectarte a icaix.com desde tu casa. Tu ordenador se conectara primero al proxy, y sera el proxy el que posteriormente se conecte a icaix.com, canalizando todo el tráfico entre tu ordenador e icaix de una forma transparente para ti.

Tipos de HTTP_Proxy!

Bien, antes de seguir es importante que diferenciemos los diferentes tipos de HTTP proxies que nos podemos encontrar, ya que segun el tipo de proxy que usemos estaremos mandando mas o menos datos a los servidores a los que nos conectemos. NO todos los proxys mantienen la anoimidad del cliente, así que es importante saber que es lo que pueden llegar a saber de nosotros.

  • Proxy transparente: Como su nombre indica, es transparente, es decir, el proxy comunica al servidor que efectivamente se esta usando un proxy, pero…, inmediatamente después le da a conocer la ip del cliente. El uso de este tipo de proxies es canalizar el trafico de múltiples estaciones, con el fin de analizar el trafico, y posiblemente bloquear determinadas ips (ex: youTube.com), o limitar en ancho de banda de las estaciones.
  • Proxy Anónimo: Indican a los servidores que se esta usando un proxy, pero no le da a conocer la ip del cliente.
  • High anonymity: Proxy: Este es el que mas me gusta, y el que mas util si quieres esconder tu ip. El proxy se encarga como su nombre indica de proteger tu anonimidad. El proxy se conecta al servidor en cuestión haciéndole creer que el es el cliente. NO avisa que se este usando un proxy.

Existen otros tipos de HTTP Proxies, pero son poco utilizados así que ignoraremos su existencia (por ahora).

Porque “HTTP Proxy” y no “Proxy” a secas?

Como seguramente seras capaz de intuir, los HTTP proxies solo trabajan con conexiones HTTP.

Porque HTTP exclusivamente y no cualquier servicio como FTP, TELNET?.

HTTP es un Protocolo. Por tanto que el servidor Proxy tiene que ser capaz de trabajar con los campos de las tramas que le enviamos. Si en algún caso le enviásemos tramas de cualquier otro protocolo, por ejemplo TELNET, el servidor no las entenderá y las ignorara.

Entonces…, Porque mi cliente de FTP tiene la opción de usar el dichoso Proxy?

Lo que esta pasando ahí, es que el cliente de FTP esta encapsulando las tramas FTP dentro de paquetes HTTP. El PROXY que es muy listo desencapsulara y enviara al servidor de ftp tramas en formato FTP.Ojo, no todos los proxies soportan este tipo de servicio.

Vale, Vale, cállate ya, me mola!, como se usan?!

La configuración de proxies normalmente se especifica a nivel de aplicación. Normalmente, en principio no afecta al entorno de red del del OS, funcionando de forma independiente en cada una de las aplicaciones. Es decir, puedes tener firefox configurado para que use determinado proxy, mientras que Opera, o el msn usen otro o ninguno. Hoy os voy a enseñar como configurarlo en ambos, Firefox, e IE.

Como bien he dicho arriba Normalmente no afecta al variables de red del OS, sin embargo, los chicos de Microsoft decidieron implementar IE de tal forma que en vez de tener sus propios parámetros como hacen Firefox o Opera, IE hará uso de las variables del sistema, es decir, al configurar un proxy en IE estaremos actualizando el entorno de red de Windows, extendiendo el uso de dicho proxy al resto de aplicaciones que utilicen en este caso HTTP.

Lo primero es conseguir un proxy. En internet hay paginas que se dedican unica y exclusivamente a publicar direcciones de Proxies publicos. Si no tienes un poxy a mano, y no te apetece montarte uno en tu propio ordenador, esta es la mejor solución. La pagina mas completa que conozco es: http://www.publicproxyservers.com/ Ahí encontrareis multitud de proxies (aunque muchos de ellos no funcionan).

Una vez encontréis un proxy que os guste, notareis que hay varios parámetros dentro de cada proxy. Los mas importantes son la ip y el puerto de escucha ( y el tipo de proxy por supuesto):

IP: es la ip única que identifica al servidor, y es con lo que localizamos el servidor

Puerto: es el puerto de escucha dentro del servidor. Por ejemplo los puertos 3128 y 8080 son los que usan la mayor parte de los proxies. EL PUERTO DE ESCUCHA NO TIENE PORQUE SER 80!!!!. El puerto 80 es normalmente usado para servidores Web HTTP (ex: Apache o IIS), lo cual es un servicio completamente diferente al de un proxy. Los proxies normalmente escuchan en otros puertos. Es mas…, mi consejo es evitar los proxies que escuchen por el puerto 80 ya que lo mas seguro es que se dediquen a analizar trafico.

Tipo de proxy: explicado mas arriba.

En este ejemplo usaremos el siguiente proxy ficticio:

Configuración en Firefox 1.5

Configuración en IE 6:

INSISTO: La configuración de IE modifica los parámetros de conexiones de red del sistema. Cualquier aplicación que haga uso de dichos parámetros usara dicho proxy.

Como comprobar que efectivamente estoy a través de un proxy?

Lo mas sencillo es comprobar a través de www.showmyip.com tu ip antes y después de configurar el proxy.

Como deshabilito el proxy?

Muy sencillo, lo único que tienes que hacer es deshabilitar la opción de uso de proxy y tu trafico recuperara la ruta por defecto (conexión directa a Internet). La nueva configuración se aplicara a todas las conexiones creadas a partir de dicho momento.

Vale, quiero saber mas! Donde sigo….

Mi recomendacion para profundizar en el tema es google por supuesto. Hay multitud de proxies open source con los que poder jugar. Mi favorito (el que uso) es Squid.

Escrito por Miggs el 12/11/2006, dudas o comentarios a mangel12321@hotmail.com

5 Responses to 'Nociones básicas sobre uso de proxies'

  1. hitz said, on April 18th, 2007 at 1:47 pm

    Una pequeña aportación:
    Existen unos tipos de proxy con un protocolo llamado SOCKS.
    Sacado de la Wikipedia:
    ——————————————————————————————————
    SOCKS es un protocolo de Internet que permite a las aplicaciones Cliente-servidor usar de manera transparente los servicios de un firewall de red. SOCKS es una abreviación de “SOCKetS”.

    Los clientes que hay detrás de un firewall, los cuales necesitan acceder a los servidores del exterior, pueden conectarse en su lugar a un servidor proxy SOCKS. Tal servidor proxy controla que cliente puede acceder al servidor externo y pasa la petición al servidor. SOCKS puede ser usado también de la forma contraria, permitiendo a los clientes de fuera del firewall(”clientes exteriores”) conectarse a los servidores de dentro del firewall (servidores internos).

    Las extensiones no oficiales SOCKS 4a añaden soporte para nombres DNS para resolver nombres con el servidor SOCKS. La versión actual 5 del protocolo, RFC 1928 o authenticated firewall traversal, extiende la versión previa soportando UDP, autenticación, permitiendo al servidor SOCKS resolver nombres de host para el cliente SOCKS, y IPv6.
    ——————————————————————————————————

    También existe una aplicación para sistemas Linux llamada “proxychains”. Nos permite utilizar cualquier protocolo a través de un proxy. En el archivo /etc/proxychains.con se configura una lista de proxys socks4 y socks5. Luego senzillament con, por ejemplo, “proxychains ssh root@host”, el programa efectua la petición ssh a través del primer proxy de la lista que le permite hacerlo.
    Muy útil para esconder nuestra identidad.

    Saludos

  2. Miggs said, on April 22nd, 2007 at 4:49 pm

    Gracias hitz!

    La manera mas facil de crear un proxy socks es montarse un servidor ssh y:

    # ssh -D puertoProxy user@host

    Con ese sencillo comando estaras haciendo del servidor un Socks5 Proxy. Para usarlo ajusta las variables locales de tu equipo a localhost:puertoProxy.

    Gracias por el aporte!

  3. chuche said, on April 25th, 2007 at 8:17 pm

    pero si pongo el proxi navegare mas rapido

  4. miggs said, on April 26th, 2007 at 3:40 pm

    No, nunca.

    Durante el uso de proxies el ancho de banda sera el ancho de banda del link mas debil. Si por casualidad el proxy te permitiese usar un ancho de banda mayor que el que tu posees tu ancho de banda seria el menor, en este caso el tuyo.

    Normalmente no es el caso, por lo general, un proxy permite el acceso a varios usuarios. Al tener que canalizar todo trafico generado por cada uno de ellos se crea un cuello de botella. Imaginate que el proxy tiene una conexion de 3 Mbps y permite acceso a 10 usuarios.

    Suponiendo que dichos usuarios tienen los mismos privilegios, y que todos estan utilizando el mayor ancho de banda posible, cada usuario alcanzaria una velocidad aproximada a 0.3Mbps. Proxies publicos la proporcion anchodebanda/usuario es mucho menor.

    Tambien tienes que tener en cuenta la latencia (tambien conocida como ‘lag’). Latencia es el tiempo transcurrido desde el envio de un paquete hasta la recepcion del mismo. Durante el uso de proxies el camino usado no suele ser el mas eficiente, y es muy probable que tu trafico tenga que esperar en algunos enlaces durante algun tiempo.

    Por lo general mi consejo es que intentes evitar su uso. Una solucion muy comoda es usar varios navegadores Firefox/konqueror/Opera,etc, cada uno con una configuracion diferente.

  5. josias said, on August 15th, 2008 at 7:13 pm

    hola tengo unos proxis en el puerto 8080 y trabajaban muy bien de hecho logramos descargar a 15kb/s pero la red se ha buelto muy lento solo baja a 1 o 2 kbs lo que quiero es proxis diferentes o una red mas rapida!! no entiendo mucho de esto porque soy nuevo y hasta hace unos dias supe de esto!!!

    pueden darme un consejo???? Que hago!!!!!!

Post a comment