まずはOpenLDAPサーバのslapdをインストール
# apt install slapd
ブラグインを使うので、これもインストール
# apt install slapd-contrib
なんかheimdal的なものがたくさん入るので、Kerberos認証のプラグインが多いのか。
使いたいドメインがインストールしたサーバと異なる場合は再設定
# dpkg-reconfigure slapd
ドメインやらAdministratorのパスワードを聞かれるので答えていく。
設定が終わったら起動
# systemctl start slapd
/etc/ldap
配下にslapdの設定ファイルがあると思ったが、ldifファイルでの設定に変更されている?
この辺はOpenLDAPが以前と管理方法を変えたのかもしれない。
記録として現在のバージョンを記載しておく
# slapd -V
@(#) $OpenLDAP: slapd 2.5.13+dfsg-5 (Feb 8 2023 01:56:12) $
Debian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>
どうも設定自体もLDAPサーバに入れていくように見える。
調査してみるとldifを直接編集してパスワードを設定するらしい。まずはハッシュ化したパスワードを作成する。
# slappasswd
New password:
Re-enter new password:
{SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXX
この結果{SSHA}XXXXXXXXXXXXXXXXXXXXXXX
を設定に反映
まずは設定を反映するためのldifを作成
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXX
これを反映させる
# ldapmodify -Y EXTERNAL -H ldapi:/// -f passwd.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
ここで-Y EXTERNAL
はユーザ認証を迂回するためのオプション、
-H ldapi:///
はUNIX Domain Socketを用いるためのオプション
特に必要ない気もするが、念のため再起動
# systemctl restart slapd
これで通常のLDAPクライアントを用いて設定にアクセスできるようになった。
アカウントはcn=admin,cn=config
が一般的だが、うまく入れない場合は/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
のolcRootDN
が管理者アカウント名なので確認すると良い。