OpenLDAP TLS認証


10

https://help.ubuntu.com/lts/serverguide/openldap-server.htmlに従ってTLSを実装しようとしてい ます。このldifファイルでcn = configデータベースを変更しようとすると、次のようになります。

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/test-ldap-server_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/test-ldap-server_key.pem

次のエラーが発生します。

ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)

何が悪いのですか?

編集:単純な認証を使用しようとすると、次のエラーが発生しました:

ldapmodify -x -D cn=admin,dc=example,dc=com -W -f certinfo.ldif
Enter LDAP Password:
ldap_bind: Invalid DN syntax (34)
        additional info: invalid DN

証明書ファイルの権限を確認してください。また、パスワードが設定されている場合は、パスワードも削除します。
ゼリドン

素早い回答ありがとうございます。600にある.keyファイルを除いて、アクセス許可は644に設定されています。パスワードを確認/削除するにはどうすればよいですか?私は、CN = configの..ための任意のパスワードを設定すること覚えていない
アマールPrasovic

2
(cn = configではなく)証明書自体のパスワードを意味します。チェック:mnx.io/blog/removing-a-passphrase-from-an-ssl-key
zeridon

いいえ、そうではありませんでした。鍵ファイルはパスワードなしで作成されました。
アマールプラソビッチ2015

単純な認証(-Y EXTERNALではない)を使用してldiffをロードしてみてください
zeridon

回答:


17

私は同じガイドに従っていて、同じ問題がありました。問題のあるldapmodifyコマンドの後にリストされている「所有権と権限を強化する」手順を実行すると、次のように機能します。

sudo adduser openldap ssl-cert
sudo chgrp ssl-cert /etc/ssl/private
sudo chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
sudo chmod g+X /etc/ssl/private
sudo chmod g+r /etc/ssl/private/ldap01_slapd_key.pem

そして

sudo systemctl restart slapd.service

1
これも私にとってはうまくいきました!
sonicwave

2
私の場合、私は使用しなければなりませんでしたchgrp openldap。とにかく、それは許可の問題です。+1
xonya 16

また、トラバースするには、プライベートディレクトリも実行可能である必要があります。sudo chgrp ssl-cert /etc/ssl/private && sudo chmod g+X /etc/ssl/private
Jeff Puckett

3

これが解決策なのか単なる回避策なのかはわかりませんが、なんとか機能させることができました。

私は最初にslapdを止めました:

service slapd stop

次に、デバッグモードで起動しました。

slapd -h ldapi:/// -u openldap -g openldap -d 65 -F /etc/ldap/slapd.d/ -d 65

重要なのは、ldapi:/// URLでのみ開始することです。起動後、ldapmodifyコマンドを実行し、属性をインポートしました。

最後に、デバッグモードを停止し、slapdを通常どおり開始しました。


2

A.グティエレスの回答のフォローアップとして、各ファイルへのアクセスを確認する最良の方法はを実行することsudo -u openldap cat <filename>です。私はすべてのファイルを複数回見ましたが、それらは権限が正しく設定されているように見えました。openldapのグループの問題であることが判明しました。私が最終的にそれを理解したら、簡単な方法でsudo usermod -a -G ssl-cert openldapそれを解決しました。


2

slapdサービスのapparmorプロファイルに問題がある場合があります。apparmorプロファイルがデーモンの証明書パスを許可していることを確認してください。

それはかなり視覚的に/etc/apparmor.d/usr.sbin.slapdです。デフォルトでは、このプロファイルはデフォルトの場所にある証明書の読み取りを許可します。

Apparmorは、適切なUNIXアクセス許可にもかかわらず、デーモンの実行可能ファイルに対する不特定のアクションを防止する必要があります。


letsencryptを使用する場合、これが解決策です。次の行を/etc/apparmor.d/usr.sbin.slapd/ etc / letsencrypt / r、/ etc / letsencrypt / ** rに追加し、apparmorプロファイルをリロードします。
Bernhard

1

Ubuntu Launchpadのこのバグで報告したように、この問題はapparmorが原因である可能性もあります。通常、これはsyslogにアクセス拒否として表示されます。

修正により、/ etc / apparmor.d / usr.sbin.slapdに次の行が挿入されます。

/etc/letsencrypt/** r,

次に、プロファイルを更新します。

# apparmor_parser -vr usr.sbin.slapd
# service apparmor restart

0

私もこの問題を抱えています。問題は、slapdを実行しているユーザーが証明書ファイルにアクセスできないことです。そのファイルの所有者がopenldapユーザーであることを確認してください。


0

私にとって問題はレコードの順序が間違っていた-うまくいったものは次のとおりです:

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cm_ca_cert.pem
-
# This never worked for me, no idea why
#add: olcTLSCipherSuite
#olcTLSCipherSuite: TLSv1+RSA:!NULL
#-
replace: olcTLSVerifyClient
olcTLSVerifyClient: never
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/cm_server.pem
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/cm_server.key

0

残念ながら、これはほとんどすべての場合に発生する「デフォルト」のエラーのようです。@wulfsdadのanwserは通常それを修正します。

私がいつも忘れているもう1つのことは、ubuntuのslapdのデフォルトではopenssl形式のキーが必要であることです。私は定期的にPCKS#8キーを入れて、それが機能することを期待しています(これは公平であるべきです)。上記のすべてのアンサーを試した場合は、キーの形式が正しいことも確認してください。エラーについてググるとき、あなたは通常間違った許可について読んで頭をこすり、なぜsachedが非常に重要なslapdで動作するのかを嫌います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.