shadow_copy2: create structure to store module specific information
[sfrench/samba-autobuild/.git] / WHATSNEW.txt
index 25bd1ab4f6eec4968a6e049c873818268841c8f9..4b195c3a06f947cbc4e762d54592d5c16318dc03 100644 (file)
 Release Announcements
 =====================
 
-This is the second release candidate of Samba 4.0.  This is *not*
+This is the first preview release of Samba 4.5.  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/.
 
-Samba 4.0 will be the next version of the Samba suite and incorporates
-all the technology found in both the Samba4 series and the
-stable 3.x series. The primary additional features over Samba 3.6 are
-support for the Active Directory logon protocols used by Windows 2000
-and above.
-
-This release contains the best of all of Samba's
-technology parts, both a file server (that you can reasonably expect
-to upgrade existing Samba 3.x releases to) and the AD domain
-controller work previously known as 'samba4'.
-
-If you are upgrading, or looking to develop, test or deploy Samba 4.0
-releases candidates, you should backup all configuration and data.
+Samba 4.5 will be the next version of the Samba suite.
 
 
 UPGRADING
 =========
 
-Users upgrading from Samba 3.x domain controllers and wanting to use
-Samba 4.0 as an AD DC should use the 'samba-tool domain
-classicupgrade' command.  See the wiki for more details:
-https://wiki.samba.org/index.php/Samba4/samba3upgrade/HOWTO.
+NTLMv1 authentication disabled by default
+-----------------------------------------
 
-Users upgrading from Samba 4.0 alpha and beta releases since alpha15
-should run 'samba-tool dbcheck --cross-ncs --fix' before re-starting
-Samba.  Users upgrading from earlier alpha releases should contact the
-team for advice.
+In order to improve security we have changed
+the default value for the "ntlm auth" option from
+"yes" to "no". This may have impact on very old
+client which doesn't support NTLMv2 yet.
 
-Users upgrading an AD DC from any previous release should run
-'samba-tool ntacl sysvolreset' to re-sync ACLs on the sysvol share
-with those matching the GPOs in LDAP and the defaults from an initial
-provision.  This will set an underlying POSIX ACL if required (eg not
-using the NTVFS file server).
+The primary user of NTLMv1 is MSCHAPv2 for VPNs and 802.1x.
 
-If you used the BIND9_FLATFILE or BIND9_DLZ features,
-you'll have to add '-dns' to the 'server services' option,
-as the internal dns server (SAMBA_INTERNAL) is the default now.
+By default Samba will only allow NTLMv2 via NTLMSSP now,
+as we have the following default "lanman auth = no",
+"ntlm auth = no" and "raw NTLMv2 auth = no".
 
 
-NEW FEATURES
-============
+NEW FEATURES/CHANGES
+====================
 
-Samba 4.0 supports the server-side of the Active Directory logon
-environment used by Windows 2000 and later, so we can do full domain
-join and domain logon operations with these clients.
-
-Our Domain Controller (DC) implementation includes our own built-in
-LDAP server and Kerberos Key Distribution Center (KDC) as well as the
-Samba3-like logon services provided over CIFS.  We correctly generate
-the infamous Kerberos PAC, and include it with the Kerberos tickets we
-issue.
-
-Samba 4.0.0rc2 ships with two distinct file servers.  We now use the
-file server from the Samba 3.x series 'smbd' for all file serving by
-default.
-
-Samba 4.0 also ships with the 'NTVFS' file server.  This file server
-is what was used in all previous releases of Samba 4.0, and is
-tuned to match the requirements of an AD domain controller.  We
-continue to support this, not only to provide continuity to
-installations that have deployed it as part of an AD DC, but also as a
-running example of the NT-FSA architecture we expect to move smbd to in
-the longer term.
-
-For pure file server work, the binaries users would expect from that
-series (nmbd, winbindd, smbpasswd) continue to be available.  When
-running an AD DC, you only need to run 'samba' (not
-nmbd/smbd/winbind), as the required services are co-coordinated by this
-master binary.
-
-As DNS is an integral part of Active Directory, we also provide two DNS
-solutions, a simple internal DNS server for 'out of the box' configurations
-and a more elaborate BIND plugin using the BIND DLZ mechanism in versions
-9.8 and 9.9. During the provision, you can select which backend to use.
-With the internal backend, your DNS server is good to go.
-If you chose the BIND_DLZ backend, a configuration file will be generated
-for bind to make it use this plugin, as well as a file explaining how to
-set up bind.
-
-To provide accurate timestamps to Windows clients, we integrate with
-the NTP project to provide secured NTP replies.  To use you need to
-start ntpd and configure it with the 'restrict ... ms-sntp' and
-ntpsigndsocket options.
-
-Finally, a new scripting interface has been added to Samba 4, allowing
-Python programs to interface to Samba's internals, and many tools and
-internal workings of the DC code is now implemented in python.
-
-
-######################################################################
-Changes
-#######
+Support for LDAP_SERVER_NOTIFICATION_OID
+----------------------------------------
 
-smb.conf changes
-----------------
-
-   Parameter Name                      Description     Default
-   --------------                      -----------     -------
-
-   allow dns updates                   New             secure only
-   announce as                         Removed
-   announce version                    Removed
-   cldap port                          New             0
-   client max protocol                 New
-   client min protocol                 New
-   client signing                      Changed default default
-   dcerpc endpoint servers             New
-   dgram port                          New             0
-   directory security mask             Removed
-   display charset                     Removed
-   dns forwarder                       New
-   dns update command                  New
-   force security mode                 Removed
-   force directory security mode       Removed
-   homedir map                         Changed default auto.home
-   kernel share modes                  New             Yes
-   kpasswd port                                New             0
-   krb5 port                           New             0
-   max protocol                                Removed
-   min protocol                                Removed
-   nbt client socket address           New             0.0.0.0
-   nbt port                            New             0
-   nsupdate command                    New
-   ntp signd socket directory          New
-   ntvfs handler                       New
-   paranoid server security            Removed
-   pid directory                       New
-   printer admin                       Removed
-   rndc command                        New
-   rpc big endian                      New             No
-   samba kcc command                   New
-   security mask                       Removed
-   send spnego principal               Removed
-   server max protocol                 New             SMB3
-   server min protocol                 New             LANMAN1
-   server role                         New             auto
-   server services                     New
-   server signing                      Changed default default
-   share backend                       New
-   share modes                         Removed
-   smb2 max read                       Changed default 1048576
-   smb2 max write                      Changed default 1048576
-   smb2 max trans                      Changed default 1048576
-   socket address                      Removed
-   spn update command                  New
-   time offset                         Removed
-   tls cafile                          New
-   tls certfile                                New
-   tls crlfile                         New
-   tls dh params file                  New
-   tls enabled                         New             No
-   tls keyfile                         New
-   unicode                             New             Yes
-   web port                            New             0
-   winbindd privileged socket directory        New
-   winbind sealed pipes                        New             No
-   winbindd socket directory           New
-
-
-CHANGES SINCE 4.0.0rc1
-======================
-
-o   Michael Adam <obnox@samba.org>
-    * BUG 9173: Make the SMB2 compound request create/delete_on_close/
-      close work as Windows.
-
-
-o   Jeremy Allison <jra@samba.org>
-    * BUG 9161: Re-add the vfs_Chdir() cache.
-    * BUG 9189: SMB2 Create doesn't return correct MAX ACCESS access mask in
-      blob.
-    * BUG 9213: Bad ASN.1 NegTokenInit packet can cause invalid free.
-
-
-o   Christian Ambach <ambi@samba.org>
-    * BUG 9162: Fix the build of the GPFS VFS module.
-    * BUG 9197: Only do 'printing_subsystem_update' when printing is enabled.
-
-
-o   Alexander Bokovoy <ab@samba.org>
-    * BUG 9157: Cleanup idmap_ldap build dependencies.
-
-
-o   Ira Cooper <ira@samba.org>
-    * BUG 9162: Fix build on Illumos/Solaris using '--with-acl'.
-    * BUG 9173: Compound requests should continue processing.
-
-
-o   Björn Jacke <bj@sernet.de>
-    * BUG 9162: Fix the build of the ACL VFS modules.
-    * BUG 9172: Fix reporting of gfs2 quotas.
-
-
-o   Volker Lendecke <vl@samba.org>
-    * BUG 9217: CreateFile with FILE_DIRECTORY_FILE can create directories
-      on read-only shares.
-
-
-o   Stefan Metzmacher <metze@samba.org>
-    * BUG 9173: Make the SMB2 compound request create/delete_on_close/
-      close work as Windows.
-    * BUG 9184: Fix receiving of UDP packets from 0 bytes.
-    * BUG 9191: Release the share mode lock before calling exit_server().
-    * BUG 9193: Fix usage of invalid memory in smb2_signing_check_pdu().
-    * BUG 9194: Disallow '--prefix=/usr' and '--prefix=/usr/local' without
-      '--enable-fhs'.
-    * BUG 9198: Fix RHEL-CTDB packaging.
-
-
-o   Matthieu Patou <mat@matws.net>
-    * BUG 9199: Fix usage of "panic action".
-
-
-o   Andreas Schneider <asn@samba.org>
-    * BUG 8632: Fix builtin forms order to match Windows again.
-    * BUG 9159: Fix generating idmap manpages.
-    * BUG 9218: Don't segfault if user specified ports out for range.
+The ldap server has support for the LDAP_SERVER_NOTIFICATION_OID
+control. This can be used to monitor the active directory database
+for changes.
 
+KCC improvements for sparse network replication
+-----------------------------------------------
 
-KNOWN ISSUES
-============
+The Samba KCC will now be the default knowledge consistency checker in
+Samba AD. Instead of using full mesh replication between every DC, the
+KCC will set up connections to optimize replication latency and cost
+(using site links to calculate the routes). This change should allow
+larger domains to function significantly better in terms of replication
+traffic and the time spent performing DRS replication.
+
+VLV - Virtual List View
+-----------------------
+
+The VLV Control allows applications to page the LDAP directory in the
+way you might expect a live phone book application to operate, without
+first downloading the entire directory.
+
+DRS Replication for the AD DC
+-----------------------------
+
+DRS Replication in Samba 4.5 is now much more efficient in handling
+linked attributes, particularly in large domains with over 1000 group
+memberships or other links.
+
+Replication is also much more reliable in the handling of tree
+renames, such as the rename of an organizational unit containing many
+users.  Extensive tests have been added to ensure this code remains
+reliable, particularly in the case of conflicts between objects added
+with the same name on different servers.
+
+Schema updates are also handled much more reliably.
+
+samba-tool drs replicate with new options
+-----------------------------------------
+
+samba-tool drs replicate got two new options:
+
+The option '--local-online' will do the DsReplicaSync() via IRPC
+to the local dreplsrv service.
+
+The option '--async-op' will add DRSUAPI_DRS_ASYNC_OP to the
+DsReplicaSync(), which won't wait for the replication result.
+
+replPropertyMetaData Changes
+----------------------------
+
+During the development of the DRS replication, tests showed that Samba
+stores the replPropertyMetaData object incorrectly.  To address this,
+be aware that dbcheck will now detect and offer to fix all objects in
+the domain for this error.
+
+Linked attributes on deleted objects
+------------------------------------
+
+In Active Directory, an object that has been tombstoned or recycled
+has no linked attributes.  However, Samba incorrectly maintained such
+links, slowing replication and run-time performance.  dbcheck now
+offers to remove such links, and they are no longer kept after the
+object is tombstoned or recycled.
+
+Improved AD DC performance
+--------------------------
+
+Many other improvements have been made to our LDAP database layer in
+the AD DC, to improve performance, both during samba-tool domain
+provision and at runtime.
+
+Other dbcheck improvements
+--------------------------
+
+ - samba-tool dbcheck can now find and fix a missing or corrupted
+   'deleted objects' container.
+ - BUG 11433: samba-dbcheck no longer offers to resort auxiliary class values
+   in objectClass as these were then re-sorted at the next dbcheck indefinitely.
+
+Tombstone Reanimation
+---------------------
+
+Samba now supports tombstone reanimation, a feature in the AD DC
+allowing tombstones, that is objects which have been deleted, to be
+restored with the original SID and GUID still in place.
+
+Multiple DNS Forwarders on the AD DC
+------------------------------------
+
+Multiple DNS forwarders are now supported on the AD DC, allowing
+samba to fall back between two different DNS servers for forwarded queries.
+
+Password quality plugin support in the AD DC
+--------------------------------------------
+
+The check password script now operates correctly in the AD DC (this
+was silently ignored in past releases)
+
+pwdLastSet is now correctly honoured
+------------------------------------
+
+BUG 9654: the pwdLastSet attribute is now correctly handled (this previously
+permitted passwords that next expire).
+
+net ads dns unregister
+----------------------
+
+It is now possible to remove the DNS entries created with 'net ads register'
+with the matching 'net ads unregister' command.
+
+Samba-tool improvements
+------------------------
+
+Running samba-tool on the command line should now be a lot snappier. The tool
+now only loads the code specific to the subcommand that you wish to run.
+
+SMB 2.1 Leases enabled by default
+---------------------------------
 
-- 'samba-tool domain classicupgrade' will fail when setting ACLs on
-  the GPO folders with NT_STATUS_INVALID_ONWER in the default
-  configuration.  This happens if, as is typical a 'domain admins'
-  group (-512) is mapped in the passdb backend being upgraded.  This
-  is because the group mapping to a GID only prevents Samba from
-  allocating a uid for that group.  The uid is needed so the 'domain
-  admins' group can own the GPO file objects.
+Leasing is an SMB 2.1 (and higher) feature which allows clients to
+aggressively cache files locally above and beyond the caching allowed
+by SMB 1 oplocks. This feature was disabled in previous releases, but
+the SMB2 leasing code is now considered mature and stable enough to be
+enabled by default.
 
-  To work around this issue, remove the 'domain admins' group before
-  upgrade, as it will be re-created automatically.  You will
-  of course need to fill in the group membership again.  A future release
-  will make this automatic, or find some other workaround.
+Open File Description (OFD) Locks
+---------------------------------
 
-- This release makes the s3fs file server the default, as this is the
-  file server combination we will use for the Samba 4.0 release.
+On systems that support them (currently only Linux), the fileserver now
+uses Open File Description (OFD) locks instead of POSIX locks to implement
+client byte range locks. As these locks are associated with a specific
+file descriptor on a file this allows more efficient use when multiple
+descriptors having file locks are opened onto the same file. An internal
+tunable "smbd:force process locks = true" may be used to turn off OFD
+locks if there appear to be problems with them.
 
-- For similar reasons, sites with ACLs stored by the ntvfs file server
-  may wish to continue to use that file server implementation, as a
-  posix ACL will similarly not be set in this case.
+Password sync as active directory domain controller
+---------------------------------------------------
 
-- Replication of DNS data from one AD server to another may not work.
-  The DNS data used by the internal DNS server and bind9_dlz is stored
-  in an application partition in our directory.  The replication of
-  this partition is not yet reliable.
+The new commands 'samba-tool user getpassword'
+and 'samba-tool user syncpasswords' provide
+access and syncing of various password fields.
 
-- Replication may fail on FreeBSD due to getaddrinfo() rejecting names
-  containing _.  A workaround will be in a future release.
+If compiled with GPGME support (--with-gpgme) it's
+possible to store cleartext passwords in a PGP/OpenGPG
+encrypted form by configuring the new "password hash gpg key ids"
+option. This requires gpgme devel and python packages to be installed
+(e.g. libgpgme11-dev and python-gpgme on debian/ubuntu).
 
-- samba_upgradeprovision should not be run when upgrading to this release
-  from a recent release.  No important database format changes have
-  been made since alpha16.
+Python crypto requirements
+--------------------------
 
-- Installation on systems without a system iconv (and developer
-  headers at compile time) is known to cause errors when dealing with
-  non-ASCII characters.
+Some samba-tool subcommands require python-crypto and/or
+python-m2crypto packages to be installed.
 
-- Domain member support in the 'samba' binary is in its infancy, and
-  is not comparable to the support found in winbindd.  As such, do not
-  use the 'samba' binary (provided for the AD server) on a member
-  server.
+SmartCard/PKINIT improvements
+-----------------------------
 
-- There is no NetBIOS browsing support (network neighbourhood)
-  available for the AD domain controller.  (Support in nmbd and smbd
-  for classic domains and member/standalone servers is unchanged).
+"samba-tool user create" accepts --smartcard-required
+and "samba-tool user setpassword" accepts --smartcard-required
+and --clear-smartcard-required.
 
-- Clock Synchronisation is critical.  Many 'wrong password' errors are
-  actually due to Kerberos objecting to a clock skew between client
-  and server.  (The NTP work in the previous alphas are partly to assist
-  with this problem).
+Specifying --smartcard-required results in the UF_SMARTCARD_REQUIRED
+flags being set in the userAccountControl attribute.
+At the same time the account password is reset to a random
+NTHASH value.
 
-- The DRS replication code may fail.  Please contact the team if you
-  experience issues with DRS replication, as we have fixed many issues
-  here in response to feedback from our production users.
+Interactive password logons are rejected, if the UF_SMARTCARD_REQUIRED
+bit is set in the userAccountControl attribute of a user.
 
+When doing a PKINIT based kerberos logon the KDC adds the
+required PAC_CREDENTIAL_INFO element to the authorization data.
+That means the NTHASH is shared between the PKINIT based client and
+the domain controller, which allows the client to do NTLM based
+authentication on behalf of the user. It also allows on offline
+logon using a smartcard to work on Windows clients.
 
-RUNNING Samba 4.0 as an AD DC
-=============================
+CTDB changes
+------------
 
-A short guide to setting up Samba 4 as an AD DC can be found on the wiki:
+* New improved ctdb tool
+
+  ctdb tool has been completely rewritten using new client API.
+  Usage messages are much improved.
+
+* Sample CTDB configuration file is installed as ctdbd.conf.
+
+* The use of real-time scheduling when taking locks has been narrowed
+  to limit potential performance impacts on nodes
+
+* CTDB_RECOVERY_LOCK now supports specification of an external helper
+  to take and hold the recovery lock
+
+  See the RECOVERY LOCK section in ctdb(7) for details.  Documentation
+  for writing helpers is provided in doc/cluster_mutex_helper.txt.
+
+* "ctdb natgwlist" has been replaced by a top level "ctdb natgw"
+  command that has "master", "list" and "status" subcommands
+
+* The onnode command no longer supports the "recmaster", "lvs" and
+  "natgw" node specifications
+
+* Faster resetting of TCP connections to public IP addresses during
+  failover
+
+* Tunables MaxRedirectCount, ReclockPingPeriod,
+  DeferredRebalanceOnNodeAdd are now obsolete/ignored
+
+* "ctdb listvars" now lists all variables, including the first one
+
+* "ctdb xpnn", "ctdb rebalanceip" and "ctdb rebalancenode" have been
+  removed
+
+  These are not needed because "ctdb reloadips" should do the correct
+  rebalancing.
+
+* Output for the following commands has been simplified:
+
+    ctdb getdbseqnum
+    ctdb getdebug
+    ctdb getmonmode
+    ctdb getpid
+    ctdb getreclock
+    ctdb getpid
+    ctdb pnn
+
+  These now simply print the requested output with no preamble.  This
+  means that scripts no longer need to strip part of the output.
+
+  "ctdb getreclock" now prints nothing when the recovery lock is not
+  set.
+
+* Output for the following commands has been improved:
+
+  ctdb setdebug
+  ctdb uptime
+
+* "ctdb process-exists" has been updated to only take a PID argument
+
+  The PNN can be specified with -n <PNN>.  Output also cleaned up.
+
+* LVS support has been reworked - related commands and configuration
+  variables have changed
+
+  "ctdb lvsmaster" and "ctdb lvs" have been replaced by a top level
+  "ctdb lvs" command that has "master", "list" and "status"
+  subcommands.
+
+  See the LVS sections in ctdb(7) and ctdbd.conf(5) for details,
+  including configuration changes.
+
+* Improved sample NFS Ganesha call-out
+
+
+
+REMOVED FEATURES
+================
+
+only user and username parameters
+---------------------------------
+These two parameters have long been deprecated and superseded by
+"valid users" and "invalid users".
+
+
+smb.conf changes
+================
+
+  Parameter Name                Description             Default
+  --------------                -----------             -------
+  kccsrv:samba_kcc              Changed default         yes
+  ntlm auth                     Changed default         no
+  only user                     Removed
+  password hash gpg key ids     New
+  smb2 leases                   Changed default         yes
+  username                      Removed
+
+
+KNOWN ISSUES
+============
 
-  http://wiki.samba.org/index.php/Samba4/HOWTO
+Currently none.
 
 #######################################
 Reporting bugs & Development Discussion
@@ -300,7 +325,7 @@ 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 4.0 product in the project's Bugzilla
+be filed under the Samba 4.1 and newer product in the project's Bugzilla
 database (https://bugzilla.samba.org/).