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
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. Desventajas
Carga en el servidor
Intromisión en los datos del
usuario
Incoherencia de la información
Irregularidad en la comunicación
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. 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. 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. 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. 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).
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. 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.
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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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