On 5/06/2014 7:54 p.m., Manfred Mayer IT wrote: > Hi there, > > I'm trying to setup a Squid 3.3.8 on a Ubuntu 14.04 and I'm having some problems with the NTLM authentication. We have three ports, 2 are with authentication (3128 and 3129). The server is joined to a Windows 2008 domain and authentication works fine on machines that are also in this domain. But on non-domain machines, in Internet Explorer I get the authentication popup up to 6 times, then I get "Access denied" and only after a reload, the site is viewed correctly. With our old Squid 2.7 I just had to login once. I tried to adapt our existing 2.7-config for squid3, maybe I made a mistake, can someone help me to fix this error? Or is this a smb/winbind related error? > Please rune squid -k check and fix the errors it mentions. There are quite a few lines of the config below which are unnecessary or wrong in squid-3.3. I've mentioned below a few of the extra changes that are not easily detected like that.. > http_port 3128 > http_port 3129 > http_port 4711 > logformat squid %{%d.%m.%Y %H:%M:%S}tl.%03tu %6tr %>a %[un %Ss/%03>Hs %<st %rm %ru %Sh/%<a %mt You should not re-define the native Squid log format. Please use a different name. Although its worth noting that this logformat is never being used anyway due to "emulate_httpd_log on". > hierarchy_stoplist cgi-bin ? > acl QUERY urlpath_regex cgi-bin \? > no_cache deny QUERY the above three lines can go. > cache_dir ufs /var/cache/squid 100 16 256 > cache_access_log stdio:/var/log/squid3/access.log > cache_log /var/logs/cache.log > cache_log /var/log/squid3/cache.log You can only have one debug log for Squid. Temove the top cache_log line. > cache_store_log none > emulate_httpd_log on > log_fqdn on > auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp > auth_param ntlm children 30 > auth_param basic program /usr/bin/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 > refresh_pattern ^ftp: 1440 20% 10080 > refresh_pattern ^gopher: 1440 0% 1440 > refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 > refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 > refresh_pattern . 0 20% 4320 > acl localhost src 127.0.0.1/32 > acl to_localhost dst 127.0.0.0/8 > acl SSL_ports port 443 563 4434 7004 > acl Safe_ports port 80 # http > acl Safe_ports port 180 # http > acl Safe_ports port 181 # http > acl Safe_ports port 182 # http > acl Safe_ports port 183 # http > acl Safe_ports port 184 # http > acl Safe_ports port 185 # http > acl Safe_ports port 186 # http > acl Safe_ports port 187 # http > acl Safe_ports port 21 # ftp > acl Safe_ports port 443 563 # https, snews > 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 > acl firstport myport 3128 # (first local socket TCP port) > acl secport myport 3129 # (second local socket TCP port) > acl thirdport myport 4711 # (third local socket TCP port) > acl SSL method CONNECT > always_direct allow SSL Why not simplify with "always_direct allow CONNECT" ? > http_access allow manager localhost > http_access deny manager > http_access deny !Safe_ports > http_access deny CONNECT !SSL_ports > acl local-servers dstdomain int.rapunzel.de > always_direct allow local-servers > acl our_networks_new src 172.16.0.0/16 > acl goodlocalips src "/etc/squid3/goodlocalips" > http_access allow localhost > http_access allow goodlocalips > acl AuthorizedUsers proxy_auth REQUIRED > http_access allow firstport our_networks_new AuthorizedUsers > http_access allow secport our_networks_new AuthorizedUsers > http_access allow thirdport > http_access deny all > always_direct allow all > icp_access allow all > forwarded_for on > never_direct allow all So you have a series of "always_direct allow" terminated by an "allow all". Then a single "never_direct allow all". But you have no cache_peer lines at all. So all these always/never routing rules are just a waste of CPU cycles and time. You can drop the always_direct and never_direct lines completely. Amos