LPIC level2 リベンジ!! 第3日 『LDAPクライアントの利用』 | kyontra日記

LPIC level2 リベンジ!! 第3日 『LDAPクライアントの利用』

『主題210:ネットワーククライアントの管理』の最後はLDAPクライアントについてです。

LDAPの詳しい設定などはLPIC Level3 coreの範囲なのでLevel2での出題はコマンドの使い方くらいです。
が、LDAPクライアントのコマンドを実際に使うためにはLDAPサーバがいないとダメなので、ちょこっとLDAPサーバの設定についてもまとめます。


◇LDAPサーバの構築◇

きょんとらぼる太の環境(CentOS 5.4)での構築についてまとめておきます。

まず、LDAPサーバとLDAPクライアントのパッケージをインストールします。インストールはyumで行いました。
# yum install openldap-servers
# yum install openldap-clients

インストールが完了したらLDAPサーバのコンフィグファイルを作成します。
コンフィグファイルには管理者パスワードを記載しますが、平文で記載するのはセキュリティ上良くありません。そこでslappasswdコマンドでSSHA暗号化形式のパスワードを取得します。
# slappasswd
New password:
Re-enter new password:
{SSHA}CSNr88e7/9qBEPsyXb3khkzFEgHX63RR

LDAPサーバのコンフィグファイルは/etc/openldap/slapd.confです。viで編集します。以下の行を編集します。rootpwはslappasswdコマンドで取得した文字列を指定します。
# vi /etc/openldap/slapd.conf
~途中省略~
suffix "dc=kyon,dc=tora"
rootdn "cn=Tiger,dc=kyon,dc=tora"
rootpw {SSHA}CSNr88e7/9qBEPsyXb3khkzFEgHX63RR
~途中省略~

/etc/openldapディレクトリのDB_CONFIG.exampleを/var/lib/ldapディレクトリにコピーします。ファイル名はDB_CONFIGにします。
# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

/var/lib/ldapディレクトリ内のファイルの所有者をldap:ldapに変更します。
# chown ldap:ldap /var/lib/*
# ls -Al /var/lib/ldap
合計 68684
-rw-r----- 1 ldap ldap 921 1月 11 22:35 DB_CONFIG
-rw------- 1 ldap ldap 24576 1月 11 22:42 __db.001
-rw------- 1 ldap ldap 80019456 1月 11 22:42 __db.002
-rw------- 1 ldap ldap 335552512 1月 11 22:45 __db.003
-rw------- 1 ldap ldap 2359296 1月 11 22:45 __db.004
-rw------- 1 ldap ldap 352256 1月 11 22:45 __db.005
-rw------- 1 ldap ldap 24576 1月 11 22:45 __db.006
-rw-r--r-- 1 ldap ldap 4096 1月 11 22:42 alock
-rw------- 1 ldap ldap 8192 1月 11 22:48 cn.bdb
-rw------- 1 ldap ldap 8192 1月 11 21:24 dn2id.bdb
-rw------- 1 ldap ldap 32768 1月 11 21:24 id2entry.bdb
-rw------- 1 ldap ldap 10485760 1月 11 22:48 log.0000000001
-rw------- 1 ldap ldap 8192 1月 11 22:48 mail.bdb
-rw------- 1 ldap ldap 8192 1月 11 22:48 objectClass.bdb
-rw-r--r-- 1 ldap ldap 37 1月 11 18:42 openldap-severs-update.log
-rw------- 1 ldap ldap 8192 1月 11 22:48 ou.bdb
-rw------- 1 ldap ldap 8192 1月 11 22:48 sn.bdb

LDAPサービスを開始します。
# /etc/init.d/ldap start


◇LDAPクライアントのコマンド◇

LDAPクライアントの主なコマンドには以下のものがあります。
コマンド説明
ldapaddデータを追加する
ldapsearchデータを検索する
ldapdeleteデータを削除する
ldapmodifyデータを変更する
ldappasswdパスワードを変更する

◇データの追加◇
LDAPサーバにデータの追加を行うためにLDIF(LDAP Data Interchange Format)ファイルを作成します。空行を入れることで複数のエントリを記述することができます。
test.ldif
dn: dc=kyon,dc=tora
objectclass: dcobject
objectclass: organization
o: local
dc: kyon

dn: ou=People,dc=kyon,dc=tora
objectclass: organizationalUnit
ou: People

dn: ou=Group,dc=kyon,dc=tora
objectclass: organizationalUnit
ou: Group

dn: cn=Ponko,ou=People,dc=kyon,dc=tora
objectclass: inetorgPerson
sn: Pon
cn: Ponko
mail: Ponko@kyon.tora

dn: cn=Sutao,ou=People,dc=kyon,dc=tora
objectclass: inetorgPerson
sn: Hamu
cn: Sutao
mail: Sutao@kyon.tora

作成したLDIFファイルをldapaddコマンドで追加します。
<書式>
ldapadd [オプション]

ldapaddコマンドで使用できるオプションは次のものがあります。
オプション説明
-h ホストLDAPサーバを指定します。省略するとローカルホストに接続します。
-xSASLを使用せず簡易認証を用います。
-D バインドDN認証に利用するDNを指定します。
-W認証時のパスワードを対話的に入力します。
-w パスワード認証時のパスワードをコマンド内で指定します。
-f ファイル名LDIFファイルを指定します。

先ほど作成したtest.ldifファイルを以下のコマンドで追加します。
# ldapadd -x -D "cn=Tiger,dc=kyon,dc=tora" -W -f test.ldap
Enter LDAP Password:
adding new entry "dc=kyon,dc=tora"

adding new entry "ou=People,dc=kyon,dc=tora"

adding new entry "ou=Group,dc=kyon,dc=tora"

adding new entry "cn=Ponko,ou=People,dc=kyon,dc=tora"

adding new entry "cn=Sutao,ou=People,dc=kyon,dc=tora"

◇データの検索◇
エントリの検索にはldapsearchコマンドを使用します。
<書式>
ldapsearch [オプション] 検索フィルタ [出力属性]
オプション説明
-h ホストLDAPサーバを指定します。省略するとローカルホストに接続します。
-xSASLを使用せず簡易認証を用います。
-b ベースDN検索を開始するベースDNを指定します。
-L検索結果をLDIFv1形式で表示します。
-LL検索結果をコメントなしの形式で表示します。
-LLL検索結果をコメントとLDAPのバージョンなしで表示します。

以下のコマンドはエントリの中からobjectclassがinetOrgPersonのものを検索しています。
$ ldapsearch -x -LLL -b "dc=kyon,dc=tora" "(objectclass=inetOrgPerson)"

dn: cn=Ponko,ou=People,dc=kyon,dc=tora
objectClass: inetOrgPerson
sn: Pon
cn: Ponko
mail: Ponko@kyon.tora

dn: cn=Sutao,ou=People,dc=kyon,dc=tora
objectClass: inetOrgPerson
sn: Hamu
cn: Sutao
mail: Sutao@kyon.tora


◇LDAPの練習問題◇

LPIC 202試験対策のオリジナル問題集です。

<問1>
ldapサーバの設定ファイルをフルパスで記述しなさい。


<問2>
LDAPサーバにエントリを追加するコマンドを記述しなさい。


<問3>
ldapサーバからobjectclassがorganizationalUnitのエントリを検索するコマンドを次の中から選びなさい。ただしLDAPサーバはローカルホストであるとし、SASL認証を使用しないこととする。
A. ldapsearch -x -LLL -D "dc=kyon,dc=tora" "(objectclass=inetOrgPerson)"
B. ldapsearch -LLL -b "dc=kyon,dc=tora" "(objectclass=inetOrgPerson)"
C. ldapsearch -x -LLL -b "dc=kyon,dc=tora" "(objectclass:inetOrgPerson)"
D. ldapsearch -x -LLL -b "dc=kyon,dc=tora" "(objectclass=inetOrgPerson)"




<参考にさせていただいたWeb Site>

http://blog.absolute-zero.info/?m=200706&paged=2

http://blog.goo.ne.jp/makoto_climb/e/e0a6366072c97a14bbe7f3a4a5e6cdb5

http://arinux.jugem.jp/?eid=42


<今回の教科書(…といってもいつも同じ)>

◇基本はあずき本で確認⇒Linux教科書 LPICレベル2 第3版 (CD-ROM付)

◇応用は黒本で特訓⇒徹底攻略LPI 問題集Level2/Release2 対応 (ITプロ/ITエンジニアのための徹底攻略)


次回は「主題212:システムのセキュリティ」の予定です。