Brent Busby
2011-Jun-29 21:58 UTC
[Samba] basic LDAP authentication to Samba share from existing directory
We have an existing LDAP directory in which users have UNIX passwords that are used for a variety of different services. We'd like to keep as close to having a single synchronized password service as possible, but we've run into an issue. There seem to be two ways of doing this, neither of which seem helpful: (1) "ldapsam">From looking at the Samba documentation that's available, it looks like thereis no possibility of true password synchronization between NT passwords and UNIX. (Please correct me if that's not so -- I'd really like to be wrong!) You setup the samba.schema on the LDAP server, which gives you the sambaNTPassword objectClass (among others), and that stores the clients' Windows password. They still have regular UNIX password capability from the inetorgperson.schema. These are two separate password fields, provided by two different schemas, both belonging to the same user's LDAP account. Basically, you've got two account systems in the same user's LDAP data, completely separate. (Is all this true so far?) You use the ldapsam passdb backend to connect to Samba to your LDAP server, and when a Windows machine wants to change its NT password, it can use that backend to do it. None of this seems to be helping get any closer to allowing Windows clients to authenticate off of the same password database as our UNIX services.... There's a utility called smbldap-populate, but all this seems to do is go through an existing user database and give the users the new Samba object classes if they don't have them. It doesn't really translate their UNIX passwords into NT passwords and fill them in, does it? (2) "pam_unix" On the other hand, there is a more apocryphal (and dangerous) way to do this, which does what we want, but is completely insecure: You can setup Samba to use pam_unix to authenticate, so that it is using the local UNIX security stack rather than its own ldapsam passdb, and then setup PAM to do LDAP auth at the UNIX level (the same way you would if you were setting the machine up to allow LDAP login for SSH or some other such UNIX service). The reason that's insecure is because since PAM doesn't know what to do with an encrypted NT password, it is necessary to setup both the Windows clients and the smb.conf on the Samba server for "encrypted passwords = no", which then makes it so that even if you're doing secure LDAP over SSL/TLS, you're still screwed because your passwords get sent from the Windows clients in cleartext. So you get: WINDOWS -> cleartext -> SAMBA -> ldap ssl/tls encrypted -> LDAP It's only encrypted for part of the trip, which isn't good enough at all. This method does however let you authenticate Windows clients directly off of an existing UNIX password database in LDAP, and works perfectly if you don't mind having passwords flying around in the clear on your LAN. Does anyone have any suggestions on this? I've poured over literally reams of Samba and LDAP documentation in the past week or so, looking for an answer to this. It hasn't helped that most of the documentation seems to be aimed at setting up Samba as a full scale NT Primary Domain Controller, with domain membership for machines and the whole nine yards. Many of these documents are much more elaborate than is (hopefully!) necessary for just doing LDAP password auth, and it's not clear from reading them how much of what is being described is required for basic authentication, and how much is just the writer taking advantage of everything Samba can do in one configuration. (Some of these howtos are thirty or forty pages long.) Also, many of them presume that you're starting from scratch, and that you don't have any existing users, and you're free to implement an LDAP namespace from an empty tree. Is there any way to LDAP-authenticate Samba from an existing user database with their existing UNIX passwords, without resorting to implementing a full PDC setup, or requiring that the Windows side use cleartext passwords, or ending up with two separate password fields (UNIX and NT)? (The later option almost seems to remove some of the motivation for using LDAP at all, since you end up with double-signon. Help and comments appreciated! -- + Brent A. Busby + The New JFI Computing Web Site: + Sr. UNIX Systems Admin + http://jficomputing.uchicago.edu/ + University of Chicago + + Physical Sciences Div. + For problem reports and requests: + James Franck Institute + email: sysadmin at jfi.uchicago.edu
Reasonably Related Threads
- basic LDAP authentication to Samba share from existin g directory
- Multiple Adapter Issues -Bug?
- authlogic fails on existing accounts when crypted_password is blank
- [Bug 10636] New: Feature request: Show current source path on receipt of Posix signal
- Cleartext pre-authentication before going to secure mode.