Squid, probleme mit proxy_auth

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
fgasser
Beiträge: 50
Registriert: 06.10.2003 21:41:38

Squid, probleme mit proxy_auth

Beitrag von fgasser » 06.10.2003 22:24:42

Hallo
Ich muss für ca. 400 User einen Proxy erstellen, der mittels User-authentifizierung den Internetzugang regelt. Das ganze soll auf einem Woody mit Squid 2.4.STABLE6 laufen. Als authenticate_program möchte ich mysql_auth-0.5 benützen.

http://people.fsn.hu/~airween/mysql_auth/

Damit kann ich mittels MySQL meine User und ihre Passwörter verwalten.
Ich habe das Authentifizierungsprogramm mysql_auth compiliert, eine MySQL-db erstellt und getestet. Es funktioniert alles. Ich kriege ein OK zurück wenn User und Passwort stimmen.
Wenn ich dann aber mein squid.conf mit den Einträgen

acl myclients src 192.168.0.0/24
proxy_auth_realm Squid proxy server
authenticate_program /usr/local/squid/bin/mysql_auth
acl password proxy_auth REQUIRED
http_access allow myclients password
authenticate_ttl 5
authenticate_childre

bekomme ich zwar ein Login-Fenster im Browser(MS IE6) dargestellt, doch alle Versuche mich einzuloggen wird abgewehrt. Daraufhin habe ich im squid das debugging eingeschaltet. Die cache.log datei:

2003/10/06 20:42:12| aclCheck: checking 'http_access allow myclients password'
2003/10/06 20:42:12| aclMatchAclList: checking myclients
2003/10/06 20:42:12| aclMatchAcl: checking 'acl myclients src 192.168.0.0/24'
2003/10/06 20:42:12| aclMatchIp: '192.168.0.2' found
2003/10/06 20:42:12| aclMatchAclList: checking password
2003/10/06 20:42:12| aclMatchAcl: checking 'acl password proxy_auth REQUIRED'
2003/10/06 20:42:12| aclMatchAclList: returning 0
2003/10/06 20:42:12| aclCheck: match found, returning 2
2003/10/06 20:42:12| aclCheckCallback: answer=2
2003/10/06 20:42:12| The request GET http://www.google.ch/ is DENIED, because it matched 'password'

Somit stimmt irgend was mit der Authentifizierung nicht. Ein Rechte-Problem kann es nicht sein, da ich zum testen allen usern das Recht für die MySQL-db gegeben habe.

Kann es sein dass ich Squid 2.4Stable6 neu compilieren muss um proxy_auth REQUIRED überhaupt benützen zu können, oder ist das schon dabei wenn ich squid mit apt-get install squid installiere? Kann es was damit zu tun haben, das das Authentifizierungsprogram mysql_auth sich nicht im eigentlichen Squid Programmverzeichnis /usr/sbin/ befindet, sondern in einem von mir erstellten Verzeichniss /usr/local/squid/bin/. Auch hier habe ich allen Usern das Recht erteilt, mysql_auth auszuführen, aber ohne Erfolg. Squid läuft bei mir im Daemon Modus. Ich glaube als User proxy?!?

Weiss Jemand einen Rat? Ich sitze nun schon drei Tage an diesem Problem und habe bald keine Freundin mehr...

Benutzeravatar
pate
Beiträge: 61
Registriert: 18.07.2003 20:09:26
Wohnort: SH
Kontaktdaten:

Beitrag von pate » 08.10.2003 21:52:35

hi
ich habe bei squid-handuch diesen befehl "authenticate_program"
nicht gefunden vielleicht hilft dir das
auth_param
Diese Option ermöglicht eine sehr variable Konfiguration verschiedenster Authentifizierungsprogramme.

Syntax: auth_param scheme parameter [setting]

Die Reihenfolge, in der Authentifizierungsabfragen an den Client übergeben werden, ist abhängig von der Reihenfolge der Authentifizierungsschemen in der Konfigurationsdatei.

Der MS InternetExplorer ist hier nicht RFC-konform [#!RFC2617!#]. Er wird das basic-Schema verwenden, wenn dies als erstes angegeben ist, auch wenn sicherere Schemen folgen.

Wenn ein Schema vollständig konfiguriert und gestartet ist, kann es während des Betriebs nicht mehr herausgenommen werden. Sie können ein Schema (auch das Hilfsprogramm selbst) jederzeit mit einem reconfigure ändern. Entfernen können Sie ein Schema jedoch nur mit einem shutdown und restart von Squid.

basic-Schema-Optionen

Option: program Kommandozeile

Hiermit geben Sie die Kommandozeile und alle Optionen für das externe Hilfsprogramm an.

Dieses Programm muss in einer Endlosschleife Benutzername und Passwort entgegennehmen und ein OK oder ERR zurückliefern. Sie sollten dafür auch mindestens eine Access-Liste vom Typ proxy_auth definiert haben.

Beispiel:
auth_param basic program /usr/local/squid/bin/ncsa_auth/usr/local/squid/etc/passwd

es häng davon ab welche squid version du benutzt,
hier kannst du alles nachlesen
http://www.squid-handbuch.de/hb/index.html

fgasser
Beiträge: 50
Registriert: 06.10.2003 21:41:38

Lösung gefunden: Bug im IE6 SP1!!!

Beitrag von fgasser » 09.10.2003 13:17:35

Hallo
Vielen Dank für Deine Hilfe. Ich benütze den Squid 2.4Stable6. Dort ist "authenticate_program" noch erlaubt. Ab Version 2.5 ist aber tatsächlich
"auth_param" zu verwenden. Der Eigentliche Fehler liegt aber beim IE6 von Microsoft. Ab dem Service Pack 1 für diesen Browser funktioniert die Authentifizierungg nicht mehr korrekt! Nach dem Login erscheint gleich ein DNS Error. Aktualisiert man danach mir F5 das Fenster funktioniert alles wieder, und man kann mit "surfen" loslegen. Dazu ein link:
http://www.linuxquestions.org/questions ... 05/3/60879
Hätte ich den nicht nach drei Tagen gefunden, ich glaube ich hätte jetzt graue Haare und einen Herzschrittmacher...
Microsoft kennt anscheinend das Problem, ein Patch ist aber noch in weiter Ferne. Das Auswechseln der wininet.dll durch eine ältere Version, soll aber auch funktionieren. Den link dazu weiss ich aber leider nicht mehr.

Vielen Dank nochmals!
Francois

Antworten