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

496 views

Published on

Squid Web Proxy

Published in: Software
  • 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

×