第6章 主なバグ修正

本章では、ユーザーに大きな影響を与える Red Hat Enterprise Linux 7 で修正されたバグを説明します。

6.1. 認証および相互運用性

Directory Server がバージョン 1.3.10 にリベース

389-ds-base パッケージがアップストリームバージョン 1.3.10 にアップグレードし、以前のバージョンにバグ修正が数多く追加されました。

(BZ#1740693)

サーバーが検索操作を拒否すると、Directory Server が検索ベースを正しくログに記録

以前では、プロトコルエラーにより Directory Server が検索操作を拒否した場合、サーバーは、ログに実際の検索ベースではなく base="(null)" を記録していました。今回の更新で、Directory Server は正しい内部変数をログ操作に渡します。これにより、サーバーは上記のシナリオで検索ベースを正しく記録します。

(BZ#1662461)

Directory Server が etime 値のロギングを改善

以前は、操作が 1 秒の境界で開始および完了し、操作にかかる時間が 1 秒未満の場合は、Directory Server が、誤って計算した etime 値をログに記録していました。そのため、ログに記録された値が大きすぎました。今回の更新でこの問題が修正されています。そのため、計算された etime 値は、開始および終了のタイムスタンプに近づくようになりました。

(BZ#1732053)

Directory Server が、アクセスログに正しい etime 値を記録

以前は、Directory Server は、/var/log/dirsrv/slapd-<instance_name>/access ログファイルの etime フィールドを誤ってフォーマットしていました。そのため、ナノ秒単位の時間値は、実際の値の 10 分の 1 でした。今回の更新でこの問題が修正されました。これにより、Directory Server は、etime フィールドに正しいナノ秒値を記録するようになりました。

(BZ#1749236)

Directory Server ログメッセージの重大度が変更

以前は、Directory Server が、Event <event_name> should not occur in state <state_name>; going to sleep メッセージを誤って error としてログに記録していました。今回の更新で、このメッセージの重大度が warning に変更されました。

(BZ#1639342)

Directory Server が、1 つの要求で 1.1 およびその他の属性を検索する際に RFC 4511 に準拠

一致する識別名 (DN) の一覧のみを取得する場合、LDAP ユーザーは 1.1 特殊属性を検索できます。RFC 4511 に従って、LDAP クライアントが 1 つの検索要求で、1.1. 固有の属性をその他の属性を組みわせて検索すると、サーバーは 1.1 固有の属性を無視する必要があります。

以前では、Directory Server ユーザーが、同じ検索要求で 1.1 に固有の属性とその他の属性を検索すると、サーバーは属性を返しませんでした。今回の更新でこの問題が修正されました。その結果、Directory Server は上記のシナリオで RFC 4511 に準拠しています。

(BZ#1723545)

Directory Server が、正しい順序でパスワードポリシーコントロールを返す

以前は、ユーザーのパスワードの有効期限が切れると、Directory Server は、猶予ログインが使い果たされたかどうかに応じて、異なる順序でパスワードポリシー制御を返していました。これにより、RFC 4511 標準仕様に準拠する LDAP クライアントで問題が発生することがありました。今回の更新で問題が修正され、Directory Server は正しい順序でパスワードポリシー制御を返すようになりました。

(BZ#1724914)

Directory Server も、拡張操作から受け取る cleanAllRUV タスクの最大同時発生数に制限を適用

Directory Server は、最大 64 個の並行 cleanAllRUV タスクに対応します。以前では、Directory Server は、手動で作成したタスクに対してのみこの制限を適用し、、拡張操作から受け取ったサーバーのタスクには適用しませんでした。これにより、64 個以上の並行 cleanAllRUV タスクが同時に実行すると、サーバーの速度が低下する可能性がありました。今回の更新で、適切なタスクの数を追跡し、スレッドを中止するカウンターが追加されました。これにより、最大 64 個の並列 cleanAllRUV タスクを同時に実行できます。

(BZ#1739182)

ネストされた多くのサブツリーを持つ Directory Server データベースへの大規模な LDIF ファイルのインポート速度が大きく改善

以前は、Directory Server データベースにネスト化されたサブツリーが多数含まれていた場合は、ldif2db ユーティリティーおよび ldif2db.pl ユーティリティーを使用して大規模な LDIF ファイルをインポートしていました。今回の更新で、Directory Server は、すべてのエントリーの後に ancestorid インデックスを追加するようになりました。これにより、ネストされたサブツリーを多数持つデータベースへの LDIF ファイルがインポート速度が大きく改善されました。

(BZ#1749595)

Directory Server が、以前の SASL バインドが接続を完全に初期化した後のみ新しい操作を処理

SASL (Simple Authentication and Security Layer) フレームワークを使用したバインド中に、Directory Server はコールバック関数セットを初期化します。以前は、Directory Server が SASL バインド時に同じ接続で追加の操作を受け取ると、この操作は完全に初期化されていなくても、コールバック機能にアクセスし、使用できるようになりました。これにより、Directory Server インスタンスが予期せずに終了します。今回の更新で、サーバーは、以前の SASL バインドが正常に初期化されるまで、コールバック構造にアクセスして使用しないようになります。これにより、この状況で Directory Server がクラッシュしなくなりました。

(BZ#1756182)

cl-dump.pl ユーティリティーおよび cl-dump ユーティリティーが、変更ログをエクスポートした後に一時ファイルを削除

以前は、Directory Server の cl-dump.pl ユーティリティーおよび cl-dump ユーティリティーが /var/lib/dirsrv/slapd-<instance_name>/changelogdb/ ディレクトリーに一時 LDIF ファイルを作成していました。変更ログをエクスポートした後、ユーティリティーは一時ファイルの名前を *.done に変更します。これにより、一時ファイルが大きいと、空きディスク容量が少なくなる可能性があります。今回の更新で、デフォルトでは cl-dump.pl および cl-dump が、エクスポートの終了時に一時ファイルを削除するようになりました。さらに、一時ファイルを手動で保存できるように、両方のユーティリティーに -l オプションが追加されました。このため、cl-dump.pl および cl-dump は、変更ログやユーザーをエクスポートしてからディスク領域を解放します。-l オプションを使用して古い動作を強制することもできます。

(BZ#1685059)

IdM は、IdM サーバーまたはレプリカのインストールまたは更新する時に TLS 1.2 のみを使用するように Apache NSS モジュールを設定

以前は、管理者が Identity Management (IdM) サーバーまたはレプリカをインストールすると、インストーラーは Apache Web サーバーのネットワークセキュリティーサービス (NSS) モジュールの TLS 1.0 プロトコル、TLS 1.1 プロトコル、および TLS 1.2 プロトコルを有効にしていました。今回の更新で、以下の変更が追加されました。

  • 新しいサーバーまたはレプリカを設定するすると、IdM は、強力な TLS 1.2 プロトコルのみを有効にします。
  • 今回の更新で、既存の IdM サーバーおよびレプリカで、弱い TLS 1.0 プロトコルおよび TLS 1.1 プロトコルが無効になります。

これにより、新規および更新された IdM サーバーおよびレプリカは、Apache Web サーバーの NSS モジュールで強力な TLS 1.2 プロトコルのみを使用します。

(BZ#1711172)

IdM が cn=CAcert,cn=ipa,cn=etc,<base_DN> エントリーの証明書レコードを適切に更新

以前は、Identity Management (IdM) の認証局 (CA) の証明書を更新するか、CA 証明書チェーンを修正した後、IdM が cn=CAcert,cn=ipa,cn=etc,<base_DN> エントリーに保存されている証明書レコードを更新しませんでした。これにより、RHEL 6 への IdM クライアントのインストールは失敗していました。今回の更新で、IdM が cn=CAcert,cn=ipa,cn=etc,<base_DN> の証明書レコードを更新するようになりました。これにより、管理者が CA 証明書を更新したり、IdM CA で証明書チェーンを更新すると、RHEL 6 に IdM をインストールすると成功するようになりました。

(BZ#1544470)

--server で指定されたサーバーが必要なロールをすべて提供することを ipa-replica-install ユーティリティーが確認

ipa-replica-install ユーティリティーは、--server オプションを使用して、インストーラーが登録に使用する Identity Management (IdM) サーバーを指定します。以前は、ipa-replica-install は、提供されたサーバーが認証局 (CA) ロールおよび鍵回復機関 (KRA) ロールを提供していることを確認しませんでした。そのため、インストーラーは、CA ロールおよび KRA ロールを提供する別のサーバーから、指定されたサーバーと CA データからドメインデータを複製していました。この更新により、ipa-replica-install は、指定したサーバーが必要なすべてのロールを提供することを検証します。その結果、管理者が --server オプションを使用する場合、ipa-replica-install は、指定したサーバーからのデータのみを複製します。

(BZ#1754494)

ipa sudorule-add-option で、既存の sudo ルールにオプションが追加されても誤ったエラーが表示されなくなる

以前のバージョンでは、sudo ルールにホスト、ホストグループ、ユーザー、またはユーザーグループがすでに含まれる場合に、ipa sudorule-add-option コマンドは sudo ルールコンテンツを誤って処理していました。このため、ipa sudorule-add-optionsudooption の引数を併せて使用すると、正常に完了してもエラーが返されていました。このバグは修正され、ipa sudorule-add-option は上記のシナリオで正確な出力を表示するようになりました。

(BZ#1691939)

IdM ではアカウントを preserved から stage に移行する時に全カスタム属性を消去しなくなった

以前のバージョンでは、IdM は、preserved アカウントで定義された属性の一部のみを処理していました。そのため、アカウントを preserved から stage に移動すると、カスタム属性がすべて失われていました。今回の更新で、IdM は preserved アカウントに定義されたすべての属性を処理し、上記の問題が発生しなくなりました。

(BZ#1583950)

サブ CA 鍵レプリケーションに失敗しなくなる

以前のバージョンでは、Kerberos ライブラリーで認証情報キャシュ (ccache) の動作を変更すると、軽量の認証局 (CA) の鍵レプリケーションに失敗していました。今回の更新で、IdM の軽量 CA 鍵レプリケーションクライアントコードが、ccache の動作の変更に対応するようになりました。そのため、軽量の CA 鍵レプリケーションが適切に機能するようになりました。

(BZ#1755223)

証明書システムはシステムが他のサブシステムまたは LDAP サーバーのクライアントとして動作する場合の監査イベントを記録する

以前のバージョンでは、システムが他のサブシステムまたは LDAP サーバーのクライアントとして動作した場合には、証明書システムに監査イベントが含まれませんでした。そのため、このような状況下では、サーバーはイベントを記録しませんでした。今回の更新で、CLIENT_ACCESS_SESSION_ESTABLISH_FAILURECLIENT_ACCESS_SESSION_ESTABLISH_SUCCESS および CLIENT_ACCESS_SESSION_TERMINATED イベントが証明書システムに追加されました。その結果、証明書システムは、クライアントとして動作する場合に監査イベントを記録します。

(BZ#1523330)

python-kdcproxy ライブラリーで、大規模な Kerberos 応答が破棄されなくなる

以前は、Active Directory Kerberos Distribution Center (KDC) が、大規模な Kerberos レプリカを複数の TCP パケットに分割した場合に、python-kdcproxy ライブラリーがそのパッケージを削除していました。今回の更新でこの問題が修正されました。これにより、python-kdcproxy が大規模な Kerberos 応答を正しく処理します。

(BZ#1746107)