ここまでの設定で、ユーザー認証に必要なエントリがOpenLDAPサーバに登録されました。ここからは、LDAP認証を行うクライアント側の設定を説明していきます。
LDAPクライアントからOpenLDAPサーバに対してユーザー認証を行うには、LDAPクライアントとなるコンピュータ側で、どのLDAPサーバに対し、どのように問い合わせるかの設定が必要になります。具体的には、以下のファイルを変更する必要があります。
ファイル名 | 説明 |
---|---|
/etc/nsswitch.conf | NSS(Name Service Switch)の設定ファイルです。 |
/etc/pam.d/system-auth | PAM(Pluggable Authentication Modules)がアプリケーションへ共通設定を提供するためのファイルであり、認証時に多くのプログラムから参照されます。PAM自体の概要は、/usr/share/doc/pam-X.XX……/以下のドキュメントを参考にしてください。 |
/etc/ldap.conf | NSS、PAMがLDAPサーバへアクセスする際に利用するモジュール、nss_ldap.so、pam_ldap.so共通の設定ファイルです。このファイルの記述方法は、man nss_ldap、man pam_ldapで確認できます。 |
/etc/openldap/ldap.conf | ldapadd、ldapmodifyなど、OpenLDAPのクライアントコマンドが参照する設定ファイルです。このファイルの記述方法は、man ldap.confで確認できます。 |
これらの設定ファイルは、viなどのエディタを用いて1つ1つ手動で変更することも可能ですが、GUIツールを通して変更するほうが便利です。GUIツールを用いて変更作業を行うには、以下のコマンドを実行します。
# system-config-authentication
system-config-authenticationコマンドの実行後に起動するGUI画面では、ユーザー情報タブ(画面1)で、LDAPサポートを有効にする(L)のチェックを選択します。
次に、LDAPの設定(D)ボタンをクリックして表示される画面(画面2)では、
を指定します。
続いて、認証タブ(画面3)に移動し、ユーザー情報タブでの設定と同様に、LDAPサポートを有効にする(L)を選択します。LDAPの設定(D)ボタンをクリックして現れる画面には先に入力した情報が保持されているので、ここではそのままOK(O)をクリックし、GUIツールを終了します。
以上で、LDAPクライアントとなるコンピュータ上のPAMおよびNSS関連の設定ファイルの変更が完了しました。これで、LDAPサーバへ接続し、ユーザー認証ができるようになります。
LDAP認証の設定が完了すると、PAMを利用するさまざまなプログラムからのLDAP認証が可能になります。これは、先ほど変更した/etc/pam.d/system-authファイルが、多くのプログラムから認証処理時に参照されているためです。例えば、以下のようなプログラムからも、/etc/pam.d/system-authファイルが参照されています。
プログラム名 | system-authを参照する設定ファイル |
---|---|
su | /etc/pam.d/su |
sshd | /etc/pam.d/sshd |
telnetd | /etc/pam.d/remote |
vsftpd | /etc/pam.d/vsftpd |
cvs | /etc/pam.d/cvs |
それでは、今回OpenLDAPサーバに登録したユーザーエントリを用いて、suコマンド、sshコマンドなどを用いてLDAP認証を行ってみましょう(注5)。
# su - test1001 |
# ssh test1001@localhost |
OpenLDAPサーバでのユーザー認証は成功したでしょうか。もしユーザー認証に失敗する場合は、前回紹介した、syslogdに送付されるOpenLDAPサーバのアクセスログを確認し、問題を修正してください。
注5:各ユーザーエントリのhomedir属性に指定したホームディレクトリを事前に作成していない場合、プログラムによって警告メッセージが表示されたり、またはエラーが発生することがあります。ここでの認証例は、ホームディレクトリをあらかじめ作成している場合の例です。
このほか、PAMを経由したLDAP認証が実装されていないプログラムについては、別途、LDAPサーバへの接続方法を確認する必要があります。例えばApacheの場合は、以下のURLのように、Apache側で個別にLDAP認証のための設定を行う必要があります。
今回は、パスワードなどの保護するべき属性を含んだエントリをOpenLDAPサーバに登録しました。次回はこのサーバに対し、アクセスコントロールや管理者用dnのパスワードの暗号化、さらには通信経路の暗号化といったセキュリティ面で考慮すべき点と、その設定方法を説明する予定です。
Copyright © ITmedia, Inc. All Rights Reserved.