Source: squid3
Version: 3.4.8-6: amd64
Severity: important

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

Configuring a freshly installed squid3. Users shall authenticate against a
windows domain controller

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

Entered the following directives to /etc/squid/squid.conf, which are well
tested under 2.7 and should work under 3.x too:

auth_param basic program /usr/lib/squid3/basic_smb_auth -W windows_domain -U
domain_controller
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 60 minutes
acl domainusers proxy_auth REQUIRED


   * What was the outcome of this action?

Users will be asked for credentials, but definitively correct credentials will
not be accepted. Credential dialog pops up again and again...

   * What outcome did you expect instead?

Users shall be authenticated

*** End of the template - remove these template lines ***

Now for the beef: basic_smb_auth.sh delivers the credentials via environment in
a form "$USER%$PASSWORD", which is not expected from smbclient. This seem to
result from an obsolete or inferior documentation of smbclient. While it is
perfectly valid to deliver the credentials in this form via commandline
parameter -U, for example in

smbclient //domain_controller/NETLOGON -d 0 -E -W windows_domain -c "get
proxyauth -" -U herrmann%mysecurepassword 2>/dev/null

this form is not valid, when the credentials will be delivered via environment.

Via environment the credentials must be delivered in two separate variables
USER=$USER% PASSWD=$PASSWORD.

So after the following changes to basic_smb_auth.sh, the script works flawless

-USER="$SMBUSER%$SMBPASS"
+USER="$SMBUSER"
+PASSWD="$SMBPASS"
export USER
+export PASSWD

Those lines are not my invention, I just took them from squid 2.7's
smb_auth.sh. It might be a better solution, to pass the credentials via
parameters rather than via environment, i. e. to change line 66 of
basic_smb_auth.sh:

-authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 0 -E -W "$DOMAINNAME"
-c "get $authfilebs -" 2>/dev/null`
+authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 0 -E -W "$DOMAINNAME"
-c "get $authfilebs -" -U $SMBUSER%$SMBPASS 2>/dev/null`



-- System Information:
Debian Release: 8.1
  APT prefers stable
  APT policy: (700, 'stable'), (500, 'stable-updates'), (500, 'oldoldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE@euro, LC_CTYPE=de_DE@euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to