[Samba] New options "sync machine password to keytab"/ "client ldap sasl wrapping"

Christian Naumer christian.naumer at greyfish.net
Wed Feb 19 10:54:07 UTC 2025


Additional info again.

Also running

wbinfo --change-secret --domain=DOMAIN

causes no errors and updates the keytap as expected. It is basically 
from the logs as waiting for the machine password to timeout.



Regards

Christian



Am 19.02.25 um 11:22 schrieb Pavel Fiipenský via samba:
> Hi Christian,
> 
> 
> 
> On 2/18/25 3:28 PM, Christian Naumer via samba wrote:
>> This is from the man page of Samba:
>>
>> "This path is relative to private dir if the path does not start with 
>> a/."
>>
>> Having said that this is wat We have on our DCs:
>>
>>
>>         tls enabled  = yes
>>         tls keyfile  = tls/server_de.key
>>         tls certfile = tls/server.pem
>>         tls cafile   = tls/ca.pem
>>         tls priority = SECURE192:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.3
>>
>> The problem is only on the member servers and only when using:
>>
>> net ads changetrustpw
>>
>>
>> The DCs are on 4.20.7-SerNet-RedHat-7.el8. So not on the latest as the 
>> file servers.
>>
>> Have you tried "net ads changetrustpw" on a member with "sync machine 
>> password to keytab" in the smb.conf?
> 
> Yes, "net ads changetrustpw" is part of upstream tests:
> 
> https://gitlab.com/samba-team/samba/-/blob/ 
> ccc3b2b2fba7b5d223c79bffc0f655490aed19cf/source3/script/tests/ 
> test_update_keytab.sh#L601
> 
> 
> Does the issue happens also with samba 4.21.3?
> 
> Kind regards,
> 
> Pavel
> 
>>
>>
>>
>> Regards
>>
>> Christian
>>
>>
>>
>>
>> Am 18.02.25 um 15:21 schrieb Sami Hulkko via samba:
>>> My penny on it:
>>>
>>>          tls enabled = Yes
>>>          tls cafile = /var/lib/samba/private/tls/ca.crt
>>>          tls certfile = /var/lib/samba/private/tls/dc.crt
>>>          tls crlfile = /var/lib/samba/private/tls/pki.crl
>>>          tls dh params file = /var/lib/samba/private/tls/dh.pem
>>>          tls keyfile = /var/lib/samba/private/tls/secure/dc.key
>>>
>>> Works and needs absolute paths.
>>>
>>> #        tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1
>>>
>>> opt out old ciphers is possible.
>>>
>>> SH
>>>
>>> On 18/02/2025 14:38, Christian Naumer via samba wrote:
>>>> Hi all,
>>>> some additional info. If I supply a CRL file in the smb.conf like this:
>>>>
>>>> #tls verify peer = ca_and_name
>>>> tls crlfile = tls/root.crl.pem
>>>>
>>>> And comment "tls verify peer" which then uses the default "tls 
>>>> verify peer = as_strict_as_possible"
>>>>
>>>> the "gensec_gse_client_prepare_ccache" error is not logged during 
>>>> "normal" password change. However, the behaviour of "net ads 
>>>> changetrustpw" is still the same.
>>>>
>>>> Any thoughts on this?
>>>>
>>>> Regards
>>>>
>>>> Christian
>>>>
>>>>
>>>> Am 18.02.25 um 12:48 schrieb Christian Naumer via samba:
>>>>> Hi all,
>>>>> I have been trying to use the new options "sync machine password to 
>>>>> keytab" and "client ldap sasl wrapping" in Samba 4.21 together with 
>>>>> "client ldap sasl wrapping"
>>>>>
>>>>> When this is set:
>>>>>
>>>>> client ldap sasl wrapping = ldaps (or starttls)
>>>>> tls cafile = tls/ca.pem
>>>>> tls verify peer = ca_and_name
>>>>> sync machine password to keytab = /etc/ 
>>>>> krb5.keytab:sync_spns:sync_kvno:machine_password
>>>>>
>>>>>
>>>>>
>>>>> And I do a:
>>>>>
>>>>> net ads changetrustpw
>>>>>
>>>>>
>>>>> I get this:
>>>>>
>>>>>
>>>>> Changing password for principal: host$@DOMAIN.COM
>>>>> gensec_gse_client_prepare_ccache: Kinit for HOST$@DOMAIN.COM to 
>>>>> access ldap/dc2.domain.com failed: Preauthentication failed: 
>>>>> NT_STATUS_LOGON_FAILURE
>>>>> pw2kt_get_dc_info: Failed to refresh keytab, ads_connect() returned 
>>>>> Invalid credentials
>>>>> secrets_finish_password_change: Sync of machine password failed.
>>>>> Password change failed: An internal error occurred.
>>>>>
>>>>>
>>>>> The keytab is still updated with the new KVNO and the machine 
>>>>> password in AD is updated. However the new KVNO is appended to the 
>>>>> keytab. There are two new KVNOs in the keytab as if the password 
>>>>> was updated twice.
>>>>>
>>>>>
>>>>> When I remove the ldaps/startrls options from the smb.confI get 
>>>>> this result:
>>>>>
>>>>> Changing password for principal: host$@DOMAIN.COM
>>>>> Password change for principal host$@DOMAIN.COM succeeded.
>>>>>
>>>>>
>>>>> The keytab is updated with the new KVNO and the machine password in 
>>>>> AD is updated. In the keytab there are then always 3 KVNOs the 
>>>>> current and the two previous ones.
>>>>>
>>>>> Additional info. If I wait for the machine password to timeout and 
>>>>> winbind changes the password. This "works" as far as the keytab has 
>>>>> only one additional KVNO and all other KVNOs more then the current 
>>>>> and the last two are removed. However the error
>>>>>
>>>>> gensec_gse_client_prepare_ccache: Kinit for HOST$@DOMAIN.COM to 
>>>>> access ldap/dc2.domain.com failed: Preauthentication failed: 
>>>>> NT_STATUS_LOGON_FAILURE
>>>>>
>>>>> is still logged.
>>>>>
>>>>> Should I file a bug for this? I can reproduce this also on a Debian 
>>>>> 12 system.
>>>>>
>>>>> Regards
>>>>>
>>>>> Christian
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Samba version is 4.21.4-SerNet-RedHat-6.el8 just updated with the 
>>>>> release this morning.
>>>>>
>>>>> Here is the rest of the global section:
>>>>>
>>>>> [global]
>>>>>          netbios name = HOST
>>>>>          server string = Daten
>>>>>          security = ADS
>>>>>          realm = HQ.DOMAIN.COM
>>>>>          workgroup = DOMAIN-02
>>>>>          disable netbios = yes
>>>>>          smb ports = 445
>>>>>          interfaces = eth0
>>>>>          bind interfaces only = yes
>>>>>          server min protocol = SMB2
>>>>>          client min protocol = SMB2
>>>>>          log level = 1 auth_audit:5
>>>>>          client ldap sasl wrapping = starttls
>>>>>          tls cafile = tls/ca.pem
>>>>>          tls verify peer = ca_and_name
>>>>>          logging = syslog only
>>>>>          sync machine password to keytab = /etc/ 
>>>>> krb5.keytab:sync_spns:sync_kvno:machine_password
>>>>>          writeable =YES
>>>>>          map acl inherit = yes
>>>>>          store dos attributes = yes
>>>>>          inherit acls = Yes
>>>>>          vfs objects = acl_xattr full_audit
>>>>>          full_audit:success = pwrite write unlinkat renameat
>>>>>          full_audit:prefix = IP=%I|USER=%u|MACHINE=%m|VOLUME=%S
>>>>>          full_audit:priority = NOTICE
>>>>>          full_audit:facility = local7
>>>>>          full_audit:failure = none
>>>>>          apply group policies = yes
>>>>>          username map = /etc/samba/smbusers
>>>>>
>>>>>          interfaces = lo eth0
>>>>>          bind interfaces only = Yes
>>>>>          ##idmap##
>>>>>          # Default idmap config used for BUILTIN and local windows 
>>>>> accounts/groups
>>>>>          idmap config *:backend = tdb
>>>>>          idmap config *:range = 1000000-2000000
>>>>>
>>>>>          # idmap config for domain DOMAIN-02
>>>>>          idmap config DOMAIN-02:backend = ad
>>>>>          idmap config DOMAIN-02:range = 500-65555
>>>>>          idmap config DOMAIN-02:unix_nss_info = yes
>>>>>          idmap config DOMAIN-02:schema_mode = rfc2307
>>>>>          winbind enum users = yes
>>>>>          winbind enum groups = yes
>>>>>          winbind use default domain = Yes
>>>>>          machine password timeout = 604800
>>>>>          winbind reconnect delay = 5
>>>>>          winbind refresh tickets = yes
>>>>>          min domain uid = 500
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
> 




More information about the samba mailing list