Authentication services in Ubuntu

Bear Giles bgiles at coyotesong.com
Tue May 21 13:48:18 UTC 2013


Grr - "weak", not "week". Why do I never remember that I should never write
email until I've been awake for at least two hours?!

Embarassingly,
Bear


On Tue, May 21, 2013 at 7:47 AM, Bear Giles <bgiles at coyotesong.com> wrote:

> I'm pretty sure the default encryption is relative week is because the
> packages are distributed internationally. Cryptographic software is
> consider a munition and subject to ITAR regulation. Many countries restrict
> what can be imported and/or used within the country.
>
> I think the most common solution to this is to distribute a weak
> configuration and provide a mechanism for admins to change to a strong
> configuration <i>if allowed by local law</i>. (This is enforced by a
> click-thru agreement and fear of prison, not technology like GeoIP.) Java
> takes this approach, for example, where you can download and install a
> stronger "policy" file or just install a different crypto provider like
> Bouncy Castle.
>
> Obviously you can write your own scripts to do whatever you want but it is
> a strong consideration for distributions. E.g., for years Debian had a
> "non-US" category for packages that contained strong cryptography since the
> US export restrictions prevented them from being exported. This would have
> caused huge headaches for US-based download sites and they solved it by
> moving those packages off-shore. (The US has since relaxed (but not
> eliminated) export restrictions and the packages are now hosted in the US.)
>
> This is only one small piece of the puzzle, of course, but it's going to
> have a definite effect.
>
> BTW "old" is usually "better" in cryptography (as long as you can use
> modern keys and the latest implementations). That means there's been time
> for knowledgeable people to look for holes. MIT Kerboros has had an
> alarming number of implementation bugs but the underlying algorithm has
> been extensively studied and fixed.
>
> In contrast "new" usually makes people shudder. There are a lot of subtle
> ways to screw it up and all it takes is one oversight for the system to be
> (potentially) compromised. Heck, look at the Debian openssl screwup a few
> years ago where a fairly knowledgeable person made a small change and left
> countless web sites with easily compromised SSL keys.
>
> Bear
>
>
> On Tue, May 21, 2013 at 3:37 AM, Bolesław Tokarski <
> boleslaw.tokarski at tieto.com> wrote:
>
>> Hello,
>>
>> I put some time and effort creating this, please read at the very least
>> introduction and suggestions.
>>
>> = Introduction =
>>
>> I am a maintaining the Ubuntu deployment in Tieto company. We have over
>> 500 Ubuntu desktops. I am also trying to gather the Ubuntu Enterprise
>> community (see https://launchpad.net/~**enterprise-ubuntu<https://launchpad.net/~enterprise-ubuntu>and its mailing list). The group is open so feel invited.
>>
>> I would like to take up the topic of Corporate authentication in Ubuntu
>> and base my actions depending on the direction Ubuntu heads for.
>>
>> = Authentication choice =
>>
>> First - authentication in general. There is a number of authentication
>> services available to an enterprise deployment open source:
>> - plain LDAP (optionally including cached credentials with nss-updatedb
>> and pam-ccreds)
>> - LDAP+Kerberos (optionally including cached credentials with
>> nss-updatedb and pam-ccreds)
>> - SSSD by RedHat
>> - winbind3 by Samba
>> - winbind4 by Samba
>> and proprietary:
>> - Likewise Open/Enterprise
>> - Centrify
>> - VAS/QAS/DAS I think it's currently Dells
>> - PowerBroker Identify Services by Beyondtrust
>> - more, I guess
>>
>> == Open source+supported ==
>>
>> The packages that are currently supported officially (I mean by Canonical
>> by being included in the main archive) are:
>> - plain LDAP
>> - LDAP+Kerberos
>> - winbind3
>>
>> Hopefully, the SSL bug in LDAP libraries is now gone (Bug #423252), so
>> the first 2 can be used productively on desktops and/or servers. Note that
>> cached credentials (with nss-updatedb and pam-ccreds) are not officially
>> supported as their respective packages are in universe.
>>
>> Winbind3 might work for some Active Directory deployments, but sorry -
>> not mine. Perhaps it's a size issue (20k accounts), perhaps it's something
>> else. There's always been problems with Winbind3.
>>
>> == Open source+unsupported ==
>>
>> I found that the Linux/Ubuntu community is very helpful, so not having
>> official Canonical support for some pieces of software is ok for me, not
>> sure about other companies. Anyway I find it less troublesome to use common
>> open source solutions than to buy a niche commercial product.
>>
>> This being said, there is:
>> - LDAP/Kerberos with cached credentials
>> - SSSD by RedHat
>> - winbind4 by Samba4
>>
>> LDAP and/or Kerberos with cached credentials work pretty well, though
>> this solution seems pretty old. Due to the fact that the packages are not
>> supported (nss-updatedb and libpam-ccreds), they are not being re-built
>> against the latest Ubuntu release. A side effect is that they depend on the
>> Berkeley DB that was installed on the build system. A Precise system
>> contained libdb5.1, libdb4.8. The nss caching stuff is split into libnss-db
>> - the NSS backend that reads the cached NSS data (main archive, depends on
>> libdb5.1) and nss-updatedb, which downloads and stores the data into the
>> database (universe archive, depends on libdb4.8). I can see that Raring's
>> packages only depend on libdb5.1, but I am not sure if that's not a pure
>> coincidence.
>>
>> We are using SSSD with some success now. Thanks to Timo Aaltonen's
>> efforts, the packages available in Precise were working pretty well and
>> were updated to the latest point releases. There is a Main Inclusion
>> Request for SSSD (Bug #903752), I hope it gets included since Saucy.
>>
>> I heard Samba4 being advertised as the ultimate solution that will solve
>> all the enterprise issues. I hope it really does, though to me it only
>> solves the issues for people running Active Directory and/or Samba4 on DCs.
>> I know the market share is quite larger than those using plain LDAP or MIT
>> Kerberos or some RedHat's Directory Server, but picking Winbind4 as the
>> ultimate solution just does not feel right.
>>
>> == Proprietary ==
>>
>> I don't care. It's up to the company behind it to support it in a
>> reliable manner. Rumours have it that they have issues too, fall behind in
>> their releases for new Ubuntu releases, provide a set of their own
>> libraries which land in /opt and more.
>>
>> = Authentication configuration by package =
>>
>> Assuming that the system is being manually configured, below is the help
>> that one gets from the package maintainer scripts.
>>
>> == LDAP configuration ==
>>
>> If you install libpam-ldap or libnss-ldap, they depend on
>> ldap-auth-config, which configures /etc/ldap.conf. ldap-auth-config depends
>> on auth-client-config, which configures /etc/nsswitch.conf, and on
>> libpam-ldap and libnss-ldap. You can't have a package without its config
>> nor vice-versa.
>>
>> The current authentication configuration is based on an example
>> ldap.conf. This defaults to an LDAP attribute set that matches one provided
>> by OpenLDAP, but if you have whatever else (Active Directory, Novell NDS,
>> not sure about RedHat's DirServ), you need to configure /etc/ldap.conf
>> yourself anyway. So I'd say it's "best effort" configuration.
>>
>> == Kerberos configuration ==
>>
>> I believe Kerberos config (krb5-config) is a little better. Although I
>> needed to adjust the encryption types after configuration, I think I am an
>> exception and the Kerberos configuration actually works in most
>> environments out of the box.
>>
>> == sssd ==
>>
>> SSSD does not provide a configuration for you aside from entries to
>> /etc/nsswitch.conf and PAM. You are pretty much on your own editing
>> /etc/sssd/sssd.conf yourself. Also, because you need some other backend
>> too, you likely get LDAP and Kerberos backends too. This causes you to have
>> 3 authentication modules in PAM and 2 NSS backends in NSS (I might be wrong
>> about the latter, though).
>>
>> == winbind3/winbind4 ==
>>
>> Can't say.
>>
>> = Automatic configuration of authentication =
>>
>> Now, because I have people running Ubuntu in my company in multiple
>> countries and it would be too trobulesome to configure everything by
>> myself, I'm not doing it :) And believe me or not, unless you have a Ubuntu
>> client environment of more than 5 machines, you should not be doing it,
>> either.
>>
>> We are using CFEngine here to install the packages required for
>> authentication, copy working configuration files to /etc. Other parties
>> might be using puppet, chef or hand-crafted shell scripts or they copy the
>> configs from a machine where they previously managed to configure the
>> system properly.
>>
>> Below I will try to explain how the easy the automated configuration of
>> particular solution is.
>>
>> == LDAP ==
>>
>> The fact that ldap-auth-config and auth-client-config are separate from
>> the LDAP packages is good. It is theoretically possible to not install
>> these packages and deploy the configs automatically with tools mentioned
>> above. In practice it's difficult because the LDAP packages depend on them.
>> This is unlike in Debian, it seems to be one of the Ubuntu specific changes.
>>
>> As a side effect, during package installation you will be asked about
>> ldap URI etc, which you do not want to fill, as you will be overwriting the
>> configs anyway.
>>
>> On the positive side, it is possible to create a dummy package that
>> provides ldap-auth-config and auth-client-config and those questions do not
>> pop-up.
>>
>> == pam-ccreds/nss-updatedb ==
>>
>> This one is ok. It doesn't pop any questions, just gets the job done.
>>
>> == Kerberos ==
>>
>> krb5-config is a similar story to ldap-auth-config, aside the fact that
>> it is a dependency on both Debians and Ubuntus. You also get pop-ups with
>> questions etc.
>>
>> On the positive side, it is possible to create a dummy package that
>> provides krb5-config and those questions do not pop-up.
>>
>> == SSSD ==
>>
>> SSSD is easy to deploy. The problem is that you probably also need the
>> backends - LDAP and Kerberos and actually those configurations interfere
>> with SSSD and you get install-time questions.
>>
>> == winbind3/winbind4 ==
>>
>> Can't say.
>>
>> == Proprietary ==
>>
>> Can't say.
>>
>> = Suggestions =
>>
>> I believe it is crucial to pick a preferred authentication solution for
>> Ubuntu. Of course local file authentication is good for most cases, but
>> when there is some directory service, it should be at least one obvious,
>> preferred and supported method.
>>
>> Currently this seems to be LDAP and Kerberos using libnss-ldap,
>> libpam-ldap and/or libpam-krb5, but this is not perfect, as mentioned
>> before.
>>
>> I strongly vote for this to be SSSD. RedHat is actively developing it and
>> it seems to be running quite decently on Precise already. For this, the
>> following obstacles need to be handled:
>> - SSSD needs to be included in main (Main Inclusion Request #903752)
>> - SSSD lacks some configuration questions. I'm ok with that, I deploy it
>> with CFEngine, but I guess it might be considered a requirement
>> - SSSD will likely use libnss-ldap and either libpam-ldap or libpam-krb5.
>> Those do not need to be configured and if there is any use of it, these
>> variables should be taken from sssd's config dialogs.
>>
>> I like RedHat's approach of providing a separate piece of software that
>> configures authentication. If you don't like it or you want to configure it
>> with CFEngine or with text files, you don't run it or you don't even
>> install it. If the configuration absolutely needs to be done inside package
>> maintainer scripts, I would lower the question's priorities, those are too
>> difficult to be answered by average user anyway.
>>
>> Samba4's winbind might be a good official alternative, but that assumes
>> you have AD. Samba3's winbind can be abandoned.
>>
>> = Conclusions =
>>
>> To the very least, I would like to know a decision. I am not able to fix
>> all the stuff myself, particularly because I am not managing any of the
>> packages, but I can help with some tasks.
>>
>> Cheers,
>> Ballock
>>
>> --
>> Ubuntu-devel-discuss mailing list
>> Ubuntu-devel-discuss at lists.**ubuntu.com<Ubuntu-devel-discuss at lists.ubuntu.com>
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/**
>> mailman/listinfo/ubuntu-devel-**discuss<https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-devel-discuss/attachments/20130521/480acef0/attachment.html>


More information about the Ubuntu-devel-discuss mailing list