2009/10/24

OpenLDAP 2.4: Ubuntu 9.04クライアントでのログイン設定

さて作成した"e0001"ユーザーでログインするための設定をUbuntu 9.04に入れていきます。 Ubuntuは"ubuntu-9.04-server-amd64.iso"を使って、OpenSSH Serverが稼働している以外はデフォルトのままです。

モジュールの導入

Ubuntuを導入しただけでは、認証に必要なモジュールもldapsearchなどの確認用ユーティリティも準備されていないので必要なものを導入します。

$ sudo apt-get install libpam-ldap libnss-ldap ldap-utils

/etc/ldap.confの設定

ldap.confは複数あります。 OSが認証に使うものは/etc/ldap.conf、ldapsearchなどの標準的なユーティリティが参照するものは/etc/ldap/ldap.confといった具合です。 もしこの他にもLDAP接続を行なうコンポーネントを使えば、そのために別のldap.confに相当する設定を追加する必要がでてきます。

ログイン時のLDAP認証はPAM(Pluggable Authentication Modules)が行ないます。 ログイン時には参照されないUID, GID含めた/etc/passwd相当のユーザー情報の参照はNSS(Name Service Switch)が担当します。 /etc/ldap.confはこの二つのコンポーネントが共通に参照する事になっています。

libpam-ldapを導入する時にいくつか質問されldap.confに反映されますが、不十分なので後から修正が必要なようです。一応質問には次のように答えました。

  1. [入力] ldap://10.0.0.2:389/
  2. [入力] ou=accounts,dc=example,dc=org
  3. [入力] 3 (Ldap Version)
  4. [入力] no (local root database admin)
  5. [入力] no (LDAP database require login)

NSS用の設定を追加

足りない設定を修正していきます。 /etc/ldap.confでコメントアウトされている部分を修正します。

nss_base_passwd  ou=accounts,dc=example,dc=org?one
nss_base_shadow  ou=accoutns,dc=example,dc=org?one
nss_base_group  ou=groups,dc=example,dc=org?one

/etc/nsswitch.confの設定

ローカルに定義されていないアカウントはLDAPを参照します。

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

2009/10/26追記:
nsswitch.confについては、$ sudo auth-client-config -p lac_ldap -t nssで更新する事が可能です。

まとめ

一応、ここまでの設定で"e0001"ユーザーでログインする事ができます。 他に必要な設定として、/etc/pam.d/の下の"common-auth"、"common-account"で"sufficient pam_ldap.so"を"pam_unix.so"の手前に設定する必要があります。 この部分はUbuntuでは自動的にやってくれるようです。 もしファイルを手で修正していたりして、うまく追加されていない場合には確認する必要があるかもしれません。

後はローカルに/Users/e0001ディレクトリを作ったりしています。 実用的に使うにはまだまだ道程が長そうですが、確認という意味ではこんなものでしょうか。

0 件のコメント: