On Mon, Dec 16, 2019 at 10:47:12AM -0600, Spike White wrote:
> Jakub and sssd experts,
> 
> I tested this stacking of sssd access_providers.  Both on RHEL8.1 and RHEL
> 7.6.
> 
> first I tried:
> 
> access_provider = ad,simple
> 
> sssd fails to restart.  Error message in the sssd log file is:
> 
> (Mon Dec 16 09:58:21 2019) [sssd[be[amer.example.com]]]
> [dp_module_open_lib] (0x0010): Unable to load module [ad,simple] with path
> [/usr/lib64/sssd/libsss_ad,simple.so]: /usr/lib64/sssd/libsss_ad,simple.so:
> cannot open shared object file: No such file or directory
> Changed to this:
> 
> access_provider = ad, simple
> 
> 
> Error message in log file is now this:
> 
> (Mon Dec 16 10:00:24 2019) [sssd[be[amer.examplecom]]] [dp_module_open_lib]
> (0x0010): Unable to load module [ad, simple] with path
> [/usr/lib64/sssd/libsss_ad, simple.so]: /usr/lib64/sssd/libsss_ad,
> simple.so: cannot open shared object file: No such file or directory
> 
> 
> 
> So it appears you cannot stack your access_providers.  At least in the sssd
> versions shipping with RHEL7 & 8.
> 
> Great idea -- just not implemented.
> 
> The original concern is that with a "simple" access provider, that
> password-less methods of SSH login would allow AD accounts with locked
> password or expired accounts in.  Because the denial of these accounts
> would be in the "auth" section of the PAM stack -- which gets bypassed by
> password-less methods of SSH login?
> 
> By entering multiple incorrect password attempts, trivially I was able to
> lock my AD account.  But I still had a valid Kerberos credential on my
> Linux server.   I tested for GSSAPI-based SSH logins.  It properly refused
> to auto-login, instead it prompted for a password.
> 
> My speculation is that the SSH client is presenting the valid Kerberos
> token to the SSH daemon.  The daemon then consults the KDC (aka the AD
> domain controller).  That AD DC declines to authorize this Kerberos
> principal, as he has a locked password.
> 
> I also attempted RSA pubkey based SSH login. Using that, I was able to
> auto-login into the test server, even though my AD account had a locked
> password.
> 
> That could be remediated with access_provider = ad  and
> /etc/security/access.conf file entries to authorize users and groups, I'd
> guess.  access_provider=ad just to thwart locked or expired accounts;
> access.conf for the granular (per-server) access control.

Hi,

have you checked if 'ad_access_filter', see man sssd-ad for details,
might help?

bye,
Sumit

> 
> BTW, for our use case -- conferring login via GPO's wouldn't work so well.
> We have hundreds and hundreds of diverse projects, each with their own
> authorized users.  We are the Linux engineers; we do not managed AD.  We
> confer access per group and the group owner (project team manager) has
> self-service ability to add or remove accounts to his or her AD groups.
> Thus once server is initially provisioned, we don't have to do additional
> maintenance.   Our Linux team is not authorized in AD to create OUs or GPOs
> associated with those OUs.
> 
> either simple access provide or using access.conf for access work well for
> us, because we have full control over the per-server configuration of the
> Linux client.
> 
> Incidentally, we do a ton of GSSAPI-based SSH SSO, but essentially no
> pubkey-based SSH SSO.  So the above situation is not so bad -- for our use
> case.
> 
> Spike
> 
> On Thu, Dec 5, 2019 at 10:42 AM Jakub Hrozek <jhro...@redhat.com> wrote:
> 
> > On Wed, Dec 04, 2019 at 09:58:00AM -0600, Spike White wrote:
> > > Sssd experts,
> > >
> > > We have an AD-based sssd configuration that is working.  For RHEL6, 7
> > and 8.
> > >
> > > We've done thorough lab testing + pilot projects.  All good (with certain
> > > RHEL6 restrictions).
> > >
> > > Currently, we're using access_provider = simple, with the appropriate
> > > simple_allow_groups and simple_allow_users lines in /etc/sssd/sssd.conf.
> > > Works fine.
> > >
> > > A reviewer mentioned we should be using access_provider = ad +
> > > /etc/security/access.conf file to restrict access.  (We have
> > pam_access.so
> > > in our pam stack already, to disallow direct root login and other limited
> > > uses.)
> > >
> > > Obviously that second approach would work too.
> > >
> > > The claim is the first approach would allow in AD accounts with expired
> > > passwords and locked accounts.  Whereas the second approach would not.
> >
> > This is correct. If would be an issue if you had used a different auth
> > method than passwords, like ssh keys, then locked accounts could log in.
> >
> > The best way would be if sssd implemented account provider stacking so
> > that you could say:
> >     access_provider=ad,simple
> > or such.
> >
> > btw since you are already using AD, wouldn't it be best to implement
> > GPOs and use GPOs for access control, at least on RHEL-7 and 8?
> >
> > >
> > > I'm attempting to test this claim -- I have an account I can lock easily.
> > > But does anyone have any best practices for access_provider?
> > >
> > > The advantage of this first approach is that it's already coded and
> > > thoroughly tested.  The pilot projects use this.
> > >
> > > The one advantage of the second approach that I'm certain of is that
> > RHEL6
> > > does not have a realm permit command.  So to permit a user or group in
> > > RHEL6 using the first approach is different between RHEL6 and 7/8.  (To
> > me,
> > > that's not huge.)
> > >
> > > Spike
> >
> > > _______________________________________________
> > > sssd-users mailing list -- sssd-users@lists.fedorahosted.org
> > > To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org
> > > Fedora Code of Conduct:
> > https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > > List Archives:
> > https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org
> > _______________________________________________
> > sssd-users mailing list -- sssd-users@lists.fedorahosted.org
> > To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org
> > Fedora Code of Conduct:
> > https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives:
> > https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org
> >

> _______________________________________________
> sssd-users mailing list -- sssd-users@lists.fedorahosted.org
> To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org
> Fedora Code of Conduct: 
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: 
> https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org
_______________________________________________
sssd-users mailing list -- sssd-users@lists.fedorahosted.org
To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org

Reply via email to