SLAPD.CONF

Section: File Formats (5)
Updated: 28 May 2001
Index Return to Main Contents
 

名前

slapd.conf - スタンドアローン LDAP デーモン slapd の設定ファイル  

所在

/usr/local/etc/openldap/slapd.conf  

説明

ファイル /usr/local/etc/openldap/slapd.confslapd(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 で最後にあるものが使われます)。 空行と文字 `#' で始まるコメント行は無視されます。行が空白で始まる場合、 直前の行から継続しているとみなされます。

設定行での引数は空白で区切ります。引数に空白を含めるには、その引数を 二重引用符で囲みます。引数に二重引用符(`"')あるいは バックスラッシュ文字(`\')を含めるには、その文字の前に バックスラッシュを付けます。

指定可能な個々の設定オプションは、以降の節 「グローバル設定オプション」、「一般バックエンドオプション」、 「一般データベースオプション」、「LDBM データベース固有オプション」、 「shell データベース固有オプション」、 「password バックエンド固有オプション」で説明します。 slapd の設定ファイルについてより詳しくは "OpenLDAP 管理者ガイド" を参照してください。  

グローバル設定オプション

この節で説明するオプションは、バックエンド定義で特に上書きしない限り すべてのバックエンドに適用します。 実際のテキストで置き換える引数はブラケット <> で示します。
access to <what> [ by <who> <access> <control> ]+
エントリや属性の1セット(<what> に指定)に対するアクセス権(<access> に指定)を1人以上の要求者(<who> に指定)に与えます。 詳しくは "OpenLDAP 管理者ガイド" を参照してください。
allow <features>
許可する機能を(空白文字で区切って)指定します(デフォルトは none)。 tls_2_anon は、セッションに匿名状態を強制することを Start TLS に許します disallow tls_authc も参照)。
argsfile <filename>
slapd サーバをデバッグコマンドラインオプション無しで始動した場合に、 slapd サーバのコマンドラインオプションを保持するファイルの 絶対パス名を指定します。
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 の説明を参照)。現在のところシンタックス名のパーサは英大小文字を区別します。 サポートしているシンタックス名には次のものがあります。
AttributeTypeDescription Audio Binary BitString Certificate CertificateList CertificatePair DN DeliveryMethod DirectoryString DITContentRuleDescription DITStructureRuleDescription EnhancedGuide FacsimileTelephoneNumber GeneralizedTime Guide IA5String Integer MatchingRuleDescription MatchingRuleUseDescription MailPreference NameAndOptionalUUID NameFormDescription NumericString ObjectClassDescription OID OtherMailbox OctetString PostalAddress ProtocolInformation PresentationAddress PrintableString SupportedAlgorithm TelephoneNumber TeletexTerminalIdentifier TelexNumber UTCTime LDAPSyntaxDescription SubstringAssertion NISnetgrouptriple Bootparameter
concurrency <integer>
並行処理の要求レベルを指定します。 これは基盤のスレッドシステムにヒントとして渡します。 デフォルトでは基盤のスレッドシステムに何もヒントを渡しません。
defaultaccess { none | auth | compare | search | read | write }
データベースに access ディレクティブを何も与えない場合に、 要求者に与えるデフォルトのアクセス権を指定します。 デフォルトでは 'read' アクセス権を与えます。 このディレクティブの代わりに access ディレクティブを使うことを勧めます。
defaultsearchbase <dn>
クライアントが空のベース DN でベース検索でない検索要求を送って くる場合に使うデフォルトの検索ベースを指定します。
disallow <features>
禁止する機能を(空白文字で区切って)指定します(デフォルトは none)。 bind_v2 は LDAPv2 バインド要求の受付を禁止します。 bind_anon は匿名バインド要求の受付を禁止します。 bind_anon_cred は(DN が空のときなどに)証明書が空でない匿名バインドを禁止します。 bind_anon_dn は DN が空でないときの匿名バインドを禁止します。 bind_simple は簡易(バインド)認証を禁止します。 bind_krbv4 は Kerberos V4 (バインド)認証を禁止します。 tls_authc は認証後の StartTLS を禁止します( allow tls_2_anon も参照)。
idletimeout <integer>
アイドル状態のクライアント接続を強制的に切断するまでの秒数を指定します。
idletimeout の値が 0 であるとこの機能は無効になります。 デフォルトは 0 です。
include <filename>
現在のファイルの次の行に進む前に、与えたファイルから追加の設定情報を 読み込みます。
loglevel <integer>
デバッグ情報と操作の統計値を syslog に出力するかを示すレベルを指定します (現在のところ、 syslogd(8) の LOG_LOCAL4 に記録されます)。各種のログレベルを加算して指定できます。 利用できるレベルは次のとおりです。
1
関数呼出しのトレース
2
パケット処理のデバッグ
4
詳細なデバッグトレース
8
接続管理
16
パケット送受信の印字
32
検索フィルタの処理
64
設定ファイルの処理
128
アクセス制御リストの処理
256
接続/操作/結果の統計ログ
512
エントリ送信の統計ログ
1024
shell バックエンドとの通信の印字
2048
エントリの解析
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>
パスワード生成のために使うハッシュ方式を指定します。 指定できるのは {SSHA}, {SHA}, {SMD5}, {MD5}, {CRYPT} のいずれかです。デフォルトは {SSHA} です。
password-crypt-salt-format <format>
{CRYPT} パスワードを生成するときに 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 サーバのプロセス ID ( getpid(2) を参照)を保持するファイルの絶対パス名を指定します。
referral <url>
slapd(8) が要求を処理するためのローカルデータベースを見つけられなかった場合に、 クライアントに戻す紹介先(referral)を指定します。
require <conditions>
必要となる条件を指定します(デフォルトは none)。 複数の条件がある場合には空白文字で区切って指定します。 このディレクティブはグローバルにもデータベースごとにも 指定できます。 bind はディレクトリ操作の前に bind 操作を必要とします。 LDAPv3 はセッションが LDAP バージョン3を使うことを必要とします。 authc はディレクトリ操作の前に認証を必要とします。 SASL はディレクトリ操作の前に SASL 認証を必要とします。 strong はディレクトリ操作の前に強固な認証を必要とします。 現在のところ SASLstrong の条件は同じ扱いとなります。 none は条件を何も必要としない場合に使います(グローバルに設定された条件を 特定のデータベースで無効にするのに使えます)。
sasl-host <fqdn>
SASL 処理を行うホストの完全に修飾されたドメイン名を指定します。
sasl-realm <realm>
SASL realm を指定します。デフォルトは空です。
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 です。
schemacheck { on | off }
スキーマ検査を on あるいは off にします。デフォルトは on です。
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>
検索操作から返すエントリの最大数を指定します。デフォルトのサイズ制限は 500 です。
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>
slapd が検索要求の応答に使う最大秒数(実時間)を指定します。 デフォルトの時間制限は 3600 です。
 

TLS オプション

slapd が TLS (Transport Layer Security)をサポートするように構築されていれば、 さらに次にあげるオプションを指定できます。
TLSCipherSuite <cipher-suite-spec>
どの暗号化方式をどのような優先順位で受け付けるかを設定します。 <cipher-suite-spec> は OpenSSL の暗号化方式の指定方法に基づきます。 たとえば次のように指定します。

TLSCipherSuite HIGH:MEDIUM:+SSLv2

指定することのできる暗号化方式を調べるには次のコマンドを使います。

openssl ciphers -v <cipher-suite-spec>

TLSCertificateFile <filename>
slapd サーバの証明書のファイルを指定します。
TLSCertificateKeyFile <filename>
TLSCertificateFile で指定したファイルに格納されている証明書に対応する slapd サーバのプライベートキーのファイルを指定します。 現在のところプライベートキーはパスワードで保護してはならないので、 このファイルを注意深く保護することが極めて重要です。
TLSRandFile <filename>
/dev/[u]random が利用できないときに乱数を取得するファイルを指定します。 一般には EGD/PRNGD ソケットの名前を設定します。 このファイル名を設定するのには環境変数 RANDFILE も使えます。
 

一般バックエンドオプション

この節のオプションは、そのオプションが定義されているバックエンドに のみ適用されます。これらのオプションは指定のバックエンドのデータベース すべてでサポートされます。これらのオプションは種別のバックエンドで サポートされます。
backend <databasetype>
バックエンド定義の始まりを示します。 <databasetype> には、バックエンドが提供するデータベースにより ldbm, shell, passwd のいずれかを指定できます。

 

一般データベースオプション

この節のオプションは、そのオプションが定義されているデータベースに のみ適用されます。これらのオプションは全種別のバックエンドで サポートされます。
database <databasetype>
新しいデータベース実体定義の始まりを示します。 <databasetype> には、バックエンドが提供するデータベースにより ldbm, shell, passwd のいずれかを指定できます。
lastmod on | off
slapd がエントリの属性 modifiersName, modifyTimestamp, creatorsName, createTimestamp を自動的に管理するかを制御します。 デフォルトで lastmod は on になっています。
readonly on | off
このオプションは、データベースを「読取り専用」モードにします。この モードでデータベースを更新しようとすると "unwilling to perform" エラーが返ります。デフォルトで reeadonly は off になっています。
replica host=<hostname>[:port] [tls=yes|critical] [suffix=<suffix> [...]] bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>] [saslmech=<SASL mech>] [secopts=<options>] [realm=<realm>] [authcId=<authentication ID>] [authcId=<authentication ID>]
このデータベースの複製サイトを指定します。 複製する slapd ディレクトリサービスの設定について詳しい情報は "OpenLDAP
Administrator's Guide" を参照してください。 suffix の指定が1個でもあれば、その指定したサブツリーを複製します (デフォルトではデータベース全体を複製します)。 bindmethodsimple の場合はオプション binddn credentials を必要とします。これは(TLS や IPSEC などの)十分な セキュリティサービスがある場合にのみ使うようにすべきです。 bindmethodsasl の場合はオプション saslmech を必要とします。 mechanism に Kerberos を使う場合、kerberos の実体を authcId に与えるべきです。
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 行を与えてもよいですが、 各データベース定義に少なくとも一つは必要です。
updatedn <dn>
このオプションは、スレーブの slapd にのみ適用できます。これは、複製の変更を許す DN を指定します(通常これは 複製の変更をするときに slurpd(8) がバインドする DN です)。
updateref <url>
slapd(8) が複製されたローカルデータベースの更新を要求されたときに クライアントに戻す紹介先(referral)を指定します。 このディレクティブはいくつも指定でき、各 url が戻されます。
 

LDBM データベース固有オプション

このカテゴリのオプションは、LDBM データベースにのみ適用されます。 すなわち、"database ldbm" とある行の後で、次の "backend" あるいは "database" 行が現れる前になければなりません。
cachesize <integer>
LDBM バックエンドデータベースの実体によって管理される メモリ内キャッシュのエントリ数を指定します。デフォルトは 1000 エントリです。
dbcachesize <integer>
オープンされている索引ファイルそれぞれと関連づ けられているメモリ内キャッシュのサイズをバイト数で指定します。 基板のデータベース方式でサポートされなければ、このオプションは黙って 無視されます。デフォルトは 100000 バイトです。
dbnolocking
データベースのロックを行わないようにします。 このオプションは、データのセキュリティを犠牲にしてでも 性能を上げたい場合に使います。このオプションを指定して slapd を動作させている間は、いかなる slap ツールも実行 してはなりません。
dbnosync
メモリ内の変更をディスク上の内容とすぐには同期をとらないようにします。 このオプションは、データのセキュリティを犠牲にしてでも性能を上げたい 場合に使います。
dbsync <frequency> <maxdelays> <delayinterval>
<frequency> 秒毎にダーティデータベースバッファをフラッシュします。 これは暗に dbnosync を指定したことになります(すなわち、 更新のたびにディスクに書き込まれなくなります)。 同期を行えないほどサーバに負荷がかかっている場合には、 同期の実行を <delayinterval> 秒待ち、この遅延を <maxdelays> 回繰り返すことにより、負荷が最高にある間は同期を避けようとします。 これは、高速な書込み性能を、ある程度のデータセキュリティ付きで 提供しようとするものです。 それでも、不整合なデータベースができる可能性があることに 注意してください。 たとえば、基盤のエンジンでキャッシュが一杯になり、同期制御とは別に 個々のページに書き出す場合や、slapd が次の同期の前に異常終了するか kill された場合などに、データベースが不整合になります。 <maxdelays><delayinterval> は省略可能です。デフォルト値はそれぞれ 125 で、同期が起きる前に最大 60 秒の遅延がありえます。 <maxdelays> には 0 も指定できます。 <delayinterval> は 1 以上でなければなりません。
directory <directory>
データベースと関連する索引を含んだ LDBM ファイル群を置くディレクトリを指定します。 データベースごとに別々のディレクトリを指定しなければなりません。 デフォルトは /usr/local/var/openldap-ldbm です。
index {<attrlist>|default} [pres,eq,approx,sub,<special>]
与えた属性について管理する索引を指定します。 <attrlist> だけが与えられた場合、default で指定された索引が管理されます。 いくつかの特殊な索引パラメータを与えることができます。 索引種別 sub は、 subinitial, subany, subfinal 索引に分解できます。 特殊種別 lang は、この索引を言語サブタイプで使えるように指定します。 特殊種別 autolang は個々の言語サブタイプのために別々の索引を自動的に管理することを指定します。 特殊種別 subtypes は、この索引を名前つきサブタイプで使えるようにします。 特殊種別 autosubtypes は個々の名前つきサブタイプのために別々の索引を自動的に管理することを 指定します。
mode <integer>
新たに作成するデータベース索引ファイルが持つ ファイル保護モードを指定します。デフォルトは 0600 です。
 

SHELL データベース固有オプション

このカテゴリのオプションは、SHELL バックエンドデータベースにのみ 適用されます。すなわち、"database shell" とある行の後で、次の "backend" あるいは "database" 行が現れる前になければなりません。 shell バックエンドは操作を実現するために外部プログラムを実行します。 これは、既存のデータベースと slapd フロントエンドとを結びつけるのが容易になるように設計されています。
bind <pathname>
unbind <pathname>
search <pathname>
compare <pathname>
modify <pathname>
modrdn <pathname>
add <pathname>
delete <pathname>
abandon <pathname>
これらのオプションは、与えた LDAP 操作に応答して実行するコマンドの パス名を指定します。

バックエンドに処理してほしいコマンドを設定行に指定するだけです。 コマンドの指定されていない操作を行うと "unwilling to perform" エラー となって拒絶されます。  

PASSWORD データベース固有オプション

このカテゴリのオプションは、PASSWD バックエンドデータベースにのみ 適用されます。すなわち、"database passwd" とある行の後で、次の "backend" あるいは "database" 行が現れる前になければなりません。 PASSWD データベースは、システムの passwd(5) ファイルにあるアカウント情報を提供します。
file <filename>
利用する passwd ファイルを明示します。デフォルトは /etc/passwd です。
 

設定例

設定ファイルの例は、"OpenLDAP Administrator's Guide" に注解つきで載っています。  

関連ファイル

/usr/local/etc/openldap/slapd.conf  

関連項目

ldap(3), slapd.replog(5), locale(5), passwd(5), slapd(8), slapadd(8), slapcat(8), slapindex(8), slappasswd(8), slurpd(8),

"OpenLDAP Administrator's Guide" (http://www.openldap.org/doc/admin/)  

謝辞

OpenLDAP は OpenLDAP プロジェクト (http://www.openldap.org/ )が開発/管理しています。 OpenLDAP はミシガン大学の LDAP 3.3 リリースより派生しました。  

翻訳者

稲地 稔


 

Index

名前
所在
説明
グローバル設定オプション
TLS オプション
一般バックエンドオプション
一般データベースオプション
LDBM データベース固有オプション
SHELL データベース固有オプション
PASSWORD データベース固有オプション
設定例
関連ファイル
関連項目
謝辞
翻訳者

This document was created by man2html, using the manual pages.
Time: 15:16:02 GMT, February 21, 2002