Re: [squid-users] NTLM negotiate + IP authentication caching for heavily used squid deployments...

2009-05-03 Thread Amos Jeffries

jason lawrence wrote:

Hi all,

  We are looking to replace our proxy infrastructure
with squid, but I am concerned about the performance of squid using the
ntlm_auth samba handler (specifically using negotiate).  We are almost
ready to do some Loadrunner stress tests, but I wanted to see if anyone
had some base statistics out there?


The ntlm helpers have issues with concurrency, so the number needed 
scales up badly with higher loads. Though with auth_param credentialsttl 
settings it can be raised somewhat.



 I saw that squid uses authenticate_ip_shortcircuit_ttl in 2.7.  Has anyone 
used the IP caching feature, and are there plans to
port it to the 3.x branch? (we are really after the ICAP functionallity)


All the missing functionality that is in 2.7 is planned for porting. 
When is a matter of sponsorship and developer time since we are mostly 
volunteers working on it.


 
I am currently investigating a way to push our AD user/group

listings into a flat file tree once a night, so squidGuard can do AD
group lookups locally.  That should save authorization cycles, but the
samba authentication is what really worries me...  I really wish
kerberos was prevelent enought that we could just force kerberos/Basic,
but that's the way it goes...  I don't even know how we could load test
kerberos authentication... 


I see for your config below you have negotiate, ntlm, basic. That will 
enable kerberos to be used where possible.


FWIW: there is one business recently posted looking for ways to use the 
browser ACL and redirect people at an 'you need to upgrade' page when 
they had issues with older browsers. :)


You might find that a solution to push the migration faster.



Current deployment:
--

squid:   3.0.11


Please use at least 3.0.STABLE13
http://www.squid-cache.org/Advisories/SQUID-2009_1.txt

There is a squid_kerb_auth buffer overrun issue solved in the kerb_auth 
helper from stable14 you may want as well.




squidGuard:  1.4
samba: 3.2.7
server:  RHAS 5.2  64bit   (Sunfire 4100 8gigs of ram)


Current configs (squid is not yet optimized)

http_port xx.xx.x.xxx:8080
tcp_outgoing_address  xx.xx.x.xxx

#
#   AUTHENTICATION
#

auth_param negotiate program 
/dev/pkgs/linux/intel/squid/3.0.11/libexec/squid_kerb_auth -d
auth_param negotiate children 10
auth_param negotiate keep_alive on

auth_param ntlm program /dev/pkgs/linux/intel/samba/3.2.7/bin/ntlm_auth 
--helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on

auth_param basic program /dev/pkgs/linux/intel/samba/3.2.7/bin/ntlm_auth 
--helper-protocol=squid-2.5-basic
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 6 hours
auth_param basic casesensitive off

#
#   ACL'S
#

acl manager proto cache_object
acl localhost src 127.0.0.1/32 
acl to_localhost dst 127.0.0.0/8 
acl CONNECT method CONNECT

acl java browser Java/1.3 Java/1.4
acl ntlm_users proxy_auth REQUIRED

http_access allow manager localhost
http_access deny manager
http_access allow java
http_access allow ntlm_users
http_access deny all

#
#   DNS Settings
#

dns_defnames on
dns_nameservers xx.xx.xx.xxx xx.xx.xx.xxx

#
#
#

hierarchy_stoplist cgi-bin ?
access_log /etrade/pkgs/linux/intel/squid/3.0.11/var/logs/access.log squid
refresh_pattern ^ftp:   144020% 10080
refresh_pattern ^gopher:14400%  1440
refresh_pattern (cgi-bin|\?)0   0%  0
refresh_pattern .   0   20% 4320
icp_port 3130
coredump_dir /etrade/pkgs/linux/intel/squid/3.0.11/var/cache

#
#   Squid Guard
#

redirect_program /dev/pkgs/linux/intel/squidGuard/1.4/bin/squidGuard
redirect_children10

#
#   Kaspersky AV
#

icap_enable on
icap_send_client_ip on
icap_service is_kav_req reqmod_precache 0 icap://localhost:1344/av/reqmod
icap_service is_kav_resp respmod_precache 0 icap://localhost:1344/av/respmod
acl acl_kav_GET method GET
icap_class ic_kav_req is_kav_req
icap_class 

[squid-users] NTLM negotiate + IP authentication caching for heavily used squid deployments...

2009-05-01 Thread jason lawrence

Hi all,

  We are looking to replace our proxy infrastructure
with squid, but I am concerned about the performance of squid using the
ntlm_auth samba handler (specifically using negotiate).  We are almost
ready to do some Loadrunner stress tests, but I wanted to see if anyone
had some base statistics out there?  I saw that squid uses 
authenticate_ip_shortcircuit_ttl in 2.7.  Has anyone used the IP caching 
feature, and are there plans to
port it to the 3.x branch? (we are really after the ICAP functionallity)
 
I am currently investigating a way to push our AD user/group
listings into a flat file tree once a night, so squidGuard can do AD
group lookups locally.  That should save authorization cycles, but the
samba authentication is what really worries me...  I really wish
kerberos was prevelent enought that we could just force kerberos/Basic,
but that's the way it goes...  I don't even know how we could load test
kerberos authentication... 

Current deployment:
--

squid:   3.0.11
squidGuard:  1.4
samba: 3.2.7
server:  RHAS 5.2  64bit   (Sunfire 4100 8gigs of ram)


Current configs (squid is not yet optimized)

http_port xx.xx.x.xxx:8080
tcp_outgoing_address  xx.xx.x.xxx

#
#   AUTHENTICATION
#

auth_param negotiate program 
/dev/pkgs/linux/intel/squid/3.0.11/libexec/squid_kerb_auth -d
auth_param negotiate children 10
auth_param negotiate keep_alive on

auth_param ntlm program /dev/pkgs/linux/intel/samba/3.2.7/bin/ntlm_auth 
--helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on

auth_param basic program /dev/pkgs/linux/intel/samba/3.2.7/bin/ntlm_auth 
--helper-protocol=squid-2.5-basic
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 6 hours
auth_param basic casesensitive off

#
#   ACL'S
#

acl manager proto cache_object
acl localhost src 127.0.0.1/32 
acl to_localhost dst 127.0.0.0/8 
acl CONNECT method CONNECT
acl java browser Java/1.3 Java/1.4
acl ntlm_users proxy_auth REQUIRED

http_access allow manager localhost
http_access deny manager
http_access allow java
http_access allow ntlm_users
http_access deny all

#
#   DNS Settings
#

dns_defnames on
dns_nameservers xx.xx.xx.xxx xx.xx.xx.xxx

#
#
#

hierarchy_stoplist cgi-bin ?
access_log /etrade/pkgs/linux/intel/squid/3.0.11/var/logs/access.log squid
refresh_pattern ^ftp:   144020% 10080
refresh_pattern ^gopher:14400%  1440
refresh_pattern (cgi-bin|\?)0   0%  0
refresh_pattern .   0   20% 4320
icp_port 3130
coredump_dir /etrade/pkgs/linux/intel/squid/3.0.11/var/cache

#
#   Squid Guard
#

redirect_program /dev/pkgs/linux/intel/squidGuard/1.4/bin/squidGuard
redirect_children10

#
#   Kaspersky AV
#

icap_enable on
icap_send_client_ip on
icap_service is_kav_req reqmod_precache 0 icap://localhost:1344/av/reqmod
icap_service is_kav_resp respmod_precache 0 icap://localhost:1344/av/respmod
acl acl_kav_GET method GET
icap_class ic_kav_req is_kav_req
icap_class ic_kav_resp is_kav_resp
icap_access ic_kav_resp allow all
icap_access ic_kav_req allow all !acl_kav_GET




SAMBA
--

# global parameters
 [global]
# ADS membership settings
workgroup = DEV
netbios name = PROXYDEV1
realm = DEV.COM 
server string = proxydev1.dev.com 
security = ADS
winbind trusted domains only = yes
#winbind cache time = 600   # tested samba auth 
caching, doesn't work for ntlm_auth
#winbind offline logon = true  #
allow trusted domains = no
use kerberos keytab = true

# IdMap settings
winbind use default domain = yes
idmap domains = DEV
idmap config DEV:backend = nss
idmap