実用 Apache 2.0運用・管理術 第7回

Apacheで作るファイルサーバ(LDAP認証編)

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

鶴長 鎮一(book@tsurunaga.jp)
2006/1/17

 前回は、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のエントリデータ

 次に、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/4

Index
実用 Apache 2.0運用・管理術
 第7回 Apacheで作るファイルサーバ(LDAP認証編)
Page 1
 LDAPのインストールと基本設定
  LDAPエントリデータの構成
  LDAPエントリデータの作成
  Page 2
 WebDAV over SSL+LDAP認証の実現
  LDAP認証の仕組み
  ユーザー単位のアクセス制御
  部門単位のアクセス制御
  Page 3
 LDAP over TLSでよりセキュアに
  LDAPサーバの準備
  Apacheの設定変更
  Page 4
 Appendix:ソースからのインストール
  Apacheの起動

連載 実用 Apache 2.0運用・管理術


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH