連載
» 2006年01月17日 00時00分 UPDATE

実用 Apache 2.0運用・管理術(7):Apacheで作るファイルサーバ(LDAP認証編) (1/4)

WebDAV+SSLで、ファイルサーバとして最低限の運用は可能になった。この環境にLDAPを導入して、各種の権限をディレクトリベースで管理できるようにしよう。(編集部)

[鶴長鎮一,@IT]

 前回は、WebDAVを用いてインターネットからでもアクセスできるファイルサーバを構築しました。また、SSLを導入することでセキュリティにも配慮しています。今回は、さらにLDAPを連携させて、組織上の権限に応じたアクセス制御を実現します。

LDAPのインストールと基本設定

 LDAPにはOpenLDAPを使用します。ここでは、Fedora Core 4(以下FC4)を例に簡単にインストール方法を紹介します。ソースからインストールする場合の方法と設定については、「Appendix:ソースからのインストール」を参照してください。

 FC4の場合、必要なパッケージは以下のとおりです。openldap-serversのインストールを忘れるというケースをときどき耳にするので、忘れないように注意しましょう。

# rpm -qa | grep openldap
openldap-servers-2.2.29-1.FC4
openldap-2.2.29-1.FC4
openldap-clients-2.2.29-1.FC4

 上記のようにインストールされているかどうかを確認し、インストールされていない場合はyumコマンドでインストールします。

# yum install openldap*

LDAPエントリデータの構成

 今回は、図1のような「o=example,c=jp」をベースDNに持つエントリデータを使用します。技術部門(tech)と営業部門(sales)には、それぞれ1人ずつユーザーを作成します。各要素は、適宜環境に合わせて変更してください。

図1 使用するLDAPのエントリデータ 図1 使用するLDAPのエントリデータ

 次に、slapd.confファイルを修正します。主な変更項目は以下のとおりです。

suffix                "o=example,c=jp" ←ドメイン名を持っている組織ならdcの利用も可
rootdn                "cn=Manager,o=example,c=jp" ←管理者のアカウント
rootpw                secret ←LDAP管理パスワード
/etc/openldap/slapd.confの変更点

 suffixにはベースDN、rootdnには管理者のアカウント、rootpwには管理パスワードを指定します。

 上のサンプルでは、rootpwが平文になっています。実際の運用では、slapd.confのパーミッションを変更してほかのユーザーには閲覧できないようにするか、暗号化したパスワードを記載します。パスワードの暗号化は、slappasswdコマンドで行います。

# slappasswd
New password: ←パスワードを入力
Re-enter new password: ←再入力
{SSHA}W19U6+mGPYF7fSR2RFHus+5jFW+hL19I
rootpw                {SSHA}W19U6+mGPYF7fSR2RFHus+5jFW+hL19I
/etc/openldap/slapd.conf

 暗号化には、SHA-1アルゴリズムによるハッシュ関数がデフォルトで使用されます。slpad.confに暗号化したパスワードを使用した場合、LDAP通信上でハッシュ化されたパスワードが使用されるようになります。

 slapd.confファイルを作成したら、RPMパッケージに含まれるinitスクリプトを利用してslapdデーモンを起動します。

# /etc/init.d/ldap start

LDAPエントリデータの作成

 次に各エントリの作成です。まず、エントリを記述したファイルを用意します。ファイル名は何でも構いません。各エントリを別ファイルに分けることもできますが、ここでは一度に登録することにします。なお、エントリの間には必ず空行を1行挿入してください。

#ルートツリー用
dn: o=example,c=jp
objectClass: organization
o: example
 
#部署ツリー(技術部門)用
dn: ou=tech,o=example,c=jp
objectClass: organizationalUnit
ou: tech
 
#部署ツリー(営業部門)用
dn: ou=sales,o=example,c=jp
objectClass: organizationalUnit
ou: sales
 
#スズキ タロウ
dn: uid=user01,ou=tech,o=example,c=jp
objectClass:inetOrgPerson
cn: taro
sn: suzuki
uid: user01
userPassword: pass01
 
#サトウ ケンジ
dn: uid=user02,ou=sales,o=example,c=jp
objectClass:inetOrgPerson
cn: kenji
sn: sato
uid: user02
userPassword: pass02
example.ldif

 エントリファイルができたら、ldapaddコマンドで登録します。

# ldapadd -x -h localhost -D "cn=Manager,o=example,c=jp" -w secret -f example.ldif

 ldapaddコマンドによる登録が完了したら、ldapsearchでエントリを検索するか、slapcatで全エントリを表示させて確認します。

# ldapsearch -x -h localhost -b "o=example,c=jp" -s sub "(uid=*01)"

 または、

# slapcat

 以上で、LDAP側の準備は完了です。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。