SERVIDOR PROXY SQUID
¿Que es un proxy?
Es un software que realiza tareas de servidor intermediario. Su uso común es utilizarlo para compartir internet y se conecta directamente a internet y por otra interfaz a la red interna, de modo que todos los pedidos a internet de las computadoras pertenecientes a la LAN pasan a través del proxy y es este en realidad el que hace las conexiones hacia la web
Programa o dispositivo que realiza una acción en representación de otro, esto es, si una hipotética máquina A solicita un recurso a una C, lo hará mediante una petición a B; C entonces no sabrá que la petición procedió originalmente de A. Esta situación estratégica de punto intermedio suele ser aprovechada para soportar una serie de funcionalidades: proporcionar caché, control de acceso, registro del tráfico, prohibir cierto tipo de tráfico etc.
Características
Actuar como cache de contenido principalmente web (http). Esto mejora el desempeño de una red consumiendo menos recursos.
La palabra proxy significa intermediario en inglés.
• El uso más común es el de servidor proxy, que es un ordenador que intercepta las conexiones de red que un cliente hace a un servidor de destino.
• De ellos, el más famoso es el servidor proxy web (comúnmente conocido solamente como «proxy»). Intercepta la navegación de los clientes por páginas web, por varios motivos posibles: seguridad, rendimiento, anonimato, etc.
• También existen proxies para otros protocolos, como el proxy de FTP.
• El proxy ARP puede hacer de enrutador en una red, ya que hace de intermediario entre ordenadores.
• Proxy (patrón de diseño) también es un patrón de diseño (programación) con el mismo esquema que el proxy de red.
• Un componente hardware también puede actuar como intermediario para otros. Como se ve, proxy tiene un significado muy general, aunque siempre es sinónimo de intermediario. Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo inicial
Hay dos tipos de proxys atendiendo a quien es el que quiere implementar la política del proxy:
• proxy local: En este caso el que quiere implementar la política es el mismo que hace la petición. Por eso se le llama local. Suelen estar en la misma máquina que el cliente que hace las peticiones. Son muy usados para que el cliente pueda controlar el tráfico y pueda establecer reglas de filtrado que por ejemplo pueden asegurar que no se revela información privada (Proxys de filtrado para mejora de la privacidad).
• proxy externo: El que quiere implementar la política del proxy es una entidad externa. Por eso se le llamaexterno. Se suelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.
SQUID
Software de libre distribución para realizar la tarea de un servidor proxy con prestaciones muy profesionales. Provee potentes opciones para tener un completo control sobre los sitios que se visitan, así como para filtrar, permitir o bloquear el acceso de determinados equipos, ip’s, dominios, etc.
Ventajas
En general (no sólo en informática), los proxis hacen posible:
• Control: sólo el intermediario hace el trabajo real, por tanto se pueden limitar y restringir los derechos de los usuarios, y dar permisos sólo al proxy.
• Ahorro. Sólo uno de los usuarios (el proxy) ha de estar preparado para hacer el trabajo real. Con estar preparado queremos decir que es el único que necesita los recursos necesarios para hacer esa funcionalidad. Ejemplos de recursos necesarios para hacer la función pueden ser la capacidad y lógica de cómputo o la dirección de red externa (IP).
• Velocidad. Si varios clientes van a pedir el mismo recurso, el proxy puede hacer caché: guardar la respuesta de una petición para darla directamente cuando otro usuario la pida. Así no tiene que volver a contactar con el destino, y acaba más rápido.
• Filtrado. El proxy puede negarse a responder algunas peticiones si detecta que están prohibidas.
• Modificación. Como intermediario que es, un proxy puede falsificar información, o modificarla siguiendo un algoritmo.
• Anonimato. Si todos lo usuarios se identifican como uno sólo, es difícil que el recurso accedido pueda diferenciarlos. Pero esto puede ser malo, por ejemplo cuando hay que hacer necesariamente la identificación.
Desventajas
En general (no sólo en informática), el uso de un intermediario puede provocar:
• Abuso. Al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es posible que haga algún trabajo que no toque. Por tanto, ha de controlar quién tiene acceso y quién no a sus servicios, cosa que normalmente es muy difícil.
• Carga. Un proxy ha de hacer el trabajo de muchos usuarios.
• Intromisión. Es un paso más entre origen y destino, y algunos usuarios pueden no querer pasar por el proxy. Y menos si hace de caché y guarda copias de los datos.
• Incoherencia. Si hace de caché, es posible que se equivoque y dé una respuesta antigua cuando hay una más reciente en el recurso de destino. En realidad este problema no existe con los servidores proxy actuales, ya que se conectan con el servidor remoto para comprobar que la versión que tiene en cache sigue siendo la misma que la existente en el servidr remoto.
• Irregularidad. El hecho de que el proxy represente a más de un usuario da problemas en muchos escenarios, en concreto los que presuponen una comunicación directa entre 1 emisor y 1 receptor (como TCP/IP)
FUNCIONAMIENTO
Realiza los almacenamientos de objetos utilizando diferentes algoritmos:
LRU: Se eliminan de la cache los objetos que no han sido accedidos en mucho tiempo, manteniendo en la cache los que han sido utilizados más recientemente.
LFUDA: Los objetos mas solicitados permanecen en el cache sin importar su tamaño, de modo que un objeto grande que se solicite con mayor frecuencia impedirá que se pueda hacer cache de objetos pequeños que se soliciten con menor frecuencia.
GDSF: Optimiza la eficiencia por objeto, manteniendo en el cache los objetos pequeños más
Frecuentemente solicitados; descarta del cache objetos grandes que sean solicitado con frecuencia.
COFIGURACION
Se realiza en un único archivo de texto plano generalmente ubicado en /etc/squid/squid.conf. La sintaxis en este archivo debe comenzar en la primera columna, sin dejar espacios.
Nombre Del Host Y Puerto
La primera configuración básica debe ser el nombre y los puertos del host. Por defecto SQUID escucha en el puerto 3128 y utiliza el 3130 para comunicarse mediante ICP con otras caches.
Tamaño De La Memoria Cache
Se fija el directorio y el espacio que se utilizara del disco rígido para almacenar las paginas.
Tiempo De Vida De La Cache
Podemos configurar el tiempo que los objetos permanecerán almacenados en el servidor.
Control De Acceso
Establecer listas de control de acceso que definan una red o bien ciertas máquinas en particular. A cada clase le asigna una regla de control de acceso que funcionara bloqueando o permitiendo el acceso a través de squid.
Es importante tener en cuenta que las acl educativas y diario no hubiesen coincidido si se visitaban sitios como fich.unl.edu.ar o deportes.clarin.com. Para bloquear también los subdominios se debe utilizar el punto
Para que una acr coincida se utiliza la función AND. Para el ejemplo: http Access allow educativas safeport debe accederse a sitios .edu.ar al puerto 443 para que sea permitido el acceso.
Permisos Para Icp
En las reglas de control de acceso también se debe otorgar permiso al dialogo ICP con la directiva icp_access:
Otro símbolo reservado consiste en la utilización del signo de admiración de cierre: ! .Se utiliza como negación de una determinada acl, para el ejemplo, !LAN1 significa que el acceso a SQUID es para todos los que no formen parte de LAN1. Una directiva importante es never_direct, utilizada en conjunto con una acl para aquellos pedidos que nunca deben ser enviados directamente hacia el servidor original.
Autenticación
SQUID permite realizar autenticación mediante diferentes métodos, Basic, Digest y NTLM.
Verificacion De Logs
SQUID almacena en el directorio /var/log/squid información sobre los accesos, diálogos con otros servidores SQUID, etc. Existen varios archivos de logs, el que nos brinda información sobre el acceso al servidor es access.log.
Un ejemplo simple
Un servidor proxy simple podrıa definirse de la siguiente manera:
Listas de control de acceso:
#---parámetros globales---#
visible_hostname squid1
http_port 3128
icp_port 3130
cache_dir ufs /var/cache/squid 400 16 256
#---consulta de caches---#
#cache_peer <host> <type> <http_port> <icp_port> <options>
cache_peer 192.168.1.252 parent 3128 7 no-query default
cache_peer 192.168.1.108 sibling 3128 3130 proxy-only
#--- ACL---#
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
Acl localhost src 127.0.0.1/255.255.255.255
acl webserver dst 192.168.1.10/255.255.255.255
acl todalared src 192.168.1.0/255.255.255.0
#--- Reglas de control de acceso---#
Http_access allow manager localhost
http_access deny manager
Never_direct allow !webserver
Http_access allow todalared
Http_ access deny all
Icp_access allow all
Trabajo Práctico
Para realizar el práctico nos basaremos en la topología de la siguiente figura. En donde se configurar
´a tres servidores SQUID, uno como Parent y dos como Sibling.
Figura 4: Estructura Jerárquica
1. Compruebe la conectividad entre tres hosts mediante el comando ping.
2. Configure tres servidores utilizando el puerto 3128 para pedidos http y el puerto 3130 para la Comunicación entre servidores.
3. Configuración del servidor Parent
3.1 Este servidor debe realizar los pedidos al proxy 192.168.0.120 sin utilizar ICP, tenga en Cuenta que para evitar pedidos ICP debe utilizar la opci´on no-query.
3.2 Permita el acceso de toda la red 10.0.2.0/24
4. Configuración de los servidores Sibling
4.1 Estos servidores deben realizar los pedidos al servidor Parent
4.2 Entre ambos servidores Siblings deben consultarse sus caches sin almacenar localmente los objetos ya almacenados en el hermano (proxy-only).
5. Compruebe el funcionamiento de los servidores visitando diferentes sitios y verifique los logs.
6. Bloquee el acceso al dominio unl.edu.ar y compruebe su funcionamiento.
7. Bloquee el accesso de toda la red 10.0.2.0/24 y compruebe su funcionamiento.
Referencias
O’Reilly - Squid The Definitive Guide 2004
Squid Web Proxy Cache - www.squid-cache.org
The Linux Document Project - http://es.tldp.org
ViSOLVE - www.visolve.com/squid/
SUSE LINUX - www.suse.com/training
Linux Para Todos - www.linuxparatodos.net
SARG - http://sarg.sourceforge.net/sarg.php
Webalizer - http://www.mrunix.net/webalizer/
Squid es el software para servidor Proxy más popular y extendido entre los sistemas operativos basados sobre UNIX, que es utilizado para administrar redes de computadoras, y sobre todo para controlar eltrafico de internet
ResponderEliminarUn Proxy: Es un software que realiza tareas de servidor intermediario. Su uso común es utilizarlo para compartir internet y se conecta directamente a internet y por otra interfaz a la red interna
ResponderEliminarsquid es uno de los proxys mas completos e importantes ya que se puede realizar una gran variedad de cosas o actividades para restrinjir una red donde existen diversos usuarios.
ResponderEliminar