[squid-users] Squid - using NTLM for SSO
Dijxie
dijxie at gmail.com
Wed May 10 00:16:08 UTC 2017
> Hello list,
>
>
> I need your help with a Squid-Proxy (3.5) NTLM Auth, the aim is to use
> SSO for my windows clients.
>
> My Windows-Clients are using Active-Directory running on a Samba4-PDC.
>
> I set up ldap basic auth in a developer environment, now I want to
> achieve SSO. (using NTLM?)
>
> The Documentation on
> http://wiki.squid-cache.org/ConfigExamples/Authenticate/Ntlm
> <http://wiki.squid-cache.org/ConfigExamples/Authenticate/Ntlm> doesn't
> really help me enough (on my knowledge about squid and forms of
> authentication/samba).
>
>
> Tests:
>
> -> testing Kerberos
>
> I'm able to obtain (kinit) tickets and list them (klist)
>
>
> root at xxx-testproxy01:~# kinit Administrator
> Password for Administrator at X-XXX.LOCAL:
> root at xxx-testproxy01:~# klist
> Ticket cache: FILE:/tmp/krb5cc_0
> Default principal: Administrator at X-XXX.LOCAL
>
> Valid starting Expires Service principal
> 2017-05-09 08:43:25 2017-05-09 18:43:25 krbtgt/X-XXX.LOCAL at X-XXX.LOCAL
> renew until 2017-05-10 08:43:21
>
> -> testing Samba:
> I joined my domain X-XXX.
> Test support for ntlm:
> root at xxx-testproxy01:~# wbinfo -a testuser%xxxxxxxxxxx
> plaintext password authentication succeeded
> challenge/response password authentication succeeded
>
> root at xxx-testproxy01:~# wbinfo -a testuser%xxxxxxxxxxx
> plaintext password authentication succeeded
> challenge/response password authentication succeeded
> root at xxx-testproxy01:~# wbinfo -t
> checking the trust secret for domain X-XXX via RPC calls succeeded
> root at xxx-testproxy01:~# wbinfo -g
> X-XXX\cert publishers
> ...negotiate_wrapper
> X-XXX\webusers
>
> -> Testing NTLM-helper:
> Now here's my problem.
>
> root at xxx-testproxy01:~# /usr/bin/ntlm_auth
> --helper-protocol=squid-2.5-ntlmssp --username=testuser
> --password=xxxxxxxxxxx
> x-xxx\testuserxxxxxxxxxxx
> SPNEGO request [testuser xxxxxxxxxxx] invalid prefix
> BH SPNEGO request invalid prefix
>
> root at xxx-testproxy01:~# /usr/bin/ntlm_auth
> --helper-protocol=squid-2.5-basic --username=testuser
> --password=xxxxxxxxxxx
> x-xxx\testuser xxxxxxxxxxx
> OK
>
> What is ntlmssp? I read both helpers on tutorials. If I need both, why
> do I need both?
> My squid is starting how it should, logs are looking normal, PopUp for
> authentication appears aswell, but I can't log in. I shoudn't need to
> authenticate in the first place because it should use SSO.
> What is missing/faulty?
> The rest of squid is basic stuff:mail/u/0/
> auth_param ntlm program /usr/bin/ntlm_auth
> –helper-protocol=squid-2.5-ntlmssp --username=testuser
> --password=Passme123
> auth_param ntlm children 10
> auth_param basic program /usr/bin/ntlm_auth
> –helper-protocol=squid-2.5-basic --username=testuser --password=Passme123
> auth_param basic children 5
> auth_param basic realm Proxy Server
> auth_param basic credentialsttl 2 hours
> auth_param basic casesensitive off
> authenticate_cache_garbage_interval 10 seconds
> ...
> acl auth proxy_auth REQUIRED
> acl SSL_ports port 443
> acl Safe_ports port 80 # http
> acl Safe_ports port 21 # ftp
> acl Safe_ports port 443 # https
> acl Safe_ports port 70 # gopher
> acl Safe_ports port 210 # wais
> acl Safe_ports port 1025-65535 # unregistered ports
> acl Safe_ports port 280 # http-mgmt
> acl Safe_ports port 488 # gss-http
> acl Safe_ports port 591 # filemaker
> acl Safe_ports port 777 # multiling http
> acl CONNECT method CONNECT
> ...
> http_access deny !Safe_ports
>
> # Deny CONNECT to other than secure SSL ports
> http_access deny CONNECT !SSL_ports
>
> # Only allow cachemgr access from localhost
> http_access allow localnet
> http_access allow localhost manager
> http_access deny !auth
> http_access allow auth
> http_access deny all
> ...
> url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
> url_rewrite_children 5
>
> Does anyone know further? Thanks in advance.
> - Kevin
>
>
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users
Hi,
1. There is no point in testing kerberos (kinit) when you're going to
use ntlm_auth helper; squid has it's spnego helper, 'negotiate_wrapper
', which is capable doing negotiation between kerberos and NTLM. Just
look for squid-helpers package for your OS; if it's not in OS repo,
check http://ngtech.co.il/repo/ - Eliezer is doing really good job here.
If kerberos is working in your environment, I would use
negotiate_wrapper or negotiate_kerberos_auth. Good thing about
negotiate_wrapper is -d switch, which is giving you a good portion of
debug info in cache.log
Really, NTLM is bitchy and it is not primary protocol even in MS systems
since 2003/XP. If you can fulfill kerberos' requirements in your
environment, I would go into kerberos, not NTLM.
2. My guess is that you have problem with access to windbind_priviledged
pipe; can you perform usr/bin/ntlm_auth
--helper-protocol=squid-2.5-ntlmssp --username=testuser --password=...et
cetera witch ptrace? There is still a mess with winbind's pipe location;
/var/run/samba vs /var/lib/samba, perharps you need some symlinking,
ptrace can give you a clue.
3. Sometimes - just sometimes - passing --domain=DOMAIN_NAME to
/usr/bin/ntlm_auth resolves cosmic issues. Sometimes it's
DOMAIN\username vs just username in --username.
Last thing is error message: "BH SPNEGO request invalid prefix". It is
strange, at least for me. SPNEGO reply is rather kerberos or negotiate
reply; not ntlm_auth. What distro are you using?
--
Dijx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20170510/c103aa9a/attachment.html>
More information about the squid-users
mailing list