WHATSNEW: DNS at domain join improvements
[samba.git] / WHATSNEW.txt
1 Release Announcements
2 =====================
3
4 This is the first preview release 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/.
8
9 Samba 4.7 will be the next version of the Samba suite.
10
11
12 UPGRADING
13 =========
14
15 smbclient changes
16 -----------------
17
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.'.
23
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.
27
28 It's possible to use the '-m/--max-protocol' option to overwrite
29 the "client max protocol" option temporary.
30
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.
34
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.
40
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.
43
44
45 NEW FEATURES/CHANGES
46 ====================
47
48 Whole DB read locks: Improved LDAP and replication consistency
49 --------------------------------------------------------------
50
51 Prior to Samba 4.7 and ldb 1.2.0, the LDB database layer used by Samba
52 erronously did not take whole-DB read locks to protect search
53 and DRS replication operations.
54
55 While each object returned remained subject to a record-level lock (so
56 would remain consistent to itself), under a race condition with a
57 rename or delete, it and any links (like the member attribute) to it
58 would not be returned.
59
60 The symptoms of this issue include:
61
62 Replication failures with this error showing in the client side logs:
63  error during DRS repl ADD: No objectClass found in replPropertyMetaData for
64  Failed to commit objects:
65  WERR_GEN_FAILURE/NT_STATUS_INVALID_NETWORK_RESPONSE
66
67 A crash of the server, in particular the rpc_server process with
68  INTERNAL ERROR: Signal 11
69
70 LDAP read inconsistency
71  A DN subject to a search at the same time as it is being renamed
72  may not appear under either the old or new name, but will re-appear
73  for a subsequent search.
74
75 See https://bugzilla.samba.org/show_bug.cgi?id=12858 for more details
76 and updated advise on database recovery for affected installations.
77
78
79 Samba AD with MIT Kerberos
80 --------------------------
81
82 After four years of development, Samba finally supports compiling and
83 running Samba AD with MIT Kerberos. You can enable it with:
84
85     ./configure --with-system-mitkrb5
86
87 Samba requires version 1.15.1 of MIT Kerberos to build with AD DC support.
88 The krb5-devel and krb5-server packages are required.
89 The feature set is not on par with with the Heimdal build but the most important
90 things, like forest and external trusts, are working. Samba uses the KDC binary
91 provided by MIT Kerberos.
92
93 Missing features, compared to Heimdal, are:
94   * PKINIT support
95   * S4U2SELF/S4U2PROXY support
96   * RODC support (not fully working with Heimdal either)
97
98 The Samba AD process will take care of starting the MIT KDC and it will load a
99 KDB (Kerberos Database) driver to access the Samba AD database.  When
100 provisioning an AD DC using 'samba-tool' it will take care of creating a correct
101 kdc.conf file for the MIT KDC. Note that 'samba-tool' will overwrite the system
102 kdc.conf by default. It is possible to use a different location during
103 provision. You should consult the 'samba-tool' help and smb.conf manpage for
104 details.
105
106 Dynamic RPC port range
107 ----------------------
108
109 The dynamic port range for RPC services has been changed from the old default
110 value 1024-1300 to 49152-65535. This port range is not only used by a
111 Samba AD DC but also applies to all other server roles including NT4-style
112 domain controllers. The new value has been defined by Microsoft in Windows
113 Server 2008 and newer versions. To make it easier for Administrators to control
114 those port ranges we use the same default and make it configurable with the
115 option: 'rpc server dynamic port range'.
116
117 The 'rpc server port' option sets the first available port from the new
118 'rpc server dynamic port range' option. The option 'rpc server port' only
119 applies to Samba provisioned as an AD DC.
120
121 Authentication and Authorization audit support
122 ----------------------------------------------
123
124 Detailed authentication and authorization audit information is now
125 logged to Samba's debug logs under the "auth_audit" debug class,
126 including in particular the client IP address triggering the audit
127 line.  Additionally, if Samba is compiled against the jansson JSON
128 library, a JSON representation is logged under the "auth_json_audit"
129 debug class.
130
131 Audit support is comprehensive for all authentication and
132 authorisation of user accounts in the Samba Active Directory Domain
133 Controller, as well as the implicit authentication in password
134 changes.  In the file server and classic/NT4 domain controller, NTLM
135 authentication, SMB and RPC authorization is covered, however password
136 changes are not at this stage, and this support is not currently
137 backed by a testsuite.
138
139 Multi-process LDAP Server
140 -------------------------
141
142 The LDAP server in the AD DC now honours the process model used for
143 the rest of the samba process, rather than being forced into a single
144 process.  This aids in Samba's ability to scale to larger numbers of AD
145 clients and the AD DC's overall resiliency, but will mean that there is a
146 fork()ed child for every LDAP client, which may be more resource
147 intensive in some situations.
148
149 Improved Read-Only Domain Controller (RODC) Support
150 ---------------------------------------------------
151
152 Support for RODCs in Samba AD until now has been experimental. With this latest
153 version, many of the critical bugs have been fixed and the RODC can be used in
154 DC environments requiring no writable behaviour. RODCs now correctly support
155 bad password lockouts and password disclosure auditing through the
156 msDS-RevealedUsers attribute.
157
158 The fixes made to the RWDC will also allow Windows RODC to function more
159 correctly and to avoid strange data omissions such as failures to replicate
160 groups or updated passwords. Password changes are currently rejected at the
161 RODC, although referrals should be given over LDAP. While any bad passwords can
162 trigger domain-wide lockout, good passwords which have not been replicated yet
163 for a password change can only be used via NTLM on the RODC (and not Kerberos).
164
165 The reliability of RODCs locating a writable partner still requires some
166 improvements and so the 'password server' configuration option is generally
167 recommended on the RODC.
168
169 Additional password hashes stored in supplementalCredentials
170 ------------------------------------------------------------
171
172 A new config option 'password hash userPassword schemes' has been added to
173 enable generation of SHA-256 and SHA-512 hashes (without storing the plaintext
174 password with reversible encryption). This builds upon previous work to improve
175 password sync for the AD DC (originally using GPG).
176
177 The user command of 'samba-tool' has been updated in order to be able to
178 extract these additional hashes, as well as extracting the (HTTP) WDigest
179 hashes that we had also been storing in supplementalCredentials.
180
181 Improvements to DNS during Active Directory domain join
182 -------------------------------------------------------
183
184 The 'samba-tool' domain join command will now add the A and GUID DNS records
185 (on both the local and remote servers) during a join if possible via RPC. This
186 should allow replication to proceed more smoothly post-join.
187
188 The mname element of the SOA record will now also be dynamically generated to
189 point to the local read-write server. 'samba_dnsupdate' should now be more
190 reliable as it will now find the appropriate name server even when resolv.conf
191 points to a forwarder.
192
193 Query record for open file or directory
194 ---------------------------------------
195
196 The record attached to an open file or directory in Samba can be
197 queried through the 'net tdb locking' command. In clustered Samba this
198 can be useful to determine the file or directory triggering
199 corresponding "hot" record warnings in ctdb.
200
201 Removal of lpcfg_register_defaults_hook()
202 -----------------------------------------
203
204 The undocumented and unsupported function lpcfg_register_defaults_hook()
205 that was used by external projects to call into Samba and modify
206 smb.conf default parameter settings has been removed. If your project
207 was using this call please raise the issue on
208 samba-technical@lists.samba.org in order to design a supported
209 way of obtaining the same functionality.
210
211 Change of loadable module interface
212 -----------------------------------
213
214 The _init function of all loadable modules in Samba has changed
215 from:
216
217 NTSTATUS _init(void);
218
219 to:
220
221 NTSTATUS _init(TALLOC_CTX *);
222
223 This allows a program loading a module to pass in a long-lived
224 talloc context (which must be guaranteed to be alive for the
225 lifetime of the module). This allows modules to avoid use of
226 the talloc_autofree_context() (which is inherently thread-unsafe)
227 and still be valgrind-clean on exit. Modules that don't need to
228 free long-lived data on exist should use the NULL talloc context.
229
230 Parameter changes
231 -----------------
232
233 The "strict sync" global parameter has been changed from
234 a default of "no" to "yes". This means smbd will by default
235 obey client requests to synchronize unwritten data in operating
236 system buffers safely onto disk. This is a safer default setting
237 for modern SMB1/2/3 clients.
238
239 smb.conf changes
240 ================
241
242   Parameter Name                     Description             Default
243   --------------                     -----------             -------
244   allow unsafe cluster upgrade       New parameter           no
245   auth event notification            New parameter           no
246   auth methods                       Deprecated
247   client max protocol                Effective               SMB3_11
248                                      default changed
249   map untrusted to domain            New value/              auto
250                                      Default changed/
251                                      Deprecated
252   mit kdc command                    New parameter
253   profile acls                       Deprecated
254   rpc server dynamic port range      New parameter           49152-65535
255   strict sync                        Default changed         yes
256   password hash userPassword schemes New parameter
257
258
259 KNOWN ISSUES
260 ============
261
262 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.7#Release_blocking_bugs
263
264
265 #######################################
266 Reporting bugs & Development Discussion
267 #######################################
268
269 Please discuss this release on the samba-technical mailing list or by
270 joining the #samba-technical IRC channel on irc.freenode.net.
271
272 If you do report problems then please try to send high quality
273 feedback. If you don't provide vital information to help us track down
274 the problem then you will probably be ignored.  All bug reports should
275 be filed under the Samba 4.1 and newer product in the project's Bugzilla
276 database (https://bugzilla.samba.org/).
277
278
279 ======================================================================
280 == Our Code, Our Bugs, Our Responsibility.
281 == The Samba Team
282 ======================================================================
283