Está en la página 1de 79

I rontec: Curso avanzado de squi d

Miguel Angel Nieto


miguelangel@irontec.com
Curso avanzado de Squid
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Qu es Squid?

Squid escucha las peticiones que hacen los usuarios de


los objetos de internet, se los entrega y se guarda una
copia !s un pro"y

# esa copia se le deno$ina cache %or lo tanto, Squid


es un pro"y&cache

!s so't(are libre

)uy con'igurable

*+pido y e'icaz
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%orqu es So't(are libre?

,esde Irontec aposta$os por el So't(are -ibre por su


al ta 'i abi l i dad y 'l e"i bi l i dad

.racias a las posibilidades que nos o'rece el l i bre


acceso a l as apl i caci ones y a su c/di go,
pode$os desarrollar proyectos de gran co$plejidad de
'or$a r+pida y a precios co$petitivos

!l So't(are -ibre proporci ona a $uchas de


nuestras sol uci ones una potenci a di '0 ci l $ente
alcanzable por siste$as privativos en plazos y en costes

*epresenta para Irontec un $odelo $+s justo para con


la sociedad en la que vivi$os
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#lgunos datos sobre Squid

!"isten dos versiones en desarollo Stable&12 y 3esting&


45

-a p+gina o'icial se encuentra en


http:66(((squid&cacheorg6

Se integra con otras aplicaciones, co$o squidguard

3iene $uchos $odos de 'unciona$iento Cache,


Inverso, 3ransparente
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!sque$a %ro"y nor$al
Internet
*outer
%ro"y&cache 7or$al
8suarios
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!sque$a %ro"y Inverso
Internet
*outer
%ro"y&cache Inverso
Servidor (eb
%eticiones (eb
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!sque$a %ro"y 3ransparente
Internet
*outer
%ro"y&cache 3ransparente
8suarios
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9tros $odos de 'unciona$iento

:i l tro de conteni dos


;loquear el acceso a contenido por categor0as

:i re(al l de seguri dad


!s una aplicaci/n de seguridad restrictiva, per$itiendo la salida a equipos o
subredes y denegandolo a otras

#n/ni $o
%rovee acceso (eb an/ni$o
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
-a biblia

Squid es $uy con'igurable 3iene $uchas opciones !s


i$posible conocer todas

%ode$os recurrir a la biblia


http:66(((visolveco$6squid6squid456contentsphp

3odas las opciones posibles con eje$plos ,ivido en


categor0as

Ser+ necesario tenerlo a $ano sie$pre que se tenga


duda
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Instalaci/n

Se puede hacer por c/digo 'uente o descargando el


binario con las herra$ientas de la distribuci/n
seleccionada

!l binario pude no contener todas las opciones que


necesita$os

#l co$pilar es necesario indicar que caracter0sticas


desea$os

3ene$os una lista con 6con'igure &&help


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Instalaci/n por c/digo 'uente

&&pre'i "<%*!:I=
,onde quere$os que se dejen los 'icheros >por de'ecto
6usr6local6squid?

&&enabl e&ssl
Soporte para https

&&enabl e&de'aul t&err&l anguage<es


!n que idio$a quere$os los $ensajes de error

&&enabl e&l i nu"&net'i l ter


@abilita el uso de iptables para pro"ys transparente

&&enabl e&storei o<au's,coss,di sAd,u's


@abilita$os los distintos tipos de 'or$as para al$acenar los 'icheros

&&enabl e&basi c&auth&hel pers<B-,#%B


@abilita$os la autenticaci/n ldap
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,atos b+sicos

!l 'ichero de con'iguraci/n se encuentra en


6etc6squid6squidcon'

Ca esta con'igurado para 'uncionar, contiene $ultiples


eje$plos y e"plicaciones

-os logs se guardan en 6var6log6squid

-os $ensajes de error a la hora de arrancar o parar el


servicio se encuentran en 6var6log6syslog o
6var6log6$essages
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%regunta
Cmo podemos controlar el acceso a nuestro
servidor?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
*espuesta

I%Ds

)#CDs

login6pass(ord

@orarios

Control de categor0as

-istas de acceso

C $+s
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Con'iguraci/n b+sica

#bri$os el 'ichero de con'iguraci/n y escribi$os:


httpEport F5F5
accessElog 6var6log6squid6accesslog
cacheElog 6var6log6squid6cachelog
cacheEstoreElog 6var6log6squid6storelog
acl all src 555565555
acl yo src G1H55G641
httpEaccess allo( yo
httpEaccess deny all

*einicia$os squid para que cargue la nueva con'iguraci/n


6etc6initd6squid restart

Con'igura$os 'ire'o" para que use G1H55G co$o pro"y


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
-ogs de squid

access l og
Se guardan las peticiones que se le hacen al pro"y
GGF44I4IIFFI2 451 G1H55G 3C%E)ISS6155 G1IJ4 .!3 http:66pacAagesdebianorg6stable6(eb6squid & ,I*!C36FHG52KJ2 te"t6ht$l

cache l og
#qu0 se van guardando los $ensajes relacionados con el siste$a de
al$acena$iento y cache
155H65H651 GH:K5:1GL -ocal cache digest enabledM rebuild6re(rite every 425564255 sec
155H65H651 GH:K5:1GL *ebuilding storage in 6var6cache6squid >C-!#7?
155H65H651 GH:K5:1GL 8sing -east -oad store dir selection
155H65H651 GH:K5:1GL Set Current ,irectory to 6var6cache6squid

store l og
Se al$acena in'or$aci/n sobre los objetos al$acenados ,entro de los
ca$pos $as i$portantes tene$os la segunda colu$na, lla$ada 3#., que
puede tener los siguientes valores:
SN#%I 7 >la cache e"istia en el disco duro y lo ha leido en $e$oria?,
SN#%983 >guardado en disco duro? or *!-!#S! >eli$inado de la cache?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#C-Ds

-as listas de control de acceso nos per$ite de'inir distintos par+$etros para
conceder o denegar accesos a nuestro pro"y !n el anterior eje$plo donde
$ontaba$os un pro"y b+sico pudi$os ver un pri$er eje$plo de una lista de
acceso:
acl todos src 555565555

Su estructura es l a si gui ente:


acl no$bre regl a par+$etros

!n el eje$plo, la acl se lla$a OallP, con la regla src >source? y co$o par+$etro
una ip y su $+scara de red

9tros ej e$pl os de acl :


acl co$er ti$e ) 3 N @ : G4:55&GK:55
acl dest dst GI1G2F1G641
acl $p4 urlpathErege" &i 6$p4Q
acl navegador bro(ser !"plorer
acl debian urlErege" debian

Ra$os a l a bi bl i a para ver todas


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#C-Ds

-as acl por si $is$as no hacen nada, ya que no deci$os si acepta$os o


nega$os dichas acl !s necesario denegar o aceptar las #C-s

%ara ello se utiliza httpEaccess y httpEdeny:


httpEaccess deny co$er $p4 e"plorer
httpEaccess alo( todos

!s $uy i$portante el orden en el que se establecen las reglas de per$iso o


denegaci/n
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#C-Ds
@ay que tener especi al cui dado con:

9lvidarnos establecer las ordenes de denegaci/n !stablecer $uchas


ordenes allo(, sin ninguna deny no sirve de nada da lo $is$o que
per$ita$os una serie de ips u horarios, por eje$plo, si luego no
denega$os todo lo de$as 7o denegar nada, i$plica aceptar todo

-as reglas se leen de arriba abajo Si en la pri$era regla tene$os un


Oallo( todosP que per$ite todo y el deny para $p4 lo pone$os en la
siguiente linea, esta no se tendr+ en cuenta Ca que pri$ero se lee el
alo( y una vez que tene$os el $p4 en nuestras $anos, se lee el deny
$p4 -o nor$al es pri$ero denegar y luego per$itir

%or de'ecto ninguna ip tiene acceso al pro"y ,ebe establecerse antes


de nada una ip o rango de ips que podran hacer uso del pro"y
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicios #C-

%er$itir el acceso a la subred


7o$bre: subred

,ar v0a libre a tu ip y la de tu co$paSero


7o$bre: a$igos

,enegar el acceso los 'ines de se$ana


7o$bre: 'inde

7o per$itir el acceso a $icroso'tco$


7o$bre: $icro

,enegar las cone"iones salientes a puerto F5F5 7o$bre:


puerto
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicios #C-

%er$itir el acceso a un co$paSero


acl subred src direccionip61K

,ar v0a libre a tu ip ya de tu co$paSero


acl a$igos src 6etc6squid6a$igos

,enegar el acceso los 'ines de se$ana


acl 'inde ti$e #S

7o per$itir el acceso a $icroso'tco$


acl $icro dstdo$ain $icroso'tco$

,enegar las cone"iones salientes a puerto F5F5


acl puerto port F5F5

*eglas de acceso:
httpEaccess allo( a$igos
httpEacess allo( subred T'inde T$icro Tport
httpEaccess deny all
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,ebbuging de #C-Ds

debugEoptions #--,G 44,1

.uarda en cachelog un log de los acl que se acceden y


por qu la cone"i/n se acepta o se rechaza

!s $uy util cuando tene$os $uchos httpEaccess y


httpEaccess deny, para saber en cual se detiene un
intento de acceso
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9tras 'or$as de 'iltrar el acceso
Con filtrar por ip y mac es suficiente? Qu
problemas tiene? Qu soluciones podemos
encontrar?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Control de usuarios
Squid per$ite el acceso $ediante login6pass(ord
!s posible conectarse a servidores #,, -,#%, Sa$ba4,
autenticaci/n ncsa -a autenticaci/n se hace $ediante
progra$as e"ternos a los que lla$a squid
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
7CS#

-os usuarios y claves se guardan en un 'ichero, co$o el


htpass(d de apache

!s la opci/n $+s sencilla si tene$os pocos usuarios

!l 'ichero de claves se crea con htpass(d

!l progra$a que har+ la autenticaci/n se encuentra en:


6usr6lib6squid6ncsaEauth

U# con'igurarT 8suario: pepe Clave: pepe


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Con'iguraci/n 7CS#

debianldap:~# htpasswd -c /etc/squid/passwd pepe

debianldap:~# chmod o+r /etc/squid/passwd

Le indicamos la ruta del programa y las claves.


auth_param basic program /usr/lib/squid/ncsa_auth
/etc/squid/passwd

Indica el nmero de procesos de autenticacin a crear.


auth_param basic children 5

El texto que aparecer al pedirnos usuario y clave.


auth_param basic realm Squid proxy-caching web server

El tiempo que tardar en pedirte de nuevo la clave.


auth_param basic credentialsttl 2 hours
acl passwd proxy_auth REQUIRED
http_access allow yo passwd
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#utenticaci/n -,#% contra #,

auth_param basic program /usr/lib/squid/ldap_auth -R


-b "dc=servidornt,dc=local" -D
"cn=administrador,cn=users,dc=servidornt,dc=local" -w
"clave" -f sAMAccountName=%s -h 192.168.0.1

-b indicamos el nombre de dominio que tiene el


servidor. servidornt.local

-D indicamos con que usuario se conectar squid para


comprobar los usuarios y claves

-w la clave del usuario con el que nos conectaremos al


AD

-f %s es el usuario que escribiremos al hacer login en


squid. Se guarda en la variable "s" y esta ser la que
se compruebe en el AD.

-h la ip del servidor controlador de dominio


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9tra 'or$a de acceder a los logs
Miremos los logs de access. Son infumables,
busquemos otra forma de visualiar los datos.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!stad0sticas con Sarg
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Caracter0sticas

%er$ite listar las p+ginas accedidas

-ogs tanto por I% co$o por usuario

%er$ite saber cuales son las p+ginas $+s visitadas, y la


cantidad de datos cacheados

,espus de un par de d0as de estad0sticas nos puede


ayudar a con'igurar $ejor nuestro squid

-a instalaci/n es sencilla
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%regunta
!a sabemos "acer listas de control de acceso,
pero... Qu pasa si queremos filtrar miles de
p#ginas? Con que problemas nos encontramos?
Soluciones?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Control de categorias

!"isten unas bases de datos con $iles de p+ginas (eb


ordenadas por categor0as

%ode$os usar esas bases de datos para per$itir y


denegar accesos a nuestros usuarios a $iles de p+ginas
con una sola linea

Con una acl de dstdo$ain necesitaria$os dos vidas


para 'iltrar todo el porno de internet

Squidguard nos ayudar+ en esta tarea


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Qu necesita$os?

8na lista en 'or$ato te"to con $illones de p+ginas


categorizadas

Que se actualize constante$ente

Que tenga un precio razonable o incluso que sea


gratuito

Que sea co$patible con squidguard


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,e donde obtene$os la base de datos

http:66squidguardshallade6shallalistht$l ,ispone de
GK55555 entradas

,escarga$os y desco$pri$i$os el targz en


6var6squid6db

#bri$os el 'ichero de con'iguraci/n de


6etc6squid6squid.uardcon'
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Con'iguraci/n de Squid.uard
dbhome /var/squid/db
logdir /var/log/squid/squidGuard.log
dest porn {
domainlist porn/domains
urllist porn/urls
log pornaccesses
}
acl {
default {
pass !porn all
redirect http://localhost/block.html
}
}
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Creaci/n de base de datos

8na vez con'igurado squid.uardcon' es necesario


crear las bases de datos que he$os con'igurado

Si ejecuta$os squid.uard &C all nos crear+ la base de


datos de porn

Con'igura$os squid para que use squid.uard


#Sadi$os:
redirectEprogra$ 6usr6bin6squid.uard &c 6etc6squid6squid.uardcon'

C# !S3V, rei ni ci a$os squi d y l i sto


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicio

Crear una nueva regla para p+ginas relacionadas con las


drogas

7o per$itir el acceso

.uardar los logs de acceso en OlogdrogasP

%er$itir$e a $i ip el acceso a las drogas y al porno

%ara buscar ayuda:


"ttp$%%&&&.squidguard.org%'oc%e(tended."tml
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Soluci/n
dbhome /var/squid/db
logdir /var/log/squid
src yo {
ip 10.10.0.210
}
dest porno{
domainlist porn/domains
urllist porn/urls
log porno
}
dest drogas{
domainlist drugs/domains
urllist drugs/urls
log drogas
}
acl {
yo {
pass all
}
default {
pass !porno !drogas all
redirect http://www.disney.com
}
}
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%regunta

'nde se encuentran los cuellos de botella en un


servidor Squid?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
*espuesta

#ccesos continuos al disco duro

#ncho de banda

Capacidad de procesa$iento

)e$oria *#)
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Siste$a de 'icheros

!l $ayor cuello de botella es la velocidad de escritura y


lectura del disco duro

8n solo proceso de squid se tiene que encargar de


todo

!"isten di'erentes algorit$os para llevar a cabo esta


tarea, cada cual con sus pros y contras

Ra$os a ver:
u's,au's,disAd,coss,null

%or de'ecto squid trabaja con u's 7o es el que $ejor


rendi$iento nos puede dar
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
8:S

!s el siste$a por de'ecto de squid

!s el $+s lento

3odo el proceso de lectura, escritura, recepci/n de


peticiones, env0o de objetos, etc se hace con un solo
de$onio

)uchos accesos si$ultaneos $ediante este siste$a


puede producir cuellos de botella considerables
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
#8:S

Sobre la base es e"acta$ente lo $is$o que u's

-a di'erenc0a es que lanza $ultiples de$onios para la


lectura, escritura, borrado, etc

#u's consu$e una gran cantidad de procesador y


$e$oria cuando se ve ante una carga de trabajo alta
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,ISW,

3a$bien basado en u's y au's

-a di'erencia en este caso es que solo levanta un


de$onio e"tra

!s una soluci/n inter$edia entre u's y au's


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
C9SS

9'rece un $ayor rendi$iento que el resto de opciones

8tiliza un siste$a de 'icheros especial y opti$izado


para squid

3oda la in'or$aci/n se guarda en un solo 'ichero

Se escriben en bloques de datos

7o es del todo estable ni reco$endable su uso


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
78--

7o guarda ninguna cache en el disco duro

#unque no lo parezca tiene utilidad

!n siste$as de pro"y an/ni$os


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicio
Configurar en nuestro pro(y un cac"e en
%var%cac"e%aufs de formato... aufs
)ara ello utiliaremos la *biblia+.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Soluci/n
mkdi r / var / cache/ auf s
chmod pr oxy: pr oxy / var / cache/ auf s
cache_di r auf s / var / cache/ auf s 512 16 256
*einiciar squid
cache_di r si st ema di r ect or i o mbyt es l evel 1 l evel 2
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Con'igurar coss

Coss utiliza su propio siste$a de 'icheros, por lo que la con'iguraci/n es algo


di'erente
cacheEdir coss 6var6cache6coss JG1 $a"&size<G24FK
Crear+ un 'ichero lla$ado stripe en 6var6cache6coss donde se al$acenara el siste$a de 'icheros
Ser+ de un $+"i$o de JG1 $egas y los objetos que se al$acenen tendr+n un $+"i$o de ta$aSo
de G2 $egas

#Xn con unos cuantos aSos de desarrollo, se encuentra en una 'ase beta

#l al$acenarse todo en un solo 'ichero, debe$os tener en cuenta las


li$itaciones del propio siste$a de 'icheros que lo contiene %or eje$plo, si es
'at41 estar0a$os li$itados a K .;

!l ta$aSo de la cache que squid guarda en $e$oria antes de escribirla al


disco es G ); Se ca$bia con la opci/n enable&coss&$e$bu'&size

8na vez que el 'ichero est+ co$pleto, e$pezar+ desde el principio


sobreescribiendo los datos que encuentre
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9pti$izaci/n de uso y $e$oria
Cac"eo en memoria ram y algor,tmos para el
movimiento de ob-etos cac"eados.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9pti$izaci/n en el uso de la $e$oria y la cache

!stas pol0ticas son las que de'inir+n que objetos se


$antienen en cache o $e$oria y cuales son
eli$inados dejando espacio para nuevos objetos

!stas pol0ticas se aplicar+n a cualquier cacheEdir que


con'igure$os despus de esta pol0tica
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
*esu$en

-*8

-os $enos accedidos son los pri$eros en ser eli$inados

-:8,#

-os objetos $as solicitados per$anecen en cache, sin


i$portar el ta$aSo

8n objeto grande i$pide que se cacheen $uchos pequeSos

.,S:

-os objetos pequeSos $+s solicitados per$anecen en cache

3iene $enos e'iciencia ya que descarga objetos grandes


aunque se utilicen a$enudo
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicio
Configurar nuestro squid para poner el algoritmo
./0'1, tanto en la cac"e de disco como en la de
memoria.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Soluci/n
ma(imum2ob-ect2sie 345565 78
cac"e2replacement2policy "eap ./0'1
memory2replacement2policy "eap ./0'1
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%ara$etros para el uso de la $e$oria *#) y disco

)a"i $u$ obj ect si ze > en di sco o $e$ori a?


Con esta directiva se indica que los 'icheros con un ta$aSo $ayor del indicado >en Ailobytes? no
se guardaran en el disco duro %or de'ecto, si no se indica nada, son K $egas
!je$plo: $a"i $u$Eobj ectEsi ze 1555 W; L $a"i $u$Eobj ectEsi zeEi nE$e$ory 1555
W;

)i ni $u$ obj ect si ze > en di sco o $e$ori a?


-os objetos de $enor ta$aSo no ser+n guardados en el disco duro !l valor es espec0'icado en
Ailobytes %or de'ecto el valor es 5
!je$plo: $i ni $u$Eobj ectEsi ze 1555 W; L $i ni $u$Eobj ectEsi zeEi nE$e$ory 1555
W;

Cache )e$
Cantidad de $e$oria ra$ que ser+ utilizada co$o cache !n la $e$oria ra$ se cachean los
objetos descargados directa$ente desde el servidor origen y desde los servidores her$anos,
au$entando de una 'or$a considerable la velocidad de respuesta si estos se piden $uy
a$enudo !n ca$bio, no cachea en $e$oria los objetos leidos del disco duro 8n valor entre F y
41 $egas es los reco$endable, pero depender+ de la cantidad de $e$oria que tenga$os en el
siste$a
!je$plo: cacheE$e$ F );
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
*e'resh pattern
9enemos un pro(y casi funcional, pero no "emos
indicado que ob-etos y como deben cac"earse.
9enemos un pro(y co-o.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
*e'resh pattern

7os per$ite indicar, $ediante e"presiones regulares la


duraci/n de un objeto en cache

Sirve para objetos que no se indica su caducidad >la


$ayor0a? por parte del (eb$aster

Se deben indicar todos los objetos que desee$os


cachear

-a lista puede ser $uy larga, lo $ejor es copy6paste y


$odi'icar los valores a nuestro gusto
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9bjetos con e"pire

-os objetos con e"pire >una 'echa de caducidad? no


pasan por nuestro re'resh pattern !s el (eb$aster el
que debe indicarlo en su c/digo

Si la 'echa de e"pire no se ha superado, squid coge el


objeto de la cache

Si la 'echa de e"pire se ha superado, squid consulta la


'echa de ulti$a $odi'icacion

Si no hay $odi'icaci/n, vuelve a coger el objeto de la


cache
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
3er$inolog0a
:b-eto fresco$ el ob-eto no "a caducado, por lo que
squid puede seguir cogiendolo de la cac"e.
:b-eto caducado$ el ob-eto "a caducado, squid debe
borrar el ob-eto de la cac"e y pedir una nueva versin
al servidor &eb.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9bjetos sin e"pire

#qu0 entra en juego nuestros re'reshEpattern

re'reshEpattern YzipQ 1FF5 J5Z 1FF55

Yzip hace re'erencia a los 'icheros ter$inados en zip

1FF5 es el tie$po $0ni$o >en $inutos? que puede ser


consideraro 'resco >no caducado?

J5Z se calcula sobre el tie$po de Xlti$a $odi'icaci/n


Si este es 2 d0as, su J5Z ser+n 4

1FF55 es el tie$po $+"i$o que podr+ ser considerado


'resco
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
!jercicio
8uscad una lista grande de refres" pattern para
nuestro squid. M#s adelante podremos configurarlo a
nuestro gusto partiendo de esa base.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Soluci/n
"ttp$%%&&&.rediris.es%si%cac"e%refrescos.es."tml
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Control del ancho de banda
;l siempre recurrente problema del anc"o de banda.
0suarios que ba-an videos, im#genes de Cds, mp3,
etc. Cmo podemos controlar el uso de anc"o de
banda con squid?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Control de ancho de banda
';.1! )::.S
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,elay pool

I$agine$os >por qu no se dibujar? un pozo lleno de


agua, con dos tuber0as

8na pequeSa por la que entra agua

9tra grande por la que la gente coge agua

Si la gente se pasa cogiendo agua, el pozo se vaciar+ y


solo podr+n coger lo que entre por la tuber0a pequeSa

!n lugar de agua, tendre$os ancho de banda

@ay tres clases de delay pools


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,elay pool clase G

Se co$pone de un solo pozo

Se li$ita de $anera global a todos los usuarios, sin


i$portar el uso que estos hagan ni co$o este $ontada
la lan

!s la $anera $as sencilla

Qu proble$a tiene esta con'iguraci/n?


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,elay pool clase 1

Se co$pone de un pozo grande que ali$enta 1J2


pozos $as pequeSos de clase G >red de clase C?

!s posible controlar el uso que le dan 1J2 clientes

8n solo cliente no puede dejar sin ancho de banda al


resto
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
,elay pool de clase 4

!s un pozo grande, que ali$enta 1J2 pozos de clase 1


y estos a su vez 1J2 pozos de clase G !n total, 2J,J42
pozos >una red de clase ;?

Se utilizan en redes $uy grandes

Qu proble$a tiene esta con'iguraci/n?


I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Co$o con'igurar una delay pool

%ri$ero indica$os cuantas va$os a usar:


delayEpools 1

-uego indica$os de que clase ser+ cada una:


delayEpool G G [ la nu$ero G de clase G
delayEpool 1 1 [ la nu$ero 1 de clase 1

Con'igura$os las delayEpools en ;ytes6s


delayEpara$eters G 2K55564FK555
delayEpara$eters 1 2K55564FK555 G55556155555
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
9tras opciones de la delay pools

-os pozos e$piezan llenos al I5Z


delayEinitialEbucAetElevel I5

@ace$os que la d$z y los servidores no pasen por las


delay pools
delayEaccess G allo( Tservidores Td$z all
delayEaccess G deny all
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
\erarquias de caches
0n solo servidor para miles de clientes?
)roblemas de rendimiento?
<ay que pedir ayuda a la familia.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
@er$anos y padres

8n pro"y puede tener her$anos >sibling? y padres


>parent?

Se utiliza el protocolo IC% de co$unicaci/n entre


pro"ys

Si un pro"y no tiene un objeto lo pide al her$ano Si el


her$ano lo tiene se lo entrega, si no le devuelve error

Si recibe un error, se lo pide al padre y este lo pedir+ a


internet en caso de que ta$poco lo tenga
http:66(((r'c&esorg6r'c6r'c1GFH&est"t
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
Con'iguraci/n de jerarquias
=amos a configurar dos pro(y "ermanos y un
padre.
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
@er$ano G

icp_port 3130 // puerto icp

cache_peer 172.16.112.131 parent 3128 3130


default // definimos cache padre. Puerto
proxy 3128 y puerto icp 3130

cache_peer 172.16.112.136 sibling 8081 3130


proxy-only // definimos cache hermano. Puerto
proxy 8081 y puerto icp 3130

icp_access allow all // permitimos acceso icp


a todos
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
@er$ano 1

icp_port 3130 // puerto icp

cache_peer 172.16.112.131 parent 3128 3130


default // definimos cache padre. Puerto
proxy 3128 y puerto icp 3130

cache_peer 172.16.112.135 sibling 8080 3130


proxy-only // definimos cache hermano. Puerto
proxy 8081 y puerto icp 3130

icp_access allow all // permitimos acceso icp


a todos
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%adre

icp_port 3130 // puerto icp

icp_access allow all // permitimos acceso icp


a todos

I rontec: Curso avanzado de squi d


Miguel Angel Nieto
miguelangel@irontec.com
!sque$a de jerarquias
GH1G2GG1G4J
Cache: F5FG
IC%: 4G45
GH1G2GG1G42
Cache: F5F5
IC%: 4G45
GH1G2GG1G4J
IC%: 4G45
Cache: 4G1F
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
%regunta
Qu problemas nos podemos encontrar al
establecer las -erarqu,as de cac"es?
I rontec: Curso avanzado de squi d
Miguel Angel Nieto
miguelangel@irontec.com
:in
'udas, preguntas, insultos?

También podría gustarte