On 21/12/2020 21:07, Alexander Bokovoy wrote:
On ma, 21 joulu 2020, lejeczek via FreeIPA-users wrote:
hi gents

Longish time ago, I think more than a year, I asked and gotten a succinct reply about ways to access IPA's integrated Samba from non-member Win clients. If I remember correctly it was possible - answer was by I think one of you IPA devels - for one version of IPA (with rhel/centos 7) and still is, to have such Win clients to access Samba, but on newer IPA it was not and at that time it was undecided - I was told - whether it was going to be "fixed" in future IPA releases.

Is there more to shed light on now? Is or will there be a way in which IPA+Samba latest/future releases allow non-members?

If by non-members Windows systems you understand Windows systems not enrolled into any Active Directory deployment, then nothing did change
here. SMB protocol has two ways of authenticating users:

 - with NTLM-based authentication, using a password-based
   challenge-response system as described in [MS-NLMP] specification

 - with Kerberos tickets, the whole scheme is described in [MS-KILE]
   specification

Non-enrolled Windows clients cannot authenticate with Kerberos against FreeIPA as they have no real way to obtain user's Kerberos ticket
granting ticket (against what? what user?).

NTLM-based authentication does not support any recent cryptographic methods and uses message digest algorithms for integrity and RC4 cipher for encryption. It is generally not advised for use due to known
security issues.

In Fedora 31+ and RHEL 8 system-wide crypto policy denies the usage of RC4 cipher in system crypto libraries unless system-wide crypto policy
is downgraded or a special AD-SUPPORT subpolicy is activated.

In order to authenticate a user with NTLM-based approach, Samba file server needs to know a hash of the user's credentials in RC4 format. FreeIPA uses MIT Kerberos library facilities to generate RC4 hashes stored in ipaNTHash attribute in user's entry. If MIT Kerberos library does not allow generation of the hash due to system-wide policy, no RC4 hash will be available for the user stored in FreeIPA and no NTLM-based
authentication will be possible for the user in question.
Would it be as simple as toggling in a "weak" crypto-policiy and re/generating RC4 ipaNTHash? Or even easier would be to switch to RC4 crypto policy prior to IPA deployment? Or none of above would work/help in IPA VERSION: 4.8.7, API_VERSION: 2.239 (centos 8.3) as those patches you talked of are not sewn in.

as a thought - I'm sure many of us regular users will be looking and hoping for a practical and ideally supported(to execute in orderly manner) way to make this work in our small isolated setups, even if that meant weaker cryptos.


Until very recently Samba and FreeIPA integration didn't allow to properly query FreeIPA about these user NTLM hashes. This was fixed upstream during autumn 2020 and we added this change to Samba in Fedora 33 and RHEL 8.4. This requires FreeIPA to have some of the patches I am yet to submit upstream and which we are developing as a part of the
Global Catalog effort.

Over last year or so we improved Samba upstream to not use NTLM authentication when system-wide crypto policy demands that RC4 is not to be used. As a result, in FIPS mode Samba in RHEL 8.4 or later and Fedora 33 or later will reject NTLM authentication as a weak crypto and will prefer using Kerberos authentication in this mode. This does not play well with non-enrolled Windows clients which do not use Kerberos.

Since there is no mechanism to replace NTLM for non-enrolled clients, the only way going forward without enrolling them is to re-use capabilities that exist in Windows on top of Kerberos implementation. Microsoft Windows allows to negotiate additional authentication capabilities as a part of Kerberos negotiation through an extension called NegoEX, described in [MS-NEGOEX] specification. It doesn't require a client and a server to be enrolled into an Active Directory environment but instead allow to exchange opaque (to Kerberos protocol) messages between the client and the server, then use external entity to validate both parts. Microsoft uses this extension to allow binding of your local Windows user account to a social login mechanism like live.com or a face identification method. It also uses this to provide mutual authentication between two Windows systems which are not enrolled
into the same domain.

There is no implementation of this mechanism in free software. MIT Kerberos 1.18 provides NegoEX exchange support, opening a possibility to write such mechanism. Until it is written, we have no way to support
non-enrolled clients with contemporary crypto algorithms.


_______________________________________________
FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org
To unsubscribe send an email to freeipa-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/freeipa-users@lists.fedorahosted.org

Reply via email to