Combinar myportname y src de Squid con ACL separadas
Combina un listener de Squid con nombre y una red de clientes permitida sin poner dos tipos de ACL en la misma definición.
La configuración parece plausible a primera vista:
acl team_a myportname 3128 src 198.51.100.0/24
Pero una definición de ACL tiene un solo tipo. Aquí myportname es el tipo; añadir la palabra src no inicia una segunda comprobación. Las palabras restantes pertenecen a la lista de valores del primer tipo. Esa línea no expresa «este listener y esta red de clientes».
Poner nombre a cada condición
Usa un nombre para el socket de escucha y una ACL de origen aparte. Este extracto emplea direcciones de documentación, que deben sustituirse por direcciones adecuadas al despliegue:
http_port 192.0.2.10:3128 name=team_a_port
acl team_a_port myportname team_a_port
acl team_a_clients src 198.51.100.0/24
http_access allow team_a_port team_a_clients
http_access deny all
Coloca la regla de permiso después de las protecciones existentes para puertos de destino inseguros, objetivos CONNECT restringidos y acceso de administración. El extracto ilustra la condición cliente/listener; no sustituye esas protecciones.
Las condiciones de una línea http_access se combinan con AND. Dos líneas de permiso separadas admitirían cada condición de forma independiente, lo que cambiaría bastante la política. Varios valores dentro de una ACL suelen ofrecer alternativas para esa única comprobación.
Elegir la salida por separado
Un listener coincidente también puede usarse con tcp_outgoing_address para elegir una dirección de origen local. Eso es selección de enrutamiento, no permiso para usar el proxy. Una regla de dirección de salida no puede hacer que una petición denegada pase por http_access.
Si una configuración con varias direcciones deja de funcionar tras una actualización, separa las pruebas: un error de análisis apunta a la sintaxis de la configuración; una denegación de acceso apunta a la coincidencia de reglas; una petición permitida con la salida equivocada apunta a la selección de salida o a un NAT posterior. Cambiar las tres cosas a la vez hace que un pequeño error de ACL sea mucho más difícil de encontrar.