SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Curso avanzado de Squid
Irontec: Curso avanzado de squid
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. Es un proxy.
● A esa copia se le denomina cache. Por lo tanto, Squid
es un proxy-cache.
● Es software libre.
● Muy configurable
● Rápido y eficaz.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
¿Porqué es Software libre?
● Desde Irontec apostamos por el Software Libre por su
alta fiabilidad y flexibilidad.
● Gracias a las posibilidades que nos ofrece el libre
acceso a las aplicaciones y a su código,
podemos desarrollar proyectos de gran complejidad de
forma rápida y a precios competitivos.
● El Software Libre proporciona a muchas de
nuestras soluciones una potencia difícilmente
alcanzable por sistemas privativos en plazos y en costes.
● Representa para Irontec un modelo más justo para con
la sociedad en la que vivimos.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Algunos datos sobre Squid
● Existen dos versiones en desarollo. Stable-2.6 y Testing-
3.0
● La página oficial se encuentra en
http://www.squid-cache.org/
● Se integra con otras aplicaciones, como squidguard.
● Tiene muchos modos de funcionamiento. Cache,
Inverso, Transparente...
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Esquema Proxy normal
Internet
Router
Proxy-cache Normal
Usuarios
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Esquema Proxy Inverso
Internet
Router
Proxy-cache Inverso
Servidor web
Peticiones web
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Esquema Proxy Transparente
Internet
Router
Proxy-cache Transparente
Usuarios
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Otros modos de funcionamiento
● Filtro de contenidos
Bloquear el acceso a contenido por categorías.
● Firewall de seguridad
Es una aplicación de seguridad restrictiva, permitiendo la salida a equipos o
subredes y denegandolo a otras.
● Anónimo
Provee acceso web anónimo.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
La biblia
● Squid es muy configurable. Tiene muchas opciones. Es
imposible conocer todas.
● Podemos recurrir a la biblia.
http://www.visolve.com/squid/squid30/contents.php
● Todas las opciones posibles con ejemplos. Divido en
categorías.
● Será necesario tenerlo a mano siempre que se tenga
duda.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Instalación
● Se puede hacer por código fuente o descargando el
binario con las herramientas de la distribución
seleccionada.
● El binario pude no contener todas las opciones que
necesitamos.
● Al compilar es necesario indicar que características
deseamos.
● Tenemos una lista con ./configure --help
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Instalación por código fuente
● --prefix=PREFIX
Donde queremos que se dejen los ficheros (por defecto
/usr/local/squid)
● --enable-ssl
Soporte para https.
● --enable-default-err-language=es
En que idioma queremos los mensajes de error.
● --enable-linux-netfilter
Habilita el uso de iptables para proxys transparente.
● --enable-storeio=aufs,coss,diskd,ufs
Habilitamos los distintos tipos de formas para almacenar los ficheros.
● --enable-basic-auth-helpers="LDAP"
Habilitamos la autenticación ldap.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Datos básicos
● El fichero de configuración se encuentra en
/etc/squid/squid.conf
● Ya esta configurado para funcionar, contiene multiples
ejemplos y explicaciones.
● Los logs se guardan en /var/log/squid
● Los mensajes de error a la hora de arrancar o parar el
servicio se encuentran en /var/log/syslog o
/var/log/messages.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Pregunta
¿Cómo podemos controlar el acceso a nuestro
servidor?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Respuesta
● IP's
● MAC's
● login/password
● Horarios
● Control de categorías
● Listas de acceso
● Y más...
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Configuración básica
● Abrimos el fichero de configuración y escribimos:
http_port 8080
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
acl all src 0.0.0.0/0.0.0.0
acl yo src 127.0.0.1/32
http_access allow yo
http_access deny all
● Reiniciamos squid para que cargue la nueva configuración.
/etc/init.d/squid restart
● Configuramos firefox para que use 127.0.0.1 como proxy.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Logs de squid
● access.log
Se guardan las peticiones que se le hacen al proxy.
1183393998.896 302 127.0.0.1 TCP_MISS/200 12953 GET http://packages.debian.org/stable/web/squid - DIRECT/87.106.4.56 text/html
● cache.log
Aquí se van guardando los mensajes relacionados con el sistema de
almacenamiento y cache.
2007/07/02 17:40:21| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2007/07/02 17:40:21| Rebuilding storage in /var/cache/squid (CLEAN)
2007/07/02 17:40:21| Using Least Load store dir selection
2007/07/02 17:40:21| Set Current Directory to /var/cache/squid
● store.log
Se almacena información sobre los objetos almacenados. Dentro de los
campos mas importantes tenemos la segunda columna, llamada TAG, que
puede tener los siguientes valores:
SWAPIN (la cache existia en el disco duro y lo ha leido en memoria),
SWAPOUT (guardado en disco duro) or RELEASE (eliminado de la cache)
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
ACL's
● Las listas de control de acceso nos permite definir distintos parámetros para
conceder o denegar accesos a nuestro proxy. En el anterior ejemplo donde
montabamos un proxy básico pudimos ver un primer ejemplo de una lista de
acceso:
acl todos src 0.0.0.0/0.0.0.0
● Su estructura es la siguiente:
acl nombre regla parámetros
● En el ejemplo, la acl se llama “all”, con la regla src (source) y como parámetro
una ip y su máscara de red.
● Otros ejemplos de acl:
acl comer time M T W H F 13:00-14:00
acl dest dst 192.168.2.1/32
acl mp3 urlpath_regex -i /.mp3$
acl navegador browser Explorer
acl debian url_regex debian
● Vamos a la biblia para ver todas.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
ACL's
● Las acl por si mismas no hacen nada, ya que no decimos si aceptamos o
negamos dichas acl. Es necesario denegar o aceptar las ACLs.
● Para ello se utiliza http_access y http_deny:
http_access deny comer mp3 explorer
http_access alow todos
● Es muy importante el orden en el que se establecen las reglas de permiso o
denegación.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
ACL's
Hay que tener especial cuidado con:
● Olvidarnos establecer las ordenes de denegación. Establecer muchas
ordenes allow, sin ninguna deny no sirve de nada... da lo mismo que
permitamos una serie de ips u horarios, por ejemplo, si luego no
denegamos todo lo demas. No denegar nada, implica aceptar todo.
● Las reglas se leen de arriba abajo. Si en la primera regla tenemos un
“allow todos” que permite todo y el deny para mp3 lo ponemos en la
siguiente linea, esta no se tendrá en cuenta. Ya que primero se lee el
alow y una vez que tenemos el mp3 en nuestras manos, se lee el deny
mp3. Lo normal es primero denegar y luego permitir.
● Por defecto ninguna ip tiene acceso al proxy. Debe establecerse antes
de nada una ip o rango de ips que podran hacer uso del proxy.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicios ACL
● Permitir el acceso a la subred.
Nombre: subred
● Dar vía libre a tu ip y la de tu compañero.
Nombre: amigos
● Denegar el acceso los fines de semana.
Nombre: finde
● No permitir el acceso a microsoft.com.
Nombre: micro
● Denegar las conexiones salientes a puerto 8080. Nombre:
puerto
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicios ACL
● Permitir el acceso a un compañero.
acl subred src direccion.ip/24
● Dar vía libre a tu ip ya de tu compañero
acl amigos src /etc/squid/amigos
● Denegar el acceso los fines de semana.
acl finde time AS
● No permitir el acceso a microsoft.com.
acl micro dstdomain .microsoft.com
● Denegar las conexiones salientes a puerto 8080.
acl puerto port 8080
● Reglas de acceso:
http_access allow amigos
http_acess allow subred !finde !micro !port
http_access deny all
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Debbuging de ACL's
● debug_options ALL,1 33,2
● Guarda en cache.log un log de los acl que se acceden y
por qué la conexión se acepta o se rechaza.
● Es muy util cuando tenemos muchos http_access y
http_access deny, para saber en cual se detiene un
intento de acceso.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Otras formas de filtrar el acceso
¿Con filtrar por ip y mac es suficiente? ¿Qué
problemas tiene? ¿Qué soluciones podemos
encontrar?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Control de usuarios
Squid permite el acceso mediante login/password.
Es posible conectarse a servidores AD, LDAP, Samba3,
autenticación ncsa... La autenticación se hace mediante
programas externos a los que llama squid.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
NCSA
● Los usuarios y claves se guardan en un fichero, como el
htpasswd de apache.
● Es la opción más sencilla si tenemos pocos usuarios.
● El fichero de claves se crea con htpasswd
● El programa que hará la autenticación se encuentra en:
/usr/lib/squid/ncsa_auth
● ¡A configurar! Usuario: pepe Clave: pepe
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Configuración NCSA
● 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 número de procesos de autenticación 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
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Autenticación LDAP contra AD
● 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
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Otra forma de acceder a los logs
Miremos los logs de access. Son infumables,
busquemos otra forma de visualizar los datos.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Estadísticas con Sarg
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Características
● Permite listar las páginas accedidas.
● Logs tanto por IP como por usuario.
● Permite saber cuales son las páginas más visitadas, y la
cantidad de datos cacheados.
● Después de un par de días de estadísticas nos puede
ayudar a configurar mejor nuestro squid.
● La instalación es sencilla.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Pregunta
Ya sabemos hacer listas de control de acceso,
pero... ¿Qué pasa si queremos filtrar miles de
páginas? ¿Con que problemas nos encontramos?
¿Soluciones?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Control de categorias
● Existen unas bases de datos con miles de páginas web
ordenadas por categorías.
● Podemos usar esas bases de datos para permitir y
denegar accesos a nuestros usuarios a miles de páginas
con una sola linea.
● Con una acl de dstdomain necesitariamos dos vidas
para filtrar todo el porno de internet.
● Squidguard nos ayudará en esta tarea.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
¿Qué necesitamos?
● Una lista en formato texto con millones de páginas
categorizadas.
● Que se actualize constantemente.
● Que tenga un precio razonable o incluso que sea
gratuito.
● Que sea compatible con squidguard.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
De donde obtenemos la base de datos
● http://squidguard.shalla.de/shallalist.html Dispone de
1.400.000 entradas.
● Descargamos y descomprimimos el tar.gz en
/var/squid/db
● Abrimos el fichero de configuración de
/etc/squid/squidGuard.conf
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Configuración de SquidGuard
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
}
}
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Creación de base de datos
● Una vez configurado squidGuard.conf es necesario
crear las bases de datos que hemos configurado.
● Si ejecutamos squidGuard -C all nos creará la base de
datos de porn.
● Configuramos squid para que use squidGuard.
Añadimos:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
● YA ESTÁ, reiniciamos squid y listo.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicio
● Crear una nueva regla para páginas relacionadas con las
drogas.
● No permitir el acceso.
● Guardar los logs de acceso en “logdrogas”.
● Permitirme a mi ip el acceso a las drogas y al porno.
● Para buscar ayuda:
http://www.squidguard.org/Doc/extended.html
Irontec: Curso avanzado de squid
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
}
}
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Pregunta
–¿Dónde se encuentran los cuellos de botella en un
servidor Squid?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Respuesta
● Accesos continuos al disco duro.
● Ancho de banda.
● Capacidad de procesamiento.
● Memoria RAM.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Sistema de ficheros
● El mayor cuello de botella es la velocidad de escritura y
lectura del disco duro.
● Un solo proceso de squid se tiene que encargar de
todo.
● Existen diferentes algoritmos para llevar a cabo esta
tarea, cada cual con sus pros y contras.
● Vamos a ver:
ufs,aufs,diskd,coss,null
● Por defecto squid trabaja con ufs. No es el que mejor
rendimiento nos puede dar.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
UFS
● Es el sistema por defecto de squid.
● Es el más lento.
● Todo el proceso de lectura, escritura, recepción de
peticiones, envío de objetos, etc. se hace con un solo
demonio.
● Muchos accesos simultaneos mediante este sistema
puede producir cuellos de botella considerables.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
AUFS
● Sobre la base es exactamente lo mismo que ufs.
● La diferencía es que lanza multiples demonios para la
lectura, escritura, borrado, etc.
● Aufs consume una gran cantidad de procesador y
memoria cuando se ve ante una carga de trabajo alta.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
DISKD
● Tambien basado en ufs y aufs.
● La diferencia en este caso es que solo levanta un
demonio extra.
● Es una solución intermedia entre ufs y aufs.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
COSS
● Ofrece un mayor rendimiento que el resto de opciones.
● Utiliza un sistema de ficheros especial y optimizado
para squid.
● Toda la información se guarda en un solo fichero.
● Se escriben en bloques de datos.
● No es del todo estable ni recomendable su uso.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
NULL
● No guarda ninguna cache en el disco duro.
● Aunque no lo parezca tiene utilidad.
● En sistemas de proxy anónimos.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicio
Configurar en nuestro proxy un cache en
/var/cache/aufs de formato... aufs
Para ello utilizaremos la “biblia”.
Irontec: Curso avanzado de squid
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
Reiniciar squid
cache_di r si st ema di r ect or i o mbyt es l evel 1 l evel 2
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Configurar coss
● Coss utiliza su propio sistema de ficheros, por lo que la configuración es algo
diferente.
cache_dir coss /var/cache/coss 512 max-size=16384
Creará un fichero llamado stripe en /var/cache/coss donde se almacenara el sistema de ficheros.
Será de un máximo de 512 megas y los objetos que se almacenen tendrán un máximo de tamaño
de 16 megas.
● Aún con unos cuantos años de desarrollo, se encuentra en una fase beta.
● Al almacenarse todo en un solo fichero, debemos tener en cuenta las
limitaciones del propio sistema de ficheros que lo contiene. Por ejemplo, si es
fat32 estaríamos limitados a 4 GB.
● El tamaño de la cache que squid guarda en memoria antes de escribirla al
disco es 1 MB. Se cambia con la opción enable-coss-membuf-size.
● Una vez que el fichero está completo, empezará desde el principio
sobreescribiendo los datos que encuentre.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Optimización de uso y memoria
Cacheo en memoria ram y algorítmos para el
movimiento de objetos cacheados.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Optimización en el uso de la memoria y la cache
● Estas políticas son las que definirán que objetos se
mantienen en cache o memoria y cuales son
eliminados dejando espacio para nuevos objetos.
● Estas políticas se aplicarán a cualquier cache_dir que
configuremos después de esta política.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Resumen
● LRU
– Los menos accedidos son los primeros en ser eliminados.
● LFUDA
– Los objetos mas solicitados permanecen en cache, sin
importar el tamaño.
– Un objeto grande impide que se cacheen muchos pequeños.
● GDSF
– Los objetos pequeños más solicitados permanecen en cache.
– Tiene menos eficiencia ya que descarga objetos grandes
aunque se utilicen amenudo.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicio
Configurar nuestro squid para poner el algoritmo
LFUDA, tanto en la cache de disco como en la de
memoria.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Solución
maximum_object_size 320010 KB
cache_replacement_policy heap LFUDA
memory_replacement_policy heap LFUDA
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Parametros para el uso de la memoria RAM y disco
● Maximum object size (en disco o memoria)
Con esta directiva se indica que los ficheros con un tamaño mayor del indicado (en kilobytes) no
se guardaran en el disco duro. Por defecto, si no se indica nada, son 4 megas.
Ejemplo: maximum_object_size 2000 KB | maximum_object_size_in_memory 2000
KB
● Minimum object size (en disco o memoria)
Los objetos de menor tamaño no serán guardados en el disco duro. El valor es específicado en
kilobytes. Por defecto el valor es 0.
Ejemplo: minimum_object_size 2000 KB | minimum_object_size_in_memory 2000
KB
● Cache Mem
Cantidad de memoria ram que será utilizada como cache. En la memoria ram se cachean los
objetos descargados directamente desde el servidor origen y desde los servidores hermanos,
aumentando de una forma considerable la velocidad de respuesta si estos se piden muy
amenudo. En cambio, no cachea en memoria los objetos leidos del disco duro. Un valor entre 8 y
32 megas es los recomendable, pero dependerá de la cantidad de memoria que tengamos en el
sistema.
Ejemplo: cache_mem 8 MB
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Refresh pattern
Tenemos un proxy casi funcional, pero no hemos
indicado que objetos y como deben cachearse.
Tenemos un proxy cojo.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Refresh pattern
● Nos permite indicar, mediante expresiones regulares la
duración de un objeto en cache.
● Sirve para objetos que no se indica su caducidad (la
mayoría) por parte del webmaster.
● Se deben indicar todos los objetos que deseemos
cachear.
● La lista puede ser muy larga, lo mejor es copy/paste y
modificar los valores a nuestro gusto.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Objetos con expire
● Los objetos con expire (una fecha de caducidad) no
pasan por nuestro refresh pattern. Es el webmaster el
que debe indicarlo en su código.
● Si la fecha de expire no se ha superado, squid coge el
objeto de la cache.
● Si la fecha de expire se ha superado, squid consulta la
fecha de ultima modificacion.
● Si no hay modificación, vuelve a coger el objeto de la
cache.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Terminología
Objeto fresco: el objeto no ha caducado, por lo que
squid puede seguir cogiendolo de la cache.
Objeto caducado: el objeto ha caducado, squid debe
borrar el objeto de la cache y pedir una nueva versión
al servidor web.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Objetos sin expire
● Aquí entra en juego nuestros refresh_pattern.
● refresh_pattern .zip$ 2880 50% 28800
● .zip hace referencia a los ficheros terminados en .zip.
● 2880 es el tiempo mínimo (en minutos) que puede ser
consideraro fresco (no caducado).
● 50% se calcula sobre el tiempo de última modificación.
Si este es 6 días, su 50% serán 3.
● 28800 es el tiempo máximo que podrá ser considerado
fresco.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Ejercicio
Buscad una lista grande de refresh pattern para
nuestro squid. Más adelante podremos configurarlo a
nuestro gusto partiendo de esa base.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Solución
http://www.rediris.es/si/cache/refrescos.es.html
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Control del ancho de banda
El siempre recurrente problema del ancho de banda.
Usuarios que bajan videos, imágenes de Cds, mp3,
etc. ¿Cómo podemos controlar el uso de ancho de
banda con squid?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Control de ancho de banda
DELAY POOLS
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Delay pool
● Imaginemos (por qué no se dibujar) un pozo lleno de
agua, con dos tuberías
● Una pequeña por la que entra agua.
● Otra 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 tubería pequeña.
● En lugar de agua, tendremos ancho de banda.
● Hay tres clases de delay pools.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Delay pool clase 1
● Se compone de un solo pozo.
● Se limita de manera global a todos los usuarios, sin
importar el uso que estos hagan ni como este montada
la lan.
● Es la manera mas sencilla.
● ¿Qué problema tiene esta configuración?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Delay pool clase 2
● Se compone de un pozo grande que alimenta 256
pozos mas pequeños de clase 1 (red de clase C).
● Es posible controlar el uso que le dan 256 clientes.
● Un solo cliente no puede dejar sin ancho de banda al
resto.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Delay pool de clase 3
● Es un pozo grande, que alimenta 256 pozos de clase 2
y estos a su vez 256 pozos de clase 1. En total, 65,536
pozos (una red de clase B).
● Se utilizan en redes muy grandes.
● ¿Qué problema tiene esta configuración?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Como configurar una delay pool
● Primero indicamos cuantas vamos a usar:
delay_pools 2
● Luego indicamos de que clase será cada una:
delay_pool 1 1 # la numero 1 de clase 1
delay_pool 2 2 # la numero 2 de clase 2
● Configuramos las delay_pools en Bytes/s.
delay_parameters 1 64000/384000
delay_parameters 2 64000/384000 10000/200000
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Otras opciones de la delay pools
● Los pozos empiezan llenos al 90%
delay_initial_bucket_level 90
● Hacemos que la dmz y los servidores no pasen por las
delay pools
delay_access 1 allow !servidores !dmz all
delay_access 1 deny all
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Jerarquias de caches
¿Un solo servidor para miles de clientes?
¿Problemas de rendimiento?
Hay que pedir ayuda a la familia.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Hermanos y padres
● Un proxy puede tener hermanos (sibling) y padres
(parent).
● Se utiliza el protocolo ICP de comunicación entre
proxys.
● Si un proxy no tiene un objeto lo pide al hermano. Si el
hermano 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 tampoco lo tenga.
http://www.rfc-es.org/rfc/rfc2187-es.txt
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Configuración de jerarquias
Vamos a configurar dos proxy hermanos y un
padre.
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Hermano 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.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
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Hermano 2
● 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
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Padre
● icp_port 3130 // puerto icp
● icp_access allow all // permitimos acceso icp
a todos
●
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Esquema de jerarquias
172.16.112.135
Cache: 8081ICP: 3130
172.16.112.136
Cache: 8080
ICP: 3130
172.16.112.135
ICP: 3130
Cache: 3128
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Pregunta
¿Qué problemas nos podemos encontrar al
establecer las jerarquías de caches?
Irontec: Curso avanzado de squid
Miguel Angel Nieto
miguelangel@irontec.com
Fin
¿Dudas, preguntas, insultos?

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Squid
SquidSquid
Squid
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centos
 
IPTABLES y SQUID‏
IPTABLES y SQUID‏IPTABLES y SQUID‏
IPTABLES y SQUID‏
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntu
 
Presentacion Squid
Presentacion SquidPresentacion Squid
Presentacion Squid
 
Instalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estableInstalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estable
 
Squid lpt
Squid lptSquid lpt
Squid lpt
 
Squid1
Squid1Squid1
Squid1
 
Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3
 
Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Apache
Apache Apache
Apache
 
Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)
 
Tutorial Instalacion Openvpn
Tutorial Instalacion OpenvpnTutorial Instalacion Openvpn
Tutorial Instalacion Openvpn
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
Manual
ManualManual
Manual
 
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
 
Configuraion vpn
Configuraion  vpnConfiguraion  vpn
Configuraion vpn
 
OpenVPN
OpenVPNOpenVPN
OpenVPN
 

Destacado

Proxy解說
Proxy解說Proxy解說
Proxy解說Tony Yeh
 
Stupid Web Caching Tricks
Stupid Web Caching TricksStupid Web Caching Tricks
Stupid Web Caching TricksMark Nottingham
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxykaliz
 
Unidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemaUnidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemavverdu
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor ProxyTotus Muertos
 
Presentación de Kerio
Presentación de KerioPresentación de Kerio
Presentación de Kerionovaltec
 
Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidoresIsaac Gonzalez
 
Configuración de squid opciones básicas
Configuración de squid  opciones básicasConfiguración de squid  opciones básicas
Configuración de squid opciones básicasAntonio Jose Laurens
 

Destacado (12)

Introducción Administración TCP/IP
Introducción Administración TCP/IPIntroducción Administración TCP/IP
Introducción Administración TCP/IP
 
Proxy解說
Proxy解說Proxy解說
Proxy解說
 
Ictic4
Ictic4Ictic4
Ictic4
 
Stupid Web Caching Tricks
Stupid Web Caching TricksStupid Web Caching Tricks
Stupid Web Caching Tricks
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxy
 
Unidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistemaUnidad 11 - Administración básica del sistema
Unidad 11 - Administración básica del sistema
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor Proxy
 
Presentación de Kerio
Presentación de KerioPresentación de Kerio
Presentación de Kerio
 
Squid
Squid Squid
Squid
 
Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidores
 
Squid
SquidSquid
Squid
 
Configuración de squid opciones básicas
Configuración de squid  opciones básicasConfiguración de squid  opciones básicas
Configuración de squid opciones básicas
 

Similar a Configuración Squid Avanzada

Cursosquid
CursosquidCursosquid
CursosquidIrontec
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDAndres Ldño
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3cercer
 
Filtro de contenido web
Filtro de contenido webFiltro de contenido web
Filtro de contenido webGaspar Méndez
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingHacking Bolivia
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextkjuanextk
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextkjuanextk
 
Guia basica-securizacion-apache
Guia basica-securizacion-apacheGuia basica-securizacion-apache
Guia basica-securizacion-apacheERWIN AGUILAR
 
Sistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreSistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreYeider Fernandez
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en UbuntuSergio Santos
 
Configuración proftpd (Ayar Pardo)
Configuración proftpd (Ayar Pardo)Configuración proftpd (Ayar Pardo)
Configuración proftpd (Ayar Pardo)ayarpm
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfectobetabeers
 

Similar a Configuración Squid Avanzada (20)

Cursosquid
CursosquidCursosquid
Cursosquid
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUID
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Filtro de contenido web
Filtro de contenido webFiltro de contenido web
Filtro de contenido web
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
PROXY CENTOS 6.5
PROXY CENTOS 6.5PROXY CENTOS 6.5
PROXY CENTOS 6.5
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical Hacking
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
Guia basica-securizacion-apache
Guia basica-securizacion-apacheGuia basica-securizacion-apache
Guia basica-securizacion-apache
 
Sistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios CoreSistema de Monitoreo Nagios Core
Sistema de Monitoreo Nagios Core
 
Exposicion nagios core
Exposicion nagios coreExposicion nagios core
Exposicion nagios core
 
Cherokee presentacion
Cherokee presentacionCherokee presentacion
Cherokee presentacion
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en Ubuntu
 
Configuración proftpd (Ayar Pardo)
Configuración proftpd (Ayar Pardo)Configuración proftpd (Ayar Pardo)
Configuración proftpd (Ayar Pardo)
 
Pc10 01
Pc10 01Pc10 01
Pc10 01
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
RESUMEN PROXY
RESUMEN PROXYRESUMEN PROXY
RESUMEN PROXY
 

Último

Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxPATRICIAKARIMESTELAL
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
1. Cap. 4 Carga Axial (1).pdf237374335347
1. Cap. 4 Carga Axial (1).pdf2373743353471. Cap. 4 Carga Axial (1).pdf237374335347
1. Cap. 4 Carga Axial (1).pdf237374335347vd110501
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasAhmedMontaoSnchez1
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 

Último (20)

Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptxI LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
I LINEAMIENTOS Y CRITERIOS DE INFRAESTRUCTURA DE RIEGO.pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
1. Cap. 4 Carga Axial (1).pdf237374335347
1. Cap. 4 Carga Axial (1).pdf2373743353471. Cap. 4 Carga Axial (1).pdf237374335347
1. Cap. 4 Carga Axial (1).pdf237374335347
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnas
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 

Configuración Squid Avanzada

  • 1. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Curso avanzado de Squid
  • 2. Irontec: Curso avanzado de squid 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. Es un proxy. ● A esa copia se le denomina cache. Por lo tanto, Squid es un proxy-cache. ● Es software libre. ● Muy configurable ● Rápido y eficaz.
  • 3. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com ¿Porqué es Software libre? ● Desde Irontec apostamos por el Software Libre por su alta fiabilidad y flexibilidad. ● Gracias a las posibilidades que nos ofrece el libre acceso a las aplicaciones y a su código, podemos desarrollar proyectos de gran complejidad de forma rápida y a precios competitivos. ● El Software Libre proporciona a muchas de nuestras soluciones una potencia difícilmente alcanzable por sistemas privativos en plazos y en costes. ● Representa para Irontec un modelo más justo para con la sociedad en la que vivimos.
  • 4. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Algunos datos sobre Squid ● Existen dos versiones en desarollo. Stable-2.6 y Testing- 3.0 ● La página oficial se encuentra en http://www.squid-cache.org/ ● Se integra con otras aplicaciones, como squidguard. ● Tiene muchos modos de funcionamiento. Cache, Inverso, Transparente...
  • 5. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Esquema Proxy normal Internet Router Proxy-cache Normal Usuarios
  • 6. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Esquema Proxy Inverso Internet Router Proxy-cache Inverso Servidor web Peticiones web
  • 7. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Esquema Proxy Transparente Internet Router Proxy-cache Transparente Usuarios
  • 8. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Otros modos de funcionamiento ● Filtro de contenidos Bloquear el acceso a contenido por categorías. ● Firewall de seguridad Es una aplicación de seguridad restrictiva, permitiendo la salida a equipos o subredes y denegandolo a otras. ● Anónimo Provee acceso web anónimo.
  • 9. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com La biblia ● Squid es muy configurable. Tiene muchas opciones. Es imposible conocer todas. ● Podemos recurrir a la biblia. http://www.visolve.com/squid/squid30/contents.php ● Todas las opciones posibles con ejemplos. Divido en categorías. ● Será necesario tenerlo a mano siempre que se tenga duda.
  • 10. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Instalación ● Se puede hacer por código fuente o descargando el binario con las herramientas de la distribución seleccionada. ● El binario pude no contener todas las opciones que necesitamos. ● Al compilar es necesario indicar que características deseamos. ● Tenemos una lista con ./configure --help
  • 11. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Instalación por código fuente ● --prefix=PREFIX Donde queremos que se dejen los ficheros (por defecto /usr/local/squid) ● --enable-ssl Soporte para https. ● --enable-default-err-language=es En que idioma queremos los mensajes de error. ● --enable-linux-netfilter Habilita el uso de iptables para proxys transparente. ● --enable-storeio=aufs,coss,diskd,ufs Habilitamos los distintos tipos de formas para almacenar los ficheros. ● --enable-basic-auth-helpers="LDAP" Habilitamos la autenticación ldap.
  • 12. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Datos básicos ● El fichero de configuración se encuentra en /etc/squid/squid.conf ● Ya esta configurado para funcionar, contiene multiples ejemplos y explicaciones. ● Los logs se guardan en /var/log/squid ● Los mensajes de error a la hora de arrancar o parar el servicio se encuentran en /var/log/syslog o /var/log/messages.
  • 13. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Pregunta ¿Cómo podemos controlar el acceso a nuestro servidor?
  • 14. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Respuesta ● IP's ● MAC's ● login/password ● Horarios ● Control de categorías ● Listas de acceso ● Y más...
  • 15. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Configuración básica ● Abrimos el fichero de configuración y escribimos: http_port 8080 access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log acl all src 0.0.0.0/0.0.0.0 acl yo src 127.0.0.1/32 http_access allow yo http_access deny all ● Reiniciamos squid para que cargue la nueva configuración. /etc/init.d/squid restart ● Configuramos firefox para que use 127.0.0.1 como proxy.
  • 16. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Logs de squid ● access.log Se guardan las peticiones que se le hacen al proxy. 1183393998.896 302 127.0.0.1 TCP_MISS/200 12953 GET http://packages.debian.org/stable/web/squid - DIRECT/87.106.4.56 text/html ● cache.log Aquí se van guardando los mensajes relacionados con el sistema de almacenamiento y cache. 2007/07/02 17:40:21| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec 2007/07/02 17:40:21| Rebuilding storage in /var/cache/squid (CLEAN) 2007/07/02 17:40:21| Using Least Load store dir selection 2007/07/02 17:40:21| Set Current Directory to /var/cache/squid ● store.log Se almacena información sobre los objetos almacenados. Dentro de los campos mas importantes tenemos la segunda columna, llamada TAG, que puede tener los siguientes valores: SWAPIN (la cache existia en el disco duro y lo ha leido en memoria), SWAPOUT (guardado en disco duro) or RELEASE (eliminado de la cache)
  • 17. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com ACL's ● Las listas de control de acceso nos permite definir distintos parámetros para conceder o denegar accesos a nuestro proxy. En el anterior ejemplo donde montabamos un proxy básico pudimos ver un primer ejemplo de una lista de acceso: acl todos src 0.0.0.0/0.0.0.0 ● Su estructura es la siguiente: acl nombre regla parámetros ● En el ejemplo, la acl se llama “all”, con la regla src (source) y como parámetro una ip y su máscara de red. ● Otros ejemplos de acl: acl comer time M T W H F 13:00-14:00 acl dest dst 192.168.2.1/32 acl mp3 urlpath_regex -i /.mp3$ acl navegador browser Explorer acl debian url_regex debian ● Vamos a la biblia para ver todas.
  • 18. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com ACL's ● Las acl por si mismas no hacen nada, ya que no decimos si aceptamos o negamos dichas acl. Es necesario denegar o aceptar las ACLs. ● Para ello se utiliza http_access y http_deny: http_access deny comer mp3 explorer http_access alow todos ● Es muy importante el orden en el que se establecen las reglas de permiso o denegación.
  • 19. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com ACL's Hay que tener especial cuidado con: ● Olvidarnos establecer las ordenes de denegación. Establecer muchas ordenes allow, sin ninguna deny no sirve de nada... da lo mismo que permitamos una serie de ips u horarios, por ejemplo, si luego no denegamos todo lo demas. No denegar nada, implica aceptar todo. ● Las reglas se leen de arriba abajo. Si en la primera regla tenemos un “allow todos” que permite todo y el deny para mp3 lo ponemos en la siguiente linea, esta no se tendrá en cuenta. Ya que primero se lee el alow y una vez que tenemos el mp3 en nuestras manos, se lee el deny mp3. Lo normal es primero denegar y luego permitir. ● Por defecto ninguna ip tiene acceso al proxy. Debe establecerse antes de nada una ip o rango de ips que podran hacer uso del proxy.
  • 20. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicios ACL ● Permitir el acceso a la subred. Nombre: subred ● Dar vía libre a tu ip y la de tu compañero. Nombre: amigos ● Denegar el acceso los fines de semana. Nombre: finde ● No permitir el acceso a microsoft.com. Nombre: micro ● Denegar las conexiones salientes a puerto 8080. Nombre: puerto
  • 21. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicios ACL ● Permitir el acceso a un compañero. acl subred src direccion.ip/24 ● Dar vía libre a tu ip ya de tu compañero acl amigos src /etc/squid/amigos ● Denegar el acceso los fines de semana. acl finde time AS ● No permitir el acceso a microsoft.com. acl micro dstdomain .microsoft.com ● Denegar las conexiones salientes a puerto 8080. acl puerto port 8080 ● Reglas de acceso: http_access allow amigos http_acess allow subred !finde !micro !port http_access deny all
  • 22. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Debbuging de ACL's ● debug_options ALL,1 33,2 ● Guarda en cache.log un log de los acl que se acceden y por qué la conexión se acepta o se rechaza. ● Es muy util cuando tenemos muchos http_access y http_access deny, para saber en cual se detiene un intento de acceso.
  • 23. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Otras formas de filtrar el acceso ¿Con filtrar por ip y mac es suficiente? ¿Qué problemas tiene? ¿Qué soluciones podemos encontrar?
  • 24. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Control de usuarios Squid permite el acceso mediante login/password. Es posible conectarse a servidores AD, LDAP, Samba3, autenticación ncsa... La autenticación se hace mediante programas externos a los que llama squid.
  • 25. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com NCSA ● Los usuarios y claves se guardan en un fichero, como el htpasswd de apache. ● Es la opción más sencilla si tenemos pocos usuarios. ● El fichero de claves se crea con htpasswd ● El programa que hará la autenticación se encuentra en: /usr/lib/squid/ncsa_auth ● ¡A configurar! Usuario: pepe Clave: pepe
  • 26. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Configuración NCSA ● 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 número de procesos de autenticación 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
  • 27. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Autenticación LDAP contra AD ● 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
  • 28. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Otra forma de acceder a los logs Miremos los logs de access. Son infumables, busquemos otra forma de visualizar los datos.
  • 29. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Estadísticas con Sarg
  • 30. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Características ● Permite listar las páginas accedidas. ● Logs tanto por IP como por usuario. ● Permite saber cuales son las páginas más visitadas, y la cantidad de datos cacheados. ● Después de un par de días de estadísticas nos puede ayudar a configurar mejor nuestro squid. ● La instalación es sencilla.
  • 31. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Pregunta Ya sabemos hacer listas de control de acceso, pero... ¿Qué pasa si queremos filtrar miles de páginas? ¿Con que problemas nos encontramos? ¿Soluciones?
  • 32. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Control de categorias ● Existen unas bases de datos con miles de páginas web ordenadas por categorías. ● Podemos usar esas bases de datos para permitir y denegar accesos a nuestros usuarios a miles de páginas con una sola linea. ● Con una acl de dstdomain necesitariamos dos vidas para filtrar todo el porno de internet. ● Squidguard nos ayudará en esta tarea.
  • 33. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com ¿Qué necesitamos? ● Una lista en formato texto con millones de páginas categorizadas. ● Que se actualize constantemente. ● Que tenga un precio razonable o incluso que sea gratuito. ● Que sea compatible con squidguard.
  • 34. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com De donde obtenemos la base de datos ● http://squidguard.shalla.de/shallalist.html Dispone de 1.400.000 entradas. ● Descargamos y descomprimimos el tar.gz en /var/squid/db ● Abrimos el fichero de configuración de /etc/squid/squidGuard.conf
  • 35. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Configuración de SquidGuard 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 } }
  • 36. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Creación de base de datos ● Una vez configurado squidGuard.conf es necesario crear las bases de datos que hemos configurado. ● Si ejecutamos squidGuard -C all nos creará la base de datos de porn. ● Configuramos squid para que use squidGuard. Añadimos: redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf ● YA ESTÁ, reiniciamos squid y listo.
  • 37. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicio ● Crear una nueva regla para páginas relacionadas con las drogas. ● No permitir el acceso. ● Guardar los logs de acceso en “logdrogas”. ● Permitirme a mi ip el acceso a las drogas y al porno. ● Para buscar ayuda: http://www.squidguard.org/Doc/extended.html
  • 38. Irontec: Curso avanzado de squid 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 } }
  • 39. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Pregunta –¿Dónde se encuentran los cuellos de botella en un servidor Squid?
  • 40. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Respuesta ● Accesos continuos al disco duro. ● Ancho de banda. ● Capacidad de procesamiento. ● Memoria RAM.
  • 41. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Sistema de ficheros ● El mayor cuello de botella es la velocidad de escritura y lectura del disco duro. ● Un solo proceso de squid se tiene que encargar de todo. ● Existen diferentes algoritmos para llevar a cabo esta tarea, cada cual con sus pros y contras. ● Vamos a ver: ufs,aufs,diskd,coss,null ● Por defecto squid trabaja con ufs. No es el que mejor rendimiento nos puede dar.
  • 42. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com UFS ● Es el sistema por defecto de squid. ● Es el más lento. ● Todo el proceso de lectura, escritura, recepción de peticiones, envío de objetos, etc. se hace con un solo demonio. ● Muchos accesos simultaneos mediante este sistema puede producir cuellos de botella considerables.
  • 43. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com AUFS ● Sobre la base es exactamente lo mismo que ufs. ● La diferencía es que lanza multiples demonios para la lectura, escritura, borrado, etc. ● Aufs consume una gran cantidad de procesador y memoria cuando se ve ante una carga de trabajo alta.
  • 44. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com DISKD ● Tambien basado en ufs y aufs. ● La diferencia en este caso es que solo levanta un demonio extra. ● Es una solución intermedia entre ufs y aufs.
  • 45. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com COSS ● Ofrece un mayor rendimiento que el resto de opciones. ● Utiliza un sistema de ficheros especial y optimizado para squid. ● Toda la información se guarda en un solo fichero. ● Se escriben en bloques de datos. ● No es del todo estable ni recomendable su uso.
  • 46. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com NULL ● No guarda ninguna cache en el disco duro. ● Aunque no lo parezca tiene utilidad. ● En sistemas de proxy anónimos.
  • 47. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicio Configurar en nuestro proxy un cache en /var/cache/aufs de formato... aufs Para ello utilizaremos la “biblia”.
  • 48. Irontec: Curso avanzado de squid 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 Reiniciar squid cache_di r si st ema di r ect or i o mbyt es l evel 1 l evel 2
  • 49. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Configurar coss ● Coss utiliza su propio sistema de ficheros, por lo que la configuración es algo diferente. cache_dir coss /var/cache/coss 512 max-size=16384 Creará un fichero llamado stripe en /var/cache/coss donde se almacenara el sistema de ficheros. Será de un máximo de 512 megas y los objetos que se almacenen tendrán un máximo de tamaño de 16 megas. ● Aún con unos cuantos años de desarrollo, se encuentra en una fase beta. ● Al almacenarse todo en un solo fichero, debemos tener en cuenta las limitaciones del propio sistema de ficheros que lo contiene. Por ejemplo, si es fat32 estaríamos limitados a 4 GB. ● El tamaño de la cache que squid guarda en memoria antes de escribirla al disco es 1 MB. Se cambia con la opción enable-coss-membuf-size. ● Una vez que el fichero está completo, empezará desde el principio sobreescribiendo los datos que encuentre.
  • 50. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Optimización de uso y memoria Cacheo en memoria ram y algorítmos para el movimiento de objetos cacheados.
  • 51. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Optimización en el uso de la memoria y la cache ● Estas políticas son las que definirán que objetos se mantienen en cache o memoria y cuales son eliminados dejando espacio para nuevos objetos. ● Estas políticas se aplicarán a cualquier cache_dir que configuremos después de esta política.
  • 52. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Resumen ● LRU – Los menos accedidos son los primeros en ser eliminados. ● LFUDA – Los objetos mas solicitados permanecen en cache, sin importar el tamaño. – Un objeto grande impide que se cacheen muchos pequeños. ● GDSF – Los objetos pequeños más solicitados permanecen en cache. – Tiene menos eficiencia ya que descarga objetos grandes aunque se utilicen amenudo.
  • 53. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicio Configurar nuestro squid para poner el algoritmo LFUDA, tanto en la cache de disco como en la de memoria.
  • 54. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Solución maximum_object_size 320010 KB cache_replacement_policy heap LFUDA memory_replacement_policy heap LFUDA
  • 55. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Parametros para el uso de la memoria RAM y disco ● Maximum object size (en disco o memoria) Con esta directiva se indica que los ficheros con un tamaño mayor del indicado (en kilobytes) no se guardaran en el disco duro. Por defecto, si no se indica nada, son 4 megas. Ejemplo: maximum_object_size 2000 KB | maximum_object_size_in_memory 2000 KB ● Minimum object size (en disco o memoria) Los objetos de menor tamaño no serán guardados en el disco duro. El valor es específicado en kilobytes. Por defecto el valor es 0. Ejemplo: minimum_object_size 2000 KB | minimum_object_size_in_memory 2000 KB ● Cache Mem Cantidad de memoria ram que será utilizada como cache. En la memoria ram se cachean los objetos descargados directamente desde el servidor origen y desde los servidores hermanos, aumentando de una forma considerable la velocidad de respuesta si estos se piden muy amenudo. En cambio, no cachea en memoria los objetos leidos del disco duro. Un valor entre 8 y 32 megas es los recomendable, pero dependerá de la cantidad de memoria que tengamos en el sistema. Ejemplo: cache_mem 8 MB
  • 56. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Refresh pattern Tenemos un proxy casi funcional, pero no hemos indicado que objetos y como deben cachearse. Tenemos un proxy cojo.
  • 57. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Refresh pattern ● Nos permite indicar, mediante expresiones regulares la duración de un objeto en cache. ● Sirve para objetos que no se indica su caducidad (la mayoría) por parte del webmaster. ● Se deben indicar todos los objetos que deseemos cachear. ● La lista puede ser muy larga, lo mejor es copy/paste y modificar los valores a nuestro gusto.
  • 58. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Objetos con expire ● Los objetos con expire (una fecha de caducidad) no pasan por nuestro refresh pattern. Es el webmaster el que debe indicarlo en su código. ● Si la fecha de expire no se ha superado, squid coge el objeto de la cache. ● Si la fecha de expire se ha superado, squid consulta la fecha de ultima modificacion. ● Si no hay modificación, vuelve a coger el objeto de la cache.
  • 59. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Terminología Objeto fresco: el objeto no ha caducado, por lo que squid puede seguir cogiendolo de la cache. Objeto caducado: el objeto ha caducado, squid debe borrar el objeto de la cache y pedir una nueva versión al servidor web.
  • 60. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Objetos sin expire ● Aquí entra en juego nuestros refresh_pattern. ● refresh_pattern .zip$ 2880 50% 28800 ● .zip hace referencia a los ficheros terminados en .zip. ● 2880 es el tiempo mínimo (en minutos) que puede ser consideraro fresco (no caducado). ● 50% se calcula sobre el tiempo de última modificación. Si este es 6 días, su 50% serán 3. ● 28800 es el tiempo máximo que podrá ser considerado fresco.
  • 61. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Ejercicio Buscad una lista grande de refresh pattern para nuestro squid. Más adelante podremos configurarlo a nuestro gusto partiendo de esa base.
  • 62. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Solución http://www.rediris.es/si/cache/refrescos.es.html
  • 63. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Control del ancho de banda El siempre recurrente problema del ancho de banda. Usuarios que bajan videos, imágenes de Cds, mp3, etc. ¿Cómo podemos controlar el uso de ancho de banda con squid?
  • 64. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Control de ancho de banda DELAY POOLS
  • 65. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Delay pool ● Imaginemos (por qué no se dibujar) un pozo lleno de agua, con dos tuberías ● Una pequeña por la que entra agua. ● Otra 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 tubería pequeña. ● En lugar de agua, tendremos ancho de banda. ● Hay tres clases de delay pools.
  • 66. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Delay pool clase 1 ● Se compone de un solo pozo. ● Se limita de manera global a todos los usuarios, sin importar el uso que estos hagan ni como este montada la lan. ● Es la manera mas sencilla. ● ¿Qué problema tiene esta configuración?
  • 67. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Delay pool clase 2 ● Se compone de un pozo grande que alimenta 256 pozos mas pequeños de clase 1 (red de clase C). ● Es posible controlar el uso que le dan 256 clientes. ● Un solo cliente no puede dejar sin ancho de banda al resto.
  • 68. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Delay pool de clase 3 ● Es un pozo grande, que alimenta 256 pozos de clase 2 y estos a su vez 256 pozos de clase 1. En total, 65,536 pozos (una red de clase B). ● Se utilizan en redes muy grandes. ● ¿Qué problema tiene esta configuración?
  • 69. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Como configurar una delay pool ● Primero indicamos cuantas vamos a usar: delay_pools 2 ● Luego indicamos de que clase será cada una: delay_pool 1 1 # la numero 1 de clase 1 delay_pool 2 2 # la numero 2 de clase 2 ● Configuramos las delay_pools en Bytes/s. delay_parameters 1 64000/384000 delay_parameters 2 64000/384000 10000/200000
  • 70. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Otras opciones de la delay pools ● Los pozos empiezan llenos al 90% delay_initial_bucket_level 90 ● Hacemos que la dmz y los servidores no pasen por las delay pools delay_access 1 allow !servidores !dmz all delay_access 1 deny all
  • 71. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Jerarquias de caches ¿Un solo servidor para miles de clientes? ¿Problemas de rendimiento? Hay que pedir ayuda a la familia.
  • 72. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Hermanos y padres ● Un proxy puede tener hermanos (sibling) y padres (parent). ● Se utiliza el protocolo ICP de comunicación entre proxys. ● Si un proxy no tiene un objeto lo pide al hermano. Si el hermano 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 tampoco lo tenga. http://www.rfc-es.org/rfc/rfc2187-es.txt
  • 73. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Configuración de jerarquias Vamos a configurar dos proxy hermanos y un padre.
  • 74. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Hermano 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.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
  • 75. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Hermano 2 ● 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
  • 76. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Padre ● icp_port 3130 // puerto icp ● icp_access allow all // permitimos acceso icp a todos ●
  • 77. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Esquema de jerarquias 172.16.112.135 Cache: 8081ICP: 3130 172.16.112.136 Cache: 8080 ICP: 3130 172.16.112.135 ICP: 3130 Cache: 3128
  • 78. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Pregunta ¿Qué problemas nos podemos encontrar al establecer las jerarquías de caches?
  • 79. Irontec: Curso avanzado de squid Miguel Angel Nieto miguelangel@irontec.com Fin ¿Dudas, preguntas, insultos?