Squid Avanzado

  • View
    421

  • Download
    3

Embed Size (px)

Text of Squid Avanzado

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 Rpido 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 cdigo, podemos desarrollar proyectos de gran complejidad de forma rpida y a precios competitivos. El Software Libre proporciona a muchas de nuestras soluciones una potencia difcilmente alcanzable por sistemas privativos en plazos y en costes. Representa para Irontec un modelo ms 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 Testing3.0 La pgina 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

Usuarios

Miguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

Esquema Proxy Inverso Peticiones web

Internet

Router

Proxy-cache Inverso

Servidor webMiguel 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 contenidosBloquear el acceso a contenido por categoras.

Firewall de seguridadEs una aplicacin de seguridad restrictiva, permitiendo la salida a equipos o subredes y denegandolo a otras.

AnnimoProvee acceso web annimo.

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 categoras. Ser necesario tenerlo a mano siempre que se tenga duda.Miguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

Instalacin

Se puede hacer por cdigo fuente o descargando el binario con las herramientas de la distribucin seleccionada. El binario pude no contener todas las opciones que necesitamos. Al compilar es necesario indicar que caractersticas deseamos. Tenemos una lista con ./configure --helpMiguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

Instalacin por cdigo fuente

--prefix=PREFIX Donde queremos que se dejen los ficheros (por defecto /usr/local/squid) --enable-ssl Soporte para https. --enable-default-err-language=es En que idioma queremos los mensajes de error. --enable-linux-netfilter Habilita el uso de iptables para proxys transparente. --enable-storeio=aufs,coss,diskd,ufs Habilitamos los distintos tipos de formas para almacenar los ficheros. --enable-basic-auth-helpers="LDAP" Habilitamos la autenticacin ldap.

Miguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

Datos bsicos

El fichero de configuracin 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

Cmo 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 categoras Listas de acceso Y ms...

Miguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

Configuracin bsica

Abrimos el fichero de configuracin 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 configuracin. /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 informacin 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 parmetros para conceder o denegar accesos a nuestro proxy. En el anterior ejemplo donde montabamos un proxy bsico 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 parmetros En el ejemplo, la acl se llama all, con la regla src (source) y como parmetro una ip y su mscara 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 denegacin.

Miguel Angel Nieto miguelangel@irontec.com

Irontec: Curso avanzado de squid

ACL'sHay que tener especial cuidado con:

Olvidarnos establecer las ordenes de denegacin. 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 va libre a tu ip y la de tu compaero.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 compaero.acl subred src direccion.ip/24

Dar va libre a tu ip ya de tu compaeroacl 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 allMiguel 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 conexin 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