Active DirectoryとLinuxの認証を統合しよう【2017年版】

第5回 LDAPによる認証連携

この記事を読むのに必要な時間:およそ 5 分

LDAP認証の通信と問題点

ここでは,ファイアウォールなどで制御を行う場合を想定し,LDAP認証を行う際の具体的な通信を紹介します。CentOS環境における認証時の通信を図4に示します。

図4 LDAP認証によるログイン時の通信

図4 LDAP認証によるログイン時の通信

大量のLDAPのやりとりが行われていますが,基本的にはldap proxyとして認証された通信でldap01ユーザの情報が取得され,最終的にパケット171と172でldap01として認証(bind)が行われて,成功しています。この部分が実質的なユーザ認証となります。認証パケットの詳細を図4の下のペインに示していますが,パスワードが平文で表示されていることが確認できます。

実は,LDAPの標準の認証方式はシンプルバインド(シンプル認証)と呼ばれる平文認証です。認証連携自体は比較的簡単にできますが,ファイルにパスワードを平文で記述する必要があることに加え,ネットワーク上をパスワードが平文で流れてしまうため,セキュリティ上は極めて脆弱です。

なお,ここまでの設定でパスワード変更を行うことはできません。実際に行うと以下のようなメッセージが表示されます。

$ passwd
Changing password for user ldap01.
(current) LDAP Password:
New password:
Retype new password:
password change failed: Protocol error
passwd: Authentication token manipulation error

これは,Active Directoryの仕様上LDAP経由でのパスワード変更をサポートしていないためです。上記の操作の際のパケットを図5に示します。

図5 LDAP認証によるパスワード変更時(失敗)の通信

図5 LDAP認証によるパスワード変更時(失敗)の通信

パケット528以降でパスワード変更の通信が行われています。ここではパケットの詳細を示していませんが,平文で変更後のパスワードが送信された上で,エラーとなっています。

ADで匿名認証を有効化する

冒頭で紹介したように,ADのデフォルトでは匿名認証が許可されていませんが,図6のようにdsHeuristicという属性の値を変更することで,ADで匿名認証を許可させることもできます。

図6 dSHeuristics属性の変更

図6 dSHeuristics属性の変更

詳細についてはMicrosoft サポートのWindows Server 2003 のドメイン コントローラでは Active Directory に対する匿名の LDAP 操作が無効になっているなどを参照してください。

匿名認証を許可したら,引き続き,アクセスを許可させたいオブジェクトのアクセス制御リストに匿名ユーザのアクセス制御エントリを追加します。運用上はLDAP認証で使用するユーザをどこかのコンテナに集めてしまい,該当のコンテナに対して匿名ユーザのアクセス制御エントリを追加するのがよいでしょう。

ここではLDAPという名前のOUに適切な設定を行う際の例を説明します。⁠Active Directory ユーザーとコンピューター」「拡張機能」をチェックした上でLDAPのプロパティを開き,⁠セキュリティ」タブを選択します。ここで図7のようにANONYMOUS LOGONに「読み取り」アクセス許可を付与してください。

図7 匿名アクセスの追加

図7 匿名アクセスの追加

さらに「詳細設定」ボタンを押して詳細設定画面を開き,適用先を「このオブジェクトのみ」から「このオブジェクトとすべての子オブジェクト」に変更します。

これで,LDAPの配下に作成したユーザやグループのオブジェクトは匿名アクセスで参照が可能となるため,匿名認証を有効にした状態でもLinux側から参照することが可能となっているはずです。これにより,binddnおよびbindpwを設定する必要がなくなるため,Linuxサーバの視点ではセキュリティ上のリスクが軽減されます。一方で,匿名アクセスの設定はフォレスト全体に波及するため,別のセキュリティリスクが発生する点に留意してください。

まとめ

今回は,LDAP認証について,まずはもっとも基本的な設定について説明を行いました。匿名アクセスを有効化した場合でも各ユーザのパスワードはネットワーク上を平文で流れるため,セキュリティ上の問題が残ります。

次回以降ではこれを解決する対策について紹介していきます。

著者プロフィール

髙橋基信(たかはし もとのぶ)

大学卒業後,株式会社NTTデータに入社。数年間UNIX上でのプログラム開発に携わった後,クライアント/サーバシステム全般に関する技術支援業務を行う部署に異動し現在に至る。「日本Sambaユーザ会」スタッフなどを務め,オープンソース,Microsoft双方のコミュニティ活動に関わるとともに,各種雑誌への記事執筆や,講演などの活動を行っている。2005年6月には「Sambaのすべて」を出版。

コメント

コメントの記入