最終更新日: 2019-11-04 月 17:22
ホーム | 文書トップ | 目次

DD-WRT OpenLDAP サーバ設定

Table of Contents

概要

DD-WRTが動作している環境に OpenLDAPサーバを導入する。

DD-WRT Entware の通り、Entwareがインストールされていることが前提

下記のように設定

  • サーバのIPアドレス : 192.168.1.100
  • base dn "dc=example,dc=com"
  • rootdn "cn=Manager,dc=example,dc=com"
  • rootpw "secret"

インストール

openldap-server

root@DD-WRT:/opt# opkg install openldap-server
Installing openldap-server (2.4.47-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/openldap-server_2.4.47-2_armv7-3.2.ipk
Installing zlib (1.2.11-3) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/zlib_1.2.11-3_armv7-3.2.ipk
Installing libopenssl (1.1.1b-5) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libopenssl_1.1.1b-5_armv7-3.2.ipk
Installing libsasl2 (2.1.27-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libsasl2_2.1.27-1_armv7-3.2.ipk
Installing libopenldap (2.4.47-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libopenldap_2.4.47-2_armv7-3.2.ipk
Installing libuuid (2.33-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libuuid_2.33-2_armv7-3.2.ipk
Configuring zlib.
Configuring libopenssl.
Configuring libsasl2.
Configuring libopenldap.
Configuring libuuid.
Configuring openldap-server

openldap-utils

root@DD-WRT:~# opkg install openldap-utils
Installing openldap-utils (2.4.47-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/openldap-utils_2.4.47-2_armv7-3.2.ipk
Configuring openldap-utils.

perl

root@DD-WRT:/opt/root# opkg install perl
Installing perl (5.28.1-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/perl_5.28.1-2_armv7-3.2.ipk
Configuring perl.

スキーマファイルの用意

sambaと連携する場合はsamba用のスキーマを用意する(opt/etc/openldap/schema にコピーする)

ldap.conf の設定

こちらは DD-WRTがインストールされたホスト内で参照するもの

root@DD-WRT:~# vi /opt/etc/openldap/ldap.conf
BASE    dc=example,dc=com
URI     ldap://192.168.1.100

slapd.conf の設定

設定ファイルのパス

root@DD-WRT:~# vi /opt/etc/openldap/slapd.conf

設定ファイル全体

※下記はコメントアウト部分の多くを省略して記載している

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#

# LogLevel
loglevel 256

include /opt/etc/openldap/schema/core.schema
include /opt/etc/openldap/schema/cosine.schema
include /opt/etc/openldap/schema/inetorgperson.schema
include /opt/etc/openldap/schema/nis.schema
include /opt/etc/openldap/schema/samba.schema

pidfile         /opt/var/run/slapd.pid
argsfile        /opt/var/run/slapd.args

#######################################################################
# MDB database definitions
#######################################################################

database        mdb

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

設定内容の解説

ログ取得設定

ログレベルを上げておけば不具合があった時に追いやすい

ログは /var/log/messages に記録される

loglevel 256

スキーマファイル

samba.schema の include を追加

include /opt/etc/openldap/schema/samba.schema

バックエンド

database のバックエンドは mdb とする

"ldif"でも動作した。バックエンドのデータベースについては下記を参照。

ディレクトリの作成

データベースを格納するディレクトリを chmod 700 で作成しておかないとサービスが開始できない

root@DD-WRT:~# mkdir /opt/var/openldap-data
root@DD-WRT:~# chmod 700 /opt/var/openldap-data

設定のチェック

"succeeded" と出ればOK

root@DD-WRT:~# slapd -T test
config file testing succeeded

mdb を指定し、まだデータベースファイルが無い状態だと、failed のメッセージが出力される

root@DD-WRT:/opt/home/ldapuser# slapd -T test
5d7e23be mdb_db_open: database "dc=example,dc=com" cannot be opened: No such file or directory (2). Restore from backup!
5d7e23be backend_startup_one (type=mdb, suffix="dc=example,dc=com"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch)

サービスを開始すると下記のようにファイルが生成される

root@DD-WRT:/opt/home/ldapuser# ls -la /opt/var/openldap-data/
drwx------    2 root     root          4096 Sep 15 20:52 .
drwxr-xr-x    7 root     root          4096 Sep  4 21:44 ..
-rw-------    1 root     root         69632 Sep 15 21:40 data.mdb
-rw-------    1 root     root          8192 Sep 15 21:47 lock.mdb

ファイルが生成された後のチェックはOKになる

root@DD-WRT:~# slapd -T test
config file testing succeeded

サービスの開始

root@DD-WRT:~# /opt/etc/init.d/S58slapd start
 Starting slapd...              done.

サービスが正しく開始できている場合

root@DD-WRT:~# /opt/etc/init.d/S58slapd check
 Checking slapd...              alive.

サービスが正しく開始できていない場合

root@DD-WRT:~# /opt/etc/init.d/S58slapd check
 Checking slapd...              dead.

暗号化(SSL/TLS)

LDAPを暗号化(SSL/TLS)する検討をしていたが結局やっていない

下記の通り、DD-WRT上で証明書、鍵を生成しようとしていたが、OpenVPN用の作成したものがを転用できる?

参考

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)