OS同梱のOpenLDAPのアップデートに伴うLDAPサービスの障害について
問題の概要
Red Hat Enterprise Linux 6.x および CentOS 6.x のOpenLDAPパッケージをopenldap-servers-2.4.23-21以降のバージョンにアップデートすることにより、弊社製品のOpenLDAPにてLDAPS(636/TCP)での接続ができなくなるという問題が発生する可能性があります。
それ以外のOSをご利用のお客様では問題は発生しません。
問題の対策
OS同梱のopenldap-serversパッケージがインストールされている環境では openldap-serversパッケージを削除してください。
OS同梱のopenldap-serversパッケージがインストールされているか 確認するためには、次のコマンドを実行します。
# rpm -q openldap-servers openldap-servers-2.4.23-26.el6_3.2.x86_64
上記実行例のコマンドの実行結果では、問題の原因となる openldap-serversパッケージがインストールされている状態です。
OS同梱のopenldap-serversパッケージの削除は次のコマンドで 行ってください。
# rpm -e openldap-servers
OS同梱のopenldap-serversパッケージがインストールされていない 環境では、引き続きopenldap-serversパッケージをインストール しないようにしてください。 弊社製品のOpenLDAPパッケージをご利用中の環境では、 OS同梱のopenldap-serversパッケージをインストールする必要はありません。
yumコマンドによるパッケージのアップデート時に、openldap-servers パッケージがインストール/アップデートされないようにするため、 次の設定を追加してください。
- /etc/yum.conf の [main] セクション内に下記を追記します。
exclude=openldap-servers*
上記の設定で、openldap-serversパッケージはyumによる インストール/アップデートの対象外となります。
問題の詳細
openldap-serversパッケージを 2.4.23-21以降にバージョンアップ、もしくは新規インストールした環境には /etc/portreserve/slapd ファイルが作成され、あわせてportreserveパッケージが追加インストールされるため、 portreserveによりLDAPS(636/TCP)ポートが確保されます。
この結果、弊社製OpenLDAPのslapd起動後にLDAPS(636/TCP)ポートを利用できないことが問題の原因です。
openldap-serversパッケージアップデート後にOSの再起動を行うとportreserveによるポート確保が有効となり、問題が発生します。
問題発生時の確認
従来よりご利用頂いておりますお客様の環境下では、netstatコマンドで636ポートのLISTEN状態を確認すると、下記のような出力となります。
# netstat -lanp | grep 636 tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN XXX/sv tcp 0 0 :::636 :::* LISTEN XXX/sv
上記の結果が得られていれば問題は発生していない状態です。 (IPv4、IPv6共に636/tcpポートをLISTENしている状態)
LDAPSに接続できない場合の636/tcpポートの状態を確認すると、下記のようになっております。
# netstat -lanp | grep 636 tcp 0 0 :::636 :::* LISTEN XXX/sv udp 0 0 0.0.0.0:636 0.0.0.0:* XXX/portreserve
IPv4の636/tcpをLISTENしていないことが確認できます。この場合、ldapsearchコマンドやtelnetコマンドでLDAPS接続はできません。
問題発生時の対策
「ldapsearchコマンドなどでLDAPS接続ができない」や「netstatコマンドの結果がIPv6のみLISTENしている」という状況の場合は、rpmコマンドでopenldap-serversパッケージのバージョンを確認して下さい。
# rpm -q openldap-servers
この結果で表示されるバージョンが2.4.23-21 以降であれば今回の問題に該当していると考えられます。
問題を解決するため、次の手順でopenldap-serversパッケージを削除し、サービスの再起動を行ってください。
パッケージ削除後にportreserveサービス、osstech-ldapサービスを再起動します。
# rpm -e openldap-servers # service portreserve restart # service osstech-ldap restart
以上の対策で、LDAPS接続が可能となります。
お問い合わせ: info @ osstech.co.jp