システムを OpenLDAP による認証を実行するように設定する

本セクションでは、Red Hat Linux システムを OpenLDAP を使って認証するように設定する方法について簡単に概要を説明します。OpenLDAP のエキスパートである場合は別ですが、本書の説明以外にも詳しいマニュアルが必要になるでしょう。詳細については、「 Web 上にある LDAP のリソース 」 のリファレンスを参照してください。

必要な LDAP パッケージのインストール

最初に、LDAP サーバと LDAP クライアントの両方のマシンに該当するパッケージがインストールされていることを確認する必要があります。LDAP サーバには openldap パッケージが必要です。

LDAP クライアントマシンでは、以下のパッケージをインストールする必要があります。openldapauth_ldapnss_ldap 、および pam_ldap

設定ファイルの編集

/etc/openldap/slapd.conf の編集

/etc/openldap に位置する slapd.conf ファイルには、slapd LDAP サーバが必要とする設定情報が含まれます。このファイルは、ユーザのドメインとサーバに固有のものとするために編集する必要があります。

サフィックス行は LDAP サーバが情報を提供するドメインを指定します。サフィックス行は以下のものから変更する必要があります。

suffix "dc=your-domain, dc=com"

これはユーザのドメイン名を反映するようにしなければなりません。たとえば、

suffix "dc=acmewidgets, dc=com"

または

suffix "dc=acmeuniversity, dc=org"

rootdn エントリはアクセス制御や LDAP ディレクトリに対する操作に設定された管理パラメータによる制限を受けないユーザのための DN です。rootdn ユーザは LDAP ディレクトリに対するルートユーザと考えることができます。rootdn 行は以下のものから変更する必要があります。

rootdn "cn=root, dc=your-domain, dc=com"

変更例:

rootdn "cn=root, dc=redhat, dc=com"

または

rootdn "cn=ldapmanager, dc=my_organization, dc=org"

rootpw 行は次のものから変更します。

rootpw secret

変更例:

rootpw {crypt}s4L9sOIJo4kBM

上の例では、暗号化された root のパスワードを使用していますが、これは slapd.conf ファイルにプレーンテキストによる root のパスワードを残す方法よりもはるかに優れた考え方です。この暗号文字列を作成するには、 passwd ファイルからコピーするか、Perl を使用するかのいずれかが必要です。

perl -e "print crypt('passwd','a_salt_string');"

前の Perl 行では、salt_string は 2 文字の salt で、 passwd はパスワードのプレーンテキストバージョンです。

/etc/passwd から passwd エントリをコピーすることもできますが、 passwd エントリが MD5 パスワードである場合は (Red Hat Linux 6.2J でのデフォルト) 、この方法では正しく動作しません。

ldap.conf の編集

LDAP サーバとクライアントで、/etc および /etc/openldapldap.conf ファイルを編集します。

nss_ldap および pam_ldap の設定ファイルである /etc/ldap.conf を編集し、ユーザの組織と検索ベースを反映させます。ファイル /etc/openldap/ldap.confldapsearchldapadd などのようなコマンドラインツールのための設定ファイルで、これも LDAP 設定に合わせて編集する必要があります。クライアントマシンでは、これらのファイルを両方ともシステムに合わせて修正する必要があります。

/etc/nsswitch.conf の編集

nss_ldap を使用するためには、 ldap/etc/nsswitch.conf.の該当するフィールドに追加する必要があります (このファイルを編集する場合は慎重に行ってください。今行っている作業をよく理解した上で実行してください)。例、

passwd:files ldap shadow:files ldap group:files ldap

PAM 設定ファイルのコピー

pam_ldap を使用する場合は、PAM 設定ファイルを /usr/doc/nss_ldap<version>/pam.d/ からユーザの /etc/pam.d/ ディレクトリにコピーする必要があります。これらは PAM 設定ファイルのセットであり、これにより標準 PAM 対応アプリケーションがすべて LDAP を認証に使用できるようになります。(PAM はこの LDAP に関する概要の守備範囲を超えるものであるため、ヘルプが必要な場合は、「 PAM によるユーザ認証 - Chapter 2 」 や 「PAM のマニュアル 」を参照してください)。

古い認証情報の LDAP フォーマットへの移行

/usr/share/openldap/migration ディレクトリには、 古い認証情報を LDAP フォーマットに移行するためのシェルと Perl のスクリプトセットが含まれています。(前記のように、これらのスクリプトを使用するには、Perl をシステムに導入しなければなりません)。

最初に migrate_common.ph ファイルを修正し、ドメインを反映させる必要があります。デフォルトの DNS ドメインは以下のものから変更する必要があります。

$DEFAULT_MAIL_DOMAIN = "padl.com";

変更例:

$DEFAULT_MAIL_DOMAIN = "your_company.com";

デフォルトのベースも以下のものから変更する必要があります。

$DEFAULT_BASE = "dc=padl,dc=com";

変更例:

$DEFAULT_BASE = "dc=your_company,dc=com";

次に、使用するスクリプトを決める必要があります。下表を参照してください。

表 8-1. LDAP 移行スクリプト

既存ネームサービスLDAP は動作しているか ?このスクリプトを使用:
/etc フラットファイルはいmigrate_all_online.sh
/etc フラットファイルいいえmigrate_all_offline.sh
ネット情報はいmigrate_all_netinfo_online.sh
ネット情報いいえmigrate_all_netinfo_offline.sh
NIS (YP)はいmigrate_all_nis_online.sh
NIS (YP)いいえmigrate_all_nis_offline.sh

既存のネームサービスをもとに該当するスクリプトを実行します。

/usr/share/openldap/migration のファイル README および migration-tools.txt に詳細が記載されています