resumen squid

7
Resumen Squid La palabra proxy significa intermediario en inglés. Un proxy, en una red informática, es un 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. Está 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étera. 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. Tipos de 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 llama externo. Se suelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc. Ventajas En general (no sólo en informática), los proxies 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

Upload: ramiro-alfonzo-gomez

Post on 19-Dec-2014

751 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Resumen squid

Resumen Squid

La palabra proxy significa intermediario en inglés. Un proxy, en una red informática, es un 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. Está 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étera.

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.

Tipos de 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 llama externo. Se suelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.

Ventajas En general (no sólo en informática), los proxies 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 los 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.

Page 2: Resumen squid

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 servidor 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).

SQUID permite realizar autenticación mediante diferentes métodos, Basic, Digest y NTLM. Estos métodos especifican como SQUID recibe el nombre de usuario y la clave desde los clientes. Por cada método, SQUID provee varios módulos de autenticación (helpers) que serán los encargados de realizar la validación (NCSA, PAM, SASL, YP y SMB). Aquí veremos como configurar Basic utilizando el modulo NCSA.

Creación de usuarios

Desde la línea de comandos, creamos un archivo en el directorio /etc/squid/claves: #touch /etc/squid/claves y luego los usuarios:

# htpasswd2 /etc/squid/claves usuario1

Luego se solicitaría la clave y la confirmación de la misma. Hay que tener en cuenta que htpasswd2

Debe estar instalado (pertenece a Apache2).

5

Configuración

En el archivo /etc/squid/squid.conf se debe configurar el tipo de autenticación (basic), la ruta del modulo NCSA y la ruta del archivo que contiene los usuarios y sus passwords.

auth_param basic program /usr/sbin/ncsa_auth /etc/squid/claves

Page 3: Resumen squid

Luego se debe crear una acl que al ser invocada en una regla de control de acceso solicitara el usuario y la clave: acl con_clave proxy_auth REQUIRED Para comprender como se utiliza la acl que definimos veremos un ejemplo. Si se desea que todas las

Personas que accedan al sitio www.ociosos.com ingresen un usuario y clave, y que para el resto de las paginas no haya restricción alguna:

acl all src 0.0.0.0/0.0.0.0

acl ocio dstdomain www.ociosos.com

acl con_clave proxy_auth REQUIRED

http_access allow ocio con_clave

http_access allow all

Si en cambio, quisieramos que para navergar por el proxy todos los usuarios de la red tengan que ingresar usuario y clave, dentro de las reglas de control de accesso basta con poner:

http_access allow all con_clave

La combinación de diferentes acl nos otorga gran flexibilidad, teniendo en cuenta que agregando a cualquier regla de control de accesso la acl con_clave obligamos a validar contra SQUID para permitir el acceso a un determinado sitio, ip, en alg´un rango horario, etc.

Autenticación por grupos La autenticación que vimos en el punto anterior tiene una deficiencia, supongamos que quisiéramos subdividir un cierto grupo de usuarios para que tengan diferentes permisos de acceso a sitios web. Por ejemplo, el grupo de comunicación deberá poder acceder a leer los diarios, no así el grupo de desarrollo que solo tiene permitido ingresar al sitio www.lawebdelprogramador.com. Con lo visto anteriormente no podríamos hacerlo ya que tenemos todos los usuarios y sus correspondientes claves en un mismo archivo. Para solucionar este inconveniente deberíamos realizar pequeñas modificaciones a las listas de

Control de acceso. La definición de los usuarios con sus claves ser´a exactamente igual que en el punto anterior, a diferencia que ahora podremos definir en un nuevo archivo los usuarios que pertenecen a un determinado grupo. Con el siguiente ejemplo quedaría mas claro.

acl all src 0.0.0.0/0.0.0.0

acl diario dstdomain www.litoral.com.ar

acl web_programar dstdomain www.lawebdelprogramador.com

acl con_clave proxy_auth REQUIRED

acl comunicacion proxy_auth ‘‘/etc/squid/comunicacion’’

acl desarrolladores proxy_auth ‘‘/etc/squid/desarrolladores’’

http_access allow desarrolladores web_programar

Page 4: Resumen squid

http_access allow comunicacion diario

Cada usuario que pertenezca a un grupo deber´a encontrarse en una ´unica linea ya sea para el grupo de comunicación ( /etc/squid/comunicacion) como para el grupo de desarrolladores (/etc/squid/desarrolladores

). Y también debería estar creado mediante el comando htpasswd2 al igual que en el punto anterior

en /etc/squid/claves.

En conclusi´on, todos los usuarios por m´as que pertenezcan a diferentes grupos deben ser creados en

un archivo utilizando htpasswd2, la divisi´on de grupos se realizar´a guardando los nombres de los

usuarios en diferentes archivos, uno por linea y luego se aplicar´an como se vio en el ejemplo mediante

las acl y las reglas de control de acceso (http_access ).

6

3.5. Verificaci´on de logs

SQUID almacena en el directorio /var/log/squid informaci´on sobre los accesos, di´alogos con otros

servidores SQUID, etc. Existen varios archivos de logs, el que nos brinda informaci´on sobre el acceso

al servidor es access.log. Cuando se entrega a un cliente un objeto que se encontraba almacenado, se

produce un HIT y si el objeto debe ser consultado hacia internet entonces es un MISS.

El analisis de los logs por lo general se realiza con herramientas de software independientes de SQUID.

Dos de las m´as utilizadas son SARG (Squid Analysis Report Grpahics) y Webalizer, las mismas generan

reportes gr´aficos con estad´ısticas en un archivo html. Son una excelente herramienta para llevar un

control detallado sobre la utilizaci´on de la navegaci´on web.

3.6. Un ejemplo simple

Una servidor proxy simple podr´ıa definirse de la siguiente manera:

Page 5: Resumen squid

Listas de control de acceso:

#---parametros globales---#

visible_hostname squid1

http_port 3128

icp_port 3130

cache_dir ufs /var/cache/squid 400 16 256

#---consulta de cach´es---#

#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

Squid es un sistema de admistracion que está bajo la distribución de Linux este nos permite tener un control de usuarios conectados a la red local Una de las funciones principales de un

Page 6: Resumen squid

servidor proxy es actuar como cache de contenido principalmente Web (http). Esto mejora el desempeño de una red consumiendo menos recursos, debido que frente a un Nuevo pedido de un sitio que ya ha sido realizado, en vez de generar tráfico hacia internet se entrega El sitio cuyo contenido se encuentra almacenado en el servidor.

Squid es el software para servidor Proxy más popular y extendido entre los sistemas operativos basados sobre UNIX®. Es muy confiable, robusto y versátil. Al ser software libre, además de estar disponible el código fuente, está libre del pago de costosas licencias por uso o con restricción a un uso con determinado número de usuarios.