一般的なLinuxのユーザー認証は,/etc/passwd,/etc/shadowの二つのファイルを使っています。 このLinuxサーバーでWindowsのファイル共有サービスやテレビ会議用サーバーを運用する場合は,それぞれ別に認証ファイルを用意する必要があります。これでは,一人の変更があったら,数箇所変更することになって,大変な手間となることが考えられます。LDAPを利用することで,これを避けることができるでしょう。以下に認証をLDAPに移行する方法を説明します。
ここでは,ドメイン名をikkzz.ed.jpとして説明していきます。
# Default DNS domain
#$DEFAULT_MAIL_DOMAIN = "padl.com";
$DEFAULT_MAIL_DOMAIN = "ikkzz.ed.jp";
# Default base
#$DEFAULT_BASE = "dc=padl,dc=com";
$DEFAULT_BASE = "dc=ikkzz,dc=ed,dc=jp";
[root@ysava openldap]# cd /usr/share/openldap/migration/ [root@ysava migration]# ls README migrate_fstab.pl migrate_aliases.pl migrate_group.pl migrate_all_netinfo_offline.sh migrate_hosts.pl migrate_all_netinfo_online.sh migrate_netgroup.pl : : : migrate_automount.pl migrate_rpc.pl migrate_base.pl migrate_services.pl migrate_common.ph migrate_slapd_conf.pl migrate_common.ph~ migration-tools.txt [root@ysava migration]# ./migrate_passwd.pl /etc/passwd /tmp/passwd.ldif
Enterを押すと,passwd.ldifが出来上がります。このファイルを使ってLDAPにユーザーを登録します。
次に示すのは,passwd.ldifに書かれた一人分(ユーザ名:h162125)のデータです。
dn: uid=h162125,ou=People,dc=ikkzz,dc=ed,dc=jp
uid: h162125
cn: h162125
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$81590011$wnIuKlZxTn4DWQrTGHMY3/
shadowLastChange: 12518
loginShell: /bin/sh
uidNumber: 530
gidNumber: 503
homeDirectory: /home/h162125
上で作ったldifファイルを使ってLDAPのデータベースに実際に登録します。次の例では,151(16進)件=337件を約1分で登録しました。
[root@ysava migration]# slapadd -v -l /tmp/passwd.ldif
:
:
:
added: "uid=h162644,ou=People,dc=ikkzz,dc=ed,dc=jp" (0000014c)
added: "uid=h162645,ou=People,dc=ikkzz,dc=ed,dc=jp" (0000014d)
added: "uid=S54$,ou=People,dc=ikkzz,dc=ed,dc=jp" (0000014e)
added: "uid=s52$,ou=People,dc=ikkzz,dc=ed,dc=jp" (0000014f)
added: "uid=S51$,ou=People,dc=ikkzz,dc=ed,dc=jp" (00000150)
added: "uid=ikou,ou=People,dc=ikkzz,dc=ed,dc=jp" (00000151)
slapdを認識させるためには,再起動が必要です。
[root@ysava migration]# /etc/init.d/slapd restart
再起動前の図
再起動後の図
再起動前には3行しかなかったのに一気にデータが増えました。
LDAP側での準備ができたので次は,Linux側の準備をします。
まず,PAM(Pluggable Authentification Modules)という機構をインストールします。この機構をインストールすることで,各サービスは,ユーザー認証にLDAPのデータが使用可能になります。つまり,LDAPにユーザーのデータを入れておいて,各プログラムはLDAPからユーザーデータを引き出すようPAMに命じることで必要な認証を行うことになります。
通常はインストールされていますが,そうでない場合は次のようにしてください。
http://www/padl.com/oss/pam_ldap.html からダウンロードして解凍
#cd /ダウンロードしたディレクトリ/
#./configure
#make
#make install
base dc=の行を次のように編集します。
host 127.0.0.1
uri ldap://127.0.0.1
ldap_version 3
base dc=ikkzz,dc=ed,dc=jp
scope sub
timelimit 30
pam_filter objectclass=posixAccount
pam_login_attribute uid
通常はインストールされていますが,そうでない場合は次のようにしてください。
http://www/padl.com/oss/nss_ldap.html からダウンロードして解凍
ダウンロードしたディレクトリに移動
../configure
make
make install
既存の次の行を,次のように変更してください。
nss_base_passwd ou=People,dc=ikkzz,dc=ed,dc=jp?one
nss_base_shadow ou=People,dc=ikkzz,dc=ed,dc=jp?one
nss_base_group ou=Group,dc=ikkzz,dc=ed,dc=jp?one
既存の3行を次のように変更します。
passwd: files ldap
shadow: files ldap
group: files ldap