Cette procédure ajoute une authentification Basic appuyée sur NCSA à un proxy Squid 6.13 limité par source. L’assistant de Debian 13 est /usr/lib/squid/basic_ncsa_auth ; confirmez le chemin et le compte de service de votre paquet.

Créer le premier compte

Utilisez l’outil htpasswd de la distribution et saisissez le mot de passe de façon interactive :

sudo htpasswd -c /etc/squid/users proxyuser
sudo chown root:proxy /etc/squid/users
sudo chmod 640 /etc/squid/users

Les droits de propriété supposent le groupe de service de Debian. Squid doit lire le fichier, pas les autres utilisateurs. Pour les comptes suivants, omettez -c, qui crée un nouveau fichier et peut remplacer les entrées existantes.

Exiger source et connexion dans la même règle d’autorisation

Placez ces lignes après les protections existantes des ports de destination, de l’administration, de localhost et des adresses de lien local :

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/users
auth_param basic realm PrivateProxy

acl proxy_client src 198.51.100.27/32
acl logged_in proxy_auth REQUIRED

http_access allow proxy_client logged_in
http_access deny all

Remplacez l’adresse cliente par la source observée par Squid. Les deux conditions doivent correspondre. Retirez les autorisations clientes larges placées avant et qui contourneraient la règle de connexion, en conservant les restrictions d’écoute et du pare-feu.

Analyser, recharger, puis comparer deux requêtes

sudo squid -k parse -f /etc/squid/squid.conf

Corrigez les erreurs d’analyse, puis rechargez le service Squid géré avant de tester. Depuis une source autorisée, une requête sans identifiants doit recevoir une demande d’authentification. Comparez avec une requête autorisée en utilisant le vrai nom d’hôte du proxy :

curl --proxy http://proxy.example:3128 --proxy-basic --proxy-user proxyuser --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

Indiquer seulement le nom d’utilisateur permet à curl de demander le mot de passe. Une requête valide doit atteindre la destination.

L’authentification Basic ne chiffre pas l’échange entre client et proxy. Le HTTPS ultérieur vers la destination ne protège pas des identifiants déjà envoyés à un proxy en clair ; utilisez un trajet correctement protégé. Ces directives ciblent Squid 6.13 ; consultez la configuration propre à Squid 8 pour cette version.

Articles similaires