Ajouter l’authentification Basic à un proxy Squid 6.13
Configurer l’assistant NCSA de Squid 6.13, combiner IP cliente autorisée et connexion valide, et comprendre la protection offerte par Basic.
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/usersLes 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 allRemplacez 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.confCorrigez 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.