転載・引用について

ユーザ用ツール

サイト用ツール


serverapp:openldap:old1

OpenLDAP Serverを建てる

Mail管理をVirtual Domainで実施しようとすると、どうしてもLDAPが欲しい局面があらわれる。なので、OpenLDAPを入れてみる。

Install

というわけで、openldapをインストールする。

  1. user/groupを作成
    • vipwして、user slapdを作成
    • mysqlはnologin/nohomeにしておく
    • groupにldapを作成
  2. pkgsrcからinstall
    • mk.confに色々書くことになる。
    • PKG_OPTIONS.openldap-client=    slp inet6               # kerberos sasl
      PKG_OPTIONS.openldap-server=    bdb slp inet6 dso       # sasl smbk5pwd 
      PKG_OPTIONS.odbc=               iodbc unixodbc
    • これで、あとはpkgsrc/databases/openldap-clientとpkgsrc/databases/openldap-serverをmake updateする
    • /etc/rc.conf.d/slapdを作成。/usr/pkg/share/examples/rc.d/slapdを/etc/rc.dにコピーして以下を加える
      slapd
      start_precmd="set_limits"
      
      set_limits()
      {
              ulimit -s 4096
      }
    • /etc/rc.confに以下を追加
      slapd=YES
    • /usr/pkg/share/examples/rc.d/slapd を/etc/rc.dにコピーする

以前は、pkgsrc下のOpenLDAPはUID=rootで動作していた。しかし現在では、その権限のないアカウント(slapd:ldap)で動作している。 従って、各種のpermissionを正しく設定しないと、はまることになるので注意。

特にLDAP管理ツール(slapadd, slapindex等)をroot権限で動作させる場合に、注意が必要。

# /usr/sbin/chown -R slapd:ldap /var/openldap/openldap-data/*
# /usr/sbin/chown :ldap /usr/pkg/etc/openldap/slapd.conf
# /bin/chmod 640 /usr/pkg/etc/openldap/slapd.conf

初期設定

まず、Databaseの雛形が/usr/pkg/share/examples/openldap/DB_CONFIGなので、これを/var/openldap/openldap-data/にコピーする。 コピーしたら、/usr/sbin/chown -R slapd:ldap /var/openldap/openldap-data/*を実行しておこう。 このファイルに、OpenLDAPのDB関係のパラメータを設定する事ができるので、性能問題を感じたらここに設定を入れる。

OpenLDAP関連の設定は

  • Server用の設定: /usr/pkg/etc/openldap/slapd.conf
  • client用の設定: /usr/pkg/etc/openldap/ldap.conf

で行う。

slapd.conf
#######################################################################
# OpenLDAP slapd Configuration File.
# See slapd.conf(5) for details on configuration options.

# Database Schema
include         /usr/pkg/etc/openldap/schema/core.schema
include		/usr/pkg/etc/openldap/schema/cosine.schema
include		/usr/pkg/etc/openldap/schema/inetorgperson.schema
include		/usr/pkg/etc/openldap/schema/nis.schema
include		/usr/pkg/etc/openldap/schema/mail.schema

# System File
pidfile         /var/openldap/run/slapd.pid
argsfile        /var/openldap/run/slapd.args

#######################################################################
# BDB database definitions

database        monitor
database        bdb

#######################################################################
# Root DN Definition.

suffix          "o=example"
rootdn          "cn=Manager,o=example"
rootpw          secret
directory       /var/openldap/openldap-data

#######################################################################
# Access Control List.
access to dn.subtree="ou=vmail,o=example" attrs=userPassword
        by self write
        by anonymous auth
        by * none

access to *
        by self write
        by * read

# Indices to maintain
index   objectClass     eq
Passwordの作り方

上記slapd.conf内のrootpwには、RootDNのパスワードを入力する必要がある。 このパスワードは、以下の方法で作成する。

$ /usr/pkg/sbin/slappasswd -h [CRYPT|MD5|SMD5|SSHA|SHA] -s secret

標準のHASH方式はSSHAなので、slappasswd -s secretでパスワードを作成すればOK

$ slappasswd -s 12345678
{SSHA}tTTZQEwu7eair4ISCNmxrS/U2Qn8laHO
$ 

この結果を貼り付ければok

openldap起動

ここまで問題がなければ、

# /etc/rc.d/slapd start

でslapd(OpenLDAP Server)が起動する。

なお、slapdを起動する際にlogに

bdb_monitor_db_open: monitoring disabled; configure monitor database to enable

というメッセージがでることがあるが、これは、monitor database backend付きでCompileされているのに、database monitorを利用していない場合にでるメッセージなので、今は無視していて良い。

基本ディレクトリ作成

とにかくまず、LDAPを動かすために必要な最小限のデータは登録しなければならない。 何はともあれ、基本ディレクトリと、その管理者を登録する。

基本ディレクトリ構造は以下の通り

  • OpenLDAPの初期状態のDIT

この構造に合わせたLDIFファイルを作成する

init.ldif
dn: o=example, c=net
objectClass: organization
o: example
 
dn: cn=Manager, o=example, c=net
objectClass: organizationalRole
cn: Manager

その後、以下のコマンドを入力して、DataをLDAP Serverに投入する

$ ldapadd -x -D "cn=Manager, o=example" -W -f init.ldif
Enter LDAP Password: 
adding new entry "o=example"

adding new entry "cn=Manager, o=example"

これで最小限の設定は終了。あとはApplication毎の設定を投入するだけ。

いくつかのコマンドのメモ

  • LDAPにデータを登録する
    • ldapadd -x -h localhost -D "cn=Manager,o=example" -w 12345654321 -f LDIF-file
  • とにかく見てみる
    • ldapsearch -x -h localhost -b '' -s base +
  • example/vmail/example.netからuidがtest1のデータを検索する
    • ldapsearch -x -h localhost -b 'dc=example.net,ou=vmail,o=example' uid=test1
  • indexを更新する
    • slapindex -v -b o=example -f /usr/pkg/etc/openldap/slapd.conf
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
serverapp/openldap/old1.txt · 最終更新: 2018/05/14 13:14 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki