Apacheで作るファイルサーバ(LDAP認証編):実用 Apache 2.0運用・管理術(7)(1/4 ページ)
WebDAV+SSLで、ファイルサーバとして最低限の運用は可能になった。この環境にLDAPを導入して、各種の権限をディレクトリベースで管理できるようにしよう。(編集部)
前回は、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人ずつユーザーを作成します。各要素は、適宜環境に合わせて変更してください。
次に、slapd.confファイルを修正します。主な変更項目は以下のとおりです。
suffix "o=example,c=jp" ←ドメイン名を持っている組織ならdcの利用も可 rootdn "cn=Manager,o=example,c=jp" ←管理者のアカウント rootpw secret ←LDAP管理パスワード
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
暗号化には、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
エントリファイルができたら、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側の準備は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.