PDF de programación - Squid, un proxy caché para GNU/Linux

Imágen de pdf Squid, un proxy caché para GNU/Linux

Squid, un proxy caché para GNU/Linuxgráfica de visualizaciones

Publicado el 12 de Marzo del 2019
510 visualizaciones desde el 12 de Marzo del 2019
135,8 KB
9 paginas
Creado hace 17a (24/02/2007)
Squid, un proxy caché para GNU/Linux

24 de febrero de 2007

Resumen

En este documento se describe la instalación y configuración del proxy-
cache squid, para controlar el acceso de una red local a Internet. Esta docu-
mentación se elaboró para el curso Máquinas virtuales para la puesta en marcha
de un portal educativo organizado por el CEP de Sevilla en Septiembre de 2006.

cJosé Angel Bernal, Fernando Gordillo, Hugo Santander y Francisco Villegas
cAlberto Molina Coballes y José Domingo Mu ñoz Rodríguez. Algunos Dere-

chos reservados.

Este trabajo es una obra derivada de la documentación del curso Software Libre
y Educacion: servicios de red, gestores de contenidos y seguridad de José Angel Bernal,
Fernando Gordillo, Hugo Santander y Paco Villegas. Esta obra se distribuye bajo
una licencia Attribution-ShareAlike 2.5 de Creative Commons. Para ver una copia
de esta licencia, visite:
http://creativecommons.org/licenses/by-sa/2.5/

1

1. Visión general

Como alternativa al software comercial existente, apareció Squid. Su funcio-
namiento se basa en guardar las peticiones que hacen los usuarios a servidores
web remotos. Cuando un usuario quiere acceder a una página la solicita a Squid,
que se encarga de acceder al servidor web remoto. Una vez obtenida, la reenvía
al usuario, guardando una copia. En el caso que otro usuario solicite de nuevo
esa página, únicamente tendrá que recuperarla de su disco local y servirla.

Otra función que realiza Squid es la de proporcionar un servicio de proxy a
ordenadores que necesiten acceder a Internet a través de alg ún tipo de cortafue-
gos. Por eso es com ún denominar a Squid como un proxy caché, al unir las dos
funcionalidades que presenta.

Squid puede almacenar datos de los protocolos HTTP, FTP, Gopher y DNS.
El tener un servidor de caché especializado puede reducir considerablemente el
uso que se haga del ancho de banda disponible. En lugar de descargar páginas
repetidamente, se comprobará si la página del servidor remoto es más nueva que
la que tiene almacenada en disco. De no ser así, no se molestará en descargarla.

2. Conceptos sobre cachés

Los servidores que act úan de proxy-caché se pueden configurar de varias for-
mas. La forma más simple es un solo servidor proxy-caché en la red en el que
todos los ordenadores pertenecientes a esa red accederán a este servidor, que
será el que almacenará todos los datos. Cuando un usuario solicita al servidor
una página, éste comprueba si fue actualizada desde que fue almacenada. Si tiene
la versión actualizada ahorra al usuario final la descarga de la misma propor-
cionándosela directamente.

Otro método de configurar la salida a Internet de una red de ordenadores es
creando una jerarquía de servidores proxy-caché. Los servidores en un nivel su-
perior a un servidor son denominados padres (parent) y los que se encuentran al
mismo nivel son hermanos o iguales (sibblings, neighbor o peer).

Cuando Squid obtiene una petición de un cliente, comprueba si el objeto so-
licitado (página, gráfico o fichero) está en el disco del servidor. Si está, comprueba
que el objeto no está caducado y procede a enviarlo al cliente. Si, por el contrario,
el objeto no está o ha caducado, comprueba que otras cachés (padres o hermanas)
lo tengan. Lo hace a su vez enviando paquetes UDP a esas máquinas con la URL.

3.

Instalación

Se instala simplemente con:

apt-get install squid
Los ficheros y directorios más importantes son:

En el directorio /etc/squid se guardan los ficheros de configuración. Es-
pecíficamente en el fichero squid.conf se encuentra la mayor parte de
ella.

2

Una parte importante de ficheros se encuentran en /usr/lib/squid, pero
no tendremos que preocuparnos de ellos por ahora.

La documentación se encuentra en /usr/share/doc/squid-x.x.x/

En /var/spool/squid se van a encontrar las páginas “cacheadas”, es de-
cir, las traídas desde Internet y que se almacenan para la próxima vez que
las solicite alguien y no hayan cambiado.

En /var/log/squid se guardan los accesos de nuestros usuarios a Inter-
net a través del proxy, así como los posibles errores que hayan ocurrido.

4. Configuración de Squid

El archivo de configuración que utiliza Squid es /etc/squid/squid.conf,
pudiendo encontrarse en otras localizaciones dependiendo de la instalación. Este
archivo está ampliamente comentado por lo que no lo analizaremos de forma
detallada, sino que haremos un rápido recorrido por el fichero de configuración
centrándonos en los aspectos que consideremos más importantes.

Una de las primeras directivas de configuración que aparece es:

http_port 3128

que indica el puerto en el que va a estar escuchando Squid.

Como ya hemos descrito, Squid es un proxy-caché y pueden existir elementos
que no queramos almacenar. Esto puede conseguirse a través del fichero de con-
figuración. Con la siguiente línea no almacenaríamos en caché ning ún objeto que
se encuentre en la ruta cgi-bin:

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

Posteriormente veremos con más detalle la sintaxis y usos de la directiva acl
para la creación de clases.

Es posible también definir parámetros de uso de memoria. Si queremos definir
la cantidad de memoria RAM que deseamos asignar a las funciones de Squid con
un valor de 8 Mb1

cache_mem 8 MB

Es posible también definir cuando se empieza a eliminar archivos de la caché.
Cuando la caché llega al total del porcentaje de cache swap high Squid comien-
za a eliminar los elementos almacenados menos utilizados hasta que llega al total
del porcentaje cache swap low.

cache_swap_low 90
cache_swap_high 95

1Con las configuraciones actuales y en función del uso de nuestra máquina, en general, debe-

mos optar por un valor mayor.

3

Otra alternativa para regular el caché es configurarlo para que no almacene archivos
que tengan un tama ño mayor que el indicado:

maximum_object_size 4096 KB

Ya hemos comentado que el caché de Squid es un espacio en disco reservado para
almacenar los distintos objetos que se piden a través del proxy. Será necesario
definir el lugar donde se va a almacenar el caché2.

cache_dir ufs /var/spool/squid 100 16 256

El formato genérico de esta directiva es:

cache_dir tipo directorio Mbytes L1 L2 [options]

tipo. Tipo de sistema de almacenamiento a utilizar (ufs es el único que
está definido por defecto en la instalación).

directorio. Ruta del directorio que se va a utilizar para guardar los datos
del caché.

Mbytes. Cantidad de espacio en disco que se va a utilizar para el caché. Si
queremos que utilice el disco entero es recomendable poner aquí un 20 %
menos del tama ño.

L1. N úmero de subdirectorios de primer nivel que serán creados bajo direc-
torio.

L2. N úmero de subdirectorios de segundo nivel que serán creados bajo cada
subdirectorio de primer nivel.

Una consideración a tener en cuenta es que el contenido de este directorio va a
cambiar con frecuencia, siendo recomendable colocarlo en una partición separada
por varias razones:

La caché podría sobrepasar al resto del sistema de archivos o de la partición
que comparte con otros procesos.

Cuanto más cambie un sistema de archivos, mayores son también las posi-
bilidades de que se encuentre da ñado. Mantener la caché en una partición
limita la parte de su sistema completo de archivos que resulta da ñado.

También es posible configurar la localización de los archivos de log así como la
información general de la caché3

access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

2El valor de 100MB es escaso para los discos duros actuales, un valor de 1GB puede ser mejor

si nuestro disco lo permite.

3Los ficheros de contabilidad que deja, pueden ser monitorizados para impedir accesos a Inter-
net no deseados. Un ejemplo real es el de un organismo que manda semanalmente a los usuarios
de Internet un fichero con los accesos en ese periodo. El usuario se siente controlado y es más
responsable con sus accesos.
Una herramienta sencilla de configurar y muy útil para obtener estadísticas sobre las páginas
visitadas es sarg.

4

5. Control de acceso

Otro aspecto importante en la configuración de Squid son las listas de control
de acceso o ACL4. Una de sus principales funciones es la de permitir o denegar
el acceso a la caché, aunque no se queda aquí. Las ACL pueden usarse también
para definir las jerarquías de caché.

El procedimiento que se sigue es definir las distintas ACL y posteriormente se
permite o deniega el acceso a una determinada función de la caché. La opción de
configuración encargada es http access, que permite o deniega al navegador
web el acceso a Squid. Es importante tener en cuenta que Squid lee las directivas
de arriba a abajo para determinar qué regla aplicar.

Veamos un primer ejemplo de uso. Supongamos que disponemos de una red
de clase C (con direcciones IP dentro de la red 172.26.0.0) y que solo queremos
permitir el acceso a Internet a través de Squid a estas máquinas.

acl hostpermitidos src 172.26.0.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow hostpermitidos
http_access deny all

Las dos primeras líneas de este ejemplo crean las ACL hostpermitidos y all.
Cuando utilicemos un fichero como origen de los datos de la ACL deberá con-
tener un elemento por línea. Algunos de los tipos de ACL que podemos utilizar
en esta directiva son:

Direcciones IP de los clientes. Especifica la dirección IP local, dirección de
red o rango de direcciones a buscar

acl nombreACL src dirIP/máscara
acl nombreACL src dirIP1-dirIP2/máscara

Dirección IP de la URL destino. Especifica la dirección IP de la máquina
remota, dirección de red o rango de dirección a buscar

acl nombreACL dst dirIP/máscara
acl nombreACL dst dirIP1-dirIP2/máscara

Dominio de la máquina cliente. Especifica el host.dominio.extensión
o bien el dominio.extensión a buscar

acl nom
  • Links de descarga
http://lwp-l.com/pdf15479

Comentarios de: Squid, un proxy caché para GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad