第6章 主なバグ修正
本章では、ユーザーに大きな影響を与える Red Hat Enterprise Linux 7 で修正されたバグを説明します。
6.1. 認証および相互運用性
Directory Server がバージョン 1.3.10 にリベース
389-ds-base パッケージがアップストリームバージョン 1.3.10 にアップグレードし、以前のバージョンにバグ修正が数多く追加されました。
サーバーが検索操作を拒否すると、Directory Server が検索ベースを正しくログに記録
以前では、プロトコルエラーにより Directory Server が検索操作を拒否した場合、サーバーは、ログに実際の検索ベースではなく base="(null)"
を記録していました。今回の更新で、Directory Server は正しい内部変数をログ操作に渡します。これにより、サーバーは上記のシナリオで検索ベースを正しく記録します。
Directory Server が etime
値のロギングを改善
以前は、操作が 1 秒の境界で開始および完了し、操作にかかる時間が 1 秒未満の場合は、Directory Server が、誤って計算した etime
値をログに記録していました。そのため、ログに記録された値が大きすぎました。今回の更新でこの問題が修正されています。そのため、計算された etime
値は、開始および終了のタイムスタンプに近づくようになりました。
Directory Server が、アクセスログに正しい etime
値を記録
以前は、Directory Server は、/var/log/dirsrv/slapd-<instance_name>/access
ログファイルの etime
フィールドを誤ってフォーマットしていました。そのため、ナノ秒単位の時間値は、実際の値の 10 分の 1 でした。今回の更新でこの問題が修正されました。これにより、Directory Server は、etime
フィールドに正しいナノ秒値を記録するようになりました。
Directory Server ログメッセージの重大度が変更
以前は、Directory Server が、Event <event_name> should not occur in state <state_name>; going to sleep
メッセージを誤って error
としてログに記録していました。今回の更新で、このメッセージの重大度が warning
に変更されました。
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 に準拠しています。
Directory Server が、正しい順序でパスワードポリシーコントロールを返す
以前は、ユーザーのパスワードの有効期限が切れると、Directory Server は、猶予ログインが使い果たされたかどうかに応じて、異なる順序でパスワードポリシー制御を返していました。これにより、RFC 4511 標準仕様に準拠する LDAP クライアントで問題が発生することがありました。今回の更新で問題が修正され、Directory Server は正しい順序でパスワードポリシー制御を返すようになりました。
(BZ#1724914)
Directory Server も、拡張操作から受け取る cleanAllRUV
タスクの最大同時発生数に制限を適用
Directory Server は、最大 64 個の並行 cleanAllRUV
タスクに対応します。以前では、Directory Server は、手動で作成したタスクに対してのみこの制限を適用し、、拡張操作から受け取ったサーバーのタスクには適用しませんでした。これにより、64 個以上の並行 cleanAllRUV
タスクが同時に実行すると、サーバーの速度が低下する可能性がありました。今回の更新で、適切なタスクの数を追跡し、スレッドを中止するカウンターが追加されました。これにより、最大 64 個の並列 cleanAllRUV
タスクを同時に実行できます。
ネストされた多くのサブツリーを持つ Directory Server データベースへの大規模な LDIF ファイルのインポート速度が大きく改善
以前は、Directory Server データベースにネスト化されたサブツリーが多数含まれていた場合は、ldif2db
ユーティリティーおよび ldif2db.pl
ユーティリティーを使用して大規模な LDIF ファイルをインポートしていました。今回の更新で、Directory Server は、すべてのエントリーの後に ancestorid
インデックスを追加するようになりました。これにより、ネストされたサブツリーを多数持つデータベースへの LDIF ファイルがインポート速度が大きく改善されました。
Directory Server が、以前の SASL バインドが接続を完全に初期化した後のみ新しい操作を処理
SASL (Simple Authentication and Security Layer) フレームワークを使用したバインド中に、Directory Server はコールバック関数セットを初期化します。以前は、Directory Server が SASL バインド時に同じ接続で追加の操作を受け取ると、この操作は完全に初期化されていなくても、コールバック機能にアクセスし、使用できるようになりました。これにより、Directory Server インスタンスが予期せずに終了します。今回の更新で、サーバーは、以前の SASL バインドが正常に初期化されるまで、コールバック構造にアクセスして使用しないようになります。これにより、この状況で Directory Server がクラッシュしなくなりました。
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
オプションを使用して古い動作を強制することもできます。
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 プロトコルのみを使用します。
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 をインストールすると成功するようになりました。
--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
は、指定したサーバーからのデータのみを複製します。
ipa sudorule-add-option
で、既存の sudo ルールにオプションが追加されても誤ったエラーが表示されなくなる
以前のバージョンでは、sudo ルールにホスト、ホストグループ、ユーザー、またはユーザーグループがすでに含まれる場合に、ipa sudorule-add-option
コマンドは sudo ルールコンテンツを誤って処理していました。このため、ipa sudorule-add-option
と sudooption
の引数を併せて使用すると、正常に完了してもエラーが返されていました。このバグは修正され、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 鍵レプリケーションが適切に機能するようになりました。
証明書システムはシステムが他のサブシステムまたは LDAP サーバーのクライアントとして動作する場合の監査イベントを記録する
以前のバージョンでは、システムが他のサブシステムまたは LDAP サーバーのクライアントとして動作した場合には、証明書システムに監査イベントが含まれませんでした。そのため、このような状況下では、サーバーはイベントを記録しませんでした。今回の更新で、CLIENT_ACCESS_SESSION_ESTABLISH_FAILURE
、CLIENT_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 応答を正しく処理します。