Proxy / Caché squid
Próxy/Caché
- Proxy: Proporciona conexión a internet, cuando no tenemos enrutadores/NAT. Por lo tanto gestiona la comunicación HTTP, podemos filtrar!!!
- Caché: Además guardar ficheros, de tal manera que los futuros accesos no son necesarios acceder a internet.
Mecanismos de validación
Una vez cacheada la página, si volvemos acceder a ella se preguntará al servidor si se ha modificado, el servidor responderá con la cabecera HTTP, y si la copia que tenemos es valida (no se ha modificado recientemente) se servirá directamente.
Mecanismos de frescura
Cada repuesta lleva asociada una fecha de caducidad (como un yogurt) y puede ser utilizada sin necesidad de que el servidor compruebe su validez.
Last-Modified
Expires
max-age
Caché: Squid
Como evitar el cacheo de nuestro contenido
- Cache-control: max-age – Especifica el número máximos de segundos en los que el contenido sera considerado como fresco
- Cache-control: s-maxage – Similar a la directiva max-age, pero aplicable solo para caches compartidas (por ejemplo squid).
- Cache-control: public – indica que la versión cacheada puede ser guardada por proxies y otros servidores intermedios para que todo el mundo tenga acceso a ella..
- Cache-control: private – indica que el archivo no es el mismo para usuarios diferentes. De esta manera el archivo puede ser cacheado por el navegador del usuario pero no debe ser cacheado por proxies intermedios.
- Cache-control: no-cache – Significa que el archivo no debe ser cacheado, esto puede ser necesario en casos en los que una misma url pueda devolver diferentes contenidos.
- Cache-control: no-store – Indica al navegador que sólo guarde el documento el tiempo necesario para mostrarlo.
refresh_pattern, controlando la caché
refresh_pattern -i \.jpg$ 30 50% 4320
Más información:
Proxy: squid
apt-get install squid3
- Puerto 3128
- Memoria de la cache (300 Mb)
- Tamaño de cache (8 Gb)
- Máximo tamaño de los elementos cacheados (20 Mb)
/etc/squid3/squid.conf
acl localnet src 10.0.0.0/24
http_access allow localnet
Permitir acceso
/var/log/squid3/access.log
Configuración en los clientes
ACL de tipo origen
-
Dirección IP del cliente
-
Nombre del usuario
-
Grupo de usuarios
-
Navegador
ACL de tipo destino
-
Puerto
-
Dominio DNS
-
URL
-
Tipo MIME
Esquemas de control de acceso en Squid:ACLs
acl nombreacl tipoacl [-i] valor...
acl nombreacl tipoacl [-i] "archivo"
Tipos de elementos de ACL
src
browser
dstdomain
url_regex
port
method
req_mime_type
rep_mime_type
time
Las listas de acceso son usadas para permitir o denegar el acceso a uno o más elementos de ACL
http_access allow|deny [!]aclname ...
http_reply_access allow|deny [!]aclname ...
acl localhost src 127.0.0.1/32
acl loc_subnet src 192.168.221.0/24
acl loc_sysadmin src 192.168.221.110/32
acl loc_gerentes src 192.168.221.130 192.168.221.140 192.168.221.150 192.168.221.160
acl ip_sin_internet src "/etc/squid3/ip_sin_internet.acl"
acl dominios_videos dstdomain .youtube.com .justin.tv
acl dominios_msn dstdomain .login.live.com .contacts.msn.com .messenger.msn.com .messenger.hotmail.com .hotmail.msn.com .messenger.live.com loginnet.passport.com
acl dominios_porno dstdomain "/etc/squid3/dominios_porno.acl"
acl urls_descargas url_regex -i rapidshare megaupload
acl archivos_multimedia urlpath_regex -i \.mp3$ \.mp4$ \.wma$ \.avi$ \.wmv$ \.mov$ \.mpg$ \.mpeg$ \.ram$ \.vob$
acl url_msn url_regex -i gateway.dll
acl req_mimetype_audio req_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$
acl rep_mimetype_audio rep_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$
acl req_mimetype_video req_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$
acl rep_mimetype_video rep_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$
acl req_mimetype_flash req_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$
acl rep_mimetype_flash rep_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$
.....
http_access allow localhost
http_access deny ip_sin_internet
http_access allow url_msn loc_sysadmin
http_access deny url_msn
http_access allow dominios_msn loc_sysadmin
http_access deny dominios_msn
http_access allow loc_sysadmin
http_access allow loc_gerentes !dominios_porno !urls_descargas
http_access deny req_mimetype_audio
http_access deny req_mimetype_video
http_access deny req_mimetype_flash
http_access allow loc_subnet !dominios_videos !dominios_porno !urls_descargas !archivos_multimedia
http_access deny all
http_reply_access allow rep_mime_msn loc_sysadmin
http_reply_access deny rep_mime_msn
http_reply_access deny rep_mimetype_audio
http_reply_access deny rep_mimetype_video
http_reply_access deny rep_mimetype_flash
Autenticación por usuarios y grupos con Squid
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid3/usuarios-proxy-passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
/etc/squid3/squid.conf
htpasswd -c /etc/squid3/usuarios-proxy-passwd usuario1
acl usuarios proxy_auth REQUIRED
acl usuarios_directores proxy_auth usuario1 usuario2 usuario3
http_access allow usuarios
http_access allow usuarios_directores
Ejemplo:
acl Internet_Alto proxy_auth usuario1 usuario2 usuario3
acl Internet_Medio proxy_auth usuario30 usuario31 usuario32
acl Internet_Bajo proxy_auth usuario40 usuario41 usuario42
...
...
...
http_access allow localhost
http_access allow Internet_Alto
http_access allow Internet_Medio !dominios_videos !dominios_porno
http_access allow Internet_Bajo !dominios_videos !dominios_porno !urls_descargas !archivos_multimedia
http_access deny all
- DansGuardian es un software de filtro de contenido, diseñado para controlar el acceso a sitios web.
- Sarg (Squid Analysis Report Generator) es una herramienta que permite a los administradores de sistemas ver de una manera sencilla y amigable que sitios de Internet visitan los usuarios de la red local usando los logs de Squid.
squid
By Jose Domingo Muñoz
squid
- 1,535