Search squid archive

RE: NTLM Authentication

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, 9 Aug 2005, David Gameau wrote:

-----Original Message-----
From: Mike Diggins [mailto:diggins@xxxxxxxxxxx]
Sent: Tuesday, 9 August 2005 12:10 AM
To: Plant, Dean
Cc: squid-users@xxxxxxxxxxxxxxx
Subject: RE:  NTLM Authentication


On Fri, 5 Aug 2005, Plant, Dean wrote:

Mike Diggins wrote:
We're running Squid V2.5Stable10 on a Solaris 8 platform and are
attempting to get the NTLM authentication working along with basic
authentication for non-IE browsers.

So far, IE users that are logged into the domain authenticate
without
an authentication prompt (good). Non IE users or users of other web
clients are prompted for authentication, which is expected, except
now they must type in the domain/username and password (i.e.
ap1/myname) instead of just their username. That's a bigger change
in
behaviour than we would like. Is there a way to make this work or
is
this normal behaviour?

I think you need to set "winbind use default domain = yes" in your
smb.conf

Okay, I've changed my configuration following the instructions in the
Squid FAQ - http://www.squid-cache.org/Doc/FAQ/FAQ-23.html -
How do I use the Winbind authenticators

Things are working better. Non IE browsers not logged into the domain
prompt for password (good). IE and Firefox, when logged into
the domain, do not ask for a password (also good).

A problem remains with IE when I'm not logged into the
domain. It prompts for usernmame and password as it should, but it
also insists
that I enter a domain (ap1\diggins) before it will authentication. All

non-IE browsers don't require this. Is there anyway to make IE behave
better?

Squid Version: 2.5Stable10
Samba: 3.0.14a (nmbd, smbd and windbind all running).

Samba Config:

[global]

         workgroup = AP1
         realm = AP1
         winbind uid = 10000-20000
         winbind gid = 10000-20000
         encrypt passwords = yes
         security=domain
         password server = as7.ad.McMaster.CA, as6.ad.mcmaster.ca
         winbind separator = /
         winbind enum users = yes
         winbind enum groups = yes
         winbind use default domain = yes
         preferred master = False
         local master = No
         domain master = False
         log file = /var/log/samba.log

; end

Squid authentication configuration:

#
auth_param ntlm program /usr/local/squid/sbin/ntlm_auth
--helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
#
auth_param basic program /usr/local/squid/sbin/ntlm_auth
--helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours


-Mike


Mike,

I've run into the same problem in our testing of
Squid + Samba + NTLM.  From what I can see, Internet
Explorer attempts to be 'helpful' by filling in the Domain
field when returning authentication details.
The problem is that if the machine isn't logged into your
normal Domain it returns it returns the local machine name
(or possibly the Workgroup) instead.
Since a Domain has been supplied, the default domain (as
defined in your smb.conf) is not used.

Firefox (at it's ilk) return nothing for the Domain, and so
the 'winbind use default domain = yes' kicks in.

One workaround I found was to munge the Samba code.
In samba/source/nsswitch/winbindd_pam.c the bit of code that
decides what domain to use is:

enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state
*state)
{
[...]
       if (*state->request.data.auth_crap.domain) {
               name_domain = state->request.data.auth_crap.domain;
       } else if (lp_winbind_use_default_domain()) {
               name_domain = lp_workgroup();
       } else {
               DEBUG(5,("no domain specified with username (%s) -
failing auth\n",
                        name_user));
               result = NT_STATUS_NO_SUCH_USER;
               goto done;
       }
[...]
}

Replacing that chunk of code with just

       name_domain = lp_workgroup();

will force Samba to use whatever domain is defined in your smb.conf.
(This will, of course, break things if you ever want to authenticate
versus another domain.)

I haven't found any other way of making Internet Explorer play nicely.

Regards,
David.
__

David Gameau
ISTS - Systems Infrastructure Group
University of South Australia

email:  David.Gameau@xxxxxxxxxxxx
phone:  +61 8 302 3533
fax:    +61 8 302 5800

Disclaimer: "His brain sometimes stops working." - Chiyo, Azumanga Daioh


David,

This is excellent, thanks! I tested your change and it does fix the problem with IE. Too bad the Samba team wouldn't incorporate a "force domain" option in the smb.conf file.

Does this piece of code change often? I'm not a programmer so making this change to future updates of Samba might be difficult if the code is changed extensively.

-Mike


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux