先日の作業に引き続き、CuBoxのArch LinuxにOpenLDAPをインストールします。
LDAPサーバの起動、管理者の設定、RapidSSLの証明書を用いたSSL接続、までを今回の作業の目標としています。
インストール
[bash]
pacman -Sy openldap
[/bash]
rootで作業したのでsudoしていません。以下同様です。
データベースの準備
参考ページの方々の書いているとおり、
・念のためのいったん全削除
・設定ファイルの準備
・core schemaの設定
・パーミッションの設定
を行います。
[bash]
rm /var/lib/openldap/openldap-data/*
cp /etc/openldap/DB_CONFIG.example /var/lib/openldap/openldap-data/DB_CONFIG
slapadd -l /etc/openldap/schema/core.ldif
chown -R ldap:ldap /var/lib/openldap/openldap-data
[/bash]
/run/openldap/ディレクトリの準備
このディレクトリがないと起動しないため作成しておきます。
[bash]
mkdir /run/openldap
chown ldap:ldap /ru/openldap
[/bash]
/etc/openldap/slapd.confの修正
まずは起動させたいので最低限の設定をします。
rootpwはslappasswdコマンドで作成しておきます。
[bash]
suffix “dc=xxxx,dc=xxx”
rootdn “cn=yyyy,dc=xxxx,dc=xxx”
rootpw {SSHA}zzzzzzzzzzzzzzz
[/bash]
設定チェック
[bash]
slaptest
[/bash]
幸いにエラーが出なかったので、そのまま起動させます。
slapdの起動
[bash]
systemctl start slapd
[/bash]
SSLの設定
RapidSSLのcrtとkeyファイルを設置します。今回は/etc/ssl/certs/に置きました。
中間CAの指定に悩みましたが、まずはこのように設定しました。不都合が出たら修正します。
[bash]
TLSCertificateFile /etc/ssl/certs/xxxxxxxx.crt
TLSCertificateKeyFile /etc/ssl/certs/xxxxxxxx.key
TLSCACertificateFile /etc/ssl/certs/RapidSSL_CA_bundle.pem
[/bash]
起動設定
Arch Wikiに従って、/etc/systemd/system/slapd.serviceに-hオプションを追加します。
[bash]
ExecStart=/usr/bin/slapd -u ldap -g ldap -h “ldap:/// ldaps:///”
[/bash]
※最初はこのファイルがなかったので新規作成しました。
OpenLDAP 2.4対応
ここまで設定しておいてからOpenLDAP 2.4以降はslapd.confを使わないと書いてあったので、これまた指示どおりに実行。
[bash]
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap:ldap /etc/openldap/slapd.d
[/bash]
確かに/etc/openldap/slapd.d/以下にディレクトリやファイルが作成されています。
今後はもうちょっと調べて、こっちで設定を調整するようにしようと思います。
クライアント設定
SSLで接続確認するのでクライアントにも設定します。
/etc/openldap/ldap.confに下記を記述します。
[bash]
BASE dc=xxxx,dc=xxx
URI ldaps://localhost:636
TLS_CACERTDIR /etc/ssl/certs/
TLS_CACERT /etc/ssl/certs/RapidSSL_CA_bundle.pem
[/bash]
動作確認
ようやく動作確認できます。
[bash]
ldapsearch -x -D “cn=yyyy,dc=xxxx,dc=xxx” -b “dc=xxxx,dc=xxx” -W -H “ldaps://xxxx.xxx:636”
[/bash]
まだ何も登録していないので、
[bash]
# extended LDIF
#
# LDAPv3
# base
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
[/bash]
と返ってきます。やれやれ一苦労でした。
参考ページ
OpenLDAP – Arch Wiki
ArchLinux でOpenLDAP
ArchLinuxでOpneLDAPサーバー動かす その1
[upki-odcert:58] Re: FirePass 1200 および OpenLDAP および Cisco ASA 5520 への証明書インストール方法
OpenLDAP 2.1 管理者ガイド: TLS の使用法