やっとたどり着いたldap
さて、LDAPである。現在LDAPでLINUXアカウントとsambaアカウントの統合をしたいとなんとかがんばっている。まだ何もしてないけど。
とりあえずまずはLINUXアカウントだけLDAPにしてみた。今回は経路の暗号化は無し。
インストール自体は、Vine Linux 4.2ではopenldap-servers、openldap-clientsを入れるだけだ。
# apt-get install openldap-servers openldap-clients
インストール後まずすべき事は/etc/init.d/ldapの編集。これは確かBTSで見付けた。
start()の先頭に /usr/sbin/authconfig –kickstart –disableldap –disableldapauth、return $RETVALの直前に/usr/sbin/authconfig –kickstart –enableldap –enableldapauthという行を記述する。BTSではstop()にも何か書いているようだが、こっちはkillしているだけなので特に何もせず。
これをしとかないと、ldapサーバとなるマシンをldapクライアントにした時に、このサービスの起動で停止してしまう。そうなると、シングルシェルで入れる設定でなければお手上げだ(普通のパソコンならKNOPPIXで入れば良いが)。
Vine Linux 4.2では、pamのldap設定は/etc/ldap.confにあり、openldapクライアントの設定は/etc/openldap/ldap.conf、openldapサーバの設定は/etc/openldap.slapd.confである。
/etc/openldap/slapd.conf
なぜかLDAP V2が有効になっているので消す。LDAP V2が既設であるのであればそのままの方が良い、のか? ネット上では移行はわりと楽っぽい風に書かれているので頑張って移行する方が良いんじゃないか。
allow bind_v2をコメントアウト
Vine Linux 4.2ではバックエンドにbdbが選択されているのでそのまま使う。suffix、rootdn、rootpwを設定する。なお、色んなサイトで、rootdnも(LDAPエントリを)作成するように説明してあるが、このrootdnのエントリは本当は不要である。これはあくまで管理者としてバインドされるdnである。また、色んなサイトでrootdnに必ずと言って良いほどcn=Manager,dc=hogehoge,dc=fugafugaが指定されているが、rootdnはcnでなくても良い。むしろセキュリティのためなら違うものにすべきだろう。以下に例を示す。
suffix "dc=hogehoge,dc=local" rootdn "dc=fugafuga,dc=hogehoge,dc=local" rootpw {MD5}honwakafunwakahorekitahoi
rootdnとしてdcObjectが設定されている。これでも動作する。単なるエントリとしての意味しか無いわけだ。rootpwはslappasswdで作成する
# slappasswd -h {MD5}
もちろんMD5以外でも構わない。indexは今回デフォルトのまま。uidにも張られているのでそれでよしとする。最後にパスワードの保存方法としてMD5を使用する事を宣言し、userPasswordに対してアクセス制御を追加する。
password-hash {MD5} access to attrs=userPassword by dn="dc=fugafuga,dc=hogehoge,dc=local" write by self write by anonymous auth by * none access to * by dn="dc=fugafuga,dc=hogehoge,dc=local" write by self write by * read
後はou=People、ou=Groupを作って/usr/share/openldap/migration/migrate_common.phのdnを修正した後、同じ場所のスクリプトでldifを作成して投入すれば良い。それが終わればauthconfigでLDAPを使用とLDAP認証を使用にチェックをいれてはいOK。<br /><br /> Vine Linuxでは、インストール時に初期状態でshadowとMD5ハッシュを使うようになっているので、前述のmigrationツールではパスワードの移行はできない(いったんCRYPTに戻せばできるらしい)。今回は登録する人数が少ないのでランダムに作りなおして後で各自パスワード変更してもらう事といたそう。
# ldappasswd -x -W -D "dc=fugafuga,dc=hogehoge,dc=local" "uid=anmochi,ou=People,dc=hogehoge,dc=local"
-Sオプションを付けて自分で設定しても良いだろう。例のように付けなければランダムパスワードが生成される。ついでに/homeと/usr/localをNFSでエクスポートしてみた。/etc/exports
/home 192.168.1.0/255.255.255.0(rw) /usr/local 192.168.1.0/255.255.255.0(ro)
こいつのクライアントとなるVine Linuxをもう一個作り、authconfigでLDAPを追加して、/etc/fstabに
192.168.1.1:/home /home default 0 0 1921.68.1.1:/usr/local /usr/local default 0 0
という行を入れればそれだけで似た環境がぽこぽこ作れる。OSを同じにすれば/usrから共有できるかも知れんが・・・・PRMで物を入れると/etcなんかに入るファイルをどうしようかなと言ったところか。