On 10/07/2012 9:59 p.m., Bruno Santos wrote:
Hi all !

I finally (sort of) manage to get squid with ntlm authentication. I now have it 
working as i want it, but there's a configuration that i had to change and 
that's keeping bugging me in the why.

Everything was workig fine until reaching https sites.

If i had enabled both types of authentication: ntlm and basic (for those under 
Linux or not using a ntlm enabled browser):
--------
# Autenticacao NTLM - Winbind - AD
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 300
auth_param ntlm keep_alive off

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 100
auth_param basic realm Por favor autentique-se!
auth_param basic credentialsttl 2 hours

acl ntlmAuth proxy_auth REQUIRED

--------------------

This configuration worked fine, but those with NTLM (windows + IE / Firefox) 
were asked for authentication (that shouldn't happen). Those in Linux worked 
just fine (with an authentication dialog) and every site appears as it should 
be.


If i remove the basic authentication, those with windows (IE and Firefox) are 
NOT asked for authentication and those using Linux are asked for authentication 
(everything fine here). Here is the problem:

By "those" I assume you mean the persons/users, and not their browser agents.

By "asked" I assume you mean the auth popup window, and not the 407 proxy challenge.

Popups are a browser feature, when it happens is decided *only* by the browser, usually because it was unable to find any working credentials that could be used [some browsers are broken].

Ideally no user would be asked for authentication when NTLM is used. The grand benefit offering from NTLM is that it works from the users network login credentials and the browser never has to ask them to type anything.


Those using Linux can't access (most) https sites. It just gives:

  TCP_DENIED/407 3833 CONNECT twitter.com:443 - NONE/- text/html

And nothing happens...

Most likely your: "auth_param ntlm keep_alive off" is breaking the fragile support CONNECT method has for NTLM.


So i've decided to do an experiment

In squid.conf, i've changed:

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

to

http_access allow CONNECT SSL_ports

And sudden all those https sites began working...
Of course. You just bypassed authentication.


Well, by question is:

Is this correect ? What would be happening with the other configuration? Is it 
safe ?

No. See above. No, it allows anyone unlimited access to tunnel via CONNECT method to SSL_ports.

HTH
Amos

Reply via email to