Postup přidává ověřování Basic s NCSA do proxy Squid 6.13 omezené podle zdroje. Pomocník v Debianu 13 je /usr/lib/squid/basic_ncsa_auth; ověřte cestu a účet služby svého balíčku.

Vytvořte první účet

Použijte nástroj htpasswd z distribuce a zadejte heslo interaktivně:

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

Vlastnictví předpokládá skupinu služby Debianu. Squid potřebuje soubor číst, ostatní uživatelé by neměli. Pro další účty vynechte -c, které vytváří nový soubor a může nahradit stávající záznamy.

Vyžadujte zdroj i přihlášení ve stejném povolovacím pravidle

Umístěte toto za stávající ochrany cílových portů, správy, localhost a link-local adres:

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

Nahraďte adresu klienta zdrojem, který Squid vidí. Obě podmínky musí odpovídat. Odstraňte dřívější široká povolení klientů, která by obcházela přihlašovací pravidlo, ale zachovejte omezení naslouchání a firewallu.

Ověřte syntaxi, znovu načtěte a porovnejte dva požadavky

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

Opravte chyby parseru a před testem znovu načtěte spravovanou službu Squid. Požadavek bez přihlašovacích údajů z povoleného zdroje by měl dostat ověřovací výzvu. Porovnejte s autorizovaným požadavkem s použitím skutečného jména hostitele proxy:

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

Zadání pouze uživatelského jména umožní curl vyžádat heslo. Platný požadavek by měl dojít do cíle.

Basic nešifruje výměnu mezi klientem a proxy. Pozdější HTTPS cíle neochrání údaje již odeslané nešifrované proxy; použijte vhodně chráněnou cestu. Direktivy jsou pro Squid 6.13; pro Squid 8 se řiďte konfigurací konkrétní verze.

Související články