Combiner myportname et src de Squid avec des ACL distinctes
Combinez un listener Squid nommé et un réseau client autorisé sans mettre deux types d’ACL dans la même définition.
La configuration paraît plausible au premier abord :
acl team_a myportname 3128 src 198.51.100.0/24
Mais une définition d’ACL n’a qu’un seul type. Ici, myportname est le type ; ajouter le mot src ne lance pas un second test. Les mots restants appartiennent à la liste de valeurs du premier type. Cette ligne n’exprime pas « ce listener et ce réseau client ».
Donner un nom à chaque condition
Utilisez un nom pour le socket d’écoute et une ACL source distincte. Cet extrait emploie des adresses de documentation, à remplacer par des adresses adaptées au déploiement :
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
Placez la règle d’autorisation après les protections existantes pour les ports de destination dangereux, les cibles CONNECT restreintes et l’accès d’administration. L’extrait illustre la condition client/listener ; il ne remplace pas ces protections.
Les conditions d’une même ligne http_access se combinent avec AND. Deux lignes d’autorisation séparées admettraient chaque condition indépendamment, ce qui changerait nettement la politique. Plusieurs valeurs dans une ACL offrent généralement des alternatives pour ce test unique.
Choisir la sortie séparément
Un listener correspondant peut aussi servir à tcp_outgoing_address pour choisir une adresse source locale. C’est un choix de routage, pas une autorisation d’utiliser le proxy. Une règle d’adresse sortante ne peut pas faire passer une requête refusée par http_access.
Si une configuration à plusieurs adresses cesse de fonctionner après une mise à jour, séparez les preuves : une erreur d’analyse désigne la syntaxe de la configuration ; un refus d’accès désigne la correspondance des règles ; une requête autorisée avec la mauvaise sortie désigne le choix de sortie ou un NAT ultérieur. Modifier les trois à la fois rend une petite erreur d’ACL bien plus difficile à trouver.