OpenLDAP で LDAP サーバを構築する

OpenLDAP を使って LDAP サーバを構築する機会があったのでメモを残しておこうかと。


【前提】
OS: Scientific Linux 6.3

  1. パッケージの導入

  2. openldap 構築に必要なパッケージををインストールします。
    # yum install openldap-servers openldap-clients
    

    インストールすると /etc に openldap の設定ファイルが入ったディレクトリが作成されます。 中身はこうなっています。
    # cd /etc/openldap
    # ls -l
    total 16
    drwxr-xr-x. 2 root root 4096 Aug 27 13:15 certs
    -rw-r--r--. 1 root root  280 Aug  9 04:57 ldap.conf
    drwxr-xr-x. 2 root root 4096 Aug 27 14:28 schema
    drwx------. 3 ldap ldap 4096 Aug 27 14:28 slapd.d
    

    以下、簡単に説明。
    • certs/
    • ldap.conf
    • このマシン自身が ldap クライアントとして動作するときの設定ファイル (ldap.conf) と証明書置き場 (certs)
    • schema
    • openldap にデフォルトで入っているスキーマファイル
    • slapd.d
    • openldap の設定データベース

    openldap は 2.3 からは slapd.d という設定データベースが使えるようになり、設定も slapd.conf ではなく slapd.d を使うよう推奨されているんですが、 slapd.d は操作が面倒くさいので今回は slapd.conf を使って構築します。


  3. LDAP サーバの初期設定

  4. slapd.d ディレクトリが存在すると、そちらが優先的に読み込まれてしまうので退避します。
    # cd /etc/openldap
    # mv slapd.d slapd.d.org
    

    設定ファイル (slapd.conf) のひな形を持ってきましょう。
    # cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
    

    とりあえず動かすために必要な設定は以下の2つ。

    • ベースDNの設定
    • ベースDN (Distinguished Name) を定義します。
      suffix          "dc=my-domain,dc=com"
      
      suffix          "dc=example,dc=com"
      

    • 管理者アカウントの設定
    • 管理者アカウントの情報を編集します。
      rootdn          "cn=Manager,dc=my-domain,dc=com"
      
      rootdn          "cn=manager,dc=example,dc=com"
      rootpw          {SSHA}yECcjnq00LwSgtk5L4WSw3aQWEGNMwxP
      

      rootpw に設定する文字列は管理者アカウント (rootdn) のパスワードを入れます。 平文でも結構ですが、ここでは slappasswd コマンドで生成されたパスワードを入れています。
      # slappasswd
      New password: (パスワードを入力)
      Re-enter new password: (もう一回入力)
      {SSHA}yECcjnq00LwSgtk5L4WSw3aQWEGNMwxP
      

    設定が完了したらデーモンを立ち上げます。
    # service slapd start
    Starting slapd:                                            [  OK  ]
    

    起動していれれば ldapsearch コマンドで検索ができるようになっています。
    # ldapsearch -x -b dc=example,dc=com -D cn=manager,dc=example,dc=com -W
    Enter LDAP Password: (パスワードを入力)
    # extended LDIF
    #
    # LDAPv3
    # base <dc=example,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    
    # search result
    search: 2
    result: 32 No such object
    
    # numResponses: 1
    

    OS 起動時に slapd が立ち上がるようにして完了です。
    # chkconfig slapd on
    # chkconfig --list slapd
    slapd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    




【関連】

このブログの人気の投稿

zsh 設定 - プロンプト -

運転免許失効〜再取得までの奮闘記 - 期限切れ -

運転免許失効〜再取得までの奮闘記 - 路上練習 -