X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=WHATSNEW.txt;h=5f2377130154d58d45da73f04cf62842973c1c96;hp=6de49f212e5e47459c6693a0a8e4c69787e478de;hb=57edc9a0d5fe092252b102c6bb34d94e5d5c13c1;hpb=d578e5069516d44e6bb89c8706a60addb04f96a1 diff --git a/WHATSNEW.txt b/WHATSNEW.txt index 6de49f212e5..5f237713015 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,12 +1,12 @@ Release Announcements ===================== -This is the first release candidate of Samba 4.9. This is *not* +This is the first preview release of Samba 4.10. 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.9 will be the next version of the Samba suite. +Samba 4.10 will be the next version of the Samba suite. UPGRADING @@ -16,430 +16,188 @@ UPGRADING NEW FEATURES/CHANGES ==================== +GPO Improvements +---------------- -net ads setspn ---------------- - -There is a new 'net ads setspn' sub command for managing Windows SPN(s) -on the AD. This command aims to give the basic functionality that is -provided on windows by 'setspn.exe' e.g. ability to add, delete and list -Windows SPN(s) stored in a Windows AD Computer object. - -The format of the command is: +A new 'samba-tool gpo export' command has been added that can export a +set of Group Policy Objects from a domain in a generalised XML format. -net ads setspn list [machine] -net ads setspn [add | delete ] SPN [machine] +A corresponding 'samba-tool gpo restore' command has been added to +rebuild the Group Policy Objects from the XML after generalization. +(The administrator needs to correct the values of XML entities between +the backup and restore to account for the change in domain). -'machine' is the name of the computer account on the AD that is to be managed. -If 'machine' is not specified the name of the 'client' running the command -is used instead. +kdc prefork +----------- -The format of a Windows SPN is - 'serviceclass/host:port/servicename' (servicename and port are optional) +The KDC now supports the pre-fork process model and worker processes will be +forked for the KDC when the pre-fork process model is selected for samba. -serviceclass/host is generally sufficient to specify a host based service. +prefork 'prefork children' +-------------------------- -net ads keytab changes ----------------------- -net ads keytab add no longer attempts to convert the passed serviceclass -(e.g. nfs, html etc.) into a Windows SPN which is added to the Windows AD -computer object. By default just the keytab file is modified. - -A new keytab subcommand 'add_update_ads' has been added to preserve the -legacy behaviour. However the new 'net ads setspn add' subcommand should -really be used instead. - -net ads keytab create no longer tries to generate SPN(s) from existing -entries in a keytab file. If it is required to add Windows SPN(s) then -'net ads setspn add' should be used instead. - -Local authorization plugin for MIT Kerberos -------------------------------------------- - -This plugin controls the relationship between Kerberos principals and AD -accounts through winbind. The module receives the Kerberos principal and the -local account name as inputs and can then check if they match. This can resolve -issues with canonicalized names returned by Kerberos within AD. If the user -tries to log in as 'alice', but the samAccountName is set to ALICE (uppercase), -Kerberos would return ALICE as the username. Kerberos would not be able to map -'alice' to 'ALICE' in this case and auth would fail. With this plugin account -names can be correctly mapped. This only applies to GSSAPI authentication, -not for the getting the initial ticket granting ticket. - -VFS audit modules ------------------ - -The vfs_full_audit module has changed it's default set of monitored successful -and failed operations from "all" to "none". That helps to prevent potential -denial of service caused by simple addition of the module to the VFS objects. - -Also, modules vfs_audit, vfs_ext_audit and vfs_full_audit now accept any valid -syslog(3) facility, in accordance with the manual page. - -Database audit support ----------------------- +The default value for this smdb.conf parameter has been increased from 1 to +4. -Changes to the Samba AD's sam.ldb database are now logged to Samba's debug log -under the "dsdb_audit" debug class and "dsdb_json_audit" for JSON formatted log -entries. - -Transaction commits and roll backs are now logged to Samba's debug logs under -the "dsdb_transaction_audit" debug class and "dsdb_transaction_json_audit" for -JSON formatted log entries. - -Password change audit support ------------------------------ +netlogon prefork +---------------- -Password changes in the AD DC are now logged to Samba's debug logs under the -"dsdb_password_audit" debug class and "dsdb_password_json_audit" for JSON -formatted log entries. +DCERPC now supports pre-forked NETLOGON processes. The netlogon processes are +pre-forked when the prefork process model is selected for samba. -Group membership change audit support -------------------------------------- +Offline domain backups +---------------------- -Group membership changes on the AD DC are now logged to -Samba's debug log under the "dsdb_group_audit" debug class and -"dsdb_group_json_audit" for JSON formatted log entries. +The 'samba-tool domain backup' command has been extended with a new 'offline' +option. This safely creates a backup of the local DC's database directly from +disk. The main benefits of an offline backup are it's quicker, it stores more +database details (for forensic purposes), and the samba process does not have +to be running when the backup is made. Refer to the samba-tool help for more +details on using this command. -Log Authentication duration +Group membership statistics --------------------------- -For NTLM and Kerberos KDC authentication, the authentication duration is now -logged. Note that the duration is only included in the JSON formatted log -entries. - -JSON library Jansson required for the AD DC -------------------------------------------- - -By default the Jansson JSON library is required for Samba to build. -It is strictly required for the Samba AD DC, and is optional for -builds --without-ad-dc by specifying --without-json-audit at configure -time. - -New Experimental LMDB LDB backend ---------------------------------- - -A new experimental LDB backend using LMDB is now available. This allows -databases larger than 4Gb (Currently the limit is set to 6Gb, but this will be -increased in a future release). To enable lmdb, provision or join a domain using -the --backend-store=mdb option. - -This requires that a version of lmdb greater than 0.9.16 is installed and that -samba has not been built with the --without-ldb-lmdb option. - -Please note this is an experimental feature and is not recommended for -production deployments. - -Password Settings Objects -------------------------- -Support has been added for Password Settings Objects (PSOs). This AD feature is -also known as Fine-Grained Password Policies (FGPP). - -PSOs allow AD administrators to override the domain password policy settings -for specific users, or groups of users. For example, PSOs can force certain -users to have longer password lengths, or relax the complexity constraints for -other users, and so on. PSOs can be applied to groups or to individual users. -When multiple PSOs apply to the same user, essentially the PSO with the best -precedence takes effect. - -PSOs can be configured and applied to users/groups using the 'samba-tool domain -passwordsettings pso' set of commands. - -Domain backup and restore -------------------------- -A new samba-tool command has been added that allows administrators to create a -backup-file of their domain DB. In the event of a catastrophic failure of the -domain, this backup-file can be used to restore Samba services. - -The new 'samba-tool domain backup online' command takes a snapshot of the -domain DB from a given DC. In the event of a catastrophic DB failure, all DCs -in the domain should be taken offline, and the backup-file can then be used to -recreate a fresh new DC, using the 'samba-tool domain backup restore' command. -Once the backed-up domain DB has been restored on the new DC, other DCs can -then subsequently be joined to the new DC, in order to repopulate the Samba -network. - -Domain rename tool ------------------- -Basic support has been added for renaming a Samba domain. The rename feature is -designed for the following cases: -1). Running a temporary alternate domain, in the event of a catastrophic -failure of the regular domain. Using a completely different domain name and -realm means that the original domain and the renamed domain can both run at the -same time, without interfering with each other. This is an advantage over -creating a regular 'online' backup - it means the renamed/alternate domain can -provide core Samba network services, while trouble-shooting the fault on the -original domain can be done in parallel. -2). Creating a realistic lab domain or pre-production domain for testing. - -Note that the renamed tool is currently not intended to support a long-term -rename of the production domain. Currently renaming the GPOs is not supported -and would need to be done manually. - -The domain rename is done in two steps: first, the 'samba-tool domain backup -rename' command will clone the domain DB, renaming it in the process, and -producing a backup-file. Then, the 'samba-tool domain backup restore' command -takes the backup-file and restores the renamed DB to disk on a fresh DC. - -New samba-tool options for diagnosing DRS replication issues ------------------------------------------------------------- - -The 'samba-tool drs showrepl' command has two new options controlling -the output. With --summary, the command says very little when DRS -replication is working well. With --json, JSON is produced. These -options are intended for human and machine audiences, respectively. - -The 'samba-tool visualize uptodateness' visualizes replication lag as -a heat-map matrix based on the DRS uptodateness vectors. This will -show you if (but not why) changes are failing to replicate to some DCs. - -Automatic site coverage and GetDCName improvements --------------------------------------------------- - -Samba's AD DC now automatically claims otherwise empty sites based on -which DC is the nearest in the replication topology. - -This, combined with efforts to correctly identify the client side in -the GetDCName Netlogon call will improve service to sites without a -local DC. - -Improved samba-tool computer command ------------------------------------- - -The 'samba-tool computer' command allow manipulation of computer -accounts including creating a new computer and resetting the password. -This allows an 'offline join' of a member server or workstation to the -Samba AD domain. - -Samba performance tool now operates against Microsoft Windows AD ----------------------------------------------------------------- - -The Samba AD performance testing tool traffic_reply can now operate -against a Windows based AD domain. Previously it only operated -correctly against Samba. - -DNS entries are now cleaned up during DC demote ------------------------------------------------ - -DNS records are now cleaned up as part of the 'samba-tool domain -demote' including both the default and --remove-other-dead-server -modes. - -Additionally DNS records can be automatically cleaned up for a given -name with the 'samba-tool dns cleanup' command, which aids in cleaning -up partially removed DCs. - -samba-tool ntacl sysvolreset is now much faster ------------------------------------------------ - -The 'samba-tool ntacl sysvolreset' command, used on the Samba AD DC, -is now much faster than in previous versions, after an internal -rework. - -Samba now tested with CI GitLab -------------------------------- - -Samba developers now have pre-commit testing available in GitLab, -giving reviewers confidence that the submitted patches pass a full CI -before being submitted to the Samba Team's own autobuild system. - -Dynamic DNS record scavenging support -------------------------------------- - -It is now possible to enable scavenging of DNS Zones to remove DNS -records that were dynamically created and have not been touched in -some time. - -This support should however only be enabled on new zones or new -installations. Sadly old Samba versions suffer from BUG 12451 and -mark dynamic DNS records as static and static records as dynamic. -While a dbcheck rule may be able to find these in the future, -currently a reliable test has not been devised. - -Finally, there is not currently a command-line tool to enable this -feature, currently it should be enabled from the DNS Manager tool from -Windows. Also the feature needs to have been enabled by setting the smb.conf -parameter "dns zone scavenging = yes". - -CTDB changes ------------- - -There are many changes to CTDB in this release. - -* Configuration has been completely overhauled - - - Daemon and tool options are now specified in a new ctdb.conf - Samba-style configuration file. See ctdb.conf(5) for details. - - - Event script configuration is no longer specified in the top-level - configuration file. It can now be specified per event script. - For example, configuration options for the 50.samba event script - can be placed alongside the event script in a file called - 50.samba.options. Script options can also be specified in a new - script.options file. See ctdb-script.options(5) for details. - - - Options that affect CTDB startup should be configured in the - distribution-specific configuration file. See ctdb.sysconfig(5) - for details. - - - Tunable settings are now loaded from ctdb.tunables. Using - CTDB_SET_TunableVariable= in the main configuration file is - no longer supported. See ctdb-tunables(7) for details. +A new 'samba-tool group stats' command has been added. This provides summary +information about how the users are spread across groups in your domain. +The 'samba-tool group list --verbose' command has also been updated to include +the number of users in each group. - A script to convert an old-style configuration to a new one will be - available for release but is not yet available. +prefork process restart +----------------------- -* The following configuration variables and corresponding ctdbd - command-line options have been removed and not replaced with - counterparts in the new configuration scheme: +The pre-fork process model now restarts failed processes. The delay between +restart attempts is controlled by the "prefork backoff increment" (default = 10) +and "prefork maximum backoff" (default = 120) smbd.conf parameters. A linear +back off strategy is used with "prefork backoff increment" added to the +delay between restart attempts up until it reaches "prefork maximum backoff". - CTDB_PIDFILE --pidfile - CTDB_SOCKET --socket - CTDB_NODES --nlist - CTDB_PUBLIC_ADDRESSES --public-addresses - CTDB_EVENT_SCRIPT_DIR --event-script-dir - CTDB_NOTIFY_SCRIPT --notification-script - CTDB_PUBLIC_INTERFACE --public-interface - CTDB_MAX_PERSISTENT_CHECK_ERRORS --max-persistent-check-errors +Using the default sequence the restart delays (in seconds) are: + 0, 10, 20, ..., 120, 120, ... - - The compile-time defaults should be used for the first 6 of these. - - Use a symbolic link from the configuration directory to specify a - different location for nodes or public_addresses (e.g. in the - cluster filesystem). - - Executable notification scripts in the notify.d/ subdirectory of - the configuration directory are now run by unconditionally. - - Interfaces for public IP addresses must always be specified in the - public_addresses file using the currently supported format. - - Some related items that have been removed are: - - - The ctdb command's --socket command-line option - - The ctdb command's CTDB_NODES environment variable - - When writing tests there are still mechanisms available to change - the locations of certain directories and files. - -* Event scripts have moved to the scripts/legacy subdirectory of the - configuration directory - - Event scripts must now end with a ".script" suffix. - -* The following service-related event script options have been - removed: - - CTDB_MANAGES_SAMBA - CTDB_MANAGES_WINBIND - - CTDB_MANAGES_CLAMD - CTDB_MANAGES_HTTPD - CTDB_MANAGES_ISCSI - CTDB_MANAGES_NFS - CTDB_MANAGES_VSFTPD - - CTDB_MANAGED_SERVICES - - Event scripts for services are now disabled by default. To enable - an event script and, therefore, manage a service use a command like - the following: - - ctdb event script enable legacy 50.samba +standard process model +---------------------- -* Notification scripts have moved to the scripts/notification - subdirectory of the configuration directory +When using the standard process model samba forks a new process to handle ldap +and netlogon connections. Samba now honours the 'max smbd processes' smb.conf +parameter. The default value of 0, indicates there is no limit. The limit +is applied individually to netlogon and ldap. When the process limit is +exceeded Samba drops new connections immediately. - Notification scripts must now end with a ".script" suffix. +python3 support +--------------- -* Support for setting CTDB_DBDIR=tmpfs has been removed +The version of python which is now the default for samba is python3. +'configure' & 'make' will execute using python3. It is possible to still +specify an additional python version with '--extra-python' +e.g. '--extra-python=/usr/bin/python2'. It should be noted that support for +this option will be deprecated in a future release. - This feature has not been implemented in the new configuration - system. If this is desired then a tmpfs filesystem should be - manually mounted on the directory pointed to by the "volatile - database directory" option. See ctdb.conf(5) for more details. +What if I need to build with python2? To build with python2 you *must* set +the 'PYTHON' environent variable to override the python3 default for both +'configure' and 'make' steps. -* Support for the NoIPHostOnAllDisabled tunable has been removed + 'PYTHON=python2 ./configure.developer' +& + 'PYTHON=python2 make' - If all nodes are unhealthy or disabled then CTDB will not host - public IP addresses. That is, CTDB now behaves as if - NoIPHostOnAllDisabled were set to 1. +Note: Support for python2 (with the exception of a build configured with + 'PYTHON=python2 ./configure --disable-python' and built with + 'PYTHON=python2 make' will be deprecated in the next release. -* The onnode command's CTDB_NODES_FILE environment variable has been - removed +JSON logging +------------ - The -f option can still be used to specify an alternate node file. +Authentication messages now contain the Windows Event Id "eventId" and logon +type "logonType". The supported event codes and logon types are: + Event codes: + 4624 Successful logon + 4625 Unsuccessful logon -* The 10.external event script has been removed + Logon Types: + 2 Interactive + 3 Network + 8 NetworkCleartext -* The CTDB_SHUTDOWN_TIMEOUT configuration variable has been removed +The version number for Authentication messages is now 1.1, changed from 1.0 - As with other daemons, if ctdbd does not shut down when requested - then manual intervention is required. There is no safe way of - automatically killing ctdbd after a failed shutdown. +Password change messages now contain the Windows Event Id "eventId", the +supported event Id's are: + 4723 Password changed + 4724 Password reset -* CTDB_SUPPRESS_COREFILE and CTDB_MAX_OPEN_FILES configuration - variable have been removed +The version number for PasswordChange messages is now 1.1, changed from 1.0 - These should be setup in the systemd unit/system file or, for SYSV - init, in the distribution-specific configuration file for the ctdb - service. +Group membership change messages now contain the Windows Event Id "eventId", +the supported event Id's are: + 4728 A member was added to a security enabled global group + 4729 A member was removed from a security enabled global group + 4732 A member was added to a security enabled local group + 4733 A member was removed from a security enabled local group + 4746 A member was added to a security disabled local group + 4747 A member was removed from a security disabled local group + 4751 A member was added to a security disabled global group + 4752 A member was removed from a security disabled global group + 4756 A member was added to a security enabled universal group + 4757 A member was removed from a security enabled universal group + 4761 A member was added to a security disabled universal group + 4762 A member was removed from a security disabled universal group -* CTDB_PARTIALLY_ONLINE_INTERFACES incompatibility no longer enforced - 11.natgw and 91.lvs will no longer fail if - CTDB_PARTIALLY_ONLINE_INTERFACES=yes. The incompatibility is, - however, well documented. This option will be removed in future and - replaced by sensible behaviour where public IP addresses simply - switch interfaces or become unavailable when interfaces are down. +The version number for GroupChange messages is now 1.1, changed from 1.0. Also +A GroupChange message is generated when a new user is created to log that the +user has been added to their primary group. -* Configuration file /etc/ctdb/sysconfig/ctdb is no longer supported +The leading "JSON :" and source file prefix of the JSON formatted +log entries has been removed to make the parsing of the JSON log messages +easier. JSON log entries now start with 2 spaces followed by an opening brace +i.e. " {" -GPO Improvements ----------------- -The samba_gpoupdate command (used in applying Group Policies to the -samba machine itself) has been renamed to samba_gpupdate and had the -syntax changed to better match the same tool on Windows. REMOVED FEATURES ================ +MIT Kerberos build of the AD DC +------------------------------- +While not removed, the MIT Kerberos build of the Samba AD DC is still +considered experimental. Because Samba will not issue security +patches for this configuration, such builds now require the explicit +configure option: --with-experimental-mit-ad-dc -smb.conf changes -================ - -As the most popular Samba install platforms (Linux and FreeBSD) both -support extended attributes by default, the parameters "map readonly", -"store dos attributes" and "ea support" have had their defaults changed -to allow better Windows fileserver compatibility in a default install. - - Parameter Name Description Default - -------------- ----------- ------- - map readonly Default changed no - store dos attributes Default changed yes - ea support Default changed yes - full_audit:success Default changed none - full_audit:failure Default changed none +For further details see +https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC -VFS interface changes -===================== +samba_backup +------------ -The VFS ABI interface version has changed to 39. Function changes -are: +The samba_backup script has been removed. This has now been replaced by the +'samba-tool domain backup offline' command. -SMB_VFS_FSYNC: Removed: Only async versions are used. -SMB_VFS_READ: Removed: Only PREAD or async versions are used. -SMB_VFS_WRITE: Removed: Only PWRITE or async versions are used. -SMB_VFS_CHMOD_ACL: Removed: Only CHMOD is used. -SMB_VFS_FCHMOD_ACL: Removed: Only FCHMOD is used. +smb.conf changes +================ -Any external VFS modules will need to be updated to match these -changes in order to work with 4.9.x. + Parameter Name Description Default + -------------- ----------- ------- + prefork backoff increment Delay added to process restart 10 (seconds) + between attempts. + prefork maximum backoff Maximum delay for process between 120 (seconds) + process restart attempts + smbd search ask sharemode Name changed, old name was + "smbd:search ask sharemode" + smbd async dosmode Name changed, old name was + "smbd:async dosmode" + smbd max async dosmode Name changed, old name was + "smbd:max async dosmode" + smbd getinfo ask sharemode New: similar to "smbd search ask yes + sharemode" but for SMB getinfo KNOWN ISSUES ============ -https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.9#Release_blocking_bugs +https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.10#Release_blocking_bugs #######################################