Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SQUID: Web Proxy Cache
www.squid-cache.org
¿Qué es un proxy?
 Un servidor proxy es un software
que realiza tareas de servidor
intermediario.
 El caso más común es ...
Conexión a Internet sin
Proxy
Conexión a Internet con
Proxy
Ventajas
 Ahorro de tráfico
 Velocidad en tiempo de respuesta
 Control de acceso
 Demanda de usuarios
 Filtrado de co...
Desventajas
 Carga en el servidor
 Intromisión en los datos del
usuario
 Incoherencia de la información
 Irregularidad...
Objetivos
 Dos objetivos principales:
 Reducir la utilización del ancho de
banda de Internet -> Caché
 Permitir el acce...
SQUID
 SQUID puede funcionar como
servidor intermediario (Proxy) y
caché de contenido de red para
los protocolos HTTP, FT...
SQUID
 También se puede configurar
SQUID para controlar el acceso a
Internet según la franja horaria.
 Otra de sus funci...
Funcionamiento
 Los usuarios configuran sus
navegadores para utilizar Squid.
 Cada petición HTTP es procesada por
el pro...
Jerarquía de servidores
 SQUID permite especificar otros
servidores intermediarios,
utilizando la caché en una
jerarquía ...
Jerarquía de servidores
Configuración de SQUID
 La configuración del servidor proxy
SQUID se realiza en un único archivo
de texto plano generalme...
Parámetros de red
 http_port [IP_address:]port
 icp_port port
 udp_incoming_address IP_address
 udp_outgoing_address I...
Parámetros de jerarquía
 cache_peer hostname type http_port
icp_port [proxy_only no_query default]
 cache_peer_domain ca...
Parámetros del caché y log
 cache_mem 8 MB
 maximum_object_size 4096 KB
 minimum_object_size 0 KB
 maximum_object_size...
Parámetros del caché y log
 cache_dir ufs /var/lib/squid/cache 100 16
256
 cache_access_log
/var/lib/squid/logs/access.l...
Listas de control de acceso
(ACL)
 acl aclname [-i] acltype string1 … | file
 Los siguientes son tipos de ACL:
 src|dst...
Listas de control de acceso
(ACL)
 port dstport_number
 proto protocol
 method metho-type
 browser pattern
 proxy_aut...
Permisos para las ACLs
 http_access allow|deny [!]aclname …
 icp_access allow|deny [!]aclname …
 miss_access allow|deny...
Reglas por defecto
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
...
Reglas por defecto
#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow man...
Ejemplo
#
# Add this to the bottom of the ACL section of squid.conf
#
acl home_network src 192.168.1.0/24
acl business_hou...
Timeouts
 connect_timeout 120 seconds
 peer_connect_timeout 30 seconds
 client_lifetime 1 day
 shutdown_lifetime 5 sec...
Aceleración HTTP
 Nos permite trabajar con proxy transparente.
 httpd_accel_host virtual
 httpd_accel_port 80
 httpd_a...
Redirección de puerto
 Suponemos que tanto Squid como el firewall se
encuentran en el mismo equipo: eth1 -> LAN, eth0
-> ...
Delay Pools
 Para poder limitar el AB hay
activar esta opción con --enable-
delay-pools en la configuración
antes de comp...
Ejemplo de colas de
retraso
 Para limitar la velocidad de
bajada de archivos mp3:
acl archivoMP3 url_regex –i mp3
delay_p...
Ejemplo de colas de
retraso
 Para limitar el ancho de banda
general y por usuario:
acl mired src 10.0.0.0/24
delay_pools ...
Otros parámetros
 cache_mgr webmaster
 visible_hostname server_name
 cache_effective_user squid
 cache_effective_group...
Referencias
 O’Reilly - Squid The Definitive Guide
 Squid Web Proxy Cache - www.squid-
cache.org
 The Linux Document Pr...
Upcoming SlideShare
Loading in …5
×

Squid

Squid Web Proxy

  • Be the first to comment

  • Be the first to like this

Squid

  1. 1. SQUID: Web Proxy Cache www.squid-cache.org
  2. 2. ¿Qué es un proxy?  Un servidor proxy es un software que realiza tareas de servidor intermediario.  El caso más común es utilizarlo para compartir Internet en ámbitos donde se posee una única conexión a Internet y varias computadoras -> Web Proxy
  3. 3. Conexión a Internet sin Proxy
  4. 4. Conexión a Internet con Proxy
  5. 5. Ventajas  Ahorro de tráfico  Velocidad en tiempo de respuesta  Control de acceso  Demanda de usuarios  Filtrado de contenidos  Modificación de contenidos
  6. 6. Desventajas  Carga en el servidor  Intromisión en los datos del usuario  Incoherencia de la información  Irregularidad en la comunicación
  7. 7. Objetivos  Dos objetivos principales:  Reducir la utilización del ancho de banda de Internet -> Caché  Permitir el acceso Web sólo a usuarios autorizados -> Control de Acceso  Un servidor proxy Squid fácilmente puede cumplir con estos dos objetivos.
  8. 8. SQUID  SQUID puede funcionar como servidor intermediario (Proxy) y caché de contenido de red para los protocolos HTTP, FTP, GOPHER y WAIS, proxy de SSL, caché transparente, caché de consultas DNS y otras muchas más como filtración de dominios y control de acceso por IP y por usuario.
  9. 9. SQUID  También se puede configurar SQUID para controlar el acceso a Internet según la franja horaria.  Otra de sus funciones es administrar el ancho de banda disponible para los usuarios.  Puede trabajar en forma conjunta con otros servidores para balancear la carga en la red y mejorar el cacheo.
  10. 10. Funcionamiento  Los usuarios configuran sus navegadores para utilizar Squid.  Cada petición HTTP es procesada por el proxy.  Si está en la caché, es entregada directamente al usuario.  Sino, se hace una petición al servidor en Internet, se almacena en caché y se entrega al usuario.
  11. 11. Jerarquía de servidores  SQUID permite especificar otros servidores intermediarios, utilizando la caché en una jerarquía como padres (parent) o como hermanos (sibling).  Dependiendo de la topología de la red estos pueden operar en cascada (padres) o en paralelo (hermanos).
  12. 12. Jerarquía de servidores
  13. 13. Configuración de SQUID  La configuración del servidor proxy SQUID se realiza en un único archivo de texto plano generalmente ubicado en /etc/squid/squid.conf.  Los parámetros de configuración en este archivo deben comenzar sin dejar espacios.  Las líneas que comienzan con “#” son comentarios.
  14. 14. Parámetros de red  http_port [IP_address:]port  icp_port port  udp_incoming_address IP_address  udp_outgoing_address IP_address  mcast_groups IP_address  Por defecto SQUID escucha en el puerto 3128 y utiliza el 3130 para comunicarse mediante ICP (Internet Cache Protocol) con otros caches.
  15. 15. Parámetros de jerarquía  cache_peer hostname type http_port icp_port [proxy_only no_query default]  cache_peer_domain cache_host domain  neighbor_type_domain cache_host parent|sibling domain  hierarchy_stoplist cgi-bin ?  acl QUERY urlpath_regex cgi-bin ?  no_cache deny QUERY
  16. 16. Parámetros del caché y log  cache_mem 8 MB  maximum_object_size 4096 KB  minimum_object_size 0 KB  maximum_object_size_in_memory 8 KB  cache_replacement_policy lru  memory_replacement_policy lru
  17. 17. Parámetros del caché y log  cache_dir ufs /var/lib/squid/cache 100 16 256  cache_access_log /var/lib/squid/logs/access.log  cache_log /var/lib/squid/logs/cache.log  pid_filename /var/run/squid.pid  client_netmask 255.255.255.0
  18. 18. Listas de control de acceso (ACL)  acl aclname [-i] acltype string1 … | file  Los siguientes son tipos de ACL:  src|dst IP_address/netmask  src_domain|dst_domain domain_name  srcdom_regex|dstdom_regex pattern  Time day-abbreviations h1:m1-h2:m2  url_regex pattern  urlpath_regex pattern
  19. 19. Listas de control de acceso (ACL)  port dstport_number  proto protocol  method metho-type  browser pattern  proxy_auth username|REQUIRED  maxconn number_conections  req_mime_type pattern  arp mac_address
  20. 20. Permisos para las ACLs  http_access allow|deny [!]aclname …  icp_access allow|deny [!]aclname …  miss_access allow|deny [!]aclname …  cache_peer_access cache-host allow|deny [!]aclname …  Interpretación de las reglas:  http_access ACTION statement1 AND statement2 AND statement3 OR  http_access ACTION statement1 AND statement2 OR  ….
  21. 21. Reglas por defecto acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl manager proto cache_object acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025- 65535 acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT
  22. 22. Reglas por defecto #Recommended minimum configuration: # # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Deny requests to unknown ports http_access deny !Safe_ports # Deny CONNECT to other than SSL ports http_access deny CONNECT !SSL_ports # And finally deny all other access to this proxy http_access deny all
  23. 23. Ejemplo # # Add this to the bottom of the ACL section of squid.conf # acl home_network src 192.168.1.0/24 acl business_hours time M T W H F 9:00-17:00 acl GoodSites dstdomain "/usr/local/etc/allowed-sites.squid" acl BadSites dstdomain "/usr/local/etc/restricted-sites.squid" # # Add this at the top of the http_access section of squid.conf # http_access deny BadSites http_access allow home_network business_hours GoodSites
  24. 24. Timeouts  connect_timeout 120 seconds  peer_connect_timeout 30 seconds  client_lifetime 1 day  shutdown_lifetime 5 seconds
  25. 25. Aceleración HTTP  Nos permite trabajar con proxy transparente.  httpd_accel_host virtual  httpd_accel_port 80  httpd_accel_with_proxy on  httpd_accel_uses_host_header on  En la versión 2.6 solo hace falta agregar la palabra transparent en el parámetro http_port:  http_port 3128 transparent  En ambos casos es necesario redireccionar las peticiones al puerto 80 al especificado en http_port mediante iptables.
  26. 26. Redirección de puerto  Suponemos que tanto Squid como el firewall se encuentran en el mismo equipo: eth1 -> LAN, eth0 -> Web  iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128  iptables -A INPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -i eth1 -p tcp --dport 3128  iptables -A OUTPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -o eth0 -p tcp --dport 80  iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -i eth0 -p tcp --sport 80  iptables -A OUTPUT -j ACCEPT -m state –state ESTABLISHED,RELATED -o eth1 -p tcp --sport 80
  27. 27. Delay Pools  Para poder limitar el AB hay activar esta opción con --enable- delay-pools en la configuración antes de compilar.  delay_pools numbers  delay_class pool number_class  delay_parameters pool aggregate [network individual]  delay_acces pool allow|deny aclname
  28. 28. Ejemplo de colas de retraso  Para limitar la velocidad de bajada de archivos mp3: acl archivoMP3 url_regex –i mp3 delay_pools 1 delay_class 1 1 delay_parameters 1 16000/16000 delay_acces 1 allow archivoMP3
  29. 29. Ejemplo de colas de retraso  Para limitar el ancho de banda general y por usuario: acl mired src 10.0.0.0/24 delay_pools 1 delay_class 1 2 delay_parameters 25000/25000 2500/2500 delay_acces 1 allow mired
  30. 30. Otros parámetros  cache_mgr webmaster  visible_hostname server_name  cache_effective_user squid  cache_effective_group squid  ftp_user username  ftp_passive on|off  cache_dns_program program  dns_nameservers Ipaddress  error_directory /usr/share/squid/errors/Spanish  deny_info err_page aclname  always_direct allow|deny [!]aclname …  never_direct allow|deny [!]aclname …
  31. 31. Referencias  O’Reilly - Squid The Definitive Guide  Squid Web Proxy Cache - www.squid- cache.org  The Linux Document Project - es.tldp.org  ViSOLVE - www.visolve.com/squid/  Linux Home Networking – www.linuxhomenetworking.com  Servidor Proxy SQUID - Emiliano López

×