ユーザーの認証をldapサーバーで行い、クライアントコンピュータにユーザーを登録しなくても使用できるようにします。
このページは「Squeezeを40台にコピーするまでの手順(2010/9/10)」(2)の詳細です。
Debian では libnss-ldap をインストール指定すると libpam-ldap, nscd も自動でインストールされます。
libnss-ldap (264-2.2) libpam-ldap (184-8.5) nscd (2.11.2-2)
synapticを使ってインストールしましたが、libnss-ldapとlibpam-ldapについては、インストール時に対話的に設定をするようになっています。これに修正を加えて最終的にできあがった設定を紹介します。
/etc/libnss-ldap.confの最終的な設定
host 10.5.5.1 base dc=st,dc=seiai,dc=ed,dc=jp ldap_version 3 rootbinddn cn=admin,dc=st,dc=seiai,dc=ed,dc=jp
/etc/pam_ldap.confの最終的な設定
host 10.5.5.1 base dc=st,dc=seiai,dc=ed,dc=jp ldap_version 3 rootbinddn cn=admin,dc=st,dc=seiai,dc=ed,dc=jp pam_password crypt
ldapにアクセスするためのパスワードを保存するファイル
これも対話的な設定の過程で作成されます。平文で入っていますから、root以外に読み込み権限を与えません(デフォルトでそうなっています)。
$ ls -l /etc/*.secret -rw------- 1 root root 9 2010-08-24 21:45 /etc/libnss-ldap.secret -rw------- 1 root root 9 2010-08-24 21:45 /etc/pam_ldap.secret
/etc/nsswitch.confの設定値
この変更は自分でやらなければなりません。3箇所にldapと加えるだけです。
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
synapticを使ってインストールしましたが、インストール時に対話的に設定をするようになっています。libnss-ldap で5項目、libpam-ldapで4項目に答えると上記の様に設定されます。
設定ファイルは /etc/libnss-ldap.conf と /etc/pam_ldap.conf で、両方共にたくさんの解説コメントに埋まっています。上記はコメント以外の行だけ書き出したものです。
ただし若干変更を必要とします。これは本校の古いldapサーバーに合わせる必要があるからと思っています。
写真による記録もあります。
LDAPサーバーのURL:の部分でサーバーのIPアドレスを入力するのですが、デフォルトとしてで表示されているのは 自分がLDAPサーバーであるときの指定です。
uri ldapi:///
今回はクライアントの設定なのでサーバーのアドレスを記入します。この場合ldapi:でなくldap:とします。
uri ldap://10.5.5.1/
この書き方は以前の host IPアドレス で書くやり方と同じです。
host 10.5.5.1
注 LDAPサーバーのURL:の部分で誤解がありましたので訂正しました。(2012-9-28)
よく言われることですが、認証システムに変更を加えるときはrootのログインを残したまま、他のコンソールからログインしてテストします。
設定に間違いがあるとログインできなくなり、設定の変更ができないということになる可能性があるからです。もちろんCD起動のOSで起動して設定を変更する手はあるのですが。