auth_log: use symbolic constant to replace /root/ncalrpc_as_system
[Samba.git] / WHATSNEW.txt
blob8302e5ff90fbebed37074b650467dceb6d3beee2
1 Release Announcements
2 =====================
4 This is the third release candidate of Samba 4.7.  This is *not*
5 intended for production environments and is designed for testing
6 purposes only.  Please report any defects via the Samba bug reporting
7 system at https://bugzilla.samba.org/.
9 Samba 4.7 will be the next version of the Samba suite.
12 UPGRADING
13 =========
15 smbclient changes
16 -----------------
18 smbclient no longer prints a 'Domain=[...] OS=[Windows 6.1] Server=[...]'
19 banner when connecting to the first server. With SMB2 and Kerberos
20 there's no way to print this information reliable. Now we avoid it at all
21 consistently. In interactive session the following banner is now presented
22 to the user: 'Try "help" do get a list of possible commands.'.
24 The default for "client max protocol" has changed to "SMB3_11",
25 which means that smbclient (and related commands) will work against
26 servers without SMB1 support.
28 It's possible to use the '-m/--max-protocol' option to overwrite
29 the "client max protocol" option temporary.
31 Note that the '-e/--encrypt' option also works with most SMB3 servers
32 (e.g. Windows >= 2012 and Samba >= 4.0.0), so the SMB1 unix extensions
33 are not required for encryption.
35 The change to SMB3_11 as default also  means smbclient no longer
36 negotiates SMB1 unix extensions by default, when talking to a Samba server with
37 "unix extensions = yes".  As a result some commands are not available, e.g.
38 posix_encrypt, posix_open, posix_mkdir, posix_rmdir, posix_unlink, posix_whoami,
39 getfacl and symlink. Using "-mNT1" reenabled them, if the server supports SMB1.
41 Note the default ("CORE") for "client min protocol" hasn't changed,
42 so it's still possible to connect to SMB1-only servers by default.
44 smbclient learned a new command "deltree" that is able to do
45 a recursive deletion of a directory tree.
48 NEW FEATURES/CHANGES
49 ====================
51 Whole DB read locks: Improved LDAP and replication consistency
52 --------------------------------------------------------------
54 Prior to Samba 4.7 and ldb 1.2.0, the LDB database layer used by Samba
55 erronously did not take whole-DB read locks to protect search
56 and DRS replication operations.
58 While each object returned remained subject to a record-level lock (so
59 would remain consistent to itself), under a race condition with a
60 rename or delete, it and any links (like the member attribute) to it
61 would not be returned.
63 The symptoms of this issue include:
65 Replication failures with this error showing in the client side logs:
66  error during DRS repl ADD: No objectClass found in replPropertyMetaData for
67  Failed to commit objects:
68  WERR_GEN_FAILURE/NT_STATUS_INVALID_NETWORK_RESPONSE
70 A crash of the server, in particular the rpc_server process with
71  INTERNAL ERROR: Signal 11
73 LDAP read inconsistency
74  A DN subject to a search at the same time as it is being renamed
75  may not appear under either the old or new name, but will re-appear
76  for a subsequent search.
78 See https://bugzilla.samba.org/show_bug.cgi?id=12858 for more details
79 and updated advise on database recovery for affected installations.
81 Samba AD with MIT Kerberos
82 --------------------------
84 After four years of development, Samba finally supports compiling and
85 running Samba AD with MIT Kerberos. You can enable it with:
87     ./configure --with-system-mitkrb5
89 Samba requires version 1.15.1 of MIT Kerberos to build with AD DC support.
90 The krb5-devel and krb5-server packages are required.
91 The feature set is not on par with the Heimdal build but the most important
92 things, like forest and external trusts, are working. Samba uses the KDC binary
93 provided by MIT Kerberos.
95 Missing features, compared to Heimdal, are:
96   * PKINIT support
97   * S4U2SELF/S4U2PROXY support
98   * RODC support (not fully working with Heimdal either)
100 The Samba AD process will take care of starting the MIT KDC and it will load a
101 KDB (Kerberos Database) driver to access the Samba AD database.  When
102 provisioning an AD DC using 'samba-tool' it will take care of creating a correct
103 kdc.conf file for the MIT KDC. Note that 'samba-tool' will overwrite the system
104 kdc.conf by default. It is possible to use a different location during
105 provision. You should consult the 'samba-tool' help and smb.conf manpage for
106 details.
108 Dynamic RPC port range
109 ----------------------
111 The dynamic port range for RPC services has been changed from the old default
112 value 1024-1300 to 49152-65535. This port range is not only used by a
113 Samba AD DC but also applies to all other server roles including NT4-style
114 domain controllers. The new value has been defined by Microsoft in Windows
115 Server 2008 and newer versions. To make it easier for Administrators to control
116 those port ranges we use the same default and make it configurable with the
117 option: 'rpc server dynamic port range'.
119 The 'rpc server port' option sets the first available port from the new
120 'rpc server dynamic port range' option. The option 'rpc server port' only
121 applies to Samba provisioned as an AD DC.
123 Authentication and Authorization audit support
124 ----------------------------------------------
126 Detailed authentication and authorization audit information is now
127 logged to Samba's debug logs under the "auth_audit" debug class,
128 including in particular the client IP address triggering the audit
129 line.  Additionally, if Samba is compiled against the jansson JSON
130 library, a JSON representation is logged under the "auth_json_audit"
131 debug class.
133 Audit support is comprehensive for all authentication and
134 authorisation of user accounts in the Samba Active Directory Domain
135 Controller, as well as the implicit authentication in password
136 changes.  In the file server and classic/NT4 domain controller, NTLM
137 authentication, SMB and RPC authorization is covered, however password
138 changes are not at this stage, and this support is not currently
139 backed by a testsuite.
141 Multi-process LDAP Server
142 -------------------------
144 The LDAP server in the AD DC now honours the process model used for
145 the rest of the samba process, rather than being forced into a single
146 process.  This aids in Samba's ability to scale to larger numbers of AD
147 clients and the AD DC's overall resiliency, but will mean that there is a
148 fork()ed child for every LDAP client, which may be more resource
149 intensive in some situations.
151 Improved Read-Only Domain Controller (RODC) Support
152 ---------------------------------------------------
154 Support for RODCs in Samba AD until now has been experimental. With this latest
155 version, many of the critical bugs have been fixed and the RODC can be used in
156 DC environments requiring no writable behaviour. RODCs now correctly support
157 bad password lockouts and password disclosure auditing through the
158 msDS-RevealedUsers attribute.
160 The fixes made to the RWDC will also allow Windows RODC to function more
161 correctly and to avoid strange data omissions such as failures to replicate
162 groups or updated passwords. Password changes are currently rejected at the
163 RODC, although referrals should be given over LDAP. While any bad passwords can
164 trigger domain-wide lockout, good passwords which have not been replicated yet
165 for a password change can only be used via NTLM on the RODC (and not Kerberos).
167 The reliability of RODCs locating a writable partner still requires some
168 improvements and so the 'password server' configuration option is generally
169 recommended on the RODC.
171 Additional password hashes stored in supplementalCredentials
172 ------------------------------------------------------------
174 A new config option 'password hash userPassword schemes' has been added to
175 enable generation of SHA-256 and SHA-512 hashes (without storing the plaintext
176 password with reversible encryption). This builds upon previous work to improve
177 password sync for the AD DC (originally using GPG).
179 The user command of 'samba-tool' has been updated in order to be able to
180 extract these additional hashes, as well as extracting the (HTTP) WDigest
181 hashes that we had also been storing in supplementalCredentials.
183 Improvements to DNS during Active Directory domain join
184 -------------------------------------------------------
186 The 'samba-tool' domain join command will now add the A and GUID DNS records
187 (on both the local and remote servers) during a join if possible via RPC. This
188 should allow replication to proceed more smoothly post-join.
190 The mname element of the SOA record will now also be dynamically generated to
191 point to the local read-write server. 'samba_dnsupdate' should now be more
192 reliable as it will now find the appropriate name server even when resolv.conf
193 points to a forwarder.
195 Significant AD performance and replication improvements
196 -------------------------------------------------------
198 Previously, replication of group memberships was been an incredibly expensive
199 process for the AD DC. This was mostly due to unnecessary CPU time being spent
200 parsing member linked attributes. The database now stores these linked
201 attributes in sorted form to perform efficient searches for existing members.
202 In domains with a large number of group memberships, a join can now be
203 completed in half the time compared with Samba 4.6.
205 LDAP search performance has also improved, particularly in the unindexed search
206 case. Parsing and processing of security descriptors should now be more
207 efficient, improving replication but also overall performance.
209 Query record for open file or directory
210 ---------------------------------------
212 The record attached to an open file or directory in Samba can be
213 queried through the 'net tdb locking' command. In clustered Samba this
214 can be useful to determine the file or directory triggering
215 corresponding "hot" record warnings in ctdb.
217 Removal of lpcfg_register_defaults_hook()
218 -----------------------------------------
220 The undocumented and unsupported function lpcfg_register_defaults_hook()
221 that was used by external projects to call into Samba and modify
222 smb.conf default parameter settings has been removed. If your project
223 was using this call please raise the issue on
224 samba-technical@lists.samba.org in order to design a supported
225 way of obtaining the same functionality.
227 Change of loadable module interface
228 -----------------------------------
230 The _init function of all loadable modules in Samba has changed
231 from:
233 NTSTATUS _init(void);
237 NTSTATUS _init(TALLOC_CTX *);
239 This allows a program loading a module to pass in a long-lived
240 talloc context (which must be guaranteed to be alive for the
241 lifetime of the module). This allows modules to avoid use of
242 the talloc_autofree_context() (which is inherently thread-unsafe)
243 and still be valgrind-clean on exit. Modules that don't need to
244 free long-lived data on exit should use the NULL talloc context.
246 CTDB changes
247 ------------
249 * CTDB no longer allows mixed minor versions in a cluster
251   See the AllowMixedVersions tunable option in ctdb-tunables(7) and also
252   https://wiki.samba.org/index.php/Upgrading_a_CTDB_cluster#Policy
254 * CTDB now ignores hints from Samba about TDB flags when attaching to databases
256   CTDB will use the correct flags depending on the type of database.
257   For clustered databases, the smb.conf setting
258   dbwrap_tdb_mutexes:*=true will be ignored. Instead, CTDB continues
259   to use the TDBMutexEnabled tunable.
261 * New configuration variable CTDB_NFS_CHECKS_DIR
263   See ctdbd.conf(5) for more details.
265 * The CTDB_SERVICE_AUTOSTARTSTOP configuration variable has been
266   removed
268   To continue to manage/unmanage services while CTDB is running:
270   - Start service by hand and then flag it as managed
272   - Mark service as unmanaged and shut it down by hand
274   - In some cases CTDB does something fancy - e.g. start Samba under
275     "nice", so care is needed. One technique is to disable the
276     eventscript, mark as managed, run the startup event by hand and then
277     re-enable the eventscript.
279 * The CTDB_SCRIPT_DEBUGLEVEL configuration variable has been removed
281 * The example NFS Ganesha call-out has been improved
283 * A new "replicated" database type is available
285   Replicated databases are intended for CTDB's internal use to
286   replicate state data across the cluster, but may find other
287   uses. The data in replicated databases is valid for the lifetime of
288   CTDB and cleared on first attach.
290 Parameter changes
291 -----------------
293 The "strict sync" global parameter has been changed from
294 a default of "no" to "yes". This means smbd will by default
295 obey client requests to synchronize unwritten data in operating
296 system buffers safely onto disk. This is a safer default setting
297 for modern SMB1/2/3 clients.
299 The 'ntlm auth' option default is renamed to 'ntlmv2-only', reflecting
300 the previous behaviour.  Two new values have been provided,
301 'mschapv2-and-ntlmv2-only' (allowing MSCHAPv2 while denying NTLMv1)
302 and 'disabled', totally disabling NTLM authentication and password
303 changes.
306 smb.conf changes
307 ================
309   Parameter Name                     Description             Default
310   --------------                     -----------             -------
311   allow unsafe cluster upgrade       New parameter           no
312   auth event notification            New parameter           no
313   auth methods                       Deprecated
314   client max protocol                Effective               SMB3_11
315                                      default changed
316   map untrusted to domain            New value/              auto
317                                      Default changed/
318                                      Deprecated
319   mit kdc command                    New parameter
320   profile acls                       Deprecated
321   rpc server dynamic port range      New parameter           49152-65535
322   strict sync                        Default changed         yes
323   password hash userPassword schemes New parameter
324   ntlm auth                          New values              ntlmv2-only
327 KNOWN ISSUES
328 ============
330 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.7#Release_blocking_bugs
333 CHANGES SINCE 4.7.0rc2
334 ======================
336 o  Jeremy Allison <jra@samba.org>
337    * BUG 12836: s3: smbd: Fix a read after free if a chained SMB1 call goes
338      async.
339    * BUG 12899: s3: libsmb: Reverse sense of 'clear all attributes', ignore
340      attribute change in SMB2 to match SMB1.
341    * BUG 12914: s3: smbclient: Add new command deltree.
343 o  Ralph Boehme <slow@samba.org>
344    * BUG 12885: s3/smbd: Let non_widelink_open() chdir() to directories
345      directly.
346    * BUG 12887: Remove SMB_VFS_STRICT_UNLOCK noop from the VFS.
347    * BUG 12891: Enable TDB mutexes in dbwrap and ctdb.
348    * BUG 12897: vfs_fruit: don't use MS NFS ACEs with Windows clients.
349    * BUG 12910: s3/notifyd: Ensure notifyd doesn't return from
350      smbd_notifyd_init.
352 o  Alexander Bokovoy <ab@samba.org>
353    * BUG 12905: Build py3 versions of other rpc modules.
355 o  Günther Deschner <gd@samba.org>
356    * BUG 12840: vfs_fruit: Add "fruit:model = <modelname>" parametric option.
358 o  Dustin L. Howett
359    * BUG 12720: idmap_ad: Retry query_user exactly once if we get
360      TLDAP_SERVER_DOWN.
362 o  Amitay Isaacs <amitay@gmail.com>
363    * BUG 12891: dbwrap_ctdb: Fix calculation of persistent flag.
365 o  Thomas Jarosch <thomas.jarosch@intra2net.com>
366    * BUG 12927: s3: libsmb: Fix use-after-free when accessing pointer *p.
368 o  Volker Lendecke <vl@samba.org>
369    * BUG 12925: smbd: Fix a connection run-down race condition.
371 o  Stefan Metzmacher <metze@samba.org>
372    * tevent: version 0.9.33: make tevent_req_print() more robust against crashes.
373    * ldb: version 1.2.1
374    * BUG 12882: Do not install _ldb_text.py if we have system libldb.
375    * BUG 12890: s3:smbd: consistently use talloc_tos() memory for
376      rpc_pipe_open_interface().
377    * BUG 12900: Fix index out of bound in ldb_msg_find_common_values.
379 o  Rowland Penny <rpenny@samba.org>
380    * BUG 12884: Easily edit a users object in AD, as if using 'ldbedit'.
382 o  Bernhard M. Wiedemann <bwiedemann@suse.de>
383    * BUG 12906: s3: drop build_env
385 o  Andreas Schneider <asn@samba.org>
386    * BUG 12882: waf: Do not install _ldb_text.py if we have system libldb.
388 o  Martin Schwenke <martin@meltin.net>
389    * BUG 12898: ctdb-common: Set close-on-exec when creating PID file.
392 CHANGES SINCE 4.7.0rc1
393 ======================
395 o  Jeffrey Altman <jaltman@secure-endpoints.com>
396    * BUG 12894: CVE-2017-11103: Orpheus' Lyre KDC-REP service name validation
399 #######################################
400 Reporting bugs & Development Discussion
401 #######################################
403 Please discuss this release on the samba-technical mailing list or by
404 joining the #samba-technical IRC channel on irc.freenode.net.
406 If you do report problems then please try to send high quality
407 feedback. If you don't provide vital information to help us track down
408 the problem then you will probably be ignored.  All bug reports should
409 be filed under the Samba 4.1 and newer product in the project's Bugzilla
410 database (https://bugzilla.samba.org/).
413 ======================================================================
414 == Our Code, Our Bugs, Our Responsibility.
415 == The Samba Team
416 ======================================================================