[Samba] samba 3.0.x / roaming profiles / NT MD4 problems

Wim Vandersmissen wim at bofh.be
Sat Apr 10 21:12:31 GMT 2004


Hi,

I'm setting up a new sambserver, migrating from 2.2.8a with ldap backend 
to 3.0.x (3.0.2a and 3.0.3pre2 tested) with openldap 2.1.26 backend and 
using sambaSamAccount

I'm experiencing the following problem:

- Roaming profiles sometimes work, sometimes not (most of the time not) 
and show erratic behaviour like removing the local copy (without having 
the DeleteRoamingCache key in my registry) on a windows XP with SP1 
joined to the domain

I think I've pinpointed the problem to NT MD4 password checking 
(libsmb/ntlm_check.c:ntlm_password_check(322))

With debug on 100 and DEBUG_PASSWORD on it shows the following:

[2004/04/10 22:23:49, 4] libsmb/ntlm_check.c:ntlm_password_check(322)
   ntlm_password_check: Checking NT MD4 password
[2004/04/10 22:23:49, 100] libsmb/ntlm_check.c:smb_pwd_check_ntlmv1(67)
   Part password (P16) was |
[2004/04/10 22:23:49, 100] lib/util.c:dump_data(1864)
   [000] AB A4 5E 23 42 B3 27 7E  03 0C DB 4F 97 48 B6 0E  ..^#B.'~ ...O.H..
   Password from client was |
[2004/04/10 22:23:49, 100] lib/util.c:dump_data(1864)
   [000] 22 63 62 8E 2A BD 54 16  D1 0F EE 6C 0F B5 F7 46  "cb.*.T. ...l...F
   [010] 4E BB D2 52 74 EB B2 09                           N..Rt...
   Given challenge was |
[2004/04/10 22:23:49, 100] lib/util.c:dump_data(1864)
   [000] CE 8D D3 56 F8 7E 7D 7A                           ...V.~}z
   Value from encryption was |
[2004/04/10 22:23:49, 100] lib/util.c:dump_data(1864)
   [000] 22 63 62 8E 2A BD 54 16  D1 0F EE 6C 0F B5 F7 46  "cb.*.T. ...l...F
   [010] 4E BB D2 52 74 EB B2 09                           N..Rt...
[2004/04/10 22:23:49, 4] auth/auth_sam.c:sam_account_ok(82)
   sam_account_ok: Checking SMB password for user testing

It does that 3 times correctly, I guess it checks the authentication 
when the user logs on. Now a minute later it checks again, I guess for 
connecting to the profiles share? but now it fails. What results in 
Windows XP telling me that it can't find the profiles directory.

[2004/04/10 22:25:22, 4] libsmb/ntlm_check.c:ntlm_password_check(322)
   ntlm_password_check: Checking NT MD4 password
[2004/04/10 22:25:22, 100] libsmb/ntlm_check.c:smb_pwd_check_ntlmv1(67)
   Part password (P16) was |
[2004/04/10 22:25:22, 100] lib/util.c:dump_data(1864)
   [000] AB A4 5E 23 42 B3 27 7E  03 0C DB 4F 97 48 B6 0E  ..^#B.'~ ...O.H..
   Password from client was |
[2004/04/10 22:25:22, 100] lib/util.c:dump_data(1864)
   [000] EE 15 48 95 A2 6C D6 7A  14 C7 00 85 FE 20 D9 92  ..H..l.z ..... ..
   [010] B4 D0 21 FC F0 FB 7D 61                           ..!...}a
   Given challenge was |
[2004/04/10 22:25:22, 100] lib/util.c:dump_data(1864)
   [000] EC F9 F7 3E EE 20 47 E5                           ...>. G.
   Value from encryption was |
[2004/04/10 22:25:22, 100] lib/util.c:dump_data(1864)
   [000] E7 DE 31 72 F0 E2 E1 97  40 2B 15 86 CA 4E 2A 4F  ..1r.... @+...N*O
   [010] 1D 32 DD 66 AC EA 8B 3C                           .2.f...<
[2004/04/10 22:25:22, 3] libsmb/ntlm_check.c:ntlm_password_check(338)
   ntlm_password_check: NT MD4 password check failed for user testing


When I edit libsmb/ntlm_check.c to always return a NT_STATUS_OK instead 
of a NT_STATUS_WRONG_PASSWORD the last check ofcourse works and the 
roaming profiles work perfectly. (but that isn't very secure ;)

This is my current config, but I've used various mutations of it without 
success ;)

Please let me know if you need any more information.
Thanks,

--Wim Vandersmissen

# Global parameters
[global]
         dos charset = CP850
         unix charset = UTF-8
         display charset = LOCALE
         workgroup = THEONEW
         netbios name = OROCHIMARU
         netbios aliases =
         netbios scope =
         server string = %h
         interfaces =
         bind interfaces only = No
         security = USER
         auth methods =
         encrypt passwords = Yes
         update encrypted = No
         client schannel = Auto
         server schannel = Auto
         allow trusted domains = Yes
         hosts equiv =
         min passwd length = 5
         use cracklib = No
         map to guest = Bad Password
         null passwords = No
         obey pam restrictions = No
         password server = *
         smb passwd file = /usr/local/samba/private/smbpasswd
         private dir = /usr/local/samba/private
         passdb backend = ldapsam:ldap://localhost
         algorithmic rid base = 1000
         root directory =
         guest account = nobody
         pam password change = No
         passwd program =
         passwd chat = *new*password* %n\n *new*password* %n\n *changed*
         passwd chat debug = No
         passwd chat timeout = 2
         username map =
         password level = 0
         username level = 0
         unix password sync = No
         restrict anonymous = 0
         lanman auth = Yes
         ntlm auth = Yes
         client NTLMv2 auth = No
         client lanman auth = Yes
         client plaintext auth = Yes
         preload modules =
         log level = 100
         syslog = 1
         syslog only = No
         log file = /var/log/samba/inverse/%m.log
         max log size = 50000
         timestamp logs = Yes
         debug hires timestamp = No
         debug pid = No
         debug uid = No
         smb ports = 445 139
         protocol = NT1
         large readwrite = Yes
         max protocol = NT1
         min protocol = CORE
         read bmpx = No
         read raw = Yes
         write raw = Yes
         disable netbios = No
         acl compatibility =
         nt pipe support = Yes
         nt status support = Yes
         announce version = 4.9
         announce as = NT
         max mux = 50
         max xmit = 16644
         name resolve order = lmhosts wins host bcast
         max ttl = 259200
         max wins ttl = 518400
         min wins ttl = 21600
         time server = No
         unix extensions = Yes
         use spnego = Yes
         client signing = auto
         server signing = No
         client use spnego = No
         change notify timeout = 60
         deadtime = 0
         getwd cache = Yes
         keepalive = 300
         kernel change notify = Yes
         lpq cache time = 10
         max smbd processes = 0
        paranoid server security = Yes
         max disk size = 0
         max open files = 10000
         socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096 
SO_RCVBUF=4096
         use mmap = Yes
         hostname lookups = No
         name cache timeout = 660
         load printers = Yes
         printcap name = cups
         disable spoolss = No
         enumports command =
         addprinter command =
         deleteprinter command =
         show add printer wizard = Yes
         os2 driver map =
         mangling method = hash2
         mangle prefix = 1
         stat cache = Yes
         machine password timeout = 604800
         add user script =
         delete user script =
         add group script =
         delete group script =
         add user to group script =
         delete user from group script =
         set primary group script =
         add machine script =
         shutdown script =
         abort shutdown script =
         logon script =
         logon path = \\%L\profiles\%U
         logon drive =
         logon home = \\%N\%U
         domain logons = Yes
         os level = 66
         lm announce = Auto
         lm interval = 60
         preferred master = Yes
         local master = Yes
         domain master = Yes
         browse list = Yes
         enhanced browsing = Yes
         dns proxy = Yes
         wins proxy = No
         wins server =

        wins support = No
         wins hook =
         wins partners =
         kernel oplocks = Yes
         lock spin count = 3
         lock spin time = 10
         oplock break wait time = 0
         ldap suffix = "ou=people,dc=theo,dc=be"
         ldap machine suffix =
         ldap user suffix =
         ldap group suffix =
         ldap idmap suffix =
         ldap filter = "(&(uid=%u)(objectclass=sambaSamAccount))
         ldap admin dn = "cn=root,dc=theo,dc=be"
         ldap ssl =
         ldap passwd sync = no
         ldap delete dn = No
         ldap replication sleep = 1000
         add share command =
         change share command =
         delete share command =
         config file =
         preload =
         lock directory = /usr/local/samba/var/locks
         pid directory = /usr/local/samba/var/locks
         utmp directory =
         wtmp directory =
         utmp = No
         default service =
         message command =
         dfree command =
         get quota command =
         set quota command =
         remote announce =
         remote browse sync =
         socket address = 0.0.0.0
         homedir map =
         afs username map =
         time offset = 0
         NIS homedir = No
         panic action =
         host msdfs = No
         enable rid algorithm = Yes
         idmap backend =
         idmap uid =
        idmap gid =
         template primary group = nobody
         template homedir = /home/%D/%U
         template shell = /bin/false
         winbind separator = \
         winbind cache time = 300
         winbind enable local accounts = Yes
         winbind enum users = Yes
         winbind enum groups = Yes
         winbind use default domain = No
         winbind trusted domains only = No
         comment =
         path =
         username =
         invalid users =
         valid users =
         admin users =
         read list =
         write list =
         printer admin = root
         force user =
         force group =
         read only = Yes
         create mask = 0744
         force create mode = 00
         security mask = 0777
         force security mode = 00
         directory mask = 0755
         force directory mode = 00
         directory security mask = 0777
         force directory security mode = 00
         inherit permissions = No
         inherit acls = No
         guest only = No
         guest ok = No
         only user = No
         hosts allow =
         hosts deny =
         ea support = No
         nt acl support = Yes
         profile acls = No
         map acl inherit = No
         afs share = No
         block size = 1024
         max connections = 0
        min print space = 0
         strict allocate = No
         strict sync = No
         sync always = No
         use sendfile = No
         write cache size = 0
         max reported print jobs = 0
         max print jobs = 1000
         printable = No
         printing = cups
         print command =
         lpq command =
         lprm command =
         lppause command =
         lpresume command =
         queuepause command =
         queueresume command =
         printer name =
         use client driver = No
         default devmode = No
         default case = lower
         case sensitive = No
         preserve case = Yes
         short preserve case = Yes
         mangle case = No
         mangling char = ~
         hide dot files = Yes
         hide special files = No
         hide unreadable = No
         hide unwriteable files = No
         delete veto files = No
         veto files =
         hide files = /desktop.ini/Desktop.ini/
         veto oplock files =
         map system = No
         map hidden = No
         map archive = Yes
         mangled names = Yes
         mangled map =
         store dos attributes = No
         browseable = Yes
         blocking locks = Yes
         csc policy = manual
         fake oplocks = No
         locking = Yes


         oplocks = Yes
         level2 oplocks = Yes
         oplock contention limit = 2
         posix locking = Yes
         strict locking = Yes
         share modes = Yes
         copy =
         include =
         exec =
         preexec close = No
         postexec =
         root preexec =
         root preexec close = No
         root postexec =
         available = Yes
         volume =
         fstype = NTFS
         set directory = No
         wide links = Yes
         follow symlinks = Yes
         dont descend =
         magic script =
         magic output =
         delete readonly = No
         dos filemode = No
         dos filetimes = No
         dos filetime resolution = No
         fake directory create times = No
         vfs objects =
         msdfs root = No
         msdfs proxy =

[profiles]
         path = /mnt/theo/profiles/
         read only = No
         profile acls = Yes
         browseable = No







More information about the samba mailing list