Tipps zu Squid und Authentifizierung durch W2k-Domäne

Von: , Frage gestellt am Mo, 9. Aug 2004

Hallo,

ich benutze einen Squid-Proxy-Server. Dabei handelt sich um eine Standard-Squid-Installation unter SuSE 9.0 mit dem Squid-2.5.STABLE3-98.i586.rpm.

Diesen Squid-Proxy-Server habe ich schon so konfiguriert, dass eine Proxy-Authentifzierung notwendig ist, um über den Squid im Internet zu surfen.

Nun möchte ich aber ermöglichen, dass die Authentifizierung an der Windows2000-Domäne benutzt wird, um über den Proxy zu surfen. Das heisst also, der an der Domäne angemeldete User soll den Browser benutzen können, ohne sich nochmal authentifzieren zu müssen. Dabei werden IE und auch Firebird als Browser benutzt, das ganze kann also nicht nur IE-abhängig funktionieren.

Jetzt habe ich schon rumprobiert und auch gegoogelt, und herausgefunden, dass man hierzu das Squid-Modul msnt_auth benutzt. Nur leider funktioniert das irgendwie nicht. Aber warum??

Ich bin nach dem Tutorial unter http://www.tecchannel.de/betriebssysteme/1394/8.html vorgegangen. Ausserdem habe ich hier http://ursine.ca/cgi-bin/dwww?type=...nt_auth.html.gz nachgelesen, aber da hilft mir auch nichts weiter...

Zunächst habe ich in der squid.conf eingegeben "auth_param basic program /usr/sbin/msnt_auth". Dieses Modul greift dann wohl standardmässig auf /usr/share/squid/msntauth.conf zu. Allerdings liegt bei mir diese Datei auch unter /etc/squid/msnt_auth. Wenn ich will, dass msnt_auth auf die Datei unter /etc/... zugreift, gebe ich also folgendes in der squid.conf an:

auth_param basic program /usr/sbin/msnt_auth /etc/squid/msntauth.conf


In der msntauth.conf habe ich den PDC eingetragen (einen BDC habe ich nicht, deshalb muss man wohl den PDC zweimal eintragen):
server server.test.net server.test.net test.net


Die IP-Adresse des server.test.net habe ich in der /etc/hosts eingetragen (10.10.10.100).

Die allow- und deny-users habe ich mal auskommentiert gelassen.

Meine squid.conf sieht so aus:

cache_peer 10.10.10.200 parent 8080 8080 no-query

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

debug_options ALL,8

auth_param basic program /usr/sbin/msnt_auth /etc/squid/msntauth.conf
auth_param basic children 5
auth_param basic realm Squid Samba 88
auth_param basic credentialsttl 30 minute

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563

acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

acl pbenutzer proxy_auth REQUIRED

http_access allow pbenutzer
http_access deny all

http_reply_access allow all

cache_effective_user squid
cache_effective_group nogroup

cachemgr_passwd disable shutdown offline_toggle
cachemgr_passwd *** info
cachemgr_passwd *** all

error_directory /usr/share/squid/errors/German

coredump_dir /var/cache/squid


Wenn ich diese so benutze, dann funktioniert die Authentifizierung über die Windows-Domäne nicht. Zum einen bekommt der User die Meldung, dass er sich anmelden muss, zum anderen kann ich mich nicht anmelden, weder mit der Windows-Authentifizierung noch mit irgendwas anderem...

Wenn ich den Befehl
./msnt_auth /etc/squid/msntauth.conf
auf der Konsole als Root eingebe, passiert überhaupt nix. Auch in /var/log/messages steht dann keine Fehlermeldung oder ähnliches...

Was fehlt da? Wie funktioniert das mit der msnt_auth? Oder gibt es vielleicht noch eine andere Möglichkeit, die Windows-User direkt zu authentifzieren?? Oder ist das ein Problem, weil ich einen zweiten Proxy benutze? Muss da irgendwas anders eingestellt werden?

Wäre auch über ein gutes Tutorial diesbezüglich dankbar...

Grüsse
schuelsche

10 Antworten zu dieser Frage

  1. Antwort von nach 2 Tagen 0 hilfreich
    Re: Problem mit ntlm_auth

    Hallo,

    mittlerweile bin ich soweit, dass ich entweder die Authentifzierung über smb_auth oder über ntlm_auth nutzen muss.

    Mit smb_auth bin ich noch nicht weitergekommen. Momentan probiere ich gerade ntlm_auth. Damit habe ich aber folgendes Problem.

    Ich bin nach dem Tutorial unter http://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5 vorgegangen. Bei Samba 3.0.5 und squid-2.5.STABLE5-42.9 ist ntlm_auth ja dabei.

    Die smb.conf habe ich folgendermassen editiert:

    [global]
       workgroup = TEST
       ads server = 192.168.0.27
       realm = TEST.NET
       netbios name = linuxclient
       security = domain
       password server = 192.168.0.27
       winbind uid = 10000-20000
       winbind gid = 10000-20000
       winbind use default domain = yes
       printing = cups
       printcap name = cups
       printcap cache time = 750
       cups options = raw
       printer admin = @ntadmin, root, administrator
       username map = /etc/samba/smbusers
       map to guest = Bad User
       logon path = \\%L\profiles\.msprofile
       logon home = \\%L\%U\.9xprofile
       logon drive = P:
       encrypt passwords = yes
       server string = Samba Server 88
       add machine script =
       domain master = false
       domain logons = no
       local master = no
       preferred master = auto
       ldap suffix = dc=example,dc=com
    


    Um die winbindd-Konfiguration zu testen habe ich eingegeben:
    wbinfo -t
    


    Ergebnis ist:
    checking the trust secret via RPC calls succeeded

    Um die Authentifizierung zu testen, habe ich das eingegeben:
    wbinfo -a TEST\\user%password
    


    Ergebnis ist:
    plaintext password authentication succeeded
    challenge/response password authentication succeeded
    


    Soweit ist also alles ok.

    Im folgenden Schritt muss man dann squid-Access auf die winbin_privileged erlauben mittels
    chrgrp squid /var/lib/samba/winbindd_privileged
    
    .

    Leider gibt es bei mir keine Gruppe squid.
    In der squid.conf steht
    cache_effective_user squid root
    cache_effective_group nogroup

    Also habe ich diesen Schritt übersprungen.

    Und jetzt kommt das Problem:
    mittels
    /usr/sbin/ntlm_auth --helper-protocol=squid-2.5-basic
    soll man den Zugang testen können.

    Aber egal, wie ich ./ntlm_auth eingebe, es funktioniert nicht :-/

    linux:/usr/sbin # ./ntlm_auth --helper-protocol=squid-2.5-basic
    You MUST specify at least one Domain Controller.
    You can use either \ or / as separator between the domain name 
    and the controller name
    


    Irgendwo habe ich gelesen, dass man es auch so eingeben kann:
    linux:/usr/sbin # ./ntlm_auth TEST.NET\\NAMEPDC
    user+password
    BH Helper detected protocol error
    


    Wenn ich eingebe
    ./ntlm_auth TEST.NET\\NAMEPDC --helper-protocol=squid-2.5-basic
    

    dann bekomme ich immer obigen Fehler.

    Wie kann ich diese Authentifzierung richtig testen??

    Grüsse
    schuelsche



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!