Package: squid3
Version: 3.4.8-6+deb8u1
Severity: normal

Dear Maintainer,

I have Squid 3.4.8 installed on Debian Jessie.

I’m using the negotiate wrapper configured like this:

auth_param negotiate program /usr/lib/squid3/negotiate_wrapper_auth -d \
   --kerberos /usr/lib/squid3/negotiate_kerberos_auth -s 
HTTP/proxy.domain.local@DOMAIN.LOCAL \
   --ntlm /usr/bin/ntlm_auth --helper-protocol=gss-spnego --domain=DOMAIN.LOCAL

The proxy works as intended – authentication happens, and usernames are logged 
for users that authenticate via Kerberos.

However my logs don’t show user names for anyone that authenticates via NTLM.  
The user name is replaced with an asterisk.

I am testing by configuring my browser to use the FQDN of the proxy (which 
results in Kerberos authentication) or by using the IP address (which results 
in NTLM).

Anyway, cache log does show the username but it is apparently in the wrong 
location to be parsed into the access log:

2016/03/16 16:38:29| negotiate_wrapper: Return 'AF = * james_zuelow
‘

The correct format for this entry should be:

2000/01/01 12:00:00 negotiate_wrapper: Return 'AF * james_zuelow'

This is a problem for me, as my organization wants the username in the log.

Researching the issue I found this:

http://squid-web-proxy-cache.1019090.n4.nabble.com/negotiate-wrapper-Return-AF-username-td4674765.html

In which Amos says this was fixed “a long while back.”  My google-fu is not 
strong enough to discover an upstream fix for this issue though.

the NTLM auth binary is part of Winbind, which wasn't picked up by reportbug (I 
see it says "none" below looking for winbindd vs. winbind).

My Samba/Winbind versions are:

ii  python-samba                       2:4.1.17+dfsg-2+deb8u2          amd64    
    Python bindings for Samba
ii  samba                              2:4.1.17+dfsg-2+deb8u2          amd64    
    SMB/CIFS file, print, and login server for Unix
ii  samba-common                       2:4.1.17+dfsg-2+deb8u2          all      
    common files used by both the Samba server and client
ii  samba-common-bin                   2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba common files used by both the server and the client
ii  samba-doc                          2:4.1.17+dfsg-2+deb8u2          all      
    Samba documentation
ii  samba-dsdb-modules                 2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba Directory Services Database
ii  samba-libs:amd64                   2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba core libraries
ii  samba-vfs-modules                  2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba Virtual FileSystem plugins
ii  libnss-winbind:amd64               2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba nameservice integration plugins
ii  libwbclient0:amd64                 2:4.1.17+dfsg-2+deb8u2          amd64    
    Samba winbind client library
ii  winbind                            2:4.1.17+dfsg-2+deb8u2          amd64    
    service to resolve user and group information from Windows NT servers


-- System Information:
Debian Release: 8.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.7-ckt9 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages squid3 depends on:
ii  adduser                  3.113+nmu3
ii  libc6                    2.19-18+deb8u3
ii  libcap2                  1:2.24-8
ii  libcomerr2               1.42.12-1.1
ii  libdb5.3                 5.3.28-9
ii  libecap2                 0.2.0-3
ii  libexpat1                2.1.0-6+deb8u1
ii  libgcc1                  1:4.9.2-10
ii  libgssapi-krb5-2         1.12.1+dfsg-19+deb8u2
ii  libk5crypto3             1.12.1+dfsg-19+deb8u2
ii  libkrb5-3                1.12.1+dfsg-19+deb8u2
ii  libldap-2.4-2            2.4.40+dfsg-1+deb8u2
ii  libltdl7                 2.4.2-1.11
ii  libnetfilter-conntrack3  1.0.4-1
ii  libnettle4               2.7.1-5
ii  libpam0g                 1.1.8-3.1+deb8u1
ii  libsasl2-2               2.1.26.dfsg1-13+deb8u1
ii  libstdc++6               4.9.2-10
ii  libxml2                  2.9.1+dfsg1-5+deb8u1
ii  logrotate                3.8.7-1+b1
ii  lsb-base                 4.1+Debian13+nmu1
ii  netbase                  5.3
ii  squid3-common            3.4.8-6+deb8u1

squid3 recommends no packages.

Versions of packages squid3 suggests:
pn  resolvconf   <none>
ii  smbclient    2:4.1.17+dfsg-2+deb8u2
ii  squid-cgi    3.4.8-6+deb8u1
pn  squid-purge  <none>
ii  squidclient  3.4.8-6+deb8u1
pn  ufw          <none>
pn  winbindd     <none>

-- Configuration Files:
/etc/init.d/squid3 changed:
NAME=squid3
DESC="Squid HTTP Proxy 3.x"
DAEMON=/usr/sbin/squid3
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/squid3/squid.conf
SQUID_ARGS="-YC -f $CONFIG"
[ ! -f /etc/default/squid3 ] || . /etc/default/squid3
. /lib/lsb/init-functions
PATH=/bin:/usr/bin:/sbin:/usr/sbin
[ -x $DAEMON ] || exit 0
ulimit -n 65535
find_cache_dir () {
        w="     " # space tab
        res=`$DAEMON -k parse -f $CONFIG 2>&1 |
                grep "Processing:" |
                sed s/.*Processing:\ // |
                sed -ne '
                        
s/^['"$w"']*'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
                        t end;
                        d;
                        :end q'`
        [ -n "$res" ] || res=$2
        echo "$res"
}
grepconf () {
        w="     " # space tab
        res=`$DAEMON -k parse -f $CONFIG 2>&1 |
                grep "Processing:" |
                sed s/.*Processing:\ // |
                sed -ne '
                        s/^['"$w"']*'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
                        t end;
                        d;
                        :end q'`
        [ -n "$res" ] || res=$2
        echo "$res"
}
create_run_dir () {
        run_dir=/var/run/squid3
        usr=`grepconf cache_effective_user proxy`
        grp=`grepconf cache_effective_group proxy`
        if [ "$(dpkg-statoverride --list $run_dir)" = "" ] &&
           [ ! -e $run_dir ] ; then
                mkdir -p $run_dir
                chown $usr:$grp $run_dir
        fi
}
start () {
        cache_dir=`find_cache_dir cache_dir`
        cache_type=`grepconf cache_dir`
        KRB5_KTNAME=/etc/squid3/proxy-keytab
        export KRB5_KTNAME
        kinit -k -t proxy-keytab HTTP/proxy.domain.local@DOMAIN.LOCAL
        #
        # Create run dir (needed for several workers on SMP)
        #
        create_run_dir
        #
        # Create spool dirs if they don't exist.
        #
        if test -d "$cache_dir" -a ! -d "$cache_dir/00"
        then
                log_warning_msg "Creating $DESC cache structure"
                $DAEMON -z -f $CONFIG
        fi
        umask 027
        ulimit -n 65535
        cd $cache_dir
        start-stop-daemon --quiet --start \
                --pidfile $PIDFILE \
                --exec $DAEMON -- $SQUID_ARGS < /dev/null
        return $?
}
stop () {
        PID=`cat $PIDFILE 2>/dev/null`
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
        #
        #       Now we have to wait until squid has _really_ stopped.
        #
        sleep 2
        if test -n "$PID" && kill -0 $PID 2>/dev/null
        then
                log_action_begin_msg " Waiting"
                cnt=0
                while kill -0 $PID 2>/dev/null
                do
                        cnt=`expr $cnt + 1`
                        if [ $cnt -gt 24 ]
                        then
                                log_action_end_msg 1
                                return 1
                        fi
                        sleep 5
                        log_action_cont_msg ""
                done
                log_action_end_msg 0
                return 0
        else
                return 0
        fi
}
case "$1" in
    start)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL .*"`
        if test -n "$res";
        then
                log_failure_msg "$res"
                exit 3
        else
                log_daemon_msg "Starting $DESC" "$NAME"
                if start ; then
                        log_end_msg $?
                else
                        log_end_msg $?
                fi
        fi
        ;;
    stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        if stop ; then
                log_end_msg $?
        else
                log_end_msg $?
        fi
        ;;
    reload|force-reload)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL .*"`
        if test -n "$res";
        then
                log_failure_msg "$res"
                exit 3
        else
                log_action_msg "Reloading $DESC configuration files"
                start-stop-daemon --stop --signal 1 \
                        --pidfile $PIDFILE --quiet --exec $DAEMON
                log_action_end_msg 0
        fi
        ;;
    restart)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL .*"`
        if test -n "$res";
        then
                log_failure_msg "$res"
                exit 3
        else
                log_daemon_msg "Restarting $DESC" "$NAME"
                stop
                if start ; then
                        log_end_msg $?
                else
                        log_end_msg $?
                fi
        fi
        ;;
    status)
        status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit 3
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME 
{start|stop|reload|force-reload|restart|status}"
        exit 3
        ;;
esac
exit 0

/etc/squid3/squid.conf [Errno 13] Permission denied: u'/etc/squid3/squid.conf'

-- no debconf information

Reply via email to