================================= Release Notes for Samba 3.6.0pre3 April 26, 2011 ================================= This is the third preview release of Samba 3.6.0. This is *not* intended for production environments and is designed for testing purposes only. Please report any defects via the Samba bug reporting system at https://bugzilla.samba.org/. Major enhancements in Samba 3.6.0 include: Changed security defaults ------------------------- Samba 3.6 has adopted a number of improved security defaults that will impact on existing users of Samba. client ntlmv2 auth = yes client use spnego principal = no send spnego principal = no The impact of 'client ntlmv2 auth = yes' is that by default we will not use NTLM authentication as a client. This applies to the Samba client tools such as smbclient and winbind, but does not change the separately released in-kernel CIFS client. To re-enable the poorer NTLM encryption set '--option=clientusentlmv2auth=no' on your smbclient command line, or set 'client ntlmv2 auth = no' in your smb.conf The impact of 'client use spnego principal = no' is that we may be able to use Kerberos to communicate with a server less often in smbclient, winbind and other Samba client tools. We may fall back to NTLMSSP in more situations where we would previously rely on the insecure indication from the 'NegProt' CIFS packet. This mostly occursed when connecting to a name alias not recorded as a servicePrincipalName for the server. This indication is not available from Windows 2008 or later in any case, and is not used by modern Windows clients, so this makes Samba's behaviour consistent with other clients and against all servers. The impact of 'send spnego principal = no' is to match Windows 2008 and not to send this principal, making existing clients give more consistent behaviour (more likely to fall back to NTLMSSP) between Samba and Windows 2008, and between Windows versions that did and no longer use this insecure hint. SMB2 support ------------ SMB2 support in 3.6.0 is fully functional (with one omission), and can be enabled by setting: max protocol = SMB2 in the [global] section of your smb.conf and re-starting Samba. All features should work over SMB2 except the modification of user quotas using the Windows quota management tools. As this is the first release containing what we consider to be a fully featured SMB2 protocol, we are not enabling this by default, but encourage users to enable SMB2 and test it. Once we have enough confirmation from Samba users and OEMs that SMB2 support is stable in wide user testing we will enable SMB2 by default in a future Samba release. Internal Winbind passdb changes ------------------------------- Winbind has been changed to use the internal samr and lsa rpc pipe to get local user and group information instead of calling passdb functions. The reason is to use more of our infrastructure and test this infrastructure by using it. With this approach more code in Winbind is shared. New Spoolss code ---------------- The spoolss and the old RAP printing code have been completely overhauled and refactored. All calls from lanman/printing code has been changed to go through the spoolss RPC interfaces, this allows us to keep all checks in one place and avoid special cases in the main printing code. Printing code has been therefore confined within the spoolss code. All the printing code, including the spoolss RPC interfaces has been changed to use the winreg RPC interfaces to store all data. All data has been migrated from custom, arbitrary TDB files to the registry interface. This transition allow us to present correct data to windows client accessing the server registry through the winreg RPC interfaces to query for printer data. Data is served out from a real registry implementation and therefore arguably 100% forward compatible. Migration code from the previous TDB files formats is provided. This code is automatically invoked the first time the new code is run on the server. Although manual migration is also available using the 'net printer migrate' command. These changes not only make all the spoolss code much more closer to "the spec", it also greatly improves our internal testing of both spoolss and winreg interfaces, and reduces overall code duplication. As part of this work, new tests have been also added to increase coverage. This code will also allow, in future, an easy transition to split out the spooling functions into a separate daemon for those OEMs that do not need printing functionality in their appliances, reducing the code footprint. ID Mapping Changes ------------------ The id mapping configuration has been a source of much grief in the past. For this release, id mapping has been rewritten yet again with the goal of making the configuration more simple and more coherent while keeping the needed flexibility and even adding to the flexibility in some respects. The major change that implies the configuration simplifications is at the heart of the id mapping system: The separation of the "idmap alloc system" that is responsible for the unix id counters in the tdb, tdb2 and ldap idmap backends from the id mapping code itself has been removed. The sids_to_unixids operation is now atomic and encapsulates (if needed) the action of allocating a unix id for a mapping that is to be created. Consequently all idmap alloc configuration parameters have vanished and it is hence now also not possible any more to specify an idmap alloc backend different from the idmap backend. Each idmap backend uses its own idmap unixid creation mechanism transparently. As a consequence of the id mapping changes, the methods that are used for storing and deleting id mappings have been removed from the winbindd API. The "net idmap dump/restore" commands have been rewritten to not speak through winbindd any more but directly act on the databases. This is currently available for the tdb and tdb2 backends, the implementation for ldap still missing. The allocate_id functionality is preserved for the unix id creator of the default idmap configuration is also used as the source of unix ids for the group mapping database and for the posix attributes in a ldapsam:editposix setup. As part of the changes, the default idmap configuration has been changed to be more coherent with the per-domain configuration. The parameters "idmap uid", "idmap gid" and "idmap range" are now deprecated in favour of the systematic "idmap config * : range" and "idmap config * : backend" parameters. The reason for this change is that the old options only provided an incomplete and hence deceiving backwards compatibility, which was a source of many problems with upgrades. By introducing this change in configuration, it should be brought to the conciousness of the users that even the simple id mapping is not working exactly as in Samba 3.0 versions any more. Endpoint Mapper --------------- As Microsoft is more and more relying on endpoint mapper and we didn't have a complete implementation we decided to create an instance for Samba. The endpoint mapper is like a DNS server but for ports. If you want to talk to a certain RPC service over TCP/IP, you just ask the endpoint mapper on which port it is running. Then you can connect to the service and make sure that it is running. The code is deactivated by default, because it needs more testing and it doesn't scale yet. We will work on these limitations and hopefully release it with pre3. If you want to enable and test the endpoint mapper you can set "rpc_server:epmapper = daemon" in the smb.conf file. Internal restructuring ---------------------- Ongoing internal restructuring for better separation of internal subsystem to achieve a faster build, smaller binaries and cleaner dependencies for the samba3 waf build. SMB Traffic Analyzer -------------------- Added the new SMB Traffic Analyzer (SMBTA) VFS module protocol 2 featuring encryption, multiple arguments, and easier parseability. A new tool 'smbta-util' has been created to control the encryption behaviour of SMBTA. For compatibility, SMBTA by default operates on version 1. There are programs consuming the data that the module sends. More information can be found on http://holger123.wordpress.com/smb-traffic-analyzer/ NFS quota backend on Linux -------------------------- A new nfs quota backend for Linux has been added that is based on the existing Solaris/FreeBSD implementation. This allows samba to communicate correct diskfree information for nfs imports that are re-exported as samba shares. ###################################################################### Changes ####### smb.conf changes ---------------- Parameter Name Description Default -------------- ----------- ------- async smb echo handler New No client ntlmv2 auth Changed Default Yes client use spnego principal New No ctdb locktime warn threshold New 0 idmap alloc backend Removed log writeable files on exit New No multicast dns register New Yes ncalrpc dir New send spnego principal New No smb2 max credits New 128 smb2 max read New 1048576 smb2 max trans New 1048576 smb2 max write New 1048576 username map cache time New 0 winbind max clients New 200 Commit Highlights ----------------- o Michael Adam * ID Mapping changes. o Jeremy Allison * Implement SMB2 support. o Stefan Metzmacher * Implement SMB2 support. o Andreas Schneider * Add an Endpoint Mapper daemon. Changes since 3.6.0pre2 ----------------------- o Michael Adam * Fix build of tdb2. o Jeremy Allison * BUG 8083: "inherit owner = yes" doesn't interact correctly with vfs_acl_xattr or vfs_acl_tdb module. * BUG 8088: rpccli_samr_chng_pswd_auth_crap segfaults if any input blobs are null. * Correctly detect and deny symlinks anywhere in a path (not just the last component) if "follow symlinks = no". o Günther Deschner * BUG 8106: Fix the build of 'smbget' on HP NonStop. * Fix timeout in rpc_pipe_open_tcp_port(). * Fix the build of "--with-profiling-data". * Fix the AIX 5.3 build. o Sergey Korsak * BUG #8099: setpwent() actually does endpwent() and vice versa on FreeBSD. o Volker Lendecke * BUG 8066: Fix wrong output in 'smbget'. * Fix Coverity IDs 986, 1340, 2047, 2299, 2307, 2325, 2335, 2336, 2470, 2471, 2478. * nsswitch: Add 'wbinfo --lookup-sids'. * nsswitch: Add 'wbinfo --sids-to-unix-ids'. * Fix smbd with the async echo responder. * Fix the build of vfs_gpfs.c. * Add a 10-second timeout for the 445 or netbios connection to a DC. * Many pthreadpool fixes. o Stefan Metzmacher * BUG 7383: Listen on IPv6 addresses with IPV6_ONLY. o Rusty Russell * Fix transaction recovery area for converted tdbs. Changes since 3.6.0pre1 ----------------------- o Michael Adam * ID Mapping changes. * Add "--option" to 'testparm'. o Jeremy Allison * BUG 7080: Quota only shown when logged as root. * BUG 7863: Unlink may unlink wrong file when hardlinks are involved. * BUG 7996: Sgid bit lost on folder rename. * BUG 8040: Fix smbclient segfault with Cyrillic netbios names. * Fix crash bug on smbd shutdown when using FOPENDIR(). * Ensure we don't return an incorrect access mask. * Fix bug against the new Mac client. * Fix leak in error path. * Fix error where Windows client spoolss returns WERR_INVALID_DATA. o Christian Ambach * Fix a segfault in the krb5 locator plugin. * Enable sharesec for registry shares. o Andrew Bartlett * Fix memory leak in "security=share" and "force user". o Björn Baumbach * BUG 7875: Fix 'nmbd --port'. * BUG 7880: cmd_spoolss_deletedriver() returned without checking all architectures. o Gregor Beck * Add new 'net idmap check' command. * Add new 'net idmap delete' command. * Fix segfault on missing input file in 'net idmap restore'. o Olly Betts * Fix 'net usersidlist' not to skip every other user. o Gregor Beck * Add "net idmap check", a check and repair tool for the id mapping database. o Günther Deschner * BUG 7690: Retry DNS updates when connection to one nameserver has failed. * BUG 7945: Let winbind try to use samlogon validation level 6. * Fix Coverity ID 2041. * Fix potential crash bug in spoolss_PrinterEnumValues push path. * Internal restructuring. * Don't wipe out all printer drivers when only one should be deleted. * Fix winbindd_dual_pam_auth_samlogon() for NT4 domains. o David Disseldorp * BUG 7915: Fix cups pcap reload with no printers. * BUG 8040: Fix smbclient segfault with Cyrillic netbios names. * Fix memory leak in print_cups.c. * Remove duplicate cups response processing code. * Follow force user/group for driver IO. * Initiate pcap reload from parent smbd. * Reload shares after pcap cache fill. o Björn Jacke * BUG 8033: Add explicit configure option whether or not to enable dmapi support. o Volker Lendecke * BUG 7917: Fix bug in chain_reply. * BUG 7940: Fall back for utimes calls. * BUG 8009: Fix getting username in 'net rap session'. * BUG 8010: Use jenkins hash for str_checksum. * BUG 8042: Fix file creation on OS/X. * Fix numerous Coverity IDs. * Fix a memory leak in check_sam_security_info3. * Fix a segfault in the nss wrapper when libnss_winbind.so is not loadable. * Make "net sam list [users|workstations]" list only the right things. * Fix a potential memleak in secrets_fetch_trusted_domain_password. * Use the right credentials in check_netlogond_security. * Add support for AF_NETLINK addr notifications. * Fork multiple Winbind children per domain. * Fix a deadlock between smbd and ctdbd. * Add 'wbinfo --dc-info'. * Make "nmbd socket dir" configurable. * Fix a valgrind error. * Fix a memleak in receive_getdc_response. o Nikolay Martynov * BUG 8010: Fix inode generation so nautilus can count total dir size correctly. o Stefan Metzmacher * BUG 7567: Fix printing from Windows 7. * BUG 7899: Don't return "-1" on success in 'net rpc vampire keytab'. * BUG 7944: Catch lookup_names/sids schannel errors over ncacn_ip_tcp. * Don't grant SEC_STD_DELETE always to the owner of a file. * Fix segfaults on addrchange errors in Winbind. * Allow machine accounts as members in groupdb. o Jonathan Nieder * BUG 6837: Make "rlimit_max below minimum Windows limit" notification less scary. o Andreas Schneider * Add an Endpoint Mapper daemon. * Add IPv6 support for the endpoint mapper. * Free unused memory in the rpc server. * Fix possible segfaults in svcctl server. * Fix possible segfault with client_id in rpc server. * Add a 'svcctl shutdown' function to rpc server. * Fix a resource leak in net_afs. * Fix a resource leak in smbta-util. * Fix possible resource leak in net_usershare. * Fix possible resource leak in 'smbget'. * Fix possible resource leak in 'smbfilter'. * Fix a possible null pointer dereference in smbd. o Pavel Shilovsky * BUG 7928: Fix problems with "kernel oplocks" option set to "no". * Ensure we send the direct levelII oplock break to the correct fid. o Simo Sorce * Fix private libdir and codepages paths. o Andrew Tridgell * Fix a valgrind error. ###################################################################### Reporting bugs & Development Discussion ####################################### Please discuss this release on the samba-technical mailing list or by joining the #samba-technical IRC channel on irc.freenode.net. If you do report problems then please try to send high quality feedback. If you don't provide vital information to help us track down the problem then you will probably be ignored. All bug reports should be filed under the Samba 3.6 product in the project's Bugzilla database (https://bugzilla.samba.org/). ====================================================================== == Our Code, Our Bugs, Our Responsibility. == The Samba Team ======================================================================