web-dev-qa-db-ja.com

OpenLDAP TLS認証

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
10
Amar Prasovic

私は同じガイドに従っていて、同じ問題がありました。問題のある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
17
Hildigerr

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

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

service slapd stop

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

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

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

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

3
Amar Prasovic

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

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

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

2
vskubriev

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

2
Rob Archibald

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

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

/etc/letsencrypt/** r,

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

# apparmor_parser -vr usr.sbin.slapd
# service apparmor restart
1
Tarek Loubani

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

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

0
user3240383

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

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
Arie Skliarouk

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

0
A. Gutierrez