かなり前にSambaで構築したセカンダリードメインコントローラーがありますが、
これにNextCloudkから
のように、LDAP接続する際の備忘録です。
いつからなのか、Sambaの仕様が変わりLDAPではTLS/SSL接続がデフォルトになっています。そのため、クライアントからport 389を利用した通常のLDAP接続設定をしても、接続できません。
かといって、明示的にldaps://を付与しかつport 636を指定してldaps接続を試行しても、はじかれてしまします。
多くの場合は、Sambaでドメインコントローラー作成時に自動的に発行された自己署名証明書のままで利用するかと思いますが、自己署名証明書のために証明書確認に失敗してしまうためです。
回避方法は、
- SambaでLDAP接続にTLS/SSL接続を利用しないよう設定変更する(非推奨)
- LDAPで、自己署名証明書でも利用できるようにする
- 証明書を取得して設定する
のいずれかとなります。Let’s Encryptの登場でSSL証明書も手軽に利用できるようになりました。3が最もお勧めではありますが、自宅サーバーのローカルドメインではなかなかそうもいきません。
そのため今回は1または2の手順について触れます。
1. SambaでLDAP接続にTLS/SSL接続を利用しないようにする(非推奨)
Sambaサーバーのsmb.confに以下の1行を追加します。
ldap server require strong auth = no
しかし、これでは認証に暗号化されていない接続を利用することになりますので、この設定は避けたいところです。そこで、次の手段の登場です。
2. LDAPで、認証されていない証明書を利用できるようにする
Sambaサーバーのldap.confに以下の一行を追加します。手元の環境ではldap.confは/etc/ldapにありました。
TLS_REQCERT ALLOW
これで、自己署名証明書でも接続が可能になります。無事同じRaspberry Pi 4のUbuntuサーバー上に建てたNextCloudからも、LDAP接続ができるようになりました。