Package: libpam0g
Version: 1.1.8-3.5
Severity: important
File: pam

Dear Maintainer,

I'm trying to login via ssh as a Windows AD user and auth fails.
When doing a ssh-login as a local user it works fine.
After login out the local user and trying as domain user again, it works fine, 
like expected.
The bug mostly (only?) occurs after being idle (with no users logged in) for 
'some time', e.g. every mornig (24/7 machine) or after being shut down for the 
weekend.
I think this is a regression from jessie that should not go in final stretch.

When I compare a successfull run with a failed attempt I find the output of 
'service sshd status':

Mai 14 17:04:27 fail-host pam-script[2375]: can not stat 
/usr/share/libpam-script/pam_script_auth
Mai 14 17:04:27 fail-host sshd[2375]: pam_unix(sshd:auth): check pass; user 
unknown
Mai 14 17:04:27 fail-host sshd[2375]: pam_unix(sshd:auth): authentication 
failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.16.0.1
Mai 14 17:04:27 fail-host sshd[2375]: pam_winbind(sshd:auth): getting password 
(0x00000388)
Mai 14 17:04:27 fail-host sshd[2375]: pam_winbind(sshd:auth): pam_get_item 
returned a password
Mai 14 17:04:29 fail-host sshd[2375]: Failed password for invalid user 
domainuser from 172.16.0.1 port 41037 ssh2
Mai 14 17:04:46 fail-host sshd[2375]: Connection closed by 172.16.0.1 port 
41037 [preauth]

Mai 14 17:05:14 success-host pam-script[30067]: can not stat 
/usr/share/libpam-script/pam_script_auth
Mai 14 17:05:14 success-host sshd[30067]: pam_unix(sshd:auth): authentication 
failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.16.0.1  user=domainuser
Mai 14 17:05:14 success-host sshd[30067]: pam_winbind(sshd:auth): getting 
password (0x00000388)
Mai 14 17:05:14 success-host sshd[30067]: pam_winbind(sshd:auth): pam_get_item 
returned a password
Mai 14 17:05:15 success-host sshd[30067]: pam_winbind(sshd:auth): user 
'domainuser' granted access

Of course pam_unix fails for domain users, but I see it complains about 'user 
unknown':
When ever there is no parameter 'user=XYZ' on the pam_unix line then auth fails 
for domain users (with pam_winbind), too.
What causes that 'user=' mostly appears and works but sometimes is missing?
Local users do not fail.

I've seen a similar bug with missing 'user=...' using gdm3 on jessie, too, but 
that happened on about 1-2 of 40 computers a day
and vanished after some time with cron driven winbind restarts.
The actual problem is reproducible on a machine without GUI every day.

I know winbind crashes often (and that for it sucks heavily), so I first 
thought this could be a winbind issue.
But when pam_winbind does not know the 'user=' parameter its clear it can not 
succeed (Of course it really must not crash (as it does) in this case)

Since I'm not very good with PAM usage/debugging, please let me know what 
information I can provide to solve this bug.

Thanks for your attention,
Christian Meyer


# cat /etc/pam.d/common-auth
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
auth    sufficient                      pam_script.so 
auth    [success=2 default=ignore]      pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth 
krb5_ccache_type=FILE cached_login try_first_pass
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config



-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64
 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libpam0g:amd64 depends on:
ii  debconf [debconf-2.0]  1.5.60
ii  libaudit1              1:2.6.7-2
ii  libc6                  2.24-10

libpam0g:amd64 recommends no packages.

Versions of packages libpam0g:amd64 suggests:
pn  libpam-doc  <none>

-- debconf information:
  libraries/restart-without-asking: false
  libpam0g/restart-failed:
  libpam0g/xdm-needs-restart:
  libpam0g/restart-services:

Reply via email to