PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQUID und Authentizierung am Active Directory.



T0MM
30.03.04, 01:26
Hallo,

Squid läuft schon ne ganze Weile hier. Die nächste Anforderung auf dem Weg zu SingleSignOn heisst: "Der Proxy soll jetzt am ActiveDirectory authentifizieren". Welches Auth-Modul nimmt man hier und wie konfiguriert man es am einfachsten?

Vielen Dank.
T0MM

schuelsche
11.08.04, 11:50
Hallo,

gibt es auf diese Frage bereits eine Lösung? Ich habe nämlich dasselbe Problem. Ich habe einen W2K-Server am Laufen, auf dem allerdings kein PDC-Emulator installiert ist. Dies ist wohl auch der Grund, weshalb eine Authentifizierung über das Modul /usr/sbin/msnt_auth nicht funktioniert, da dies nur im Zusammenhang mit Win-NT-Domänen (offensichtlich bis NT 4.0) funktioniert.

Kann es sein, dass das ganze irgendwie über smb_auth funktioniert? Den Samba-Server habe ich bereits mit diesem Tutorial (http://www.pcquest.com/content/linux/104010509.asp) erfolgreich in das Active Directory einbinden können und habe auch über smbclient //IP/freigabe -k Zugriff auf ein freigegebenes Laufwerk.

Nur wie funktioniert das im Zusammenhang mit Squid? Wie kann ich mich als bereits angemeldeter Windows-User in der Active Directory Domain authentifzieren (also ohne weitere Authentifizierung, sondern durch Übernahme des Users und des Passwortes aus der Active Directory Domain)?

Grüsse
schuelsche

mbo
11.08.04, 12:11
http://www.google.de/search?q=squid+%2Bauth+%2Bads&ie=UTF-8&hl=de&btnG=Google-Suche&meta=lr%3Dlang_de

Ich werd das ganze als Dienstleistungen verkaufen ...

schuelsche
12.08.04, 10:20
Hallo,


http://www.google.de/search?q=squid+%2Bauth+%2Bads&ie=UTF-8&hl=de&btnG=Google-Suche&meta=lr%3Dlang_de

danke, da habe ich auch schon gesucht und auch ein paar Tutorials gefunden, aber es will nicht funktionieren...


Ich werd das ganze als Dienstleistungen verkaufen ...

Schon klar, dass man das ganze als Dienstleistung kaufen kann. Aber ich würde gerne selber wissen, wie es funktioniert...

Momentan hänge ich gerade am ntlm_auth-Modul. Nach dem Tutorial von http://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5 bin ich vorgegangen.

Meine smb.conf sieht gerade so aus:


[global]
workgroup = TEST
realm = TEST.NET
netbios name = linuxclient
security = ads
password server = 192.168.0.20
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



Die Ergebnisse von wbinfo sind:


linux:/ # wbinfo -t
checking the trust secret via RPC calls succeeded




linux:/ # wbinfo -a TEST\\user%password
plaintext password authentication succeeded
challenge/response password authentication succeeded


Man soll dann die winbind_privileged pipe Erlaubnis setzen. Dazu soll man eingeben


chgrp squid /var/lib/samba/winbind_privileged


Da bei mir keine Gruppe squid existierte, habe ich eine angelegt und den user squid da rein gestellt.
Das sieht jetzt so aus:


winbind_privileged
drwxr-x--- 2 root squid 72 Aug 12 09:59

srwxrwxrwx 1 root root 0 Aug 12 09:59 pipe


Beim folgenden Schritt nun bekomme ich immer einen Fehler. Man soll, um die Funktionalität zu testen, auf der Konsole folgendes eingeben:



/usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
TEST+user password


Ich bekomme dann immer als Antwort "ERR", obwohl ich den gleichen User und das gleiche Password benutze, den ich oben mit wbinfo -a getestet habe.

Wenn ich das ganze mit /usr/sbin/ntlm_auth --helper-protocol=squid-2.5-basic versuche, dann hagelt es Fehlermeldungen.



You MUST specify at least one Domain Controller.
You can use either \ or / as separator between the domain name
and the controller name
/usr/sbin/ntlm_auth: invalid option -- c
unknown option: -?. Exiting
/usr/sbin/ntlm_auth usage:
/usr/sbin/ntlm_auth [-b] [-f] [-d] [-l] domain\controller [domain\controller ...]
-b enables load-balancing among controllers
-f enables failover among controllers (DEPRECATED and always active)
-l changes behavior on domain controller failyures to last-ditch.
-d enables debugging statements if DEBUG was defined at build-time.


Diese Fehlermeldung wiederholt sich für jeden Buchstaben, den ich nach dem -- (also helper-protocol=squid-2.5-basic) eingegeben habe.

Wo liegt denn das Problem??

Hat jemand einen Tip?

Grüsse
schuelsche

schuelsche
12.08.04, 12:53
Ok,

ich habe es jetzt doch über das Modul smb_auth geschafft. Das funktioniert auch unter W2K in der Active Domain, ohne einen emulierten PDC.

SuSE 9.1, squid-2.5.STABLE5-42.9, samba-3.0.5-0.1 in der Standardkonfiguration, W2K Active Directory.

/etc/samba/smb.conf


[global]
workgroup = TEST
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:
security = user
encrypt passwords = yes
server string = Samba Server
add machine script =
domain master = false
domain logons = no
local master = no
preferred master = auto
ldap suffix = dc=example,dc=com


Auf dem DC muss eine Datei namens proxyauth angelegt werden, die nur den Eintrag allow enthält (sonst nichts). Diese wird angelegt in
C:\WINNT\SYSVOL\sysvol\test.net\scripts\proxyauth. (test.net ist die Beispieldomain).
Anschliessend wird sie auch in
C:\WINNT\SYSVOL\domain\scripts stehen.

Auf der Konsole als root den Zugang testen:


linux:/usr/sbin # ./smb_auth -W test -U IP.des.DC -d


"-W test": hier die Domäne (nicht test.net) eintragen.
"-U IP.des.DC" kann man auch weglassen, wenn es nur einen DC gibt.
"-d" ist der Debug-Modus, es werden dann Meldungen ausgegeben.

Es erscheint keine Aufgabeaufforderung mehr, einfach eingeben:
username password //die dem ADC bekannt sind

Folgende Meldung oder etwas in der Art müsste dann erscheinen:


Domain name: test
Pass-through authentication: no
Query address options: -U IP.des.DC -R
Domain controller IP address: IP.des.DC
Domain controller NETBIOS name: NamedesDC
Contents of //NamedesDC/NETLOGON/proxyauth: allow
OK


Anschliessend in der /etc/squid/squid.conf eintragen:


auth_param basic program /usr/sbin/smb_auth -W test -U IP.des.DC
auth_param basic children 5
auth_param basic realm Squid Samba 88
auth_param basic credentialsttl 30 minute

acl authorized proxy_auth REQUIRED
http_access allow authorized
http_access deny all


"authorized" ist frei wählbar, nur muss der gewählte Name dann in http_access allow vorkommen.

Dann:
rcsquid restart
rcsmb restart

Dann müsste die Anmeldung am Proxy über den Windows-Usernamen und Windows-Passwort funktionieren. Der User muss sich also nochmal authentifzieren.

Grüsse
schuelsche

mbo
16.08.04, 13:58
Hi,

gute Arbeit. Meine literarische Abwesenheit ist dem merkwürdigen Verhalten der eMail-Benachrichtung zu verdanken. Es gibt Threads, da habe ich Tagelang nicht reingeschaut, die werden heute noch benachrichtigt, andere kommen dann mit der ersten Antwort drei Tage später :(

Du hättest auch das pam für smb benutzen können, daß macht die Verfügbarkeit von mehreren PDC, auch unterschiedlicher Domänen möglich.
Die von Dir angesprochene und von Squid genutzte Datei allow ist ein Workaround, oder wie man auch sagt: die Quick&Dirty-Lösung, denn Squid macht nichts anderes, als zu prüfen, ober er mit den übergebenen Anmeldedaten diese Datei lesen kann. Das heißt aber auch, daß Du die Gruppenrechte auf diese Datei entsprechend setzen mußt.

cu/2 iae

RichieX
16.08.04, 16:00
Ich hab für Auth an W2K-Domain "squid_ldap_auth" und "squid_ldap_group" verwendet. Dazu braucht man keine Samba, sondern nur die zwie Module. Diese Seite hat mir dabei geholfen:
http://sourceforge.net/mailarchive/message.php?msg_id=5411901

RichieX

feliXyz
23.09.04, 15:47
Hallo,

ich hoffe mit kann hier noch jemand weiterhelfen. ich möchte die benutzer ebenfalls an einer nt4-domäne authentifizieren und habe neben dem squid das samba-packet installiert. den squid habe ich mit der SMB_auth kompiliert und bin nun an der stelle an der die proxyauth auf dem PDC erstellt werden muß.

ich habe so meine probleme den exakten speicherort der datei zu ermitteln, bzw. von proxy aus testweise einen benutzer an der domäne zu authntifizieren.
das ist der pfad in dem ich die proxyauth angelegt habe:

"\\name-des-pdc\NETLOGON"

auf dem PDC finde ich das verzeichnis "C:\WINNT\SYSVOL\sysvol\test.net\scripts\proxyauth" nicht. hier weiß ich nicht weiter.

weiterhin ist mit nicht ganz klar ob ich ich die smb.conf konfigurieren muß oder nicht.

gruß und vielen dank im voraus

felix

ytsejammer
23.09.04, 17:19
Hi,

ich hab das hier vor kurzem geschrieben, vielleicht ist es ja hilfreich.
Voraussetzung ist, dass eine OU=ADUsers in dc=company dc=my existiert und dass die Benutzer, die den Proxy benutzen sollen, Mitglied in der Gruppe ProxyUser sind, der Windows AD-Server an 172.16.204.128 lauscht und ein anoymous bind mit Benutzer directory@company.my und Passwort directory erfolgt.

Download squid-2.5.STABLE6.tar.gz, gunzip it and untar it.
./configure –prefix=/usr –enable-basic-auth-helpers=LDAP

Edit squid.conf to reflect these additions:


cache_peer x.x.x.x parent 8080 7 no-query login=user:pass
auth_param basic program /usr/sbin/squid_ldap_auth \
–b “ou=ADUsers,dc=company,dc=my” –D directory@company.my -w directory \
–s sub –f (&(sAMAccountName=%s)(memberOf=CN=ProxyUser,OU=ADGro ups,DC=company,DC=my))\
172.16.204.128
acl allusers proxy_auth REQUIRED
acl our_networks src 172.16.204.0/24
http_access allow allusers
http_access allow our_networks
http_access deny all

Let me explain what I did here.
The line containing cache_peer is for advising squid to use one of the company.my proxies as a parent proxy.
The auth_param line needs the most explanations: for authenticating users via LDAP we need an external program (/usr/sbin/squid_ldap_auth). The LDAP client should start searching in “ou=ADUsers,dc=company,dc=my”, it should connect as user “directory@company.my” with password “directory”. The scope of the search should be “sub”.

Now the tricky part: “–f” creates a filter expression. I want that both is true: the user currently logging in (%s) is in the LDAP directory (sAMAccountName) AND (&) he is member of ProxyUser group that resides in the OU ADGroups (memberOf=CN=ProxyUser,OU=ADGroups,DC=company,DC=m y). The IP address is the address of the LDAP server.


acl allusers proxy_auth REQUIRED says that a squid group allusers ever has to authenticate first

acl our_networks src 172.16.204.0/24 says there is a network our_networks with IP address 172.16.204.0/24

http_access allow allusers allows allusers to access the proxy (and they have to authenticate)

http_access allow our_networks allows all IP addresses coming out of the network our_network

http_access deny allAt the end all other will be rejected

Vielleicht hilft es ja,
Sascha

feliXyz
24.09.04, 09:16
hallo,

die LDAP-abfrage funktioniert doch nur bei einer windows 2000 domäne, also wenn ein verzeichnisdiesnt sprich activ-directory für die benutzerverwlatung verwendet wird.
ich versuche nun aber die authentifizierung an einer windwos NT domäne. weiß hier jemand wo ich die datei proxyauth auf dem windows domän controller erstelle und ob ich den samba-deamon auf dem linux proxy nur konfiguriten muß oder ob er auch als dienst laufen muß?

mfG
felix

schuelsche
24.09.04, 11:14
Hallo,


Hallo,

auf dem PDC finde ich das verzeichnis "C:\WINNT\SYSVOL\sysvol\test.net\scripts\proxyauth" nicht. hier weiß ich nicht weiter.



Du musst die Datei proxyauth in das Verzeichnis C:\WINNT\SYSVOL\sysvol\test.net\scripts\ legen. Das oben genannte proxyauth ist die Datei und kein Verzeichnis.

Und die smb.conf musst Du, wie oben beschrieben, entsprechend anpassen.

Grüsse
schuelsche

feliXyz
29.09.04, 11:48
hallo,

ich war ein paar tage abwesend und konnte deshalb nicht direkt antworten.

die datei proxyauth habe ich erfolgreich unter dem pfad c:\winnt\system32\repl\export\scripts angelegt. sie wird nun durch die replikation, die im NT4-servermanager konfiguriert ist in das verzeichnis c:\winnt\system32\repl\import\scripts repliziert. auf dem verzeichnis c:\winnt\system32\repl\import\scripts ist auch die freigabe NETLOGON gelegt.
also hab' ich diese hürde genommen. :ugly:

ich weiß nun mit den einträgen in der smb.conf nicht allzu viel anzufangen.


[global]

workgroup = TEST
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:
security = user
encrypt passwords = yes
server string = Samba Server
add machine script =
domain master = false
domain logons = no
local master = no
preferred master = auto
ldap suffix = dc=example,dc=com

kann mir jemand zu den eingerückten einträgen etwas sagen, speziell zu dem ldap suffix, den ich wegen der schon erwähnten NT4-domäne ja nicht habe. ist der workgroup-eintrag der NT-domänenname an der sich authntifiziert werden soll?

schuelsche
29.09.04, 12:43
Hallo,





workgroup = TEST



Soweit ich noch weiss, ist das ein beliebieger Name. Ich habe halt vom Domainnamen den ersten Teil genommen.




username map = /etc/samba/smbusers


Das stand glaub standardmässig drin...




logon path = \\%L\profiles\.msprofile

logon home = \\%L\%U\.9xprofile

logon drive = P:


Keine Ahnung, das stand glaub auch standardmässig drin. Hat auf alle Fälle was mit den Logons in der Domäne zu tun. Kann aber auch sein, dass ich das per Hand drin hatte. Kannst es ja rauslassen und wenn es nicht funktioniert, einfach wieder reinmachen.

Zum LDAP-Suffix kann ich Dir nix sagen, nur soviel, dass wir das auch nicht haben.

Grüsse
schuelsche

feliXyz
29.09.04, 15:59
hallo,

ich habe auf meinem system z.Zt. noch die samba version 2.2.3a-13 im einsatz. muß ich an diesem punkt ansetzten um die authentifizierung zu ermöglichen?

wenn ich im verzeichnis /usr/local/squid/libexec die datei smb_auth folgendermaßen aufrufe bekomme ich außer der ERR fehlermeldung nix weiter angezeigt.

./smb_auth -W <nt-domänen-name> -d
mueller
ERR

mueller ist ein benutzername, der in der gruppe ist die lesend auf die proxyauth-datei berechtigt ist.

habe ich das authentifizierungs-programm nicht richtig konfiguriert?
im /usr/local/squid/libexec-verzeichnis befinden sich folgende dateien:

cachemgr.cgi ntlm_auth smb_auth smb_auth.sh unlinkd

in der smb_auth.sh habe ich keine anpassungen vorgenommen.
den squid habe über folgende zeile erfolgreich selber kompiliert

./configure --enable-basic-auth-helpers=MSNT --enable-basic-auth-helpers=SMB

der squid funktioniert einwandfrei, nur die authentifizierung macht probleme?

schuelsche
29.09.04, 16:08
Hallo,

sorry, ich kann Dir zu diesem Problem nichts sagen, zum einen, weil ich derzeit keinen Zugriff auf den Rechner habe, auf dem ich das konfiguriert habe, zum anderen, weil meine Ausgangsvoraussetzungen (wie oben schon geschrieben) die folgenden waren:


SuSE 9.1, squid-2.5.STABLE5-42.9, samba-3.0.5-0.1 in der Standardkonfiguration, W2K Active Directory.


An Deiner Stelle würde ich versuchen, einen Rechner frisch mit der SuSE 9.1 zu installieren, ein Update auf Samba 3.0.5 zu machen (vorher ein komplettes YOU machen) und dann nochmal alles einzustellen.

Grüsse
schuelsche

feliXyz
30.09.04, 15:17
halllo,

ich habe mittlerweile eine neuinstallation mit der SUSE 8.2 vorgenommen. der squid ist kompiliert und funktioniert. nur die auhentifizierung funktioniert leider immer noch nicht.

die smb_auth liegt nach dem kompilieren im /usr/sbin. ich bekomme leider keine authentifizierung zum domain-controller.

wenn ich smb_auth über folgenden aufruf testen will, erhalte ich trotz des -d für den debug-modus keine informationen angezeigt.

/usr/sbin/smb_auth -W <NT-Domainname> -U <IP des PDC's> -d
mueller

hat jemand eine quelle, über die ich mehr informationen über das smb-modul erhalten kann.