Wie richte ich einen Squid-Proxy mit grundlegender Authentifizierung mit Benutzername und Passwort ein? [geschlossen]

84

Ich verwende derzeit ip in acl und möchte dazu Benutzername und Passwort verwenden.

www
quelle
Hier ist ein weiteres Beispiel, wie Squid3 mit einer Authentifizierung im höchsten Stil eingerichtet wird: dabase.com/blog/Minimal_squid3_proxy_configuration
hendry
Hier ist eine vollständige Anleitung für die Installation und Konfiguration von Squid3
hevi

Antworten:

199

Hier ist, was ich tun musste, um die Basisauthentifizierung unter Ubuntu 14.04 einzurichten ( ich habe nirgendwo anders eine Anleitung gefunden)

Grundlegende Tintenfisch conf

/etc/squid3/squid.conf anstelle der super aufgeblähten Standardkonfigurationsdatei

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

# Choose the port you want. Below we set it to default 3128.
http_port 3128

Bitte beachten Sie das Programm basic_ncsa_auth anstelle des alten Programms ncsa_auth

Tintenfisch 2.x.

Für Squid 2.x müssen Sie die /etc/squid/squid.confDatei bearbeiten und platzieren:

auth_param basic program /usr/lib/squid/digest_pw_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

Einrichten eines Benutzers

sudo htpasswd -c /etc/squid3/passwords username_you_like

und geben Sie dann zweimal ein Passwort für den gewählten Benutzernamen ein

sudo service squid3 restart

Tintenfisch 2.x.

sudo htpasswd -c /etc/squid/passwords username_you_like

und geben Sie dann zweimal ein Passwort für den gewählten Benutzernamen ein

sudo service squid restart

htdigest vs htpasswd

Für die vielen Leute, die mich gefragt haben: Die 2 Tools erzeugen unterschiedliche Dateiformate:

  • htdigest speichert das Passwort im Klartext.
  • htpasswd speichert das Passwort-Hash (verschiedene Hashing-Algen sind verfügbar)

Trotz dieses basic_ncsa_auth Formatunterschieds kann eine mit generierte Kennwortdatei weiterhin analysiert werdenhtdigest . Daher können Sie alternativ verwenden:

sudo htdigest -c /etc/squid3/passwords realm_you_like username_you_like

Beachten Sie, dass dieser Ansatz empirisch und nicht dokumentiert ist und möglicherweise von zukünftigen Versionen von Squid nicht unterstützt wird.

Unter Ubuntu 14.04 htdigestund htpasswdsind in den zur Verfügung stehend beiden [apache2-utils][1]Pakete.

Mac OS

Ähnlich wie oben gilt, aber die Dateipfade sind unterschiedlich.

Installieren Sie Tintenfisch

brew install squid

Starten Sie den Tintenfischservice

brew services start squid

Die Squid-Konfigurationsdatei wird unter gespeichert /usr/local/etc/squid.conf.

Kommentieren oder entfernen Sie folgende Zeile:

http_access allow localnet

Fügen Sie dann ähnlich wie in der Linux-Konfiguration (jedoch mit aktualisierten Pfaden) Folgendes hinzu:

auth_param basic program /usr/local/Cellar/squid/4.8/libexec/basic_ncsa_auth /usr/local/etc/squid_passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

Beachten Sie, dass der Pfad zu basic_ncsa_authmöglicherweise unterschiedlich sein kann, da er bei der Verwendung von der installierten Version abhängt. brewSie können dies mit überprüfen ls /usr/local/Cellar/squid/. Beachten Sie auch, dass Sie das Obige nur unter dem folgenden Abschnitt hinzufügen sollten:

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

Generieren Sie sich jetzt einen Benutzer: Passwort-Basisauthentifizierungsnachweis (Hinweis: htpasswdund htdigestbeide sind auch unter MacOS verfügbar)

htpasswd -c /usr/local/etc/squid_passwords username_you_like

Starten Sie den Tintenfischservice neu

brew services restart squid
Stefano Fratini
quelle
1
Jetzt behoben. Danke Mark.
Stefano Fratini
11
Für mich funktionierte der Befehl htdigest nicht, aber nachdem ich ihn durch "sudo htpasswd -cd / etc / squid3 / passwords admin" ersetzt hatte, funktionierte er wie erwartet.
Phil Hannent
1
Das habe ich mir gedacht, auch wenn es bei mir funktioniert hat. Im Zusammenhang mit diesem Beitrag gab es eine Diskussion, bei der 50% der Befragten sagten, dass er funktioniert, und 50% eine Änderung von htpasswd vorschlugen. Ich hatte nicht genug Ruf, um an der Diskussion teilzunehmen ... :(
Stefano Fratini
2
hat für mich funktioniert, aber ich musste auch htpasswd anstelle von htdigest verwenden, ich weiß nicht warum, aber auf diese Weise hat es funktioniert.
Pisu
20
Wenn Ihr System nicht hat htpasswd, tun Sie dies bitte sudo apt-get install apache2-utils.
Exebook