Faire correspondre un User-Agent dans Squid
Utilisez une ACL req_header pour un identifiant client déclaré et placez la règle d'accès avant une autorisation plus large.
Une ACL User-Agent fait correspondre l'identifiant qu'un client place dans sa requête HTTP. Dans une configuration Squid 7, un client de test peut être classé avec req_header:
acl legacy_probe req_header User-Agent -i ^LegacyProbe/
http_access deny legacy_probe
L'exemple fait correspondre un en-tête commençant par LegacyProbe/, sans tenir compte de la casse. Remplacez le motif par l'identifiant client voulu. L'expression est une expression régulière, et non une recherche du nom d'un produit de navigateur.
Placez la règle de refus avant toute règle d'accès plus large qui autoriserait déjà la requête. Conservez les contrôles existants de client et de destination du proxy autour de cette règle ciblée.
Un préfixe large comme Mozilla correspond à de nombreux navigateurs différents. Utilisez l'en-tête réellement envoyé par le client pour décider de l'étroitesse d'une politique de compatibilité ou de test.
Le client contrôle cet en-tête et peut le modifier ou l'omettre. La règle classe un identifiant déclaré ; ce n'est pas une identité d'application forte. Elle agit aussi sur les messages HTTP que Squid peut inspecter, pas sur les en-têtes chiffrés des sites web à l'intérieur d'un tunnel CONNECT ordinaire.