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
バックエンド
ディレクトリの作成
データベースを格納するディレクトリを 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用の作成したものがを転用できる?