Wim Vandersmissen
2004-Apr-10 21:21 UTC
[Samba] samba 3.0.x / roaming profiles / NT MD4 problems
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
Wim Vandermissen
2004-Apr-20 09:57 UTC
[Samba] Re: samba 3.0.x / roaming profiles / NT MD4 problems (SOLVED/samba bug?)
Follow-up to myself ;-) First, the problem also exists with the smbpasswd and the ldapsamcompat backends. I've "fixed" the problem by putting "map to guest = Never" in the smb.conf, this still shows an NT MD4 password checking failed in the logs, but I don't get the profiles error anymore. Maybe this is a bug in samba? Logon and logoff now works perfectly with roaming profiles. --Wim Wim Vandersmissen wrote:> 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 > > > > >
Seemingly Similar Threads
- NT MD4 password check failed
- smbclient with lanman auth=no unable to connect
- samba bad password count reset between logins (not loaded from login_cache.tdb)
- samba 3.0.2a-Debian +ldapsam +smbldap-tools 3.0rc4-1= newly created users can't log in
- Problems with smbpasswd: any local changes are discarted after connection request