Está en la página 1de 7

configuración en el agente de usuario.

Debido a que son en cierto modo


transparentes para estos, se los suele denominar “proxy transparente”. En el
presente trabajo se seguirá el criterio de [1], en donde se reserva el nombre “proxy
trasparente” para el indicado por el estándar [2] (como ya se discutió). El término
interceptor hace referencia a que reciben paquetes redirigidos desde algún elemento
de red que está realizando interceptación de trafico.
Cache: El almacenamiento local de mensajes de respuestas perteneciente a un
programa y los subsistemas que controlan el almacenamiento, recuperación o
eliminación de estos mensajes. Tanto los clientes como los servidores puede poseer
caches, aunque no deben ser usados por servidores que funcionan como túneles.
Nota: Es común el uso del término cache como “proxy cache”
Cacheable: Una respuesta es cacheable si un cache está habilitado a almacenar una
copia de ella para usarla en una solicitud posterior. Las reglas que determinan la
cacheabilidad de una respuesta HTTP están definidas en [2] .
Proxy Cache: Un proxy con un cache.
Elemento de Red: Un dispositivo de red que introduce múltiples caminos entre el
origen y el destino, transparenta a HTTP.

2.2 Proxys Cache


Un cache es ubicado en el punto de acceso (o cerca) de los clientes a Internet, de
forma que este guarda una copia temporal por cada contenido solicitado por algún
cliente, de forma tal que al siguiente cliente que solicita el mismo contenido le es
devuelto el alojado en el cache.
Entre las ventajas de los proxy caches tenemos que resuelven en forma local el
35% de las peticiones de los clientes, disminuyendo la necesidad de ancho de
banda. Por esto mismo, se mejora la calidad de servicio (Q.O.S.) al aumentar el
ancho de banda y disminuir la latencia experimentadas por los usuarios. También
permiten recolectar información detallada sobre el uso de Internet, así como
establecer políticas de acceso en forma centralizada, simplificando la administración
de una red.
Entre sus desventajas se incluyen que el contenido devuelto puede ser obsoleto,
proveyendo de información desactualizada a los clientes. Otra desventaja es que, en
el modelo tradicional, necesita que los clientes estén consientes de la presencia del
proxy y lo utilicen.

2.3 Datagramas IP, ruteadores, sniffering e intercepción


Internet es una red basada en datagramas, lo cual significa que toda la información
que viaja por ella es dividida en una serie de unidades de información o mensajes.
Internet está compuesta por un conjunto de redes entrelazadas entres sí, donde cada
nodo es identificado por un número IP, y pueden existir múltiples caminos para unir
dos nodos dados.

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 1/7
Para cada datagrama que es enviado a través de la red, se debe elegir el camino
–rutear- en cada nodo que atraviesa; denominándose ruteador a los nodos que
realizan esta función para los datagramas que no son propios.
La técnica de sniffering consisten en el análisis de los datagramas que
atraviesan un nodo con objeto de conseguir alguna información. Normalmente su
uso es ilegal.
Se denomina intercepción de tráfico al proceso de utilizar un ruteador para
examinar el tráfico de la red (siniffering) y determinar cuando este debe ser
redirigido.

3 Proxys Interceptores

Como se ha comentado, las ventajas de los proxys cache son varias, sin embargo el
hecho de tener que configurar cada uno de los agentes de usuarios puede ser
incómodo, políticamente complicado o simplemente imposible. Distintas
situaciones en donde esto puede ocurrir incluyen cuando en una organización se
desea obligar a todos los clientes de la red utilicen el proxy, quieran estos o no;
cuando se desea que los clientes utilicen el proxy, pero no se quiere que estos
conozcan que lo están utilizando; cuando existe una gran cantidad de clientes para
configurar, pero no se puede acceder a cada uno de ellos para configuarlo, como en
los ISP; etc.
Son en estas situaciones en donde los proxys interceptores se vuelven
necesarios. Una solicitud de un recurso de la web puede ser interceptado por el
proxy en forma transparente para los clientes, es decir que para estos se están
comunicando con el servidor original, cuando en realidad se están comunicando con
el proxy. Los proxy interceptores se incorporan a la red “sin costuras”, agregando
un overhead despreciable frente al esquema tradicional.
Existen diversas formas de lograr que el flujo de solicitudes del cliente llegue al
proxy interceptor. Una forma de realizar esta tarea es mediante switchers L4[3].
Estos atrapan paquetes IP cuyo
puerto de destino sea 80, y lo
redirigen hacia el proxy cache.
Se realiza una conección TCP
entre el cliente y el proxy, el
cual responde a los mensajes
con el número IP del servidor
original. Los productos de
Cisco [4] incorporan, mediante

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 2/7
el protocolo WCCP [5, 6], la capacidad de redirigir el tráfico hacia un conjunto de
proxys cache.
En estos esquemas, el proxy puede ubicarse en una estación individual y los
dispositivos de red se ocuparán de redirigirle el tráfico. Otro enfoque es ubicar el
proxy interceptor en el camino del tráfico web; o sea en un ruteador. Una gran
cantidad de sistemas que funcionan como ruteadores puedes ser configurados [7]
para redirigir el tráfico web hacia una aplicación determinada.
Fig 1: Proxy Interceptor basado en swicher

Existen algunos inconvenientes al utilizar proxys interceptores [8]. Debido a


que los agentes de usuario creen que se están conectando directamente con el
servidor original, no incluyen modificadores para control de cahces a la cabecera
HTTP, que sí incluirían en otro caso. Esto puede provocar que los clientes obtengan
información obsoleta, o que información privada sea almacenada en el proxy cache.
Otro problema surgen en los servicios que utilizan identificación basada en el
número IP del cliente; como el que se comunica con el servidor original es el proxy
y le pasa su número IP, se puede denegar un servicio que de otra forma el cliente
original tendría habilitado. Un tercer problema está relacionado con el hecho de que
para utilizar los servicios de proxy cache para el protocolo FTP, este es encapsulado
en HTTP para la comunicación entre los proxys y los clientes; pero si el cliente cree
que se está comunicándose con el servidor original no realiza este encapsulamiento,
por lo cual no es posible utilizar el protocolo FTP con proxys interceptores.

4 Caso de Estudio

Para realizar esta experiencia se tuvieron como guía [7] y [9] .

4.1 Software Instalado


Se utilizó para la presente práctica la distribución Linux Mandrake 8.0, el cual
incorpora la versión del kernel 2.4. Se eligió el sistema operativo Linux debido a su
condición de sofware gratis, desarrollado bajo la licencia Open Source, además de
ser ampliamente utilizado como plataforma para la instalación de servidores de
distintos tipos y como ruteadores. La distribución Mandrake es una de las más
populares, y la versión 8.0 es una de las últimas puestas a disposición por esta
compañía.
El kernel incorporado con esta distribución cumple con los requerimientos
necesarios para llevar a cabo la redirección, por lo que no fue necesario
recompilarlo. En caso de no ser así, las características que deben incluir son:
soporte de red, soporte de Sysctl, paquete de filtrado de red, protocolos TCP/IP,
conecction tracking, soporte de IP tables, soporte NAT completo, soporte de destino

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 3/7
REDIRECT, soporte del montado del sistema de archivos /proc. No debe incluirse
el soporte para “Fast switching”
Como servidor proxy caché se eligió Squid, por ser, por un lado, un producto
gratis, desarrollado bajo la licencia Open Source. Además de ser ampliamente
utilizado, es el producto utilizado para implementar los protocolos desarrollados por
la NLANR (www.nlanr.net). Además la distribución utilizada lo incorpora.
Los clientes fueron 2 estaciones con sistemas operativos Microsoft Windows 98
e Internet Explorer 5.0.

4.2 Despliegue
El despliegue se realizó en el laboratorio de redes del departamento de sistemas
de la Universidad Nacional de Luján. Toda la red de dicha universidad está detrás
de un firewall, pudiéndose acceder a Internet a través de un proxy cache Squid, el
cual no opera como interceptor.
En dicho laboratorio se designó una estación de trabajo para que opere como
proxy interceptor, el cual dependía del proxy de la universidad en una relación
padre/hijo. Además se configuró las 2 estaciones Windows 98 para que utilicen a
nuestro proxy como ruteador. Todas las computadoras del laboratorio son IBM-PC
compatibles, con discos rígidos de 2 GB. La estación designada como servidor
posee 64 MB de memoria RAM, y un procesador Celerón de 333 MHZ. Los
clientes son Pentium-MMX de 200 MHZ.

4.3 Instalación y configuación de Linux Mandrake


La instalación de la distribución Linux Mandraque 8.0 es muy simple, ya que se
distribuye en imágenes de CD-Room booteables, además de poseer instalador
gráfico. Los pasos para realizar la instalación son bootear desde el CD-Room, crear
y formatear las particiones a utilizar, seleccionar los paquetes a instalar, configurar
los disopositivos del sistema, crear los usuarios del sistema e instalar el Lilo. Debe
prestarse atención durante la selección de los paquetes para incluir los
correspondientes al Squid. Después, cuando se seleccionan lo servicios a correr en
el arranque del sistema, se incluyó el demonio del Squid. En su momento se
ingresaron el número IP a ser utilizado por la estación, el número IP del servidor de
DNS y el del ruteador por defecto. Se configuró a la estación con el número IP
170.210.98.7.

4.4 Configuración del Squid


Debido a que el squid fue instalado durante la instalación del sistema solo hubo que
configurarlo para funcionar en forma dependiente del proxy cache principal de la
Universidad, y para que funcione como proxy interceptor.

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 4/7
El archivo de configuración del Squid se ubica en la distribución Mandraque en
el directorio /etc/squid/, con el nombre squid.conf.
Como primera medida se configuró para que el puerto donde atiende sea el
8080, el estándar de facto para conexiones proxy :

http_port 8080

Luego se modifican los permisos de acceso, ya que por defecto no permite


acceder al proxy a nadie:

acl all src 0.0.0.0/0.0.0.0


http_access deny all

La primera línea define una lista de control de acceso (Acces Control List,
ACL) para todos los nodos, y la segunda niega el acceso a los que forman parte de
este grupo (todos).
Para permitir que los nodos de la red 170.210.98.0, correspondiente al
laboratorio de redes, puedan acceder al proxy se modifica:

acl all src 0.0.0.0/0.0.0.0


acl localnet src 170.210.98.0/255.255.255.0
http_access allow localnet
http_access deny all

La segunda línea define un ACL para los nodos de la red local. En la tercera
permitimos el acceso a estos, y en la cuarta negamos a cualquier otro nodo acceder
al proxy.
Debido a que nos encontrábamos detrás de un firewall, no es posible realizar
conexiones directas, sino siempre a través del proxy principal. Para indicar este
comportamiento se incluyeron las siguientes líneas al archivo de configuración:

cache_peer proxy.unlu.edu.ar parent 8080 0 no-query


default

Esta línea indica que el nodo proxy.unlu.edu.ar es un proxy vecino que


funciona como padre, cuyo puerto para conecciones HTTP es 8080; no se indica el
puerto para las peticiones ICP (el cero); se especifica que no se realicen consultas
ICP (no-query), las cuales serían ociosas dado que de todas formas le enviará la
solicitud; y se indica que si no se obtiene una respuesta a través de ningún otro
camino, se debe solicitar a este padre (default). La cláusula defalult por sí misma
no obliga a enviar todas las solicitudes a este proxy, solo indica la salida de último
recurso. Para obligar a no realizar conexiones directas se indica:

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 5/7
never_direct allow all

Esta línea especifica que no se abran conexiones directas con estos destinos
(todos).
Para utilizar las características de proxy interceptor deben agregarse
(descomentarse) las siguientes líneas:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Para que el Squid relea el archivo de configuración con todos los cambios
realzados, se introduce el comando “squid –k reconfigure”. Por defecto, todos los
mensajes de log son escritos en el archivo cache.log, ubicado en el directorio
/var/logs/squid/.

4.5 Instalación y configuración de iptables (Netfilter)


Para que el Squid reciba los paquetes redirigidos debe instalarse la utilidad iptables.
Esta no fue instalada durante la instalación general, pero se agrega fácilmente
mediante el administrador de sofware, o el kpackage; ya que viene incluido en el
CD-Room de la distribución.
Una vez instalada se ejecuta la sentencia:

iptables –t nat –A PREROUTING –i eth0 –p tcp –dprot 80 –


j REDIRECT –to-port 8080

Esta misma sentencia debe ser agregada a alguno de los scripts de inicio, para
que se ejecute cada vez. Básicamente, lo que hace es definir una regla de pre-ruteo
que indica que los paquetes llegados por la interface de red eth0, con el protocolo
TCP, puerto 80 deben ser redirijidos al puerto 8080.

4.6 Configuración de los clientes


Debió indicársele a cada cliente el router de salida. Para lo cual se busca el icono
red en el panel de control, se selecciona el protocolo TCP/IP y se acceden a sus
propiedades, y en la ficha puerta de enlace se coloca como primero el número IP
correspondiente al ruteador donde está funcionando el proxy interceptor, o sea
170.210.98.7.

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 6/7
5 Conclusión

Como resultado de la experiencia puedo decir que la instalación de un proxy


interceptor como el descripto no implica una complicación excesiva, ni una gran
inversión económica, permitiendo a organizaciones de mediano tamaño poder
contar con una herramienta poderosa tanto para el mejoramiento de la calidad del
acceso a los servicios de web, o como para la administración de sus redes.

Referencias

1. Cooper, I., Melve, I. and G. Tomlinson, "Internet Web Replication and Caching
Taxonomy", RFC 3040, Enero 2001.
2. Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. y T.
Berners-Lee, "Hypertext Transfer Protocol --HTTP/1.1", RFC 2616, Junio
1999.
3. Chandhok, N. “Web Distribution Systems: Caching and Replication”,
Noviembre 1999.
4. Cisco System Inc., “Network Caching”,2000.
5. Cieslak, M. y D. Forster, "Cisco Web Cache Coordination Protocol V1.0", en
desarrollo.
6. Cieslak, M., Forster, D., Tiwana, G. y R. Wilson, "Cisco Web Cache
Coordination Protocol V2.0", en desarrollo.
7. Wessels, D., “Squid Frequently Asked Questions”, 2001, disponible en
http://www.squid-cache.org/Doc/FAQ/.
8. Cooper, I. y J. Dilley, "Known HTTP Proxy/Caching Problems", RFC 3143,
Junio 2001.
9. Kiracofe, D., “Transparent Proxy with Squid mini-HOWTO” v1.3, Enero 2001.

407058550.doc parte practica del trabajo final de Teleinformática y Redes, de la


carrera Licenciatura en Sistemas de Información: 18/01/2019 : 18/01/2019 7/7

También podría gustarte