[Samba] Problem with Active Directory authentication

Data Control Systems - Mike Elkevizth mike at datacontrolsystems.com
Fri Jun 10 17:40:28 UTC 2016


Hi,

What version of Samba are you running (samba --version)?  Some of the
smb.conf parameters have changed in more recent versions.  I'm running the
standard version supplied with Ubuntu which is currently 4.3.9.  My
configuration on member servers is as follows:

[global]
# Base options
workgroup = <NETBIOS DOMAIN>
realm = <AD DOMAIN>
netbios name = <THIS MACHINE'S NETBIOS NAME>
security = ADS

# Default idmap config used for BUILTIN and local accounts/groups
idmap config *:backend = tdb
idmap config *:range = 3000000-3999999

idmap config for domain <NETBIOS DOMAIN>
idmap config <NETBIOS DOMAIN>:backend = ad
idmap config <NETBIOS DOMAIN>:schema_mode = rfc2307
idmap config <NETBIOS DOMAIN>:range = 10000-20000

# Use settings from AD for login shell and home directory
winbind nss info = rfc2307
winbind enum users = yes
winbind enum groups = yes
winbind offline logon = yes

# Log options
log level = 1

I think it looks like you're real issue now is the /bin/false shell, which
is the default if it isn't specifically set.  The newer way to set the
shell is using rfc2307 attributes.  See
https://wiki.samba.org/index.php/Setting_up_RFC2307_in_AD and
https://wiki.samba.org/index.php/Administer_Unix_Attributes_in_AD_via_ADUC.
With a configuration similar to mine, and the correct shell set up in the
rfc2307 attributes for the user, I think you'll be all set.

Mike E.

On Fri, Jun 10, 2016 at 12:50 PM Kaplan, Andrew H. <AHKAPLAN at partners.org>
wrote:

> Hello --
>
> I removed the ldap and sssd packages from the server, and I am trying to
> get winbind to work on the system.
>
> The configuration of the /etc/samba/smb.conf file's global section is the
> following:
>
> [global]
>
> ## Browsing/Identification ###
>
> # Change this to the workgroup/NT-domain name your Samba server will part
> of
>    security = ads
>    realm = <domain name>
>    workgroup = <domain>
>    idmap uid = 10000-20000
>    idmap gid = 10000-20000
>    winbind enum users = yes
>    winbind enum groups = yes
>    template homedir =  /home/%D/%U
>    template shell = /bin/bash
>    client use spnego = yes
>    client ntlmv2 auth =yes
>    encrypt passwords = yes
>    winbind use default domain = yes
>    restrict anonymous = 2
>
> While that of the /etc/nsswitch.conf file reads as follows:
>
>
> passwd:         compat  winbind
> group:          compat  winbind
> shadow:         compat
>
> hosts:  files dns
> ...
>
> The /etc/krb5.conf file has the domain name in capital letters for the
> default_realm entry in capital letters.
>
> I was able to join the server with the domain.
>
> When I ran the getent <username>@<DOMAINNAME> command, the output was the
> following:
>
> <DOMAINNAME>\<username>:*:10000:10005:<lastname>,
> <firstname>.:/home/<DOMAIN>/<username>:/bin/false
>
> I attempted to log into the system via ssh using the following command
> syntax:
>
> ssh -l <username>@<DOMAINNAME> <server fqdn>
>
> The connection was made, but it was immediately closed. I am guessing the
> /bin/false shell could be what is causing the problem.
>
> The auth.log file also had the following entries:
>
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_unix(sshd:auth):
> authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=
> microknoppix.mgh.harvard.edu  user=ahk at PARTNERS.ORG
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_winbind(sshd:auth):
> getting password (0x00000388)
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_winbind(sshd:auth):
> pam_get_item returned a password
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_winbind(sshd:auth): user
> '<DOMAINNAME>\<username>' granted access
> Jun 10 12:44:00 <samba server> sshd[13560]: Accepted password for
> <username>@<DOMAINNAME> from <ip address> port 54879 ssh2
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_unix(sshd:session):
> session opened for user <DOMAINNAME>\<username> by (uid=0)
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_systemd(sshd:session):
> Failed to create session: No such file or directory
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_mkhomedir(sshd:session):
> unknown option: umask
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_mkhomedir(sshd:session):
> unknown option: 0022
> Jun 10 12:44:00 <samba server> sshd[13608]: Received disconnect from <ip
> address>: disconnected by user
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_unix(sshd:session):
> session closed for user <DOMAINNAME>\<username>
> Jun 10 12:44:00 <samba server> sshd[13560]: pam_winbind(sshd:setcred):
> user '<DOMAINNAME>\<username>' OK
>
> The pam-auth-update command indicated the following were enabled:
>
> Unix authentication
> Winbind NT/Active Directory authentication
>
> Register user sessions in the systemd control group hierarchy
> Inheritable Capabilities Management
>
>
>
>
>
>
>
> ------------------------------
> *From:* Data Control Systems - Mike Elkevizth [mike at datacontrolsystems.com
> ]
> *Sent:* Friday, June 10, 2016 10:45 AM
> *To:* Kaplan, Andrew H.; samba at lists.samba.org
> *Cc:* Rowland penny
>
> *Subject:* Re: [Samba] Problem with Active Directory authentication
> Hi,
>
> I have a feeling that Rowland is correct that all the different
> authentication methods are interfering with one another.  I can say all I
> have is winbind and it works fine for me.  My relevant pam-auth-update
> modules are:
>
> [*] Unix authentication
> [*] Winbind NT/Active Directory authentication
> [*] Register user sessions in the systemd control group hierarchy
> [*] Create home directory on login
>
> My relevant excerpt from /etc/nsswitch.conf is:
>
> passwd:         compat winbind
> group:          compat winbind
>
> If your smb.conf file includes the "template shell = /bin/bash" as you
> indicated earlier, but your getent password is returning /bin/PHSshell
> instead, I think the information is being returned by a service other than
> winbind.  Depending on how pam is configured, generally the order listed
> when you run pam-auth-update will be the order in which the services are
> tried.  So the first one listed there is probably the one returning the
> info to getent passwd.  I also know that my ssh (Ubuntu 16.04 client and
> server) doesn't like the username in the format <username>@<domainname> and
> this isn't the format that winbind would return the information, at least
> not by default.  For me getent passwd <username>@<domainname> would return
> the user as <domainname>\<username>.  I would try running pam-auth-update
> and disabling the LDAP and SSSD authentication methods and see if getent
> passwd returns different info.
>
> Your first post looked to me like the authentication was succeeding, but
> then the shell was wrong and so you were immediately logged out.  Like you
> mentioned in a previous post, the /bin/PHSshell is probably one the issue
> because it probably doesn't exist.  A link from /bin/PHSshell to /bin/bash
> would fix this, but more than likely, it is a configuration issue that is
> returning the wrong shell in the first place.  Is PHS your netbios domain
> name?  If it is, it's probably the LDAP or SSSD configuration that is
> retuning the shell using a substitution that isn't set up correctly.
>
> Good luck,
>
> Mike E.
>
> On Fri, Jun 10, 2016 at 10:14 AM Rowland penny <rpenny at samba.org> wrote:
>
>> On 10/06/16 13:46, Kaplan, Andrew H. wrote:
>> > Hello --
>> >
>> > The winbind packages that are installed on the server are the following:
>> >
>> >       Package
>>  Description
>> >       libnss-winbind 4.3.9+dfsg-0ubuntu0.14.04.3              amd64
>> Samba nameservice integration plugins
>> >       libpam-winbind 4.3.9+dfsg-0ubuntu0.14.04.3      amd64 Windows
>> domain authentication integration plugin
>> >       libwbclient0 4.3.9+dfsg-0ubuntu0.14.04.3                amd64
>> Samba winbind client library
>> >       winbind 4.3.9+dfsg-0ubuntu0.14.04.3                     amd64
>> service to resolve user and group information from Windows NT servers
>> >
>> > Similarly, the ldap PAM packages are as follows:
>> >
>> >          Package
>> Description
>> >       ldap-auth-client 0.5.3
>> all meta-package for LDAP authentication
>> >       ldap-auth-config 0.5.3                                  all
>> Config package for LDAP authentication
>> >       ldap-utils 2.4.31-1+nmu2ubuntu8.2                       amd64
>> OpenLDAP utilities
>> >       libldap-2.4-2 2.4.31-1+nmu2ubuntu8.2                    amd64
>> OpenLDAP libraries
>> >       libldb1 1.1.24-0ubuntu0.14.04.1
>>  amd64 LDAP-like embedded database - shared library
>> >       libnss-ldap 264-2.2ubuntu4.14.04.1                      amd64 NSS
>> module for using LDAP as a naming service
>> >       libpam-ldap 184-8.5ubuntu3                              amd64
>> Pluggable Authentication Module for LDAP
>> >       sssd-ldap 1.11.5-1ubuntu3                                  amd64
>> System Security Services Daemon -- LDAP back end
>> >
>> > Finally, the sssd packages are the following:
>> >
>> >          Package
>> Description
>> >       libsss-idmap0 1.11.5-1ubuntu3                           amd64 ID
>> mapping library for SSSD
>> >       sssd 1.11.5-1ubuntu3                                    amd64
>> System Security Services Daemon -- metapackage
>> >       sssd-ad 1.11.5-1ubuntu3
>>  amd64 System Security Services Daemon -- Active Directory back end
>> >       sssd-ad-common 1.11.5-1ubuntu3                  amd64 System
>> Security Services Daemon -- PAC responder
>> >       sssd-common 1.11.5-1ubuntu3                             amd64
>> System Security Services Daemon -- common files
>> >       sssd-ipa 1.11.5-1ubuntu3
>> amd64 System Security Services Daemon -- IPA back end
>> >       sssd-krb5 1.11.5-1ubuntu3                               amd64
>> System Security Services Daemon -- Kerberos back end
>> >       sssd-krb5-common 1.11.5-1ubuntu3                        amd64
>> System Security Services Daemon -- Kerberos helpers
>> >       sssd-ldap 1.11.5-1ubuntu3
>>  amd64 System Security Services Daemon -- LDAP back end
>> >       sssd-proxy 1.11.5-1ubuntu3                              amd64
>> System Security Services Daemon -- proxy back end
>> >       sssd-tools 1.11.5-1ubuntu3                              amd64
>> System Security Services Daemon -- tools
>> >
>> > Will removing all packages for the first two groups solve this problem?
>> >
>> > From: samba [samba-bounces at lists.samba.org] on behalf of Rowland penny
>> [rpenny at samba.org]
>> > Sent: Friday, June 10, 2016 8:29 AM
>> > To: samba at lists.samba.org
>> > Subject: Re: [Samba] Problem with Active Directory authentication
>> >
>> > On 10/06/16 12:47, Kaplan, Andrew H. wrote:
>> >> Hello --
>> >>
>> >> I started a thread on the list that you suggested in your e-mail, and
>> thank-you for the reference.
>> >>
>> >> Also, I checked the auth.log file on the server, and the following
>> entries were present:
>> >>
>> >> I checked the auth.log file, and the following entries were present:
>> >>
>> >> Jun 10 07:10:50 <samba server> sshd[7419]: pam_unix(sshd:auth):
>> authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=<fqdn>
>> user=<username>@<domainname>
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_winbind(sshd:auth):
>> getting password (0x00000388)
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_winbind(sshd:auth):
>> pam_get_item returned a password
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_sss(sshd:auth):
>> authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=<fqdn>
>> user=username>@<domainname>
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_sss(sshd:auth):
>> received for user username>@<domainname> 17 (Failure setting user
>> credentials)
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_ldap: could not open
>> secret file /etc/ldap.secret (No such file or directory)
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_ldap: ldap_simple_bind
>> Can't contact LDAP server
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_ldap: reconnecting to
>> LDAP server...
>> >> Jun 10 07:10:51 <samba server> sshd[7419]: pam_ldap: ldap_simple_bind
>> Can't contact LDAP server
>> >> Jun 10 07:10:53 <samba server> sshd[7419]: Failed password for invalid
>> user username>@<domainname>from <ip address> port 49847 ssh2
>> >>
>> >>
>> >> ________________________________________
>> >> From: Sumit Bose [sbose at redhat.com]
>> >> Sent: Friday, June 10, 2016 4:44 AM
>> >> To: Kaplan, Andrew H.
>> >> Cc: samba-technical at lists.samba.org; samba at lists.samba.org
>> >> Subject: Re: Problem with Active Directory authentication
>> >>
>> >> On Wed, Jun 08, 2016 at 07:46:00PM +0000, Kaplan, Andrew H. wrote:
>> >>> Hello --
>> >>>
>> >>> We are running the 14.04.3 LTS 64-bit release as a virtual machine on
>> a Vmware appliance. The goal of the installation is to create a Samba
>> server that utilizes Active Directory authentication. To that end I
>> utilized the following procedure:
>> >>>
>> >>> http://www.kiloroot.com/add-ubuntu-1...n-credentials/<
>> http://www.kiloroot.com/add-ubuntu-14-04-server-or-desktop-to-microsoft-active-directory-domain-login-to-unity-with-domain-credentials/
>> >
>> >>>
>> >>> Afterwards, I referenced the following documentation to confirm that
>> all configuration files had the appropriate entries:
>> >>>
>> >>> https://help.ubuntu.com/lts/serverguide/sssd-ad.html
>> >> The sssd-users list
>> >>
>> https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org/
>> >> might be more appropriate for your question.
>> >>
>> >> As a general comment, the PAM configuration is important here. Please
>> >> check the system logs which PAM module was consulted during the login
>> >> attempt and which cause the rejection.
>> >>
>> >> HTH
>> >>
>> >> bye,
>> >> Sumit
>> >>
>> >>> The problem is the following: I am unable to log into the server from
>> the console or via SSH using my Active Directory user account. The syntax
>> that I use when doing an SSH connection is the following:
>> >>>
>> >>> ssh -v -l <username>@<domainname> <fully qualified domain name>
>> >>>
>> >>> The output that was generated is the following:
>> >>>
>> >>> OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1e 11 Feb 2013
>> >>> debug1: Reading configuration data /etc/ssh/ssh_config
>> >>> debug1: /etc/ssh/ssh_config line 19: Applying options for *
>> >>> debug1: Connecting to <fully qualified domain name> [<ip address>]
>> port 22.
>> >>> debug1: Connection established.
>> >>> debug1: identity file /home/knoppix/.ssh/id_rsa type -1
>> >>> debug1: identity file /home/knoppix/.ssh/id_rsa-cert type -1
>> >>> debug1: identity file /home/knoppix/.ssh/id_dsa type -1
>> >>> debug1: identity file /home/knoppix/.ssh/id_dsa-cert type -1
>> >>> debug1: identity file /home/knoppix/.ssh/id_ecdsa type -1
>> >>> debug1: identity file /home/knoppix/.ssh/id_ecdsa-cert type -1
>> >>> debug1: Remote protocol version 2.0, remote software version
>> OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7
>> >>> debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7 pat OpenSSH*
>> >>> debug1: Enabling compatibility mode for protocol 2.0
>> >>> debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4
>> >>> debug1: SSH2_MSG_KEXINIT sent
>> >>> debug1: SSH2_MSG_KEXINIT received
>> >>> debug1: kex: server->client aes128-ctr hmac-md5 none
>> >>> debug1: kex: client->server aes128-ctr hmac-md5 none
>> >>> debug1: sending SSH2_MSG_KEX_ECDH_INIT
>> >>> debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
>> >>> debug1: Server host key: ECDSA
>> ec:09:c1:bc:d0:11:f3:8c:45:3f:dd:3a:96:ba:2a:17
>> >>> debug1: Host '<fully qualified domain name>' is known and matches the
>> ECDSA host key.
>> >>> debug1: Found key in /home/knoppix/.ssh/known_hosts:29
>> >>> debug1: ssh_ecdsa_verify: signature correct
>> >>> debug1: SSH2_MSG_NEWKEYS sent
>> >>> debug1: expecting SSH2_MSG_NEWKEYS
>> >>> debug1: SSH2_MSG_NEWKEYS received
>> >>> debug1: Roaming not allowed by server
>> >>> debug1: SSH2_MSG_SERVICE_REQUEST sent
>> >>> debug1: SSH2_MSG_SERVICE_ACCEPT received
>> >>> debug1: Authentications that can continue: publickey,password
>> >>> debug1: Next authentication method: publickey
>> >>> debug1: Trying private key: /home/knoppix/.ssh/id_rsa
>> >>> debug1: Trying private key: /home/knoppix/.ssh/id_dsa
>> >>> debug1: Trying private key: /home/knoppix/.ssh/id_ecdsa
>> >>> debug1: Next authentication method: password
>> >>> <username>@<domainname>@<fully qualified domain name>'s password:
>> >>> Connection closed by <ip address>
>> >>>
>> >>> Does anyone have thoughts on this?
>> >>>
>> >>> Thanks.
>> >>>
>> >>>
>> >>> The information in this e-mail is intended only for the person to
>> whom it is
>> >>> addressed. If you believe this e-mail was sent to you in error and
>> the e-mail
>> >>> contains patient information, please contact the Partners Compliance
>> HelpLine at
>> >>> http://www.partners.org/complianceline . If the e-mail was sent to
>> you in error
>> >>> but does not contain patient information, please contact the sender
>> and properly
>> >>> dispose of the e-mail.
>> > As Sumit has said, this should be on the sssd mailing list.
>> >   From your log fragment, it looks like you have the winbind and ldap
>> PAM
>> > packages installed, you do not need them.
>> >
>> > Rowland
>> >
>> >
>> > --
>> > To unsubscribe from this list go to the following URL and read the
>> > instructions:  https://lists.samba.org/mailman/options/samba
>>
>> I am not entirely sure, what I can say is that you are using three
>> different methods of authentication, winbindd, ldap and sssd, surely you
>> don't need all three ?
>>
>> If you decide to use sssd, then ask on their mailing list what sssd
>> packages you need and what you should remove.
>> If you decide to use LDAP, then this probably entails using nslcd, find
>> their mailing list and ask them.
>> If you decide to use winbindd (the Samba recommended way), then this is
>> the place to ask and I would suggest you have a look here:
>> https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member
>>
>> Rowland
>>
>> --
>> To unsubscribe from this list go to the following URL and read the
>> instructions:  https://lists.samba.org/mailman/options/samba
>>
>


More information about the samba mailing list