Download presentation
Presentation is loading. Please wait.
1
openLADP 後藤航太
2
研究のテーマを openLDAPにしました。
前回の発表では「情報セキュリティ」について説明しましたが、 まだ具体的な研究内容を決めていませんでした。 今回からはopenLDAPを使ってディレクトリサービス導入・運用を 研究課題としてやっていきたいです。 まずはLDAPサーバを構築し、データ登録を行ってみます。 今後、アドレス帳、Linuxユーザ認証をはじめ、様々なアプリケーションで LDAPの機能を利用していきたいと思います。 まだ勉強を始めたばかりなので、わからないことやうまく説明できない所 がありますので、ご了承ください。
3
openLDAPとは ディレクトリとは LDAPは、Lightweight Directoy Access Protocolの略です。
LDAPは、RFC1777などで定義されているインターネット標準のプロトコルで、 TCP/IP上でディレクトリサービスを提供するためのプロトコルであるとされ います。 ディレクトリとは コンピュータの世界、それも特にLinuxやUNIXでディレクトリという言葉は ファイルを管理するための構造を指します。 Windowsではフォルダと呼ばれているファイルを格納する場所のことを、 LinuxやUNIXではディレクトリと呼ばれています。 しかし、LDAPでいうディレクトリは、このファイルの管理とはまったく関係 がありません。
4
LDAPの歴史 LDAPは、もともとX.500ディレクトリアクセスプロトコル(DAP)を改良して作ら
れたプロトコルです。 X.500は、1988年にCCITTのX.500シリーズ勧告で 国際規格として採用されたもので、ISO国際標準として規定されました。 このプロトコルは世界中の情報を集めたディレクトリサービスを実現しようと するものでしたが、残念ながら普及することはありませんでした。 大変多くのコンピュータリソースを必要としたことが、その原因と考えられて います。そのため、X.500はHeavy weightなプロトコルであったと言われています。 これに対して、LDAPはTCP/IP上で軽快(Lightweight)に動作することを目的 として作成されたディレクトリサービスです。 軽快な造りでありながら、X.500の重要な機能の多くを引き継いでいます。
5
LDAPの特徴 LDAPは次のような特徴を持つデータベースとなっています。 X.500の機能のほとんどを持ちながら、非常に軽い実装である。
読み込み・検索・更新などの処理を行うことができる。 書き込み・更新よりも、読み込み・検索が速くなるように最適化されている。 豊富な検索機能を持っている。 様々なアプリケーションをサポートできる豊富な機能を持っている。 格納するデータの型を自由に定義・拡張できる。 データの複製機能を持っていて、信頼性の高いシステムを構築することができる。
6
LDAPで管理するもの① LDAPは、RDB(リレーショナルデータベース)ではありません。
このことは、用途を考える上で非常に重要です。リレーションデータベースで ないことは、次のようなことを意味します。 データの相関関係(リレーショナル)を管理していない。 トランザクションの概念を持っていない。 したがって、LDAPは、業務データなどと動的で複雑な関係を処理する必要 のある分野には不向きです。LDAPでは、データの相関関係ではなく、 物(オブジェクト)を管理しようとします。そのため、次のような分野に向いて います。 住所録や人名録など、人というオブジェクトを管理するサービス 資産管理サービスなど、物というオブジェクトを管理するサービス メールや認証情報など、人や物に付随するサービスの情報
7
LDAPで管理するもの② したがって、LDAPは、業務データなどと動的で複雑な関係を処理する必要
物(オブジェクト)を管理しようとします。そのため、次のような分野に向いて います。 住所録や人名録など、人というオブジェクトを管理するサービス 資産管理サービスなど、物というオブジェクトを管理するサービス メールや認証情報など、人や物に付随するサービスの情報 このことは、LDAP上で管理するデータの配置を計画するときにも非常に重 要です。 LDAPでは物(オブジェクト)を管理するのだという大前提を忘れる と、非常に管理しにくいデータ構造になってしまいます。
8
LDAP機能 問い合わせ 更新 LDAPには、認証、問い合わせ、更新などの機能が定義されています。
要素です。 認証 認証には、バインド(bind)と解放(unbind)の2つの操作があります。 サーバにアクセスする場合には、まずはバインド処理を行わければなりませ ん。そして、LDAPの処理が完了したら解放の処理を行います。 問い合わせ LDAPでは、問い合わせとして比較(compare)と検索(search)の2つの方法を 利用することができる 比較(compare) 指定したエントリの属性に、特定の値が入っているかどうかを調べ、結果を返す処 理です。 検索(search) 様々な検索条件を指定して、それに合致するエントリの情報を取り出します。 更新 LDAPでは、更新の操作として、追加(add)、削除(delete)、変更(modify)、 DNの変更(modifyDN)の4つの操作を行うことができます。これらの操作は、 特定のDNを指定して、そのDNに対して行います。
9
LDAPサーバ稼動までの手順 LDAPサーバをインストールする。 LDAPサーバの起動に必要な最小限の設定を行う。
要があります。 LDAPサーバをインストールする。 LDAPサーバの起動に必要な最小限の設定を行う。 基本的なディレクトリ構造を設定する。 使用するアプリケーションに合わせて、スキーマを設定する。 使用する属性に合わせてインデックス、アクセス制御の設定を行う。
10
開発環境について 研究で使うOSはLinux(Vine Linux)を使用します。
・Berkeley DB(アプリケーション組み込み型のデータベースライブラリ ) ・OpenSSL (SSLプロトコル・TLSプロトコルのオープンソースな実装です ) この2つのソフトウェアはOpenLDAPに必要なため ・OpenLDAPは安全版“openldap-stable tgz”です。 今後、新たにソフトウェアなどが必要になるので随時説明をします。
11
基本設定 OpenLDAPでLDAP機能を提供するサーバはslapdです。
設定ファイルは/usr/local/etc/openldap/slapd.confです。 slapd.confは標準的にはrootユーザでしか読み書きできな いように設定されています。 これは、ファイルの中にLDAPへのアクセスの時に用い るパスワードなどが保管されているからです。 そのため、ファイルの編集はrootユーザで行います。
12
インストール直後のslapd.conf # # See slapd.conf(5) for details on configuration options. # This file should NOT be world readable. # include /usr/local/etc/openldap/schema/core.schema # Define global ACLs to disable default read access. # Do not enable referrals until AFTER you have a working directory # service AND an understanding of referrals. #referral ldap://root.openldap.org pidfile /usr/local/var/run/slapd.pid argsfile /usr/local/var/run/slapd.args # Load dynamic backend modules: # modulepath /usr/local/libexec/openldap # moduleload back_bdb.la # moduleload back_ldap.la # moduleload back_ldbm.la # moduleload back_passwd.la # moduleload back_shell.la # Sample security restrictions # Require integrity protection (prevent hijacking) # Require 112-bit (3DES or better) encryption for updates # Require 63-bit encryption for simple bind # security ssf=1 update_ssf=112 simple_bind=64 # Sample access control policy: # Root DSE: allow anyone to read it # Subschema (sub)entry DSE: allow anyone to read it # Other DSEs: # Allow self write access # Allow authenticated users read access
13
# Allow anonymous users to authenticate # Directives needed to implement policy: # access to dn.base=“” by * read # access to dn.base=“cn=Subschema” by * read # access to * # by self write # by users read # by anonymous auth # # if no access controls are present, the default policy # allows anyone and everyone to read anything but restricts # updates to rootdn. (e.g., “access to * by * read”) # # rootdn can always read and write EVERYTHING! ####################################################################### # BDB database definitions ####################################################################### database bdb suffix “dc=my-domain,dc=com" rootdn "cn=Manager,dc=my-domain,dc=com" # Cleartext passwords, especially for the rootdn, should # be avoid. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd and slap tools. # Mode 700 recommended. directory /usr/local/var/openldap-data # Indices to maintain index objectClass eq
14
インストール直後のslapd.confに最初に定義されているのは、最も基本的なLDAPの設定です。(コメントを除いたもの)
① include /usr/local/etc/openldap/schema/core.schema ② pidfile /usr/local/var/run/slapd.pid ③ argsfile /usr/local/var/run/slapd.args ④ database bdb ⑤ suffix “dc=my-domain,dc=com" ⑥ rootdn "cn=Manager,dc=my-domain,dc=com“ ⑦ rootpw secret ⑧ directory /usr/local/var/openldap-data ⑨ index objectClass eq これらの値のうち、必ず修正があるのは、⑤~⑦です。 ⑦はルートDNのパスワードの設定で、必ず設定する必要がある。
15
それぞれの設定について①~④ ①include ③ argsfile ④database
それぞれの設定について①~④ ①include LDAPのデータベースで利用する属性を定義するスキーマファイルを読み込 みます。使用する属性に合わせて、適切なスキーマファイルを読み込む必 要があります。 ②pidfile Slapdのプロセス番号を保管するファイルを指定します。このファイルは起動 スクリプトなどで使用します。 ③ argsfile Slapdが起動された引数の情報を保管するファイルを指定します。 ④database LDAPのデータを管理するデータベースを指定します。通常の用途では、 Bdbまたはhdbを使います。Bdbは、Berkeley DBを使って作成されるデータ ベースです。
16
それぞれの設定について⑤~⑨ ⑤suffix ⑥rootdn ⑦rootpw ⑧directory ⑨index
それぞれの設定について⑤~⑨ ⑤suffix LDAPデータの識別名を設定します。 ⑥rootdn LDAPディレクトリ管理者のDN(ルートDN)を設定します。 ⑦rootpw ルートDNのパスワードを設定します。 ⑧directory データベースを保管するディレクトリを指定します。 ⑨index インデックスを管理すべき属性を指定します。LDAPサーバはデータの保管 の時に、ここで指定した属性に対して検索を高速化するための特別なデータ (インデックス)を作成します。
17
⑤~⑦の設定を変更しました。 ① include /usr/local/etc/openldap/schema/core.schema
② pidfile /usr/local/var/run/slapd.pid ③ argsfile /usr/local/var/run/slapd.args ④ database bdb ⑤ suffix “dc=designet,dc=jp" ⑥ rootdn "cn=Manager,dc=designet,dc=jp“ ⑦ rootpw {SSHA}RMznXWk4awbjnzkne8u2hvSIHyvOW28v ⑧ directory /usr/local/var/openldap-data ⑨ index objectClass eq 基本設定は終了
18
今後の予定 LDAPデータの管理 LDAPスキーマ 安全性と性能 LDAPエントリ検索・表示・追加・削除・修正
LDAPエントリ検索・表示・追加・削除・修正 LDAPスキーマ オブジェクトクラスの定義・標準スキーマ・独自スキーマ 安全性と性能 LDAPサーバの性能を引き出す方法 LDAPサーバに対するセキュリティ データの保全の方法
19
参考資料 LDAP/OpenLDAP ディレクトリサービス導入・運用ガイド Vine Linuxサーバ 参考書 参考サイト
参考書 LDAP/OpenLDAP ディレクトリサービス導入・運用ガイド Vine Linuxサーバ 参考サイト
20
御静聴ありがとうございました。 終
Similar presentations
© 2025 slidesplayer.net Inc.
All rights reserved.