[samba-jp:22916] Samba 4.7.0リリースノード翻訳(Re: [Samba] [Announce] Samba 4.7.0 Available for Download)

TAKAHASHI Motonobu/高橋 基信 monyo @ monyo.com
2019年 1月 15日 (火) 02:49:51 JST


たかはしもとのぶです。

こちらも翻訳してみました。
後は、4.6、4.5と少しずつ古いほうにさかのぼってみようかと思います。

======================================================
		"Debugging is like being the detective
		 in a crime movie where you are also
		 the murderer."

		 Filipe Fortes
======================================================


リリースアナウンスメント
------------------------

これは、Samba 4.7 系列の最初の安定版リリースである。
アップグレード前に、以下のリリースノートを熟読すること。

アップグレード
==============

'smbclient' の変更点
--------------------

'smbclient' がサーバに接続した際、'Domain=[...] OS=[Windows 6.1] 
Server=[...]' というバナーを表示しなくなった。SMB2 や Kerberos 環境
では、これらの情報を確実に表示する方法がない。今回の変更で、この
ような状況が完全に避けられる。対話的なセッションでは、次のバナーが
ユーザに表示される: 'Try "help" do get a list of possible commands.'

"client max protocol" のデフォルトが "SMB3_11" に変更となった。これに
より、'smbclient' (および関連するコマンド)が、SMB1 のサポートがない
サーバに対しても動作するようになった。

'-m/--max-protocol' オプションを用いることで、"client max protocol"
を一時的に変更することは可能である。

加えて、'-e/--encrypt' オプションは、大半の SMB3 サーバに対して機能する
(例えば Windows >= 2012 & Samba >= 4.0.0 の環境)ため、SMB1 の unix
extension は暗号化に必須ではない。

SMB3_11 をデフォルトとする変更により、'smbclient' のデフォルトでは
"unix extensions = yes" の Samba サーバと通信する際であっても、
SMB1 の unix extension をネゴシエーションしなくなった。結果として、
次に示すようなコマンドが利用できなくなる: 'posix_encrypt', 'posix_open',
'posix_mkdir', 'posix_rmdir', 'posix_unlink', 'posix_whoami', 'getfacl',
'symlink'。"-mNT1" を指定することで、サーバが SMB1 をサポートしている
際、これらのコマンドを再有効化できる。

"client min protocol" のデフォルト("CORE")は変更されていない。その
ため、デフォルトでは SMB1 のみ有効なサーバにも接続できる。

'smbclient' に 'deltree' コマンドが新規に追加された。これにより、
ディレクトリツリーの再帰的な削除が可能となる。

新機能および変更点
==================

DB 全体の読み取りロック: LDAP および複製一貫性の向上
----------------------------------------------------

Sa,ba 4.7 および ldb 1.2.0 以前では、Samba が利用する LDB データベース
レイヤでは、検索や DRS 複製操作を保護するための DB 全体の読み取り
ロックを行えないという問題のある状態であった。

> While each object returned remained subject to a record-level lock (so
> would remain consistent to itself), under a race condition with a
> rename or delete, it and any links (like the member attribute) to it
> would not be returned.

これにより発生する問題には、次のものが含まれる:

クライアント側のログに、次のような複製エラーが発生する:
error during DRS repl ADD: No objectClass found in replPropertyMetaData for
 Failed to commit objects:
 WERR_GEN_FAILURE/NT_STATUS_INVALID_NETWORK_RESPONSE

特定の rpc_server プロセスにおける、INTERNAL ERROR: Signal 11 での
サーバクラッシュ。

LDAP の読み取り一貫性
>  A DN subject to a search at the same time as it is being renamed
>  may not appear under either the old or new name, but will re-appear
>  for a subsequent search.
> 
この問題の詳細および影響を受ける環境におけるデータベース復旧の最新の
アドバイスについては、https://bugzilla.samba.org/show_bug.cgi?id=12858
を参照のこと。

Samba AD における MIT Kerberos サポート
---------------------------------------

四年にわたる開発を経て、Samba は遂に MIT Kerberos を用いた Samba AD
のコンパイルと実行をサポートした。有効化するには、次のようにする:

    ./configure --with-system-mitkrb5

Samba で AD DC サポートを有効化してビルドする際は、バージョン 1.15.1 
の MIT Kerberos が必要である。krb5-devel および krb5-server パッケージ
も必要となる。機能的には Heimdal によるビルドと同等ではないが、重要な
点は、フォレスト間信頼や外部信頼と同様、動作するということであろう。
Samba は MIT Kerberos から提供される KDC を利用する。

Heimdal と比較して不足している機能は次のとおり:
  * PKINIT サポート
  * S4U2SELF/S4U2PROXY サポート
  * RODC サポート(Heimdal でも完全に動作するわけではないが)

Samba AD プロセスは MIT KDC を起動させ、Samba AD のデータベースに
アクセスするための KDB(Kerberos Database)ドライバをロードする。
AD DC を 'samba-tool' によってプロビジョニングする際には、MIT KDC
用の適切な kdc.conf を作成する。

詳細は、以下を参照のこと。
https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC

動的 RPC ポートの範囲
---------------------

RPC サービスの動的ポートの範囲が、以前のデフォルト値である 
"1024-1300" から "49152-65535" に変更された。このポートの範囲は、
Samba AD DC だけが使うものではなく、NT4 形式のドメインコントローラを
含むサーバロールすべてに対して適用される。新しい値は、Microsoft が
Windows Server 2008 以降のバージョンで設定したものである。管理者が
これらのポートの範囲の管理をより簡便に行えるよう、デフォルト値を
同一としたうえで、"rpc server dynamic port range" パラメータで構成
できるようにした。

"rpc server port" パラメータは、利用可能なポートの先頭の値を
新しい"rpc server dynamic port range" パラメータから取得する。
"rpc server port" は、Samba を AD DC としてプロビジョニングした際のみ
有効である。

認証と認可の監査ログ
--------------------

詳細な認証および認可に関する監査情報が Samba のデバッグログに、
"auth_audit" デバッグクラスで記録されるようになった。これには、
監査対象となるクライアントの IP アドレスも含まれる。これに加えて、
Samba が jansson JSON ライブラリとともにコンパイルされた場合、
"auth_json_audit" デバッグクラスにより、JSON 形式でのログが出力
される。

監査のサポートは、明示的なパスワードの変更のみならず、Samba の
Active Directory ドメインコントローラ内で行われる、ユーザアカウントの
すべての認証および認可に適用される。ファイルサーバや、以前の NT4
形式のドメインコントローラについては、NTLM 認証および SMB と RPC の
認可が対象となる。パスワード変更は現在対象外である。また、本機能は
現時点ではテストツールの対象に含まれていない。

詳細は以下を参照のこと。
https://wiki.samba.org/index.php/Setting_up_Audit_Logging

LDAP サーバの複数プロセス化
---------------------------

AD DC の LDAP サーバが、シングルプロセスモデルから、他の 'samba'
プロセスと同様のプロセスモデルになった。これは、大規模な AD
クライアント環境への対応力や、AD DC の包括的な耐障害性を向上させる
一方で、LDAP クライアントごとに fork された子プロセスが作成される
ため、環境によってはリソースに負担をかけることになるかもしれない。
Samba をリソースが制約された VM上で実行させる際には、より多くの
RAM とスワップ領域の割り当てを検討してほしい。

読み取り専用ドメイン コントローラ(RODC)のサポート改善
-------------------------------------------------------

Samba AD における RODC のサポートは、今まで実験的という扱いであった。
本バージョンにおいて多くの致命的なバグが修正され、書き込みが不要の
DC 環境において、RODC を利用できるようになった。RODC は不正な
パスワードによるロックアウトや msDS-RevealedUsers 属性による
パスワード開示の監査を正しくサポートするようになった。

RWDC の修正により、Windows RODC との親和性が向上し、グループの複製や
パスワードの更新の失敗といった、不可解なデータの消失が抑止される。
RODC に対するパスワードの変更は拒否され、LDAP 経由での参照(referral)
が返却される。

> While any bad passwords can
> trigger domain-wide lockout, good passwords which have not been replicated yet
> for a password change can only be used via NTLM on the RODC (and not Kerberos).

書き込み可能 DC の検索についての RODC の信頼性は、依然若干の改善が
必要であるため、RODC については 'password server' パラメータの
使用が通常推奨される。

Samba 4.7 は、RODC としての利用もしくは RODC との連携を安全に行える
最初の Samba のリリースである。以前の Samba を RODC として、もしくは
RODC と連携して利用している場合はアップグレードすること。

特に、以前のバージョンの RODC に対するパスワード開示のセキュリティ
実装の詳細について、
https://bugzilla.samba.org/show_bug.cgi?id=12977 を参照のこと。

supplementalCredentials 内に格納されるパスワードハッシュの追加
--------------------------------------------------------------

新規パラメータ 'password hash userPassword schemes' が追加され、SHA-256
および SHA-512 ハッシュの生成が可能となった(平文パスワードを復号化
可能な状態で格納することなしに)。これは以前の成果である、AD DC
とのパスワード同期の改善(当初は GPG を利用して)に基づくものである。

'samba-tool' コマンドも、これらのハッシュの解読ができるように更新
された。これには、同じく supplementalCredentials 内に格納されていた
(HTTP) WDigest ハッシュの解読も含まれる。

Active Directory のドメイン参加時における DNS の改善
----------------------------------------------------

'samba-tool domain join' コマンドは、ドメイン参加の際に RPC 経由の
通信が可能であれば、A および GUID の DNS レコードを追加するように
なった(ローカルサーバ、リモートサーバ双方において)。これにより
ドメイン参加後の複製の進捗がより円滑に行われるようになった。

SOA レコードの mname 属性も、ローカルの書き込み可能サーバを指す
ように自動生成されるようになった。'samba_dnsupdate' の信頼性が向上し、
resolv.conf でフォワーダが指定されていても、適切な DNS サーバを
発見できるようになった。

AD のパフォーマンスおよび複製の顕著な改善
-----------------------------------------

従来、グループのメンバ構成の複製は、AD DC にとって非常に負担のかかる
処理であった。これは、主に不要な CPU 時間がメンバにリンクされた属性の
解析に費やされていたためである。このバージョンからは、既存メンバの
検索処理向上のため、リンクされた属性がソート済の状態でデータベースに
格納されるようになった。多くのグループのメンバ構成情報を有するドメイン
において、ドメイン参加に要する時間は Samba 4.6 と比較して半減した。

LDAP 検索のパフォーマンスも、特にインデックス化されていない検索に
おいて向上した。セキュリティ識別子の解析と処理もより効率化され、
複製のみならず、全般的なパフォーマンスも向上した。

オープンされたファイルやディレクトリのレコードの検索
----------------------------------------------------

Samba では、オープンされたファイルやディレクトリのレコードを
'net tdb locking' コマンドで検索することができる。クラスタ化された
Samba において、これは ctdb 内の "hot" レコードの警告に関連する
ファイルやディレクトリを特定する際に有用である。

lpcfg_register_defaults_hook() の削除
-------------------------------------

ドキュメント化されておらず、サポートもされていない関数
lpcfg_register_defaults_hook() が外部のプロジェクトで、Samba の
呼び出しおよびsmb.conf のデフォルトパラメータの設定変更に使われて
いたが、この関数は削除された。もし、プロジェクトでこの関数を
使っている場合は、samba-technical @ lists.samba.org で問題を報告
してほしい。同様の機能を提供するサポートされた方法を検討する。

ローダブルモジュールのインタフェース変更
----------------------------------------

Samba のすべてのローダブルモジュール共通の _init 関数が次のように
変更された:

従来: 
NTSTATUS _init(void);

今後:
NTSTATUS _init(TALLOC_CTX *);

これにより、モジュールをロードするプログラムが、長期的に存在している
talloc コンテキスト(モジュールのロード中存在していることが保証
されていること)を引き渡すことが可能となる。これにより、モジュールが
talloc_autofree_context()(これは本質的にスレッドセーフでない)を
呼び出すことを回避しつつ、引き続き終了の際の valgrind-clean を保って
いる。長期的に存在しているデータが不要のモジュールは、talloc 
コンテキストとして NULL を指定すること。

SHA256 LDAPS の証明書
---------------------

LDAPS を利用するために生成された自己署名証明書が、SHA1 の自己署名
から SHA256 の自己署名に変更された。

ただし、この証明書を信頼される CA によって署名された証明書と
置き換えることを、引き続き強く推奨する。

CTDB の変更点
-------------

(開発者向け情報のため省略)

x86_64 用高速 AES 暗号化インストラクションの利用
------------------------------------------------

x86_64 上の Samba は、Intel の高速 AES インストラクションセットを
利用する設定が行えるようになった。これにより、SMB3 の署名および
暗号化がクライアント、サーバ双方で顕著に高速化されることが期待される。
これを有効化するには、Samba の configure の際に、新しいオプション
--accel-aes=intelaesni を指定する。

これは、ユーザが x86_64 プラットフォームにおいて、Intel の高速 AES
のメリットを享受できるようにするための一時的な方策であり、長期的な
解決策としては、Samba を完全にサポートする外部の暗号化ライブラリに
移行することになるだろう。

サードパーティのコードや aesni-intel のコードは、外部の暗号化
ライブラリのパフォーマンスが期待するレベルに達し次第、削除される
予定である。

デフォルトのビルドでは、--accel-aes は指定されないため、既存の
Samba のソフトウェア的な AES 実装が用いられる。

パラメータの変更点
------------------

グローバルパラメータの "strict sync" のデフォルト値が "no" から yes"
に変更された。これにより、smbd はデフォルトでクライアントからの
リクエストに応じて、システムバッファ内の未書き込みのデータをディスク
上に安全に同期するようになる。現在の SMB1/2/3 クライアントについては、
このデフォルト設定がより安全である。

'ntlm auth' オプションのデフォルト値が、これまでの挙動に基づき、
'ntlmv2-only' に変更となった。加えて新しく二つの値が追加された。
'mschapv2-and-ntlmv2-only'(MSCHAPv2 を許可し、NTLMv1 を拒否)および
'disabled' である。後者は、NTLM 認証およびパスワード変更を完全に
無効化する。

smb.conf の変更点
-================

  Parameter Name                     Description             Default
  --------------                     -----------             -------
  allow unsafe cluster upgrade       New parameter           no
  auth event notification            New parameter           no
  auth methods                       Deprecated
  client max protocol                Effective               SMB3_11
                                     default changed
  map untrusted to domain            New value/              auto
                                     Default changed/
                                     Deprecated
  mit kdc command                    New parameter
  profile acls                       Deprecated
  rpc server dynamic port range      New parameter           49152-65535
  strict sync                        Default changed         yes
  password hash userPassword schemes New parameter
  ntlm auth                          New values              ntlmv2-only

既知の問題点
============

https://wiki.samba.org/inFdex.php/Release_Planning_for_Samba_4.7#Release_blocking_bugs


CHANGES SINCE 4.7.0rc6
======================
(以下詳細な変更点の記載は省略)

#######################################
Reporting bugs & Development Discussion
#######################################

Please discuss this release on the samba-technical mailing list or by
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.1 and newer product in the project's Bugzilla
database (https://bugzilla.samba.org/).


======================================================================
== Our Code, Our Bugs, Our Responsibility.
== The Samba Team
======================================================================

================
Download Details
================

The uncompressed tarballs and patch files have been signed
using GnuPG (ID 6F33915B6568B7EA).  The source code can be downloaded
from:

        https://download.samba.org/pub/samba/stable/

The release notes are available online at:

        https://www.samba.org/samba/history/samba-4.7.0.html

Our Code, Our Bugs, Our Responsibility.
(https://bugzilla.samba.org/)

                        --Enjoy
                        The Samba Team
-- 
TAKAHASHI Motonobu/高橋 基信 <monyo @ monyo.com>


samba-jp メーリングリストの案内