arinux

Linux サーバー設定備忘録
openLDAP 構築(8) - インデックス(slapd.conf)


青い旗 slapd.conf のインデックス部分

index objectClass pres,eq
index ou,cn eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
cachesize 2000


メモSyntax

index {<attrlist> | default } [pres,eq,approx,sub,none]



虫眼鏡 indexの設定


index は、効率良くデータを検索するように設定します。よく検索される部分をインデックスとして記述しておきます。index は、


  pres: 存在(present)
    属性に値が含まれているかどうかを判断します。値が含まれていない場合は、
    その属性は存在しないことになります。
  eq: 一致(等価性, equality)
    属性の値が完全に一致しているかどうかを判断します。大文字・小文字、スペース
    の区別は、スキーマで定義されているマッチング規則によります。
  sub: 部分文字列
    属性の値に対して、部分的に文字列が一致するかを判断します。
  approx: 近似
    属性の値に近似マッチするかどうかを判断します。


を指定します。以下の例の場合、

index ou,cn eq,pres,sub


「ou」「cn」 について、pres(存在)、eq(一致)、sub(部分文字列) のいずれもが検索条件として使用されることを意味します。



メモエントリーキャッシュ


一度読み出したエントリーをメモリーにキャッシュします。 通常は LDAP サーバーに格納するエントリー数と同じ値を設定します。Default では、1000エントリーになっています。この値を変更したい場合は、以下のように slapd.conf に記述します。

cachesize 2000


ディレクトリ全体で 1000エントリーより小さい場合は、キャッシュサイズを変更する必要はありません。



メモインデックスキャッシュ


一度読みだしたインデックスをメモリーにキャッシュします。デフォルトでは 0 になっています。目安はエントリーキャッシュの 3倍です。この値を変更したい場合は、以下のように slapd.conf に記述します。

idlcachesize 6000


なお、Berkeley DB の場合は 「idlcachesize」、ldbm の場合は 「dbcachchesize(default 100000byte)」 になります。



つづく

| arinux | openldap | 09:54 | comments(1) | trackbacks(0) | pookmark |
openLDAP 構築(7) - アクセス制限(slapd.conf)


メモuserPassword に対するアクセス制限


access to attrs=userPassword
        by self write
        by dn="cn=Manager,dc=examples,dc=com" write
        by anonymous auth
        by * none


  • 自分自身は書き換え可能
  • Manager は書き換え可能
  • 匿名接続ならば、認証したときにこの属性が使える
  • その他のアクセスの際は、何もできない


メモその他の属性に対するアクセス制限


access to *
        by self write
        by dn="cn=Manager,dc=examples,dc=com" write
        by * read
  • 自分自身は書き換え可能
  • Manager は書き換え可能
  • その他のアクセスの際は、read のみ可能


虫眼鏡 アクセス権の指定子


  • 匿名ユーザも認証されたユーザも含めたすべて
    *

  • 匿名(認証されていない)ユーザ
    anonymous

  • 認証されたユーザ
    users

  • 目的のエントリと結びつけられているユーザ
    self

  • 正規表現に一致するユーザ
    dn[.<basic-style>]=<regex>

  • DN のスコープ内のユーザ
    dn.<scope-style>=<DN>


虫眼鏡 アクセス権のレベル


レベル権限意味
none=0アクセス不可
auth=xバインドに必要
compare=cx比較に必要
search=scx検索フィルタの適用に必要
read=rscx検索結果の読取りに必要
write=wrscx更新/名前変更に必要



つづく

| arinux | openldap | 11:32 | comments(1) | trackbacks(0) | pookmark |
openLDAP 構築(6) - マスターサーバー設定


  1. LDAP サーバの専用ユーザー 「ldap」 を作成します。
    [root]# useradd -d /home/ldap -s /bin/false ldap
    


  2. 「rootpw」 のパスワードを生成します。
    [root]# /usr/local/sbin/slappasswd
    New password:パスワードを入力Re-enter new password:再入力{SSHA}fZBflR2Eu2hv+uaRy7qGWGzei/yjjFG+
    


  3. 「slapd.conf」 を編集します。「rootpw」 には、上記で生成したパスワードを記入します。
    [root]# cd /usr/local/etc/openldap
    [root]# vi slapd.conf
    
    include         /usr/local/etc/openldap/schema/core.schema
    include         /usr/local/etc/openldap/schema/corba.schema
    include         /usr/local/etc/openldap/schema/cosine.schema
    include         /usr/local/etc/openldap/schema/dyngroup.schema
    include         /usr/local/etc/openldap/schema/inetorgperson.schema
    include         /usr/local/etc/openldap/schema/java.schema
    include         /usr/local/etc/openldap/schema/misc.schema
    include         /usr/local/etc/openldap/schema/nis.schema
    include         /usr/local/etc/openldap/schema/openldap.schema
    
    pidfile         /usr/local/var/run/slapd.pid
    argsfile        /usr/local/var/run/slapd.args
    
    access to attrs=userPassword
            by self write
            by dn="cn=Manager,dc=examples,dc=com" write
            by anonymous auth
            by * none
    
    access to *
            by self write
            by dn="cn=Manager,dc=examples,dc=com" write
            by * read
    
    database        bdb
    suffix          "dc=examples,dc=com"
    rootdn          "cn=Manager,dc=examples,dc=com"
    rootpw          {SSHA}fZBflR2Eu2hv+uaRy7qGWGzei/yjjFG+
    directory       /usr/local/var/openldap-data
    index objectClass pres,eq
    index ou,cn eq,pres,sub
    index uidNumber,gidNumber,loginShell eq,pres
    


  4. /usr/local/var/openldap-data を再作成します。
    [root]# cd /usr/local/var
    [root]# ¥rm -rf openldap-data
    [root]# mkdir openldap-data
    [root]# cp /usr/local/etc/openldap/DB_CONFIG.example openldap-data/DB_CONFIG
    [root]# chown -R ldap:ldap openldap-data
    



つづく

| arinux | openldap | 11:30 | comments(0) | trackbacks(0) | pookmark |
openLDAP 構築(5) - slapdの起動テスト


  1. slpad を起動します。
    [root]# /usr/local/libexec/slapd
    


  2. slapd が起動していることを確認します。
    [root]# ps -ef | grep slapd
    root      3044     1  2 14:48 ?        00:00:00 /usr/local/libexec/slapd
    


  3. うまく動いたかをクライアントツールの ldapsearch で確認します。
    [root]# ldapsearch -x -s base +
    # extended LDIF
    #
    # LDAPv3
    # base <> with scope baseObject
    # filter: (objectclass=*)
    # requesting: +
    
    dn:
    structuralObjectClass: OpenLDAProotDSE
    configContext: cn=config
    namingContexts: dc=my-domain,dc=com
    supportedControl: 1.3.6.1.4.1.4203.1.9.1.1
    supportedControl: 2.16.840.1.113730.3.4.18
    (中略)
    supportedExtension: 1.3.6.1.4.1.4203.1.11.1
    supportedExtension: 1.3.6.1.4.1.4203.1.11.3
    supportedFeatures: 1.3.6.1.1.14
    supportedFeatures: 1.3.6.1.4.1.4203.1.5.1
    (中略)
    supportedLDAPVersion: 3
    entryDN:
    subschemaSubentry: cn=Subschema
    
    # search result
    search: 2
    result: 0 Success
    
    # numResponses: 2
    # numEntries: 1
    


  4. 上記のように表示されれば OK です。設定を始める前に、「slapd」 を停止します。
    [root]# kill -INT `cat /usr/local/var/run/slapd.pid`
    



ここまで

| arinux | openldap | 11:22 | comments(1) | trackbacks(0) | pookmark |
openLDAP 構築(4) - openldapのインストール


すでにインストールされている 「openldapパッケージ」 に含まれる共有ライブラリ(/usr/lib/libldap-2.2.so.7) が、LDAPクライアント側で使用されますので、削除せずに、別途 openldap をソースからインストールします。


  1. http://www.openldap.org/software/download/ から
    「openldap-2.3.37.tgz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [root]# cd /usr/local/src
    [root]# tar zxvf openldap-2.3.37.tgz
    


  3. コンフィグします。
    [root]# cd openldap-2.3.37
    [root]# ./configure --enable-ldap=yes --enable-debug=yes --with-tls --enable-crypt=yes ¥
    --with-cyrus-sasl --enable-overlays=yes --enable-ppolicy=yes
    


    虫眼鏡 オプションの意味【(D)は Default値】


    • ldap バックエンドを有効にする。
      --enable-ldap: [no(D)|yes|mod]

    • デバッグ用のコードを有効にする。
      --enable-debug: [auto|yes(D)|no]

    • TLS/SSL を利用する。
      --with-tls: [auto(D)|yes|no]

    • crypt(3) パスワードを有効にする。
      --enable-crypt: [auto|yes|no(D)]

    • CyrusSASL を利用する。これを指定しないと SASL を利用した認証は行えない。
      --with-cyrus-sasl: [auto(D)|yes|no]

    • 利用可能なすべてのオーバーレイを有効にする。
      --enable-overlays=yes: [no(D)|yes|mod]

    • ppolicy オーバーレイを有効にする。
      --enable-ppolicy=yes: [no(D)|yes|mod]


  4. コンパイルします。
    [root]# make depend
    [root]# make
    


  5. テストします(30分はかかります)。全てのテストで 「OK」 が表示されなければいけません。
    [root]# make test
    


  6. インストールします。
    [root]# make install
    


  7. 新しい Berkeley DB にリンクしているかどうかを確認します。
    [root]# ldd /usr/local/libexec/slapd
            libdb-4.5.so => /usr/local/lib/libdb-4.5.so (0x005d8000)    # これこれ
            libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00385000)
            libssl.so.0.9.7 => /usr/local/lib/libssl.so.0.9.7 (0x003b4000)
            libcrypto.so.0.9.7 => /usr/local/lib/libcrypto.so.0.9.7 (0x00444000)
    (以下、省略)
    



ここまで

| arinux | openldap | 09:52 | comments(2) | trackbacks(0) | pookmark |
openLDAP 構築(3) - Cyrus SASLのインストール


OpenLDAP のサーバーとクライアントは 、SASLSimple Authentication and Security Layer) フレームワークを利用して認証できます。openldap のソースを 「--with-cyrus-sasl」 をつけてコンフィグする場合は、事前にCyrus SASL をインストールしておかなければいけません。


すでに 「cyrus-sasl」 パッケージがインストールされている場合はそちらを使用してもいいし、削除してソースから再インストールしてもかまいません。


メモCentOS 4.5 では、以下の依存関係があります(ミニマム・インストールの場合)。

[root]# rpm --test -e cyrus-sasl-2.1.19-5.EL4
error: Failed dependencies:
        libsasl.so.7 is needed by (installed) cyrus-sasl-devel-2.1.19-5.EL4.i386
        libsasl2.so.2 is needed by (installed) openldap-2.2.13-7.4E.i386
        libsasl2.so.2 is needed by (installed) sendmail-8.13.1-3.2.el4.i386
        libsasl2.so.2 is needed by (installed) cyrus-sasl-devel-2.1.19-5.EL4.i386
        cyrus-sasl = 2.1.19-5.EL4 is needed by (installed) cyrus-sasl-md5-2.1.19-5.EL4.i386
        cyrus-sasl = 2.1.19-5.EL4 is needed by (installed) cyrus-sasl-plain-2.1.19-5.EL4.i386
        cyrus-sasl is needed by (installed) openldap-2.2.13-7.4E.i386
        cyrus-sasl is needed by (installed) sendmail-8.13.1-3.2.el4.i386
        cyrus-sasl = 2.1.19-5.EL4 is needed by (installed) cyrus-sasl-devel-2.1.19-5.EL4.i386


メモVine 4.1 では、以下の依存関係があります(ミニマム・インストールの場合)。

[root]# rpm --test -e cyrus-sasl-2.1.18-0vl6
error: Failed dependencies:
        libsasl.so.7 is needed by (installed) cyrus-sasl-devel-2.1.18-0vl6.i386
        libsasl2.so.2 is needed by (installed) postfix-2.2.10-0vl6.i386
        libsasl2.so.2 is needed by (installed) openldap-2.3.27-0vl2.3.i386
        libsasl2.so.2 is needed by (installed) cyrus-sasl-devel-2.1.18-0vl6.i386
        cyrus-sasl is needed by (installed) postfix-2.2.10-0vl6.i386
        cyrus-sasl is needed by (installed) openldap-2.3.27-0vl2.3.i386
        cyrus-sasl = 2.1.18-0vl6 is needed by (installed) cyrus-sasl-devel-2.1.18-0vl6.i386


  1. ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ から
    「cyrus-sasl-2.1.22.tar.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [root]# cd /usr/local/src
    [root]# tar zxvf cyrus-sasl-2.1.22.tar.gz
    


  3. make に渡す引数をセットします。
    [root]# export LDFLAGS="-L/usr/local/lib"
    [root]# export CFLAGS="-DWITH_SSL_DES -I/usr/include"
    [root]# export CPPFLAGS="-I/usr/include -I/usr/local/include"
    


  4. コンフィグします。
    [root]# cd cyrus-sasl-2.1.22
    [root]# ./configure --with-dbpath=/usr/local/etc/sasldb2 ¥
    --with-plugindir=/usr/local/lib/sasl2 ¥
    --with-ldap=/usr/local/lib ¥
    --with-openssl=/usr/local/lib ¥
    --disable-krb4 --disable-gssapi --disable-anon --enable-login
    
    虫眼鏡 コンフィグ・オプションの意味


    オプション意味
    --with-dbpathSASL データベースディレクトリ
    --with-plugindirライブラリ格納ディレクトリ
    --with-ldapLDAP サポートとライブラリの指定
    --with-opensslOpenSSL サポートとライブラリの指定
    --disable-krb4Kerberos バージョン 4 プロトコルを disable にする。Default は enable。
    --disable-gssapiKerberos バージョン 5 (GSSAPI) プロトコルを disable にする。Default は enable。
    --disable-anonANONYMOUS プロトコルを disable にする。Default は enable。
    --enable-loginOutlook Express 5.x の LOGIN 認証を enable にする。Default は disable。


  5. コンパイル、インストールします。
    [root]# make
    [root]# make install
    


  6. ldap が利用できることを確認します。
    [root]# /usr/local/sbin/saslauthd -v
    saslauthd 2.1.22
    authentication mechanisms: getpwent pam rimap shadow ldap
    


  7. ライブラリのパスと Cプリプロセッサのオプションに sasl のパスを追加します。
    [root]# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/sasl2
    [root]# export CPPFLAGS="-I/usr/include -I/usr/local/include -I/usr/local/include/sasl"
    



ここまで

| arinux | openldap | 09:35 | comments(0) | trackbacks(0) | pookmark |
openLDAP 構築(2) - openSSLのインストール


SSL/TLSSecure Sockets Layer/Transport Layer Security) を使用して、通信経路でやりとりされるデータを暗号化します。openLDAP では、openSSL ライブラリによって SSL/TLS を利用します。


すでにインストールされている 「opensslパッケージ」 に含まれる共有ライブラリが、他の多くのパッケージで使用されていますので、削除せずに置いておいたままで、最新の openssl を /usr/local 以下にインストールします。


  1. http://www.openssl.org/source/ から
    「openssl-0.9.7m.tar.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [root]# cd /usr/local/src
    [root]# tar zxvf openssl-0.9.7m.tar.gz
    


  3. perl のパスをセットします。
    [root]# cd openssl-0.9.7m
    [root]# perl util/perlpath.pl /usr/bin/perl
    


  4. コンフィグ、コンパイルしてインストールします。
    [root]# ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl
    [root]# make depend
    [root]# make
    [root]# make install
    


  5. 環境変数 PATH による検索順によって、旧い 「openssl」 を先に参照する場合があるので、新しい 「openssl」 にシンボリックリンクします。
    [root]# which openssl
    /usr/bin/openssl
    [root]# cd /usr/bin
    [root]# mv openssl openssl.org
    [root]# ln -s /usr/local/bin/openssl /usr/bin/openssl
    


  6. ランタイムライブラリの検索パスをセットします。
    [root]# export LD_LIBRARY_PATH=/usr/local/lib
    



ここまで

| arinux | openldap | 09:25 | comments(1) | trackbacks(0) | pookmark |
openLDAP 構築(1) - Berkeley DBのインストール


LDAP のデータは bdb(Berkeley DB) や ldbm に格納されます。ディレクトリ情報を格納するバックエンドのデータベースです。


  1. http://www.oracle.com/technology/software/products/berkeley-db/index.html から
    「Berkeley DB 4.5.20 NC.tar.gz , without encryption (8.8M)」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [root]# cd /usr/local/src
    [root]# tar zxvf db-4.5.20.NC.tar.gz
    


  3. 「configure」 は dist ディレクトリの中にありますが、"build_xx" というプラットフォームごとのディレクトリに移ってから実行します。
    [root]# cd db-4.5.20.NC/build_unix
    [root]# ../dist/configure --prefix=/usr/local
    


  4. コンパイラを gcc に変更します(Linux は cc が gcc にリンクされているので、本当はしなくてよい)。
    [root]# export CC=gcc
    


  5. コンパイルしてインストールします。
    [root]# make
    [root]# make install
    


  6. db.h が作成されたことを確認します。
    [root]# ls -l /usr/local/include/db.h
    -r--r--r--  1 root root 101998 Apr 12 12:27 /usr/local/include/db.h
    
    [root]# grep "DB_VERSION_STRING" /usr/local/include/db.h
    #define DB_VERSION_STRING       "Berkeley DB 4.5.20: (September 20, 2006)"
    


  7. 共有ライブラリのリンクを確認します。


    downBerkeley DB のインストール後

    [root]# ls -l /usr/local/lib
    total 3664
    -rw-r--r--   1 root root 1337444 May 18 15:37 libdb-4.5.a
    -rw-r--r--   1 root root     806 May 18 15:37 libdb-4.5.la
    -rwxr-xr-x   1 root root 1036317 May 18 15:37 libdb-4.5.so*
    lrwxrwxrwx   1 root root      12 May 18 15:37 libdb-4.so -> libdb-4.5.so*
    -rw-r--r--   1 root root 1337444 May 18 15:37 libdb.a
    lrwxrwxrwx   1 root root      12 May 18 15:37 libdb.so -> libdb-4.5.so*
    


  8. 共有ライブラリの検索パスを追加します。
    [root]# vi /etc/ld.so.conf
    
    /usr/local/lib     # この1行を追加
    


  9. 上記の変更を反映します。
    [root]# ldconfig
    



ここまで

| arinux | openldap | 18:11 | comments(1) | trackbacks(0) | pookmark |
openLDAP 構築(0) - サーバー環境


メモLDAP マスター/スレーブサーバー


機種DELL PE650
OSCentOS 4.5、Vine 4.1
kernel2.6.9-55.EL、2.6.16-0vl68
LDAPopenldap-2.3.37



メモLDAP クライアント


機種DELL PE650、NEC Express5800
OSCentOS 4.5、VIne 2.6/3.2/4.1



| arinux | openldap | 18:09 | comments(0) | trackbacks(0) | pookmark |
   1234
567891011
12131415161718
19202122232425
262728293031 
<< August 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE