SLAPD.CONF
Section: File Formats (5)
Updated: 2004-01-22
Index
名前
slapd.conf - スタンドアローン LDAP デーモン slapd の設定ファイル
所在
/usr/local/etc/openldap/slapd.conf
説明
ファイル
/usr/local/etc/openldap/slapd.conf
は
slapd(8)
デーモンのための設定情報を持ちます。この設定ファイルは、
複製デーモン
slurpd(8)
と SLAPD ツール
slapadd(8),
slapcat(8),
slapindex(8)
でも利用されます。
この
slapd.conf
ファイルは、(すべてのバックエンドを含む)
slapd
全般に適用する一連のグローバル設定オプションと、バックエンドの実体に
固有の情報を持つデータベースバックエンド定義が0個以上続いたものから成ります。
slapd.conf
の一般的なフォーマットは次とおりです。
# comment - these options apply to every database
<global configuration options>
# first database definition & configuration options
database <backend 1 type>
<configuration options specific to backend 1>
# subsequent database definitions & configuration options
...
バックエンド固有のセクションは必要なだけ置けます。
グローバルオプションはバックエンドのセクションで上書きできます
(同じオプションが2度以上現れる場合には、ファイル
slapd.conf
で最後にあるものが使われます)。
空行と文字 `#' で始まるコメント行は無視されます。行が空白で始まる場合、
直前の行から継続しているとみなされます。
設定行での引数は空白で区切ります。引数に空白を含めるには、その引数を
二重引用符で囲みます。引数に二重引用符(`"')あるいは
バックスラッシュ文字(`\')を含めるには、その文字の前に
バックスラッシュを付けます。
指定可能な個々の設定オプションは、以降の節の
「グローバル設定オプション」、「一般バックエンドオプション」、
「一般データベースオプション」でで説明します。
バックエンド固有のオプションは
slapd-<backend>(5)
マニュアルページで説明します。
slapd の設定ファイルについてより詳しくは "OpenLDAP 管理者ガイド"
を参照してください。
グローバル設定オプション
この節で説明するオプションは、バックエンド定義で特に上書きしない限り
すべてのバックエンドに適用します。
実際のテキストで置き換える引数はブラケット <> で示します。
- access to <what> [ by <who> <access> <control> ]+
-
エントリや属性の1セット(<what> に指定)に対するアクセス権(<access>
に指定)を1人以上の要求者(<who> に指定)に与えます。
詳しくは
slapd.access(5)
を参照してください。
- allow <features>
-
許可する機能を(空白文字で区切って)指定します(デフォルトは none)。
bind_v2
は LDAPv2 バインド要求の受付を許します。
slapd(8)
は、今では歴史上のもの(RFC 3494)となった LDAPv2 (RFC 1777)を忠実に実装
しているわけではないことに注意してください。
bind_anon_cred
は認証情報が空でない匿名バインド(DN が空のときなど)を許します。
bind_anon_dn
は DN が空でないときの匿名バインドを許します。
update_anon
は認証されていない(匿名の)ユーザによる更新操作の処理を許します
(アクセス制御などの設定管理による制限を受けます)。
-
-
slapd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slapd
サーバのコマンドラインオプションを保持するファイルの
絶対パス名を指定します。
- attributeoptions [option-name]...
-
属性タグオプションまたはタグ/地域の接頭辞を定義します。
オプションの終端には `-' があってはならず、接頭辞の終端は `-'
でなければなりません。
予め定義されている接頭辞に `lang-' がありますが、
attributeoptions
ディレクティブを利用すると `lang-' の定義は無効になるので、
使いたいのであれば明示的に指定しなければなりません。
タグオプションの付いた属性記述子は、オプション無しの属性記述子の
サブタイプです。
この点を除いて、attributeoptions ディレクティブで定義された
オプションは特別な意味を持ちません。
ディレクティブ attributeoptions で定義された接頭辞は `lang-'
の付いたオプションと同様に機能します。
これはタグオプションのための接頭辞を定義していて、
この接尾辞で始まるオプションを利用可能とします。
すなわち接頭辞 `x-foo-' を定義すると、オプション `x-foo-bar' が
使えるようになるわけです。
さらに検索や比較において、
接頭辞や地域名(末尾に `-' の付くもの)は、その名前で始まるすべてのオプショ
ンに一致し、末尾に `-' の無いレンジ名のオプションにも一致します。
すなわち `x-foo-bar-' は `x-foo-bar' にも `x-foo-bar-baz' にも一致します。
RFC 2251 は、私的な実験のために 'x-' が先についたオプションを予約しています。
その他のオプションは IANA に登録するべきです。
オプションの登録方法は RFC 3383 の 3.4 節を参照してください。
OpenLDAP は組込みで `binary' オプションも持っていますが、
これは転送オプションであって、タグオプションではありません。
-
attributetype ( <oid> [NAME <name>] [OBSOLETE]
[DESC <description>] [SUP <oid>] [EQUALITY <oid>] [ORDERING <oid>] [SUBSTR <oid>] [SYNTAX <oidlen>] [SINGLE-VALUE] [COLLECTIVE] [NO-USER-MODIFICATION] [USAGE <attributeUsage>] )
-
- RFC 2252 に定義されている LDAPv3 シンタックスを用いて属性型を指定します。
slapd のパーサは RFC 2252 の定義を拡張していて、
属性の OID と属性シンタックスの OID に使う数値形式の OID の他に
文字列形式の OID も許しています(
objectidentifier
の説明を参照)。
- concurrency <integer>
-
並行処理の要求レベルを指定します。
これは基盤のスレッドシステムにヒントとして渡します。
デフォルトでは基盤のスレッドシステムに何もヒントを渡しません。
- conn_max_pending <integer>
-
匿名セッションのための未解決要求の最大数を指定します。
サーバの能力を超える要求が送られた場合、そのような要求は
このディレクティブに指定した数まではキューに入れられます。
指定した数を超えた場合にはセッションを閉じます。
デフォルトは 100 です。
- conn_max_pending_auth <integer>
-
認証されたセッションのための未解決要求の最大数を指定します。
デフォルトは 100 です。
- defaultsearchbase <dn>
-
クライアントが空のベース DN でベース検索でない検索要求を送ってくる
場合に使うデフォルトの検索ベースを指定します。
- disallow <features>
-
禁止する機能を(空白文字で区切って)指定します(デフォルトは none)。
bind_anon
は匿名バインド要求の受付を禁止します。
bind_simple
は簡易(バインド)認証を禁止します。
bind_krbv4
は Kerberos V4 (バインド)認証を禁止します。
tls_2_anon
は Start TLS がセッションを匿名状態を強制することを禁止します
tls_authc
も参照)。
tls_authc
は認証後の StartTLS を禁止します(
tls_2_anon
も参照)。
- gentlehup { on | off }
-
SIGHUP シグナルが「寛大な」シャットダウン実行を行うかを指定します。
slapd
は新しい接続をできなくしますが、接続中のクライアントの切断はしません。
しかし以後の書込み操作は unwilling-to-perform を返します。
すべてのクライアントか接続を閉じるか、その前に SIGTERM シグナル
を受けると slapd は終了します。
これは、現在アクティブなクライアントを切断することなくサーバを終了し、
別のデータベースで
slapd
サーバを始動したい場合に有用です。
デフォルトは off です。
このオプションと
idletimeout
を組み合わせて使うとよいかもしれません。
- idletimeout <integer>
-
アイドル状態のクライアント接続を強制的に切断するまでの秒数を指定します。
idletimeout の値が 0 であるとこの機能は無効になります。
デフォルトは 0 です。
- include <filename>
-
現在のファイルの次の行に進む前に、与えたファイルから追加の設定情報を
読み込みます。
- limits <who> <limit> [<limit> [...]]
-
オペレーションを開始したユーザを対象にした時間やサイズの制限を指定します。
引数
who
には次のいずれかを指定できます。
-
-
- anonymous | users | [dn[.<style>]=]<pattern>
-
ここで <style> は次の構文で記述します。
-
- <style> ::= exact | base | one | subtree | children | regex | anonymous
-
anonymous
は、検索が事前のバインドなしに行われたときに該当します。
users
は、検索がバインドの成功したユーザによって行われたときに該当します。
さもなければ、正規表現
regex
による dn パターンであるとみなされます。ただし、(オプションの)キーワード
dn に
exact
か
base
(同義語)の修飾がある場合には DN の厳密一致を要求し、
one
で修飾した場合には直に1レベルの深さの一致を要求し、
subtree
で修飾した場合には厳密一致を含む任意レベルの深さの一致を許し、
children
で修飾した場合には厳密一致を含まない任意レベルの深さの一致を許します。
regex
で修飾した場合は、
regex(7)
に詳説されている正規表現パターンを基にした一致を要求します(修飾しない
場合と同じ)。
anonymous
で修飾した場合は、バインドなし操作に一致し、
pattern
の指定は無視されます。これと同じ振舞は
who
節に
anonymous
を指定しても得られます。
現状で制限できるのは
size
と
time
です。
時間制限の構文は次のようになっています。
time[.{soft|hard}]=<integer>
ここで
<integer>
は slapd が検索要求に応答するのに利用できる秒数を表します。
クライアントが時間制限を指定してこなければ
soft
制限を適用します。時間制限の要求が
hard
制限を超えていると "Administrative limit exceeded" エラーが戻されます。
hard
制限を 0 またはキーワード "soft" に設定すると
soft
制限を適用します。
hard
制限を -1 またはキーワード "none" に設定すると
hard
制限を強制しません。
クライアントからの時間制限の指定が
hard
制限以下であればクライアントの指定を優先します。
soft
か
hard
であるかの指定が無い場合には元々の仕様と同じになるように、
値は
soft
制限に適用され、
hard
制限は 0 に設定されます。
サイズ制限の構文は次のようになっています。
size[.{soft|hard|unchecked}]=<integer>
ここで
<integer>
は slapd が検索要求に応答で返すことのできる最大エントリ数を表します。
クライアントがサイズ制限を指定してこなければ
soft
制限を適用します。サイズ制限の要求が
hard
制限を超えていると "Administrative limit exceeded" エラーが戻されます。
hard
制限を 0 またはキーワード "soft" に設定すると
soft
制限を適用します。
hard
制限を -1 またはキーワード "none" に設定すると
hard
制限を強制しません。
クライアントからのサイズ制限の指定が
hard
制限以下であればクライアントの指定を優先します。
unchecked
が指定されていれば、検索要求が選択できるエントリ数の制限を設定します。
選択されたエントリの数が
unchecked
制限を超えた場合、
検索は "Unwilling to perform" エラーで中断します。
unchecked
制限を -1 またはキーワード "none" に設定した場合、
選択エントリ数を制限しません(デフォルト)。
soft
か
hard
であるかの指定が無い場合には元々の仕様と同じになるように、
値は
soft
制限に適用され、
hard
制限は 0 に設定されます。
どの制限の指定も無い場合、グローバル制限が適用されます。
デフォルト値は
sizelimit
や
timelimit
と同じです。
unchecked
制限は設定されません。
- loglevel <integer>
-
デバッグ情報と操作の統計値を syslog に出力するかを示すレベルを指定します
(現在のところ、
syslogd(8)
の LOG_LOCAL4 に記録されます)。各種のログレベルを加算して指定できます。
利用できるレベルは次のとおりです。
-
-
- 1
-
関数呼出しのトレース
- 2
-
パケット処理のデバッグ
- 4
-
詳細なデバッグトレース
- 8
-
接続管理
- 16
-
パケット送受信の印字
- 32
-
検索フィルタの処理
- 64
-
設定ファイルの処理
- 128
-
アクセス制御リストの処理
- 256
-
接続/操作/結果の統計ログ
- 512
-
エントリ送信の統計ログ
- 1024
-
shell バックエンドとの通信の印字
- 2048
-
エントリの解析
- moduleload <filename>
-
ロードする動的ロード可能モジュールの名前を指定します。
引数の <filename> には絶対パス名か単純なファイルを指定できます。
絶対パス名で指定しない場合には
modulepath
オプションに指定したディレクトリからモジュールを探します。
このオプションと
modulepath
オプションは slapd のコンパイルで --enable-modules
を指定した場合にだけ利用できます。
- modulepath <pathspec>
-
動的ロード可能モジュールを検索するディレクトリのリストを指定します。
典型的にパスはコロンで区切りますが、何で区切るかは OS に依存します。
-
objectclass ( <oid> [NAME <name>] [DESC <description] [OBSOLETE]
[SUP <oids>] [{ ABSTRACT | STRUCTURAL | AUXILIARY }] [MUST <oids>] [MAY <oids>] )
-
- RFC 2252 に定義されている LDAPv3 シンタックスを用いてオブジェクトクラス
を指定します。slapd のパーサは RFC 2252 の定義を拡張していて、
オブジェクトクラスの OID に使う数値形式の OID の他に
文字列形式の OID も許しています(
objectidentifier
の説明を参照)。オブジェクトクラスはデフォルトで "STRUCTURAL" です。
- objectidentifier <name> { <oid> | <name>[:<suffix>] }
-
指定する OID と同等に扱う文字列形式の名前を定義します。
この文字列は、オブジェクトクラスと属性の定義において数値形式の
OID を指定する所に使えます。この名前には ":xx" 形式の接尾辞をつけて
使うこともできます。たとえば "oid.xx" といった値が使えます。
- password-hash <hash>
-
このオプションは、LDAP Password Modify Extended Operations (RFC 3052)
の処理をとおして userPassword に格納するユーザパスワードの生成に使う
ハッシュ方式を設定します。引数 <hash> は
{SSHA},
{SHA},
{SMD5},
{MD5},
{CRYPT},
{CLEARTEXT}
のいずれかでなければなりません。デフォルトは
{SSHA}
です。
{SHA}
と
{SSHA}
は SHA-1 アルゴリズム(FIPS 160-1)を使います。後者には seed
(乱数の発生系列を変える種)が付いています。
{MD5}
と
{SMD5}
は MD5 アルゴリズム(RFC 1321)を使います。後者には seed
(乱数の発生系列を変える種)が付いています。
{CRYPT}
は
crypt(3)
を使います。
{CLEARTEXT}
は新しいパスワードが平文で userPassword に付け加えられることを示します。
このオプションは LDAP の追加/更新などの操作で userPassword を処理する
通常のユーザアプリケーションの動きを変えないことに注意してください。
- password-crypt-salt-format <format>
-
LDAP Password Modify Extended Operations (RFC 3052)
の処理をとおして {CRYPT} パスワード(
password-hash
を参照)を生成するときに
crypt(3)
に渡す salt の形式を指定します。
この文字列は
sprintf(3)
形式で指定する必要があり、その中に1個(1個だけ)の %s 置換を含められます。
この変換は [A-Za-z0-9./] の文字から構成されたランダムな文字列で
置き換えられます。たとえば "%.2s" は2文字の salt を提供し、"$1$%.8s"
は crypt(3) のいくつかのバージョンにMD5 アルゴリズムを使うことを知らせ、
ランダムな8文字の salt を提供します。
デフォルトは "%s" で、31 文字の salt を提供します。
- pidfile <filename>
-
slapd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slapd
サーバのプロセス ID (
getpid(2)
を参照)を保持するファイルの絶対パス名を指定します。
- referral <url>
-
slapd(8)
が要求を処理するためのローカルデータベースを見つけられなかった場合に、
クライアントに戻す紹介先(referral)を指定します。
- replica-argsfile
-
slurpd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slurpd
サーバのコマンドラインオプションを保持するファイルの
絶対パス名を指定します。
- replica-pidfile
-
slurpd
サーバをデバッグコマンドラインオプション無しで始動した場合に、
slurpd
サーバのプロセス ID (
getpid(2)
を参照)を保持するファイルの絶対パス名を指定します。
- require <conditions>
-
必要となる条件を指定します(デフォルトは none)。
複数の条件がある場合には空白文字で区切って指定します。
このディレクティブはグローバルにもデータベースごとにも
指定できます。
bind
はディレクトリ操作の前に bind 操作を必要とします。
LDAPv3
はセッションが LDAP バージョン3を使うことを必要とします。
authc
はディレクトリ操作の前に認証を必要とします。
SASL
はディレクトリ操作の前に SASL 認証を必要とします。
strong
はディレクトリ操作の前に強固な認証を必要とします。
キーワード strong は SASL 認証と同様に保護された「簡易」認証を許可します。
none
は条件を何も必要としない場合に使います(グローバルに設定された条件を
特定のデータベースで無効にするのに使えます)。
- reverse-lookup on | off
-
クライアント名の逆引きを有効/無効にします(configure スクリプトに
--enable-rlookups を指定してコンパイルした場合に利用できます。デフォルトは
off)。
- rootDSE <file>
-
root DSE 用のユーザ定義属性を持った LDIF(5) ファイルの名前を指定します。
これらの属性は通常 slapd が作り出す属性と一緒に返されます。
- sasl-authz-policy <policy>
-
SASL 代理認可で使う規則を指定します。
代理認可はクライアントのサーバへの認証において、
あるユーザの認証情報を使いますが、
認可とアクセス制御の目的のために使うアイデンティティには違うものを指定します。
原則的にユーザ A はユーザ A のパスワードを用いてユーザ B
としてログインできます。
フラグ
none
は代理認可を無効にします。これはデフォルトの設定です。
フラグ
from
は認証 DN の
saslAuthzFrom
属性に設定されている規則を使います。
フラグ
to
は認証 DN の
saslAuthzTo
属性に設定されている規則を使います。
フラグ
both
は
saslAuthzFrom
と
saslAuthzTo
属性の両方に設定されている規則を使います。
規則の指定は、代理認可を行える DN を指定する単純な正規表現です。
エントリ中の
saslAuthzFrom
属性は、他のユーザにこのエントリへの代理認可を許すことを指定します。
エントリ中の
saslAuthzTo
属性は、このユーザが代理認可できる他のユーザを指定します。
saslAuthzTo
規則の利用する場合、
この属性への任意の更新をユーザに認めてしまうと簡単に不正な利用ができてしまう
ので注意してください。
一般に
saslAuthzTo
属性は特権ユーザだけが更新できるように ACL で保護しなければなりません。
- sasl-host <fqdn>
-
SASL 処理に利用する完全に修飾されたドメイン名を指定します。
- sasl-realm <realm>
-
SASL レルムを指定します。デフォルトは空です。
- sasl-regexp <match> <replace>
-
SASL 認証ユーザ名を LDAP DN に変換するために SASL
認可機構によって利用されます。認可要求が受け取られると SASL の
ユーザ名(USERNAME)、レルム(REALM)、認証機構(MECHANISM)
を使って、次の形式の SASL 名を作り出します。
-
-
- uid=<username>[,cn=<realm>],cn=<mechanism>,cn=auth
-
この SASL 名を
match
正規表現と比較し、一致したならば SASL 名は
replace
文字列になります。
次の例のように
match
の中に括弧で囲まれた正規表現文字列があれば、
その括弧内の正規表現に一致する SASL 名の一部分が $1 などの
数字のついたプレースホルダ変数に格納されます。
-
-
- uid=(.*),cn=.*
-
括弧で囲まれた正規表現が複数ある場合には、左から順番に $1, $2, $3
と格納されていきます。このプレースホルダ変数は次のように
replace
文字列で使えます。
-
-
- cn=$1,ou=Accounts,dc=$2,dc=$4.
-
SASL 名は DN あるいは LDAP URI のどちらかに置換できます。
後者の場合 slapd サーバは、それ自体のデータベースの検索に URI を使い、
検索結果が1エントリだけであれば、そのエントリの DN で SASL 名を置換します。
設定ファイルには複数の
sasl-regexp
ディレクティブを与えることができ、
複数のマッチングと置換パターンを指定できます。
マッチングパターンは設定ファイル内の出現順に処理され、
最初に一致したところで処理を終えます。
- sasl-secprops <properties>
-
Cyrus SASL のセキュリティプロパティを指定します。
フラグ
none
は(他のプロパティ指定がなければ)、
このフラグのプロパティをデフォルト("noanonymous,noplain")にクリアします。フラグ
noplain
は、単純な passive attack に弱い機構を無効にします。フラグ
noactive
は、active attack に弱い機構を無効にします。フラグ
nodict
は、passive dictionary attack に弱い機構を無効にします。フラグ
noanonyous
は、匿名ログインをサポートする機構を無効にします。フラグ
forwardsec
は、セッション間の forward secrecy を要求します。フラグ
passcred
は、クライアントの身元証明を渡す機構を要求します
(そして身元証明を渡せる機構がそうすることを可能にします)。プロパティ
minssf=<factor>
は、最小の受け入れ可能な
security strength factor
を暗号のための有効キー長に近い整数値で指定します。
0 (ゼロ)は暗に保護無しを意味します。1 は暗に整合性の保護だけを意味します。
56 は DES あるいは他の弱い暗号化方式を有効にします。
112 は triple DES あるいは他の強い暗号化方式を有効にします。
128 は RC4, Blowfish, 他の現代的な強い暗号化方式を有効にします。
デフォルトは 0 です。プロパティ
maxssf=<factor>
は、最大の受け入れ可能な
security strength factor
を整数値で指定します(minssf の説明を参照)。
デフォルトは INT_MAX です。プロパティ
maxbufsize=<factor>
は、セキュリティ層の受信バッファの最大サイズを指定します。
これが 0 ならばセキュリティ層は無効になります。
デフォルトは 65536 です。
- schemadn <dn>
-
このサーバのエントリを制御する subschema subentry の識別名を指定します。
デフォルトは "cn=Subschema" です。
- security <factors>
-
要求されるセキュリティ強度係数を(空白文字で区切って)指定します。
個々の係数には整数値を指定しますが、およそ要求する暗号キー長に
等しいものです。たとえば、値 112 は 3DES と等しく、128 は Blowfish
と等しいです。
このディレクティブはグローバルにも設定できますし、
データベースごとにも設定できます。
ssf=<n>
は全体的なセキュリティ強度係数を指定します。
transport=<n>
はトランスポートのセキュリティ強度係数を指定します。
tls=<n>
は TLS セキュリティ強度係数を指定します。
sasl=<n>
は SASL セキュリティ強度係数を指定します。
update_ssf=<n>
はディレクトリ更新のための全体的なセキュリティ強度係数を指定します。
update_transport=<n>
はディレクトリ更新のためのトランスポートのセキュリティ強度係数を指定します。
update_tls=<n>
はディレクトリ更新のための TLS セキュリティ強度係数を指定します。
update_sasl=<n>
はディレクトリ更新のための SASL セキュリティ強度係数を指定します。
transport
係数とは、たとえば ldapi:// (つまり IPSEC)などの基盤のトランスポート
によって提供されるセキュリティの程度のことです。
これは普通は使われません。
- sizelimit {<integer>|unlimited}
-
- sizelimit size[.{soft|hard|unchecked}]=<integer> [...]
-
検索操作から返すエントリの最大数を指定します。デフォルトのサイズ制限は
500 です。
値として
-1
か
unlimited
を指定すると無制限になります。2番目の形式ではサイズ制限を細かく設定できます。
同じ行に特別の引数を追加できます。個々のフラグの説明は
limits
を参照してください。
- sockbuf_max_incoming <integer>
-
匿名セッションのための LDAP PDU サイズの最大値を指定します。
デフォルトは 262143 です。
- sockbuf_max_incoming_auth <integer>
-
認証セッションのための LDAP PDU サイズの最大値を指定します。
デフォルトは 4194303 です。
- srvtab <filename>
-
Kerberos 認証を利用するクライアントのために必要となる kerberos キーが
存在する srvtab ファイルを指定します。このオプションは、Kerberos 認証を
利用する場合にのみ意味があります。
- threads <integer>
-
主スレッドプールの最大サイスを指定します。
デフォルトは 32 です。
- timelimit {<integer>|unlimited}
-
- timelimit time[.{soft|hard}]=<integer> [...]
-
slapd
が検索要求の応答に使う最大秒数(実時間)を指定します。
デフォルトの時間制限は 3600 です。
値として
-1
か
unlimited
を指定すると無制限になります。2番目の形式では時間制限を細かく設定できます。
同じ行に特別の引数を追加できます。個々のフラグの説明は
limits
を参照してください。
- ucdata-path <path>
-
Unicode 文字デーブルのあるディレクトリのパスを指定します。
デフォルトは /usr/local/var/ucdata です。
TLS オプション
slapd
が TLS (Transport Layer Security)をサポートするように構築されていれば、
さらに次にあげるオプションを指定できます。
- TLSCipherSuite <cipher-suite-spec>
-
どの暗号化方式をどのような優先順位で受け付けるかを設定します。
<cipher-suite-spec> は OpenSSL の暗号化方式の指定方法に基づきます。
たとえば次のように指定します。
TLSCipherSuite HIGH:MEDIUM:+SSLv2
指定することのできる暗号化方式を調べるには次のコマンドを使います。
openssl ciphers -v <cipher-suite-spec>
- TLSCACertificateFile <filename>
-
slapd
が認めるすべての認証局の証明書を含んだファイルを指定します。
- TLSCACertificatePath <path>
-
認証局の証明書が個々のファイルに分けて置かれているディレクトリのパスを
指定します。普通はこれか TLSCACertificateFile のどちらか1つだけを使います。
- TLSCertificateFile <filename>
-
slapd
サーバの証明書のファイルを指定します。
- TLSCertificateKeyFile <filename>
-
TLSCertificateFile
で指定したファイルに格納されている証明書に対応する
slapd
サーバの私有鍵のファイルを指定します。
現在のところ私有鍵はパスワードで保護してはならないので、
このファイルを注意深く保護することが極めて重要です。
- TLSRandFile <filename>
-
/dev/[u]random が利用できないときに乱数を取得するファイルを指定します。
一般には EGD/PRNGD ソケットの名前を設定します。
このファイル名を設定するのには環境変数 RANDFILE も使えます。
- TLSVerifyClient <level>
-
TLS セッション開設時にクライアント証明書をどうするかを指定します。
引数の
<level>
には次のキーワードのいずれかを指定できます。
-
- never
-
これはデフォルトです。
slapd
はクライアント証明書を求めません。
- allow
-
クライアント証明書が要求されます。
証明書が与えらていない場合でもセッションは普通に継続します。
不適当な証明書が与えられた場合でもセッションは普通に継続します。
- try
-
クライアント証明書が要求されます。
証明書が与えらていない場合でもセッションは普通に継続します。
不適当な証明書が与えられた場合はセッションをすぐに切断します。
- demand | hard | true
-
これらのキーワードは互換性の都合によりどれも同じ意味を持ちます。
クライアント証明書が要求されます。
証明書が与えらていない場合、
あるいは不適当な証明書が与えられた場合はセッションをすぐに切断します。
適正なクライアント証明書は TLS セッションでの SASL EXTERNAL
を利用するために必要となります。
したがってデフォルトではない
TLSVerifyClient
の設定が SASL EXTERNAL 認証においては必須となります。
一般バックエンドオプション
この節のオプションは、そのオプションを指定するバックエンドにのみ適用されます。
これらのオプションはあらゆる種別のバックエンドでサポートされます。
- backend <databasetype>
-
bdb,
dnssrv,
ldap,
ldbm,
meta,
monitor,
null,
passwd,
perl,
shell,
sql,
or
tcl,
バックエンド定義の始まりを示します。
引数 <databasetype> には、バックエンドが提供するデータベースにより
bdb,
dnssrv,
ldap,
ldbm,
meta,
monitor,
null,
passwd,
perl,
shell,
sql,
tcl
のいずれかを指定できます。
一般データベースオプション
この節のオプションは、そのオプションが定義されているデータベースに
のみ適用されます。これらのオプションはあらゆる種別のバックエンドで
サポートされます。各データベースについて少なくとも
database
と
suffix
オプションは指定しなければなりません。
- database <databasetype>
-
新しいデータベース実体定義の始まりを示します。
引数 <databasetype> にはバックエンドが提供するデータベースにより
bdb,
dnssrv,
ldap,
ldbm,
meta,
monitor,
null,
passwd,
perl,
shell,
sql,
tcl
のいずれかを指定できます。
- lastmod on | off
-
slapd
がエントリの運用属性 modifiersName, modifyTimestamp, creatorsName,
createTimestamp を自動的に管理するかを指定します。
デフォルトで lastmod は on になっています。
- maxderefdepth <depth>
-
実名参照するエイリアスの最大数を指定します。
エイリアスの無限ループを回避するために利用します。
デフォルトは 1 です。
- readonly on | off
-
このオプションはデータベースを「読取り専用」モードにします。
このモードでデータベースを更新しようとすると "unwilling to perform"
エラーが返ります。デフォルトで reeadonly は off になっています。
-
replica uri=ldap[s]://<hostname>[:port]|host=<hostname>[:port]
[tls=yes|critical]
[suffix=<suffix> [...]]
bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
[saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
[authcId=<authentication ID>] [authzId=<authorization ID>]
[attr[!]=<attr list>]
-
このデータベースの複製サイトを指定します。
複製される
slapd
ディレクトリサービスの設定について詳しくは "OpenLDAP
管理者ガイド" を参照してください。引数
suffix
の指定が1個でもあれば、その指定したサブツリーを複製します(デフォルトでは
データベース全体を複製します)。引数
uri
のサポートによりレプリカ LDAP サーバを LDAP URI
で指定できるようになったので、引数
host
による指定は推奨しません。
引数
bindmethod
が
simple
の場合はオプション
binddn
と
credentials
を必要とします。これは(TLS や IPSEC などの)十分な
セキュリティサービスがある場合にのみ使うようにすべきです。
bindmethod
が
sasl
の場合はオプション
saslmech
を必要とします。
- SASL バインドのセキュリティプロパティを
(先述のキーワード
sasl-secprops
のように)設定するには
secprops
オプションを指定してください。
デフォルトでない SASL レルムを設定するには
realm
オプションを使います。
引数
mechanism
に Kerberos を使う場合、kerberos の実体を
authcId
に与えるべきです。
引数
attr
の
<attr list>
に属性のリストを指定すると、その指定した属性だけを複製するようになります。
さらにオプションの
!
マークを付けると、指定した属性だけを複製しなくなります。
属性のリストに objectClass があると、
それに関連するすべての属性が対象となります。
- replogfile <filename>
-
変更を記録する複製ログファイルの名前を指定します。
複製ログは通常
slapd(8)
が書き出し、
slurpd(8)
が読み取ります。より詳しくは
slapd.replog(5)
を参照してください。
複製ログファイルは機密情報を含むかもしれないので、
このオプションで指定するファイルは read/write/execute
アクセス権を制限したディレクトリにあるようにすべきです。
- rootdn <dn>
-
このデータベースに対するアクセス権制御あるいは管理限度の制限に
従わないエントリの DN を指定します。
この DN はディレクトリ中のエントリのものでもよいですし、
そうでなくてもかまいません。root DN が無い場合(デフォルト)、
root のアクセス権限は与えられません。
rootdn は(最初にデータベースを作成するときなど)必要なときにだけ
指定することを勧めます。rootdn がデータベースの namingContext
(接尾辞)に属する場合には、簡易バインドのパスワードを
rootpw
ディレクティブで指定することもできます。
- rootpw <password>
-
rootdn オプションで与えた DN のためのパスワード
(あるいはパスワードをハッシュしたもの)を指定します。
rootdn がデータベースの namingContext に属するものでなければ、
このオプションで与えたパスワードは無視されます。
このオプションには、クリアテキストの他にも
サーバがサポートしている RFC 2307 userPassword formats
をすべて指定できます(
password-hash
の説明を参照)。
パスワードのハッシュを生成するには
slappasswd(8)
を利用できます。クリアテキストと {CRYPT} の利用は勧められません。
rootpw が空の場合(デフォルト)、root DN の認証は(SASL などの)他の手段で
行われます。SASL の利用を推奨します。
- suffix <dn suffix>
-
このバックエンドデータベースに渡す問合せの DN 接尾辞を指定します。
複数の suffix 行を与えてもよいですが、
各データベース定義に少なくとも1つは必要です。
あるデータベースの接尾辞が別のデータベースの接尾辞の「中」にある場合、
その中の接尾辞を持つデータベースは、設定ファイル中でより前になければ
なりません。
- subordinate
-
このバックエンドデータベースが別のバックエンドデータベースの下位に
あることを指定します。下位データベースは接尾辞を1つだけ持てます。
このオプションにより、複数のデータベースから成る単一の namingContext を
作成できます。このデータベースの接尾辞が上位データベースの namingContext
内にある場合、上位データベースに対する検索は下位データベースにも伝播します。
単一の namingContext と関連づけられたデータベースのすべては、同一の
rootdn を持つべきです。
この設定により LDAP 操作の振舞が影響を受けることはありません。
特に namingContext 内で、ある下位データベースから別のデータベースに
移動する moddn を行うことはできません。
- updatedn <dn>
-
このオプションは、スレーブの
slapd
にのみ適用できます。これは、複製の変更を許す DN を指定します(通常これは
複製の変更をするときに
slurpd(8)
がバインドする DN です)。
- updateref <url>
-
slapd(8)
が複製されたローカルデータベースの更新を要求されたときに
クライアントに戻す紹介先(referral)を指定します。
このディレクティブはいくつも指定でき、各 url が戻されます。
データベース固有のオプション
各データベースには固有の設定オプションがあります。
そのようなオプションの説明は
slapd-<backend>(5)
マニュアルページに分けて載せています。
設定例
次に設定ファイルの簡単な例を示します。
-
include /usr/local/etc/openldap/schema/core.schema
pidfile /usr/local/var/slapd.pid
# Subtypes of "name" (e.g. "cn" and "ou") with the
# option ";x-hidden" can be searched for/compared,
# but are not shown. See slapd.access(5).
attributeoptions x-hidden lang-
access to attr=name;x-hidden by * =cs
database bdb
suffix "dc=our-domain,dc=com"
# The database directory MUST exist prior to
# running slapd AND should only be accessible
# by the slapd/tools. Mode 700 recommended.
directory /usr/local/var/openldap-data
# Indices to maintain
index objectClass eq
index cn,sn,mail pres,eq,approx,sub
# We serve small clients that do not handle referrals,
# so handle remote lookups on their behalf.
database ldap
suffix ""
uri ldap://ldap.some-server.com/
lastmod off
"OpenLDAP 管理者ガイド" にはより長い設定ファイルの例が
注解つきで載っています。
別の例としてはオリジナルの /usr/local/etc/openldap/slapd.conf があります。
関連ファイル
- /usr/local/etc/openldap/slapd.conf
-
デフォルトの slapd 設定ファイル
関連項目
ldap(3),
slapd-bdb(5),
slapd-dnssrv(5),
slapd-ldap(5),
slapd-ldbm(5),
slapd-meta(5),
slapd-null(5),
slapd-passwd(5),
slapd-perl(5),
slapd-shell(5),
slapd-sql(5),
slapd-tcl(5),
slapd.replog(5),
slapd.access(5),
locale(5),
slapd(8),
slapadd(8),
slapcat(8),
slapindex(8),
slappassword(8),
slurpd(8),
OpenLDAP 管理者ガイド (http://www.OpenLDAP.org/doc/admin/)
謝辞
OpenLDAP
は OpenLDAP プロジェクト (http://www.openldap.org/ )が開発/管理しています。
OpenLDAP
はミシガン大学の LDAP 3.3 リリースより派生しました。
和訳
稲地 稔 <inachi@kkd.biglobe.ne.jp>
Index
- 名前
-
- 所在
-
- 説明
-
- グローバル設定オプション
-
- TLS オプション
-
- 一般バックエンドオプション
-
- 一般データベースオプション
-
- データベース固有のオプション
-
- 設定例
-
- 関連ファイル
-
- 関連項目
-
- 謝辞
-
- 和訳
-