CentOS8 (1.4系) †[edit]
Information †[edit]
# dnf install epel-release
# dnf update epel-release
# dnf module install 389-directory-server:stable/default
- openldap のクライアントも入れておいた方が便利
# dscreate interactive
- Create self-signed certificate database に yes で答えると勝手にTLS用の設定をやってくれるみたい.
- NSSのデータベース用パスワードは /etc/dirsrv/slapd-[Directory server identifier]/pin.txt
- Create just the top suffix entry [no]: yes
- DataBase は /var/lib/dirsrv/slapd-[Directory server identifier] にできる.
- Cockpit からも接続可能
# dscreate interactive
Install Directory Server (interactive mode)
===========================================
selinux is disabled, will not relabel ports or files.
Selinux support will be disabled, continue? [yes]:
Enter system's hostname [altair]: ds.nsl.tuis.ac.jp
Enter the instance name [ds]: nsl
Enter port number [389]:
Create self-signed certificate database [yes]:
Enter secure port number [636]:
Enter Directory Manager DN [cn=Directory Manager]: cn=Manager
Enter the Directory Manager password: ********
Confirm the Directory Manager Password: ********
Enter the database suffix (or enter "none" to skip) [dc=nsl,dc=tuis,dc=ac,dc=jp]:
Create sample entries in the suffix [no]: yes
Do you want to start the instance after the installation? [yes]:
Are you ready to install? [no]: yes
Starting installation...
Completed installation for nsl
firewall †[edit]
# firewall-cmd --add-service=ldap --permanent
# firewall-cmd --add-service=ldaps --permanent
# firewall-cmd --reload
- systemctl start dirsrv@[Directory server identifier]
- systemctrl start dirsrv@nsl.service
- TLS を使う場合は /etc/openldap/ldap.conf に TLS_REQCERT never を追加
ex.) ldapsearch -x -H ldap://localhost -D cn=Manager -W -b dc=nsl,dc=tuis,dc=ac,dc=jp
ex.) ldapsearch -x -H ldaps://localhost -D cn=Manager -W -b dc=nsl,dc=tuis,dc=ac,dc=jp
- dapmodify -x -H ldap://202.26.150.51 -D cn=Manager -W -f change.ldif
# cat change.ldif
dn: cn=config
changetype: modify
replace: nsslapd-security
nsslapd-security: on
aci 内部属性の変更 †[edit]
- 一般ユーザに userPassword の変更権限の aci内部属性を与える
- ldapmodify -x -H ldap://202.26.150.51 -D cn=Manager -W -f userPass.ldif
# cat userPass.ldif
dn: dc=nsl,dc=tuis,dc=ac,dc=jp
changetype: modify
add: aci
aci: (targetattr = "userPassword") (version 3.0; acl
"modify own password"; allow (write) userdn = "ldap:///self";)
ldapサーバが相手の証明書をチェックしない †[edit]
- cn=config
- nsslapd-tls-check-crl : none
- nsslapd-ssl-check-hostname : off
Replication †[edit]
Cockpit を使った Replication (389-ds => 389-ds) †[edit]
- Supplier --> Consumer ならうまくいく
- Agreement で Consumer のデータベースを初期化する.
- ldaps(636)で通信する場合は,「ldapサーバが相手の証明書をチェックしない」ようにする.
- Supplier <--> Supplier がダメ
- Consumer を Cockpit で削除しようとすると,389-ds が止まって削除できない.ログ関連のエラー?
OpenLDAP => 389-ds †[edit]
- syncprovモジュールを使用する.(?)
- Consumer(389-ds) から Supplier(OpenLDAP)に聞きに行く形.
Trouble Shooting †[edit]
パスワードの変更に失敗しました。 サーバーのメッセージ: Insufficient access rights †[edit]
- 一般ユーザにパスワード変更の権限がない(err=50)
- 上記の 「aci 内部属性の変更」 を参照
old(1.3系) †[edit]
# dnf module enable 389-ds
# dnf install 389-ds-base
# dnf install 389-ds-base-legacy-tools
# setup-ds.pl
- ほぼデフォルトでOK
- Computer name は DNSで引けるものにする.
- Directory server identifier は他と被らないようにする.(ex. nsl)
- 失敗した場合は /tmp に作られる log をチェックする.
- /etc/dirsrv/slapd-[Directory server identifier]/ が作られる.(ex. /etc/dirsrv/slapd-nsl/)
- LDAPI が作られない.Cockpit でアクセスできない.
# systemctl start dirsrv@[Directory server identifier]
ex.) systemctl start dirsrv@nsl
- ex.) ldapsearch -x -H ldap://localhost -D cn=Manager -W -b dc=nsl,dc=tuis,dc=ac,dc=jp
389 Windows Console †[edit]
サーバ証明書 (p12ファイル) †[edit]
# cd /etc/dirsrv
# mkdir certs
# cd certs
# mkdir private
# openssl genrsa 2048 > private/private.key
# openssl req -new -x509 -key private/private.key -out server.crt -days 3650
# openssl pkcs12 -export -inkey private/private.key -in server.crt -out server.p12 -nodes -name Server-Cert
p12ファイルのパスワードを設定
# pk12util -i server.p12 -d /etc/dirsrv/slapd-nsl
Internal (Software) Token のパスワードを設定
- 確認
# certutil -d /etc/dirsrv/slapd-nsl -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Server-Cert u,u,u
389のファイル設定 †[edit]
firewall †[edit]
# firewall-cmd --add-service=ldap --permanent
# firewall-cmd --add-service=ldaps --permanent
# firewall-cmd --reload
# systemctl restart dirsrv@nsl
# ldapsearch -x -H ldaps://localhost -D cn=Manager -W -b dc=nsl,dc=tuis,dc=ac,dc=jp