notifyd: Avoid an if-expression
[Samba.git] / WHATSNEW.txt
blob09c7be6382dd7f499f4d7b7aade26cf8b41d91f5
1                    =============================
2                    Release Notes for Samba 4.7.0
3                         September 20, 2017
4                    =============================
7 This is the first stable release of Samba 4.7.
8 Please read the release notes carefully before upgrading.
10 UPGRADING
11 =========
13 'smbclient' changes
14 ------------------
16 'smbclient' no longer prints a 'Domain=[...] OS=[Windows 6.1] Server=[...]'
17 banner when connecting to the first server. With SMB2 and Kerberos,
18 there's no way to print this information reliably. Now we avoid it at all
19 consistently. In interactive sessions the following banner is now presented
20 to the user: 'Try "help" do get a list of possible commands.'.
22 The default for "client max protocol" has changed to "SMB3_11",
23 which means that 'smbclient' (and related commands) will work against
24 servers without SMB1 support.
26 It's possible to use the '-m/--max-protocol' option to overwrite
27 the "client max protocol" option temporarily.
29 Note that the '-e/--encrypt' option also works with most SMB3 servers
30 (e.g. Windows >= 2012 and Samba >= 4.0.0), so the SMB1 unix extensions
31 are not required for encryption.
33 The change to SMB3_11 as default also means 'smbclient' no longer
34 negotiates SMB1 unix extensions by default, when talking to a Samba server with
35 "unix extensions = yes".  As a result, some commands are not available, e.g.
36 'posix_encrypt', 'posix_open', 'posix_mkdir', 'posix_rmdir', 'posix_unlink',
37 'posix_whoami', 'getfacl' and 'symlink'. Using "-mNT1" reenables them, if the
38 server supports SMB1.
40 Note the default ("CORE") for "client min protocol" hasn't changed,
41 so it's still possible to connect to SMB1-only servers by default.
43 'smbclient' learned a new command 'deltree' that is able to do
44 a recursive deletion of a directory tree.
47 NEW FEATURES/CHANGES
48 ====================
50 Whole DB read locks: Improved LDAP and replication consistency
51 --------------------------------------------------------------
53 Prior to Samba 4.7 and ldb 1.2.0, the LDB database layer used by Samba
54 erroneously did not take whole-DB read locks to protect search
55 and DRS replication operations.
57 While each object returned remained subject to a record-level lock (so
58 would remain consistent to itself), under a race condition with a
59 rename or delete, it and any links (like the member attribute) to it
60 would not be returned.
62 The symptoms of this issue include:
64 Replication failures with this error showing in the client side logs:
65  error during DRS repl ADD: No objectClass found in replPropertyMetaData for
66  Failed to commit objects:
67  WERR_GEN_FAILURE/NT_STATUS_INVALID_NETWORK_RESPONSE
69 A crash of the server, in particular the rpc_server process with
70  INTERNAL ERROR: Signal 11
72 LDAP read inconsistency
73  A DN subject to a search at the same time as it is being renamed
74  may not appear under either the old or new name, but will re-appear
75  for a subsequent search.
77 See https://bugzilla.samba.org/show_bug.cgi?id=12858 for more details
78 and updated advise on database recovery for affected installations.
80 Samba AD with MIT Kerberos
81 --------------------------
83 After four years of development, Samba finally supports compiling and
84 running Samba AD with MIT Kerberos. You can enable it with:
86     ./configure --with-system-mitkrb5
88 Samba requires version 1.15.1 of MIT Kerberos to build with AD DC support.
89 The krb5-devel and krb5-server packages are required.
90 The feature set is not on par with the Heimdal build but the most important
91 things, like forest and external trusts, are working. Samba uses the KDC binary
92 provided by MIT Kerberos.
94 Missing features, compared to Heimdal, are:
95   * PKINIT support
96   * S4U2SELF/S4U2PROXY support
97   * RODC support (not fully working with Heimdal either)
99 The Samba AD process will take care of starting the MIT KDC and it will load a
100 KDB (Kerberos Database) driver to access the Samba AD database.  When
101 provisioning an AD DC using 'samba-tool' it will take care of creating a correct
102 kdc.conf file for the MIT KDC.
104 For further details, see:
105 https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC
107 Dynamic RPC port range
108 ----------------------
110 The dynamic port range for RPC services has been changed from the old default
111 value "1024-1300" to "49152-65535". This port range is not only used by a
112 Samba AD DC, but also applies to all other server roles including NT4-style
113 domain controllers. The new value has been defined by Microsoft in Windows
114 Server 2008 and newer versions. To make it easier for Administrators to control
115 those port ranges we use the same default and make it configurable with the
116 option: "rpc server dynamic port range".
118 The "rpc server port" option sets the first available port from the new
119 "rpc server dynamic port range" option. The option "rpc server port" only
120 applies to Samba provisioned as an AD DC.
122 Authentication and Authorization audit support
123 ----------------------------------------------
125 Detailed authentication and authorization audit information is now
126 logged to Samba's debug logs under the "auth_audit" debug class,
127 including in particular the client IP address triggering the audit
128 line.  Additionally, if Samba is compiled against the jansson JSON
129 library, a JSON representation is logged under the "auth_json_audit"
130 debug class.
132 Audit support is comprehensive for all authentication and
133 authorisation of user accounts in the Samba Active Directory Domain
134 Controller, as well as the implicit authentication in password
135 changes.  In the file server and classic/NT4 domain controller, NTLM
136 authentication, SMB and RPC authorization is covered, however password
137 changes are not at this stage, and this support is not currently
138 backed by a testsuite.
140 For further details, see:
141 https://wiki.samba.org/index.php/Setting_up_Audit_Logging
143 Multi-process LDAP Server
144 -------------------------
146 The LDAP server in the AD DC now honours the process model used for
147 the rest of the 'samba' process, rather than being forced into a single
148 process.  This aids in Samba's ability to scale to larger numbers of AD
149 clients and the AD DC's overall resiliency, but will mean that there is a
150 fork()ed child for every LDAP client, which may be more resource
151 intensive in some situations.  If you run Samba in a
152 resource-constrained VM, consider allocating more RAM and swap space.
154 Improved Read-Only Domain Controller (RODC) Support
155 ---------------------------------------------------
157 Support for RODCs in Samba AD until now has been experimental. With this latest
158 version, many of the critical bugs have been fixed and the RODC can be used in
159 DC environments requiring no writable behaviour. RODCs now correctly support
160 bad password lockouts and password disclosure auditing through the
161 msDS-RevealedUsers attribute.
163 The fixes made to the RWDC will also allow Windows RODC to function more
164 correctly and to avoid strange data omissions such as failures to replicate
165 groups or updated passwords. Password changes are currently rejected at the
166 RODC, although referrals should be given over LDAP. While any bad passwords can
167 trigger domain-wide lockout, good passwords which have not been replicated yet
168 for a password change can only be used via NTLM on the RODC (and not Kerberos).
170 The reliability of RODCs locating a writable partner still requires some
171 improvements and so the 'password server' configuration option is generally
172 recommended on the RODC.
174 Samba 4.7 is the first Samba release to be secure as an RODC or when
175 hosting an RODC.  If you have been using earlier Samba versions to
176 host or be an RODC, please upgrade.
178 In particular see https://bugzilla.samba.org/show_bug.cgi?id=12977 for
179 details on the security implications for password disclosure to an
180 RODC using earlier versions.
182 Additional password hashes stored in supplementalCredentials
183 ------------------------------------------------------------
185 A new config option 'password hash userPassword schemes' has been added to
186 enable generation of SHA-256 and SHA-512 hashes (without storing the plaintext
187 password with reversible encryption). This builds upon previous work to improve
188 password sync for the AD DC (originally using GPG).
190 The user command of 'samba-tool' has been updated in order to be able to
191 extract these additional hashes, as well as extracting the (HTTP) WDigest
192 hashes that we had also been storing in supplementalCredentials.
194 Improvements to DNS during Active Directory domain join
195 -------------------------------------------------------
197 The 'samba-tool' domain join command will now add the A and GUID DNS records
198 (on both the local and remote servers) during a join if possible via RPC. This
199 should allow replication to proceed more smoothly post-join.
201 The mname element of the SOA record will now also be dynamically generated to
202 point to the local read-write server. 'samba_dnsupdate' should now be more
203 reliable as it will now find the appropriate name server even when resolv.conf
204 points to a forwarder.
206 Significant AD performance and replication improvements
207 -------------------------------------------------------
209 Previously, replication of group memberships was been an incredibly expensive
210 process for the AD DC. This was mostly due to unnecessary CPU time being spent
211 parsing member linked attributes. The database now stores these linked
212 attributes in sorted form to perform efficient searches for existing members.
213 In domains with a large number of group memberships, a join can now be
214 completed in half the time compared with Samba 4.6.
216 LDAP search performance has also improved, particularly in the unindexed search
217 case. Parsing and processing of security descriptors should now be more
218 efficient, improving replication but also overall performance.
220 Query record for open file or directory
221 ---------------------------------------
223 The record attached to an open file or directory in Samba can be
224 queried through the 'net tdb locking' command. In clustered Samba this
225 can be useful to determine the file or directory triggering
226 corresponding "hot" record warnings in ctdb.
228 Removal of lpcfg_register_defaults_hook()
229 -----------------------------------------
231 The undocumented and unsupported function lpcfg_register_defaults_hook()
232 that was used by external projects to call into Samba and modify
233 smb.conf default parameter settings has been removed. If your project
234 was using this call please raise the issue on
235 samba-technical@lists.samba.org in order to design a supported
236 way of obtaining the same functionality.
238 Change of loadable module interface
239 -----------------------------------
241 The _init function of all loadable modules in Samba has changed
242 from:
244 NTSTATUS _init(void);
248 NTSTATUS _init(TALLOC_CTX *);
250 This allows a program loading a module to pass in a long-lived
251 talloc context (which must be guaranteed to be alive for the
252 lifetime of the module). This allows modules to avoid use of
253 the talloc_autofree_context() (which is inherently thread-unsafe)
254 and still be valgrind-clean on exit. Modules that don't need to
255 free long-lived data on exit should use the NULL talloc context.
257 SHA256 LDAPS Certificates
258 -------------------------
260 The self-signed certificate generated for use on LDAPS will now be
261 generated with a SHA256 self-signature, not a SHA1 self-signature.
263 Replacing this certificate with a certificate signed by a trusted
264 CA is still highly recommended.
266 CTDB changes
267 ------------
269 * CTDB no longer allows mixed minor versions in a cluster
271   See the AllowMixedVersions tunable option in ctdb-tunables(7) and also
272   https://wiki.samba.org/index.php/Upgrading_a_CTDB_cluster#Policy
274 * CTDB now ignores hints from Samba about TDB flags when attaching to databases
276   CTDB will use the correct flags depending on the type of database.
277   For clustered databases, the smb.conf setting
278   dbwrap_tdb_mutexes:*=true will be ignored. Instead, CTDB continues
279   to use the TDBMutexEnabled tunable.
281 * New configuration variable CTDB_NFS_CHECKS_DIR
283   See ctdbd.conf(5) for more details.
285 * The CTDB_SERVICE_AUTOSTARTSTOP configuration variable has been
286   removed
288   To continue to manage/unmanage services while CTDB is running:
290   - Start service by hand and then flag it as managed
292   - Mark service as unmanaged and shut it down by hand
294   - In some cases CTDB does something fancy - e.g. start Samba under
295     "nice", so care is needed. One technique is to disable the
296     eventscript, mark as managed, run the startup event by hand and then
297     re-enable the eventscript.
299 * The CTDB_SCRIPT_DEBUGLEVEL configuration variable has been removed
301 * The example NFS Ganesha call-out has been improved
303 * A new "replicated" database type is available
305   Replicated databases are intended for CTDB's internal use to
306   replicate state data across the cluster, but may find other
307   uses. The data in replicated databases is valid for the lifetime of
308   CTDB and cleared on first attach.
310 Using x86_64 Accelerated AES Crypto Instructions
311 ------------------------------------------------
313 Samba on x86_64 can now be configured to use the Intel accelerated AES
314 instruction set, which has the potential to make SMB3 signing and
315 encryption much faster on client and server. To enable this, configure
316 Samba using the new option --accel-aes=intelaesni.
318 This is a temporary solution that is being included to allow users
319 to enjoy the benefits of Intel accelerated AES on the x86_64 platform,
320 but the longer-term solution will be to move Samba to a fully supported
321 external crypto library.
323 The third_party/aesni-intel code will be removed from Samba as soon as
324 external crypto library performance reaches parity.
326 The default is to build without setting --accel-aes, which uses the
327 existing Samba software AES implementation.
329 Parameter changes
330 -----------------
332 The "strict sync" global parameter has been changed from
333 a default of "no" to "yes". This means smbd will by default
334 obey client requests to synchronize unwritten data in operating
335 system buffers safely onto disk. This is a safer default setting
336 for modern SMB1/2/3 clients.
338 The 'ntlm auth' option default is renamed to 'ntlmv2-only', reflecting
339 the previous behaviour.  Two new values have been provided,
340 'mschapv2-and-ntlmv2-only' (allowing MSCHAPv2 while denying NTLMv1)
341 and 'disabled', totally disabling NTLM authentication and password
342 changes.
344 smb.conf changes
345 ================
347   Parameter Name                     Description             Default
348   --------------                     -----------             -------
349   allow unsafe cluster upgrade       New parameter           no
350   auth event notification            New parameter           no
351   auth methods                       Deprecated
352   client max protocol                Effective               SMB3_11
353                                      default changed
354   map untrusted to domain            New value/              auto
355                                      Default changed/
356                                      Deprecated
357   mit kdc command                    New parameter
358   profile acls                       Deprecated
359   rpc server dynamic port range      New parameter           49152-65535
360   strict sync                        Default changed         yes
361   password hash userPassword schemes New parameter
362   ntlm auth                          New values              ntlmv2-only
365 KNOWN ISSUES
366 ============
368 https://wiki.samba.org/inFdex.php/Release_Planning_for_Samba_4.7#Release_blocking_bugs
371 CHANGES SINCE 4.7.0rc6
372 ======================
374 o  CVE-2017-12150:
375    A man in the middle attack may hijack client connections.
377 o  CVE-2017-12151:
378    A man in the middle attack can read and may alter confidential
379    documents transferred via a client connection, which are reached
380    via DFS redirect when the original connection used SMB3.
382 o  CVE-2017-12163:
383    Client with write access to a share can cause server memory contents to be
384    written into a file or printer.
387 CHANGES SINCE 4.7.0rc5
388 ======================
390 o  Jeremy Allison <jra@samba.org>
391    * BUG 13003: s3: vfs: catia: compression get/set must act only on base file, and
392      must cope with fsp==NULL.
393    * BUG 13008: lib: crypto: Make smbd use the Intel AES instruction set for signing
394      and encryption.
396 o  Andrew Bartlett <abartlet@samba.org>
397    * BUG 12946: s4-drsuapi: Avoid segfault when replicating as a non-admin with
398      GUID_DRS_GET_CHANGES.
399    * BUG 13015: Allow re-index of newer databases with binary GUID TDB keys
400      (this officially removes support for re-index of the original pack format 0,
401      rather than simply segfaulting).
402    * BUG 13017: Add ldb_ldif_message_redacted_string() to allow debug of redacted
403      log messages, avoiding showing secret values.
404    * BUG 13023: ldb: version 1.2.2.
405    * BUG 13025: schema: Rework dsdb_schema_set_indices_and_attributes() db
406      operations.
408 o  Alexander Bokovoy <ab@samba.org>
409    * BUG 13030: Install dcerpc/__init__.py for all Python environments.
411 o  Ralph Boehme <slow@samba.org>
412    * BUG 13024: s3/smbd: Sticky write time offset miscalculation causes broken
413      timestamps
414    * BUG 13037: lib/util: Only close the event_fd in tfork if the caller didn't
415      call tfork_event_fd().
417 o  Volker Lendecke <vl@samba.org>
418    * BUG 13006: messaging: Avoid a socket leak after fork.
420 o  Stefan Metzmacher <metze@samba.org>
421    * BUG 13018: charset: Fix str[n]casecmp_m() by comparing lower case values.
423 o  Gary Lockyer <gary@catalyst.net.nz>
424    * BUG 13037: util_runcmd: Free the fde in event handler.
426 o  Amitay Isaacs <amitay@gmail.com>
427    * BUG 13012: ctdb-daemon: Fix implementation of process_exists control.
428    * BUG 13021: GET_DB_SEQNUM control can cause ctdb to deadlock when databases
429      are frozen.
430    * BUG 13029: ctdb-daemon: Free up record data if a call request is deferred.
431    * BUG 13036: ctdb-client: Initialize ctdb_ltdb_header completely for empty
432      record.
434 o  Christof Schmitt <cs@samba.org>
435    * BUG 13032: vfs_streams_xattr: Fix segfault when running with log level 10.
438 CHANGES SINCE 4.7.0rc4
439 ======================
441 o  Andrew Bartlett <abartlet@samba.org>
442    * BUG 12929: smb.conf: Explain that "ntlm auth" is a per-passdb setting.
443    * BUG 12953: s4/lib/tls: Use SHA256 to sign the TLS certificates.
445 o  Jeremy Allison <jra@samba.org>
446    * BUG 12932: Get rid of talloc_autofree_context().
448 o  Amitay Isaacs <amitay@gmail.com>
449    * BUG 12978: After restarting CTDB, it attaches replicated databases with
450      wrong flags.
452 o  Stefan Metzmacher <metze@samba.org>
453    * BUG 12863: s3:smbclient: Don't try any workgroup listing with
454      "client min protocol = SMB2".
455    * BUG 12876: s3:libsmb: Don't call cli_NetServerEnum() on SMB2/3 connections
456      in SMBC_opendir_ctx().
457    * BUG 12881: s3:libsmb: Let do_connect() debug the negotiation result
458      similar to "session request ok".
459    * BUG 12919: s4:http/gensec: add missing tevent_req_done() to
460      gensec_http_ntlm_update_done().
461    * BUG 12968: Fix 'smbclient tarmode' with SMB2/3.
462    * BUG 12973: 'smbd': Don't use a lot of CPU on startup of a connection.
464 o  Christof Schmitt <cs@samba.org>
465    * BUG 12983: vfs_default: Fix passing of errno from async calls.
467 o  Andreas Schneider <asn@samba.org>
468    * BUG 12629: s3:utils: Do not report an invalid range for AD DC role.
469    * BUG 12704: s3:libsmb: Let get_ipc_connect() use
470      CLI_FULL_CONNECTION_FORCE_SMB1.
471    * BUG 12930: Fix build issues with GCC 7.1.
472    * BUG 12950: s3:script: Untaint user supplied data in modprinter.pl.
473    * BUG 12956: s3:libads: Fix changing passwords with Kerberos.
474    * BUG 12975: Fix changing the password with 'smbpasswd' as a local user on
475      a domain member.
478 CHANGES SINCE 4.7.0rc3
479 ======================
481 o  Jeremy Allison <jra@samba.org>
482    * BUG 12913: Implement cli_smb2_setatr() by calling cli_smb2_setpathinfo().
484 o  Andrew Bartlett <abartlet@samba.org>
485    * BUG 11392: s4-cldap/netlogon: Match Windows 2012R2 and return
486      NETLOGON_NT_VERSION_5 when version unspecified.
487    * BUG 12855: dsdb: Do not force a re-index of sam.ldb on upgrade to 4.7.
488    * BUG 12904: dsdb: Fix dsdb_next_callback to correctly use ldb_module_done()
489      etc.
490    * BUG 12939: s4-rpc_server: Improve debug of new endpoints.
492 o  Ralph Boehme <slow@samba.org>
493    * BUG 12791: Fix kernel oplocks issues with named streams.
494    * BUG 12944: vfs_gpfs: Handle EACCES when fetching DOS attributes from xattr.
496 o  Bob Campbell <bobcampbell@catalyst.net.nz>
497    * BUG 12842: samdb/cracknames: Support user and service principal as desired
498      format.
500 o  David Disseldorp <ddiss@samba.org>
501    * BUG 12911: vfs_ceph: Fix cephwrap_chdir().
503 o  Gary Lockyer <gary@catalyst.net.nz>
504    * BUG 12865: Track machine account ServerAuthenticate3.
506 o  Marc Muehlfeld <mmuehlfeld@samba.org>
507    * BUG 12947: python: Fix incorrect kdc.conf parameter name in kerberos.py.
509 o  Noel Power <noel.power@suse.com>
510    * BUG 12937: s3/utils: 'smbcacls' failed to detect DIRECTORIES using SMB2
511      (Windows only).
513 o  Arvid Requate <requate@univention.de>
514    * BUG 11392: s4-dsdb/netlogon: Allow missing ntver in cldap ping.
516 o  Anoop C S <anoopcs@redhat.com>
517    * BUG 12936: source3/client: Fix typo in help message displayed by default.
519 o  Andreas Schneider <asn@samba.org>
520    * BUG 12930: Fix building with GCC 7.1.1.
523 CHANGES SINCE 4.7.0rc2
524 ======================
526 o  Jeremy Allison <jra@samba.org>
527    * BUG 12836: s3: smbd: Fix a read after free if a chained SMB1 call goes
528      async.
529    * BUG 12899: s3: libsmb: Reverse sense of 'clear all attributes', ignore
530      attribute change in SMB2 to match SMB1.
531    * BUG 12914: s3: smbclient: Add new command deltree.
533 o  Ralph Boehme <slow@samba.org>
534    * BUG 12885: s3/smbd: Let non_widelink_open() chdir() to directories
535      directly.
536    * BUG 12887: Remove SMB_VFS_STRICT_UNLOCK noop from the VFS.
537    * BUG 12891: Enable TDB mutexes in dbwrap and ctdb.
538    * BUG 12897: vfs_fruit: don't use MS NFS ACEs with Windows clients.
539    * BUG 12910: s3/notifyd: Ensure notifyd doesn't return from
540      smbd_notifyd_init.
542 o  Alexander Bokovoy <ab@samba.org>
543    * BUG 12905: Build py3 versions of other rpc modules.
545 o  Günther Deschner <gd@samba.org>
546    * BUG 12840: vfs_fruit: Add "fruit:model = <modelname>" parametric option.
548 o  Dustin L. Howett
549    * BUG 12720: idmap_ad: Retry query_user exactly once if we get
550      TLDAP_SERVER_DOWN.
552 o  Amitay Isaacs <amitay@gmail.com>
553    * BUG 12891: dbwrap_ctdb: Fix calculation of persistent flag.
555 o  Thomas Jarosch <thomas.jarosch@intra2net.com>
556    * BUG 12927: s3: libsmb: Fix use-after-free when accessing pointer *p.
558 o  Volker Lendecke <vl@samba.org>
559    * BUG 12925: smbd: Fix a connection run-down race condition.
561 o  Stefan Metzmacher <metze@samba.org>
562    * tevent: version 0.9.33: make tevent_req_print() more robust against crashes.
563    * ldb: version 1.2.1
564    * BUG 12882: Do not install _ldb_text.py if we have system libldb.
565    * BUG 12890: s3:smbd: consistently use talloc_tos() memory for
566      rpc_pipe_open_interface().
567    * BUG 12900: Fix index out of bound in ldb_msg_find_common_values.
569 o  Rowland Penny <rpenny@samba.org>
570    * BUG 12884: Easily edit a users object in AD, as if using 'ldbedit'.
572 o  Bernhard M. Wiedemann <bwiedemann@suse.de>
573    * BUG 12906: s3: drop build_env
575 o  Andreas Schneider <asn@samba.org>
576    * BUG 12882: waf: Do not install _ldb_text.py if we have system libldb.
578 o  Martin Schwenke <martin@meltin.net>
579    * BUG 12898: ctdb-common: Set close-on-exec when creating PID file.
582 CHANGES SINCE 4.7.0rc1
583 ======================
585 o  Jeffrey Altman <jaltman@secure-endpoints.com>
586    * BUG 12894: CVE-2017-11103: Orpheus' Lyre KDC-REP service name validation
589 #######################################
590 Reporting bugs & Development Discussion
591 #######################################
593 Please discuss this release on the samba-technical mailing list or by
594 joining the #samba-technical IRC channel on irc.freenode.net.
596 If you do report problems then please try to send high quality
597 feedback. If you don't provide vital information to help us track down
598 the problem then you will probably be ignored.  All bug reports should
599 be filed under the Samba 4.1 and newer product in the project's Bugzilla
600 database (https://bugzilla.samba.org/).
603 ======================================================================
604 == Our Code, Our Bugs, Our Responsibility.
605 == The Samba Team
606 ======================================================================