SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|

2010-04-06(Tue) LDAPに浸かる

  というわけで、 先日、東京にてねっとりとLDAPの研修を受けさせてもらったので、自分の環境でも動かしてみるのである。

  Fedora12には、openldap-2.4.19系が乗っているのだが、ロクに説明もなく、LDAPサーバであるslapdの設定ファイル関係の様相が、ゴッソリと変わってしまっているようだ。

  というわけで、試行錯誤した結果を、以下にまとめておく。

  まずは関連パッケージのインストール兼アップデート。

zakato.itline.jp:/root # yum install openldap openldap-servers openldap-clients

  で、いきなりだが、生成されたばかりの、空のLDAPのDBを抹殺。

zakato.itline.jp:/root # rm -rf /var/lib/ldap/*

  LDAPサーバである、slapdの設定に入る。一応、元の設定ファイルをバックアップ。

zakato.itline.jp:/root # cd /etc/openldap/
zakato.itline.jp:/etc/openldap # cp -a slapd.d slapd.d.org

  私はオリジナルのスキーマを使うので、それを導入。スキーマの中身についてはまた後日。

zakato.itline.jp:/etc/openldap # cp mave.schema schema

  これまた奇妙な手順だが、bak ファイルを、本来の場所にコピー。

zakato.itline.jp:/etc/openldap # cp slapd.conf.bak slapd.conf

  LDAPの管理者パスワードを生成しておく。これは、設定、ではなく、生成、なので、画面表示されたものがハッシュ化されているとはいえ、パスワードそのものである。

zakato.itline.jp:/etc/openldap # slappasswd
New password: 
Re-enter new password: 
{SSHA}+zaTN/KKRmbEvh3MMru+tD5AS9fWatt5

  slapdの設定を行う。

zakato.itline.jp:/etc/openldap # vi slapd.conf

  変更点は、スキーマの追加と、ドメイン名の変更、管理者パスワードの追加である。

zakato.itline.jp:/etc/openldap # diff slapd.conf.bak slapd.conf
17a18,19
> include		/etc/openldap/schema/samba.schema
> include		/etc/openldap/schema/mave.schema
89c91
< suffix		"dc=my-domain,dc=com"
---
> suffix		"ou=zakato,dc=itline,dc=jp"
91c93
< rootdn		"cn=Manager,dc=my-domain,dc=com"
---
> rootdn		"cn=Manager,ou=zakato,dc=itline,dc=jp"
96a99
> rootpw		{SSHA}+zaTN/KKRmbEvh3MMru+tD5AS9fWatt5
122c125
<         by dn.exact="cn=Manager,dc=my-domain,dc=com" read
---
>         by dn.exact="cn=Manager,ou=zakato,dc=itline,dc=jp" read

  上記の設定を、設定ディレクトリであるslapd.dの下にldif化する前に、LDAPのDBの設定を加えておく。

zakato.itline.jp:/etc/openldap # cp -a /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

  これまた不可解な手順だが、既存の設定ディレクトリを空にした後、設定ファイルのテスト機能を用いて、設定をldif化する。なんか、ちょっと怒られるが気にするな。

zakato.itline.jp:/etc/openldap # rm -rf slapd.d/*
zakato.itline.jp:/etc/openldap # slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
bdb_db_open: database "ou=zakato,dc=itline,dc=jp": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).
backend_startup_one (type=bdb, suffix="ou=zakato,dc=itline,dc=jp"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch)

  どうも、バグ……というよりは、rpmとしての煮詰めが足りないだけなのだろうが、設定ファイルやLDAPのDBの所有者を変更してやる。

zakato.itline.jp:/etc/openldap # chown -R ldap:ldap /etc/openldap/slapd.d
zakato.itline.jp:/etc/openldap # chown -R ldap:ldap /var/lib/ldap

  で、ようやく、LDAPサーバ、起動ッ!!

zakato.itline.jp:/etc/openldap # service slapd start
slapd を起動中:                                            [  OK  ]

  さっそく、動作チェックしたいところだが、そのためにはLDAPクライアントの設定を行う必要がある。

zakato.itline.jp:/etc/openldap # cp -a ldap.conf ldap.conf.org
zakato.itline.jp:/etc/openldap # vi ldap.conf

  特に指定がなければ、自分の上のLDAPを見に行きなさい、ということ。

zakato.itline.jp:/etc/openldap # diff ldap.conf.org ldap.conf
9a10
> BASE	ou=zakato,dc=itline,dc=jp

  さて、動作チェックのためのテスト用のデータ、すなわちレコードを登録するldifファイルを書く。

zakato.itline.jp:/etc/openldap # vi test.ldif 
dn: ou=zakato,dc=itline,dc=jp
objectClass: organizationalUnit
ou: zakato
 
dn: ou=People,ou=zakato,dc=itline,dc=jp
objectClass: organizationalUnit
ou: People
 
dn: cn=Taro Yamada,ou=People,ou=zakato,dc=itline,dc=jp
objectClass: inetOrgPerson
objectClass: mavePerson
cn: Taro Yamada
sn: Yamada
gn: Taro
mail: t-yamada@example.com
maveID: self@work
displayName: Yamada
sendName: Yamada
reading: yamada
o: ox software Ltd.
ou: ox department ox section
post: chief
telephoneNumber: 090-1234-1234
birth: 1970-01-01
blood: A+

  そして実際に登録ッ!!

zakato.itline.jp:/etc/openldap # ldapadd -x -W -D "cn=Manager,ou=zakato,dc=itline,dc=jp" -f test.ldif
Enter LDAP Password: 
adding new entry "ou=zakato,dc=itline,dc=jp"
adding new entry "ou=People,ou=zakato,dc=itline,dc=jp"
adding new entry "cn=Taro Yamada,ou=People,ou=zakato,dc=itline,dc=jp"

  うまくいかなかったら、ログを見ると解決が早い。/var/logの下にログを吐く設定にしておく。

zakato.itline.jp:/etc/openldap # cp -a /etc/rsyslog.conf /etc/rsyslog.conf.org 
zakato.itline.jp:/etc/openldap # vi /etc/rsyslog.conf

  なぜか、LDAPはlocal4にログを吐くので、それを出す設定を加えて、rsyslogをリロード。

zakato.itline.jp:/etc/openldap # diff /etc/rsyslog.conf.org /etc/rsyslog.conf
59a60
> local4.*                                                /var/log/ldap
zakato.itline.jp:/etc/openldap # service rsyslog reload

  そりゃ、二重登録したら、怒られるだろうが。

zakato.itline.jp:/etc/openldap # ldapadd -x -W -D "cn=Manager,ou=zakato,dc=itline,dc=jp" -f test.ldif
Enter LDAP Password: 
adding new entry "ou=zakato,dc=itline,dc=jp"
ldap_add: Already exists (68)

  その旨がログに出て(?)いる。

zakato.itline.jp:/etc/openldap # tail /var/log/ldap 
Apr 18 23:45:04 zakato slapd[6289]: conn=4 fd=13 ACCEPT from IP=[::1]:54463 (IP=[::]:389)
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=0 BIND dn="cn=Manager,ou=zakato,dc=itline,dc=jp" method=128
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=0 BIND dn="cn=Manager,ou=zakato,dc=itline,dc=jp" mech=SIMPLE ssf=0
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=0 RESULT tag=97 err=0 text=
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=1 ADD dn="ou=zakato,dc=itline,dc=jp"
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=1 RESULT tag=105 err=68 text=
Apr 18 23:45:04 zakato slapd[6289]: conn=4 op=2 UNBIND
Apr 18 23:45:04 zakato slapd[6289]: conn=4 fd=13 closed

  フツーに検索するには、ldapsearchを実行する。

zakato.itline.jp:/etc/openldap # ldapsearch -x

  <まだつづく>


2010-04-11(Sun) LPICレベル3を受験す

  というわけで、先日、東京にてねっとりとLDAPの研修を受けさせてもらったうえに、自分でも、ねっとりとLDAP環境を整え実用に供したので、前日にガーっと問題集に目を通して、名古屋駅前の会場に受験に行った。

  個人的感想ではあるが、レベル1レベル2と同じく、正直、資格取得のための資格であり、問題の中身は「よいこのLinuxクイズ」といった感じである。特に今回受験するLPIC301は「Linuxの最上位資格」を謳いつつ、中身は「LDAPクイズ」となっており、なんだかよくわからないことになっている。

  正直、まったくLDAPに興味がなかったので、受けるつもりなど禿頭なかったのだが、東京の研修に釣られて……

  <かきかけ>

  900点満点、500点以上合格のところ、690点とよゆーで<かきかけ>