it-swarm.com.de

Wie richte ich einen Squid-Proxy mit einfacher Benutzer- und Kennwortauthentifizierung ein?

Ich verwende derzeit IP in ACL, und ich möchte Benutzername und Passwort verwenden, um dies zu tun.

77
www

Folgendes musste ich tun, um die Basisauthentifizierung für Ubuntu 14.04 (ich habe nirgendwo anders eine Anleitung gefunden)

Grundlegende Tintenfisch conf

/etc/squid3/squid.conf anstelle der überladenen 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 basic_ncsa_auth Programm anstelle des alten ncsa_auth

tintenfisch 2.x

Für Squid 2.x müssen Sie die Datei /etc/squid/squid.conf Bearbeiten und Folgendes 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

Benutzer einrichten

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 fragten: Die 2 Tools erzeugen unterschiedliche Dateiformate:

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

Trotz dieses Unterschieds im Format kann basic_ncsa_auth weiterhin eine mit htdigest generierte Passwortdatei analysieren. Daher können Sie alternativ verwenden:

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

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

Unter Ubuntu 14.04 sind htdigest und htpasswd beide im Paket [Apache2-utils][1] Enthalten.

Mac OS

Es gilt dasselbe wie oben, aber die Dateipfade sind unterschiedlich.

Installieren Sie Tintenfisch

brew install squid

Starten Sie den Tintenfisch-Service

brew services start squid

Die Squid-Konfigurationsdatei ist unter /usr/local/etc/squid.conf Gespeichert.

Kommentiere oder entferne folgende Zeile:

http_access allow localnet

Dann fügen Sie ähnlich wie bei linux config (aber 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_auth Unterschiedlich sein kann, da er bei Verwendung von brew von der installierten Version abhängt. Sie können dies mit ls /usr/local/Cellar/squid/ Überprüfen. Beachten Sie auch, dass Sie das oben Genannte unter dem folgenden Abschnitt hinzufügen sollten:

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

Erstellen Sie sich jetzt einen Benutzer: Passwort Basisauthentifizierungsnachweis (Hinweis: htpasswd und htdigest sind auch unter MacOS verfügbar)

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

Starten Sie den Squid-Dienst neu

brew services restart squid
177
Stefano Fratini