SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
Irontec: Curso avanzado de squid

    Curso avanzado de Squid




                Miguel Angel Nieto
             miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                  ¿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.
                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                      ¿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.

                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

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


                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                     Esquema Proxy normal


 Internet



            Router




           Proxy-cache Normal




                              Miguel Angel Nieto
Usuarios                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                        Esquema Proxy Inverso
Peticiones web



   Internet



              Router


              Proxy-cache Inverso




               Servidor web
                                 Miguel Angel Nieto
                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                      Esquema Proxy Transparente


         Internet



                    Router




Proxy-cache Transparente




        Usuarios                      Miguel Angel Nieto
                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                           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.




                                                                Miguel Angel Nieto
                                                             miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                          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.

                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                         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

                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                            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=quot;LDAPquot;
    Habilitamos la autenticación ldap.


                                                            Miguel Angel Nieto
                                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                      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.

                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                Pregunta




¿Cómo podemos controlar el acceso a nuestro
               servidor?




                                        Miguel Angel Nieto
                                     miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                   Respuesta

●   IP's
●   MAC's
●   login/password
●   Horarios
●   Control de categorías
●   Listas de acceso
●   Y más...




                                            Miguel Angel Nieto
                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                         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.


                                                               Miguel Angel Nieto
                                                            miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                                                         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)



                                                                                                   Miguel Angel Nieto
                                                                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                             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.

                                                                Miguel Angel Nieto
                                                             miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                             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.




                                                                Miguel Angel Nieto
                                                             miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                         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.




                                                            Miguel Angel Nieto
                                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                        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




                                                      Miguel Angel Nieto
                                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                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
                                                              Miguel Angel Nieto
                                                           miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                             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.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                       Otras formas de filtrar el acceso




¿Con filtrar por ip y mac es suficiente? ¿Qué
 problemas tiene? ¿Qué soluciones podemos
                   encontrar?




                                         Miguel Angel Nieto
                                      miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                             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.




                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                              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




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                               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


                                                     Miguel Angel Nieto
                                                  miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                Autenticación LDAP contra AD



●   auth_param basic program /usr/lib/squid/ldap_auth -R
    -b quot;dc=servidornt,dc=localquot; -D
    quot;cn=administrador,cn=users,dc=servidornt,dc=localquot; -w
    quot;clavequot; -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 quot;squot; y esta será la que
    se compruebe en el AD.
●   -h la ip del servidor controlador de dominio



                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                       Otra forma de acceder a los logs




Miremos los logs de access. Son infumables,
busquemos otra forma de visualizar los datos.




                                          Miguel Angel Nieto
                                       miguelangel@irontec.com
Irontec: Curso avanzado de squid

           Estadísticas con Sarg




                Miguel Angel Nieto
             miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                     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.




                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                 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?




                                         Miguel Angel Nieto
                                      miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                           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.

                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                              ¿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.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                           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




                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                  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
         }
 }



                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                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.




                                                             Miguel Angel Nieto
                                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                      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




                                                             Miguel Angel Nieto
                                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                   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
         }
}

                                                          Miguel Angel Nieto
                                                       miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                      Pregunta




–¿Dónde   se encuentran los cuellos de botella en un
                  servidor Squid?




                                              Miguel Angel Nieto
                                           miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                         Respuesta

●   Accesos continuos al disco duro.

●   Ancho de banda.

●   Capacidad de procesamiento.

●   Memoria RAM.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                  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.                 Miguel Angel Nieto
                                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                 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.




                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                              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.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                             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.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                             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.




                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                              NULL

●   No guarda ninguna cache en el disco duro.

●   Aunque no lo parezca tiene utilidad.

●   En sistemas de proxy anónimos.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                Ejercicio




Configurar en nuestro proxy un cache en
   /var/cache/aufs de formato... aufs

   Para ello utilizaremos la “biblia”.




                                       Miguel Angel Nieto
                                    miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                          Solución




m r / var / cache/ auf s
 kdi
chm pr oxy: pr oxy / var / cache/ auf s
   od
cache_ di r auf s / var / cache/ auf s 512 16 256

Reiniciar squid

cache_di r si st em di r ect or i o m es l evel 1 l evel 2
                   a                 byt




                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                             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.



                                                                           Miguel Angel Nieto
                                                                        miguelangel@irontec.com
Irontec: Curso avanzado de squid

                      Optimización de uso y memoria




Cacheo en memoria ram y algorítmos para el
    movimiento de objetos cacheados.




                                        Miguel Angel Nieto
                                     miguelangel@irontec.com
Irontec: Curso avanzado de squid

                  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.




                                                    Miguel Angel Nieto
                                                 miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                                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.



                                                        Miguel Angel Nieto
                                                     miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                    Ejercicio




Configurar nuestro squid para poner el algoritmo
LFUDA, tanto en la cache de disco como en la de
                   memoria.




                                           Miguel Angel Nieto
                                        miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                              Solución




    maximum_object_size 320010 KB
 cache_replacement_policy heap LFUDA
memory_replacement_policy heap LFUDA




                                     Miguel Angel Nieto
                                  miguelangel@irontec.com
Irontec: Curso avanzado de squid

                         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

                                                                            Miguel Angel Nieto
                                                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                           Refresh pattern




Tenemos un proxy casi funcional, pero no hemos
 indicado que objetos y como deben cachearse.
           Tenemos un proxy cojo.




                                          Miguel Angel Nieto
                                       miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                   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.




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                               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.




                                                   Miguel Angel Nieto
                                                miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                 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.



                                              Miguel Angel Nieto
                                           miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                               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.



                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                      Ejercicio




   Buscad una lista grande de refresh pattern para
nuestro squid. Más adelante podremos configurarlo a
         nuestro gusto partiendo de esa base.




                                             Miguel Angel Nieto
                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                    Solución




http://www.rediris.es/si/cache/refrescos.es.html




                                           Miguel Angel Nieto
                                        miguelangel@irontec.com
Irontec: Curso avanzado de squid

                             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?




                                            Miguel Angel Nieto
                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

         Control de ancho de banda




DELAY POOLS




                       Miguel Angel Nieto
                    miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                            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.


                                                      Miguel Angel Nieto
                                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                              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?




                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                              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.




                                                 Miguel Angel Nieto
                                              miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                           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?




                                                  Miguel Angel Nieto
                                               miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                   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




                                                      Miguel Angel Nieto
                                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                    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




                                                       Miguel Angel Nieto
                                                    miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                 Jerarquias de caches




¿Un solo servidor para miles de clientes?
      ¿Problemas de rendimiento?

   Hay que pedir ayuda a la familia.




                                       Miguel Angel Nieto
                                    miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                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


                                                    Miguel Angel Nieto
                                                 miguelangel@irontec.com
Irontec: Curso avanzado de squid

                         Configuración de jerarquias




Vamos a configurar dos proxy hermanos y un
                   padre.




                                       Miguel Angel Nieto
                                    miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                  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


                                             Miguel Angel Nieto
                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                  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


                                             Miguel Angel Nieto
                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                         Padre




●   icp_port 3130 // puerto icp
●   icp_access allow all // permitimos acceso icp
    a todos
                        ●




                                             Miguel Angel Nieto
                                          miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                    Esquema de jerarquias

           172.16.112.135
           Cache: 3128
           ICP: 3130




172.16.112.135
                                              172.16.112.136
Cache: 8080
ICP: 3130                                       Cache: 8081
                                                ICP: 3130




                                            Miguel Angel Nieto
                                         miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                              Pregunta




¿Qué problemas nos podemos encontrar al
   establecer las jerarquías de caches?




                                      Miguel Angel Nieto
                                   miguelangel@irontec.com
Irontec: Curso avanzado de squid

                                                Fin




¿Dudas, preguntas, insultos?




                                 Miguel Angel Nieto
                              miguelangel@irontec.com

Más contenido relacionado

La actualidad más candente

Réséaux Eténdus ét Réséaux d’Opératéurs
Réséaux Eténdus ét Réséaux d’OpératéursRéséaux Eténdus ét Réséaux d’Opératéurs
Réséaux Eténdus ét Réséaux d’OpératéursAmadou Dia
 
Sistemas operativos threads
Sistemas operativos   threadsSistemas operativos   threads
Sistemas operativos threadsLiNo Candelario
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadJuan Quiroz
 
Introdução à Cibersegurança.pdf
Introdução à Cibersegurança.pdfIntrodução à Cibersegurança.pdf
Introdução à Cibersegurança.pdfDanielSantos740668
 
Seguridad en los Sistemas Operativos
Seguridad en los Sistemas OperativosSeguridad en los Sistemas Operativos
Seguridad en los Sistemas OperativosLauris R Severino
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosHECTOR JAVIER
 
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...The Linux Foundation
 
Intel core i7 processors
Intel core i7 processorsIntel core i7 processors
Intel core i7 processorsSelf employed
 
Introducao vpn (1)
Introducao vpn (1)Introducao vpn (1)
Introducao vpn (1)Valldo
 
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Anne Nicolas
 
Buses pci , pci e, mini pci y agp
Buses pci , pci e, mini pci y agpBuses pci , pci e, mini pci y agp
Buses pci , pci e, mini pci y agpCarlos Chaira
 
DDR, GDDR, HBM SDRAM Memory
DDR, GDDR, HBM SDRAM MemoryDDR, GDDR, HBM SDRAM Memory
DDR, GDDR, HBM SDRAM MemorySubhajit Sahu
 

La actualidad más candente (20)

A Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility ArchitectureA Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility Architecture
 
Réséaux Eténdus ét Réséaux d’Opératéurs
Réséaux Eténdus ét Réséaux d’OpératéursRéséaux Eténdus ét Réséaux d’Opératéurs
Réséaux Eténdus ét Réséaux d’Opératéurs
 
Sistemas operativos threads
Sistemas operativos   threadsSistemas operativos   threads
Sistemas operativos threads
 
Gestor de arranque
Gestor de arranqueGestor de arranque
Gestor de arranque
 
Tolerancia a fallos
Tolerancia a fallosTolerancia a fallos
Tolerancia a fallos
 
systèmes distribues
systèmes distribuessystèmes distribues
systèmes distribues
 
Estrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridadEstrategias para utilizar android con seguridad
Estrategias para utilizar android con seguridad
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Introdução à Cibersegurança.pdf
Introdução à Cibersegurança.pdfIntrodução à Cibersegurança.pdf
Introdução à Cibersegurança.pdf
 
Seguridad en los Sistemas Operativos
Seguridad en los Sistemas OperativosSeguridad en los Sistemas Operativos
Seguridad en los Sistemas Operativos
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas Distribuidos
 
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
 
Intel core i7 processors
Intel core i7 processorsIntel core i7 processors
Intel core i7 processors
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Introducao vpn (1)
Introducao vpn (1)Introducao vpn (1)
Introducao vpn (1)
 
Tranzistori fet8
Tranzistori fet8Tranzistori fet8
Tranzistori fet8
 
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
 
Buses pci , pci e, mini pci y agp
Buses pci , pci e, mini pci y agpBuses pci , pci e, mini pci y agp
Buses pci , pci e, mini pci y agp
 
DDR, GDDR, HBM SDRAM Memory
DDR, GDDR, HBM SDRAM MemoryDDR, GDDR, HBM SDRAM Memory
DDR, GDDR, HBM SDRAM Memory
 

Destacado

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
 
Instalación y Configuración de un Servidor Proxy en Linux Ubuntu
Instalación y Configuración de un Servidor Proxy en Linux UbuntuInstalación y Configuración de un Servidor Proxy en Linux Ubuntu
Instalación y Configuración de un Servidor Proxy en Linux UbuntuMarcelo Alcivar
 
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Max Morales
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor ProxyTotus Muertos
 
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...Fragatacante
 
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 squid3ALBERTO CHUICA
 
Presentacion Squid
Presentacion SquidPresentacion Squid
Presentacion Squidalexmerono
 
IPTABLES y SQUID‏
IPTABLES y SQUID‏IPTABLES y SQUID‏
IPTABLES y SQUID‏ingpuma
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centosmurilloyair
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntuAlvaro López
 
Configuracion proxy Windows server 2008
Configuracion proxy Windows server 2008Configuracion proxy Windows server 2008
Configuracion proxy Windows server 2008teresi0101
 
servidor squid
servidor squidservidor squid
servidor squidhack3600
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextkjuanextk
 
Proxy解說
Proxy解說Proxy解說
Proxy解說Tony Yeh
 

Destacado (20)

Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUID
 
Instalación y Configuración de un Servidor Proxy en Linux Ubuntu
Instalación y Configuración de un Servidor Proxy en Linux UbuntuInstalación y Configuración de un Servidor Proxy en Linux Ubuntu
Instalación y Configuración de un Servidor Proxy en Linux Ubuntu
 
Conteo y permutaciones
Conteo y permutacionesConteo y permutaciones
Conteo y permutaciones
 
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor Proxy
 
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...
 
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
 
Squid
Squid Squid
Squid
 
Presentacion Squid
Presentacion SquidPresentacion Squid
Presentacion Squid
 
Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3Manual Servidor Proxy Squid3
Manual Servidor Proxy Squid3
 
IPTABLES y SQUID‏
IPTABLES y SQUID‏IPTABLES y SQUID‏
IPTABLES y SQUID‏
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centos
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntu
 
Configuracion proxy Windows server 2008
Configuracion proxy Windows server 2008Configuracion proxy Windows server 2008
Configuracion proxy Windows server 2008
 
servidor squid
servidor squidservidor squid
servidor squid
 
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
 
Squid1
Squid1Squid1
Squid1
 
Ictic4
Ictic4Ictic4
Ictic4
 
Proxy解說
Proxy解說Proxy解說
Proxy解說
 

Similar a Curso Squid avanzado

Cursosquid
CursosquidCursosquid
CursosquidIrontec
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3cercer
 
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 estableBartOc3
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
 
Amenzas de seguridad en redes modernas - Seguridad informatica
Amenzas de seguridad en redes modernas - Seguridad informaticaAmenzas de seguridad en redes modernas - Seguridad informatica
Amenzas de seguridad en redes modernas - Seguridad informaticafillescas
 
Subversion Press
Subversion PressSubversion Press
Subversion Pressjlrvpuma
 
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
 
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes Francisco Medina
 
Práctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilanPráctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilanTerrafx9
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxykaliz
 
Uem coud v3.0_12_diciembre_2014_presentación final
Uem coud v3.0_12_diciembre_2014_presentación finalUem coud v3.0_12_diciembre_2014_presentación final
Uem coud v3.0_12_diciembre_2014_presentación finalFernando Mateus
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 

Similar a Curso Squid avanzado (20)

Cursosquid
CursosquidCursosquid
Cursosquid
 
Squid
SquidSquid
Squid
 
Memoria sobre Squid3
Memoria sobre Squid3Memoria sobre Squid3
Memoria sobre Squid3
 
PROXY CENTOS 6.5
PROXY CENTOS 6.5PROXY CENTOS 6.5
PROXY CENTOS 6.5
 
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
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
Amenzas de seguridad en redes modernas - Seguridad informatica
Amenzas de seguridad en redes modernas - Seguridad informaticaAmenzas de seguridad en redes modernas - Seguridad informatica
Amenzas de seguridad en redes modernas - Seguridad informatica
 
Proxy
ProxyProxy
Proxy
 
Squid
SquidSquid
Squid
 
Subversion Press
Subversion PressSubversion Press
Subversion Press
 
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
 
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes
Actividad No. 1.14: Protección del servidor MySQL mediante filtrado de paquetes
 
Práctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilanPráctica 3 iptables fran gavilan
Práctica 3 iptables fran gavilan
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxy
 
RESUMEN PROXY
RESUMEN PROXYRESUMEN PROXY
RESUMEN PROXY
 
servidor proxy
servidor proxyservidor proxy
servidor proxy
 
Resumen Servidor Proxy
Resumen Servidor ProxyResumen Servidor Proxy
Resumen Servidor Proxy
 
Uem coud v3.0_12_diciembre_2014_presentación final
Uem coud v3.0_12_diciembre_2014_presentación finalUem coud v3.0_12_diciembre_2014_presentación final
Uem coud v3.0_12_diciembre_2014_presentación final
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 

Más de Miguel Angel Nieto (14)

Query planner
Query plannerQuery planner
Query planner
 
MySQL 5.6 GTID in a nutshell
MySQL 5.6 GTID in a nutshellMySQL 5.6 GTID in a nutshell
MySQL 5.6 GTID in a nutshell
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Curso SMTP avanzado
Curso SMTP avanzadoCurso SMTP avanzado
Curso SMTP avanzado
 
Apache avanzado
Apache avanzadoApache avanzado
Apache avanzado
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Curso SMTP
Curso SMTPCurso SMTP
Curso SMTP
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 
Apache
ApacheApache
Apache
 
Nfs, Nis, DHCP
Nfs, Nis, DHCPNfs, Nis, DHCP
Nfs, Nis, DHCP
 
Monitorización
MonitorizaciónMonitorización
Monitorización
 
Administración Zimbra
Administración ZimbraAdministración Zimbra
Administración Zimbra
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Curso Squid avanzado

  • 1. Irontec: Curso avanzado de squid Curso avanzado de Squid Miguel Angel Nieto miguelangel@irontec.com
  • 2. Irontec: Curso avanzado de squid ¿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. Miguel Angel Nieto miguelangel@irontec.com
  • 3. Irontec: Curso avanzado de squid ¿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. Miguel Angel Nieto miguelangel@irontec.com
  • 4. Irontec: Curso avanzado de squid 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... Miguel Angel Nieto miguelangel@irontec.com
  • 5. Irontec: Curso avanzado de squid Esquema Proxy normal Internet Router Proxy-cache Normal Miguel Angel Nieto Usuarios miguelangel@irontec.com
  • 6. Irontec: Curso avanzado de squid Esquema Proxy Inverso Peticiones web Internet Router Proxy-cache Inverso Servidor web Miguel Angel Nieto miguelangel@irontec.com
  • 7. Irontec: Curso avanzado de squid Esquema Proxy Transparente Internet Router Proxy-cache Transparente Usuarios Miguel Angel Nieto miguelangel@irontec.com
  • 8. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 9. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 10. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 11. Irontec: Curso avanzado de squid 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=quot;LDAPquot; Habilitamos la autenticación ldap. Miguel Angel Nieto miguelangel@irontec.com
  • 12. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 13. Irontec: Curso avanzado de squid Pregunta ¿Cómo podemos controlar el acceso a nuestro servidor? Miguel Angel Nieto miguelangel@irontec.com
  • 14. Irontec: Curso avanzado de squid Respuesta ● IP's ● MAC's ● login/password ● Horarios ● Control de categorías ● Listas de acceso ● Y más... Miguel Angel Nieto miguelangel@irontec.com
  • 15. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 16. Irontec: Curso avanzado de squid 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) Miguel Angel Nieto miguelangel@irontec.com
  • 17. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 18. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 19. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 20. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 21. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 22. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 23. Irontec: Curso avanzado de squid Otras formas de filtrar el acceso ¿Con filtrar por ip y mac es suficiente? ¿Qué problemas tiene? ¿Qué soluciones podemos encontrar? Miguel Angel Nieto miguelangel@irontec.com
  • 24. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 25. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 26. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 27. Irontec: Curso avanzado de squid Autenticación LDAP contra AD ● auth_param basic program /usr/lib/squid/ldap_auth -R -b quot;dc=servidornt,dc=localquot; -D quot;cn=administrador,cn=users,dc=servidornt,dc=localquot; -w quot;clavequot; -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 quot;squot; y esta será la que se compruebe en el AD. ● -h la ip del servidor controlador de dominio Miguel Angel Nieto miguelangel@irontec.com
  • 28. Irontec: Curso avanzado de squid Otra forma de acceder a los logs Miremos los logs de access. Son infumables, busquemos otra forma de visualizar los datos. Miguel Angel Nieto miguelangel@irontec.com
  • 29. Irontec: Curso avanzado de squid Estadísticas con Sarg Miguel Angel Nieto miguelangel@irontec.com
  • 30. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 31. Irontec: Curso avanzado de squid 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? Miguel Angel Nieto miguelangel@irontec.com
  • 32. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 33. Irontec: Curso avanzado de squid ¿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. Miguel Angel Nieto miguelangel@irontec.com
  • 34. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 35. Irontec: Curso avanzado de squid 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 } } Miguel Angel Nieto miguelangel@irontec.com
  • 36. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 37. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 38. Irontec: Curso avanzado de squid 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 } } Miguel Angel Nieto miguelangel@irontec.com
  • 39. Irontec: Curso avanzado de squid Pregunta –¿Dónde se encuentran los cuellos de botella en un servidor Squid? Miguel Angel Nieto miguelangel@irontec.com
  • 40. Irontec: Curso avanzado de squid Respuesta ● Accesos continuos al disco duro. ● Ancho de banda. ● Capacidad de procesamiento. ● Memoria RAM. Miguel Angel Nieto miguelangel@irontec.com
  • 41. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 42. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 43. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 44. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 45. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 46. Irontec: Curso avanzado de squid NULL ● No guarda ninguna cache en el disco duro. ● Aunque no lo parezca tiene utilidad. ● En sistemas de proxy anónimos. Miguel Angel Nieto miguelangel@irontec.com
  • 47. Irontec: Curso avanzado de squid Ejercicio Configurar en nuestro proxy un cache en /var/cache/aufs de formato... aufs Para ello utilizaremos la “biblia”. Miguel Angel Nieto miguelangel@irontec.com
  • 48. Irontec: Curso avanzado de squid Solución m r / var / cache/ auf s kdi chm pr oxy: pr oxy / var / cache/ auf s od cache_ di r auf s / var / cache/ auf s 512 16 256 Reiniciar squid cache_di r si st em di r ect or i o m es l evel 1 l evel 2 a byt Miguel Angel Nieto miguelangel@irontec.com
  • 49. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 50. Irontec: Curso avanzado de squid Optimización de uso y memoria Cacheo en memoria ram y algorítmos para el movimiento de objetos cacheados. Miguel Angel Nieto miguelangel@irontec.com
  • 51. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 52. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 53. Irontec: Curso avanzado de squid Ejercicio Configurar nuestro squid para poner el algoritmo LFUDA, tanto en la cache de disco como en la de memoria. Miguel Angel Nieto miguelangel@irontec.com
  • 54. Irontec: Curso avanzado de squid Solución maximum_object_size 320010 KB cache_replacement_policy heap LFUDA memory_replacement_policy heap LFUDA Miguel Angel Nieto miguelangel@irontec.com
  • 55. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 56. Irontec: Curso avanzado de squid Refresh pattern Tenemos un proxy casi funcional, pero no hemos indicado que objetos y como deben cachearse. Tenemos un proxy cojo. Miguel Angel Nieto miguelangel@irontec.com
  • 57. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 58. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 59. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 60. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 61. Irontec: Curso avanzado de squid Ejercicio Buscad una lista grande de refresh pattern para nuestro squid. Más adelante podremos configurarlo a nuestro gusto partiendo de esa base. Miguel Angel Nieto miguelangel@irontec.com
  • 62. Irontec: Curso avanzado de squid Solución http://www.rediris.es/si/cache/refrescos.es.html Miguel Angel Nieto miguelangel@irontec.com
  • 63. Irontec: Curso avanzado de squid 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? Miguel Angel Nieto miguelangel@irontec.com
  • 64. Irontec: Curso avanzado de squid Control de ancho de banda DELAY POOLS Miguel Angel Nieto miguelangel@irontec.com
  • 65. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 66. Irontec: Curso avanzado de squid 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? Miguel Angel Nieto miguelangel@irontec.com
  • 67. Irontec: Curso avanzado de squid 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. Miguel Angel Nieto miguelangel@irontec.com
  • 68. Irontec: Curso avanzado de squid 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? Miguel Angel Nieto miguelangel@irontec.com
  • 69. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 70. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 71. Irontec: Curso avanzado de squid Jerarquias de caches ¿Un solo servidor para miles de clientes? ¿Problemas de rendimiento? Hay que pedir ayuda a la familia. Miguel Angel Nieto miguelangel@irontec.com
  • 72. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 73. Irontec: Curso avanzado de squid Configuración de jerarquias Vamos a configurar dos proxy hermanos y un padre. Miguel Angel Nieto miguelangel@irontec.com
  • 74. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 75. Irontec: Curso avanzado de squid 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 Miguel Angel Nieto miguelangel@irontec.com
  • 76. Irontec: Curso avanzado de squid Padre ● icp_port 3130 // puerto icp ● icp_access allow all // permitimos acceso icp a todos ● Miguel Angel Nieto miguelangel@irontec.com
  • 77. Irontec: Curso avanzado de squid Esquema de jerarquias 172.16.112.135 Cache: 3128 ICP: 3130 172.16.112.135 172.16.112.136 Cache: 8080 ICP: 3130 Cache: 8081 ICP: 3130 Miguel Angel Nieto miguelangel@irontec.com
  • 78. Irontec: Curso avanzado de squid Pregunta ¿Qué problemas nos podemos encontrar al establecer las jerarquías de caches? Miguel Angel Nieto miguelangel@irontec.com
  • 79. Irontec: Curso avanzado de squid Fin ¿Dudas, preguntas, insultos? Miguel Angel Nieto miguelangel@irontec.com