trekgalaxy
Cadet
- Joined
- Aug 23, 2021
- Messages
- 7
Hello,
I have a TrueNAS-12.0-U5 system joined to our AD domain. Our primary use of the system is IT department network shares for data archival and software installs, we share this data via SMB shares from the TrueNAS and use AD groups for the permissions.
Recently I began testing the AD "Protected Users" group, basically the key thing this does is prevent the use of NTLM (and v2) and to use Kerberos instead. Prior to adding our high privileged administration accounts to this group access worked, and access still does work for accounts NOT in the "Protected Users" group.
My question: What do I need to do to allow Kerberos, instead of NTLMv2, to be used for authentication for SMB shares from Windows 10 workstations?
Here is a log entry showing that NTLM is being used: /samba4/auth_audit.log.old
samba4/log.wb-DOMAIN
samba4/log.wb-DOMAIN
Note, the below configs have the domain name edited, domain.ca is a placeholder.
/etc/local/smb4.conf
/etc/krb5.conf
I have a TrueNAS-12.0-U5 system joined to our AD domain. Our primary use of the system is IT department network shares for data archival and software installs, we share this data via SMB shares from the TrueNAS and use AD groups for the permissions.
Recently I began testing the AD "Protected Users" group, basically the key thing this does is prevent the use of NTLM (and v2) and to use Kerberos instead. Prior to adding our high privileged administration accounts to this group access worked, and access still does work for accounts NOT in the "Protected Users" group.
My question: What do I need to do to allow Kerberos, instead of NTLMv2, to be used for authentication for SMB shares from Windows 10 workstations?
Here is a log entry showing that NTLM is being used: /samba4/auth_audit.log.old
Code:
{"timestamp": "2021-08-11T11:58:58.030443-0500", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 2}, "eventId": 4624, "logonId": "4809f4bf9822f609", "logonType": 3, "status": "NT_STATUS_OK", "localAddress": "unix:", "remoteAddress": "unix:", "serviceDescription": "winbind", "authDescription": "NTLM_AUTH, nss_winbind, 16888", "clientDomain": "DOMAIN", "clientAccount": "dtest", "workstation": "FPS01", "becameAccount": "dtest", "becameDomain": "DOMAIN", "becameSid": "S-1-5-21-1298688581-1013366840-3435715919-62163", "mappedAccount": null, "mappedDomain": null, "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "NTLMv2", "duration": 226999}}samba4/log.wb-DOMAIN
Code:
winbind_samlogon_retry_loop: sam_logon returned ACCESS_DENIED. Maybe the DC has Restrict NTLM set or the trust account password was changed and we didn't know it. Killing connections to domain DOMAIN
samba4/log.wb-DOMAIN
Code:
ads_sasl_spnego_gensec_bind(KRB5) failed for ldap/dc04.DOMAIN.CA with user[TRUENAS$] realm[DOMAIN.CA]: Client not found in Kerberos database, fallback to NTLMSSP ads_sasl_spnego_gensec_bind(NTLMSSP) failed for ldap/dc04.DOMAIN.CA with user[TRUENAS$] realm=[DOMAIN.CA]: Invalid credentials
Note, the below configs have the domain name edited, domain.ca is a placeholder.
/etc/local/smb4.conf
Code:
#
# SMB.CONF(5) The configuration file for the Samba suite
# $FreeBSD$
#
[global]
dns proxy = No
aio max threads = 2
max log size = 5120
load printers = No
printing = bsd
disable spoolss = Yes
dos filemode = Yes
kernel change notify = No
directory name cache size = 0
nsupdate command = /usr/local/bin/samba-nsupdate -g
unix charset = UTF-8
log level = 1 auth_json_audit:3@/var/log/samba4/auth_audit.log
obey pam restrictions = False
enable web service discovery = True
logging = file
server min protocol = SMB2_02
unix extensions = No
map to guest = Bad User
server string = TrueNAS Server
bind interfaces only = Yes
netbios name = truenas
netbios aliases =
server role = member server
kerberos method = secrets and keytab
workgroup = DOMAIN
realm = DOMAIN.CA
security = ADS
local master = No
domain master = No
preferred master = No
winbind cache time = 7200
winbind max domain connections = 10
client ldap sasl wrapping = seal
template shell = /bin/sh
template homedir = /home/%D/%U
ads dns update = Yes
allow trusted domains = No
winbind enum users = Yes
winbind enum groups = Yes
idmap config CARTEAD: backend = rid
idmap config CARTEAD: range = 100000001-200000000
idmap config *: backend = tdb
idmap config *: range = 90000001-100000000
registry shares = yes
include = registry/etc/krb5.conf
Code:
#
# krb5.conf(5) - configuration file for Kerberos 5
# $FreeBSD$
#
[appdefaults]
pam = {
forwardable = true
ticket_lifetime = 86400
renew_lifetime = 86400
}
[libdefaults]
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
clockskew = 300
forwardable = true
default_realm = CARTEAD.LOCAL
[domain_realm]
domain.ca = DOMAIN.CA
.domain.ca = DOMAIN.CA
DOMAIN.CA = DOMAIN.CA
.DOMAIN.CA = DOMAIN.CA
[realms]
domain.ca = {
default_domain = DOMAIN.CA
}
[logging]
default = SYSLOG:INFO:LOCAL7