OpenLDAP TLS Kimlik Doğrulaması


10

Https://help.ubuntu.com/lts/serverguide/openldap-server.html Bu ldif dosyasıyla cn = config veritabanını değiştirmeye çalıştığımda TLS uygulamaya çalışıyorum :

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

Aşağıdaki hatayı alıyorum:

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)

Neyi yanlış yapıyorum?

EDIT: Basit yetkilendirme kullanmaya çalıştığınızda aşağıdaki hatayı aldım:

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

Sertifika dosyalarındaki izinleri kontrol edin. Ayrıca, ayarlanmışsa şifreyi kaldırın.
zeridon

Hızlı cevap için teşekkürler. İzinler 600 olan .key dosyası hariç 644 olarak ayarlanmıştır. Parolayı nasıl kontrol edebilir / kaldırabilirim?
Cn

2
Sertifikanın kendisinde parola demek istiyorum (cn = config üzerinde değil). Kontrol edin: mnx.io/blog/removing-a-passphrase-from-an-ssl-key
zeridon

Hayır, durum böyle değildi. Anahtar dosyası parola olmadan oluşturuldu.
Amar Prasovic

ldiff'i basit yetki ile yüklemeye çalışabilir misiniz (-Y HARİCİ değil)
zeridon

Yanıtlar:


17

Aynı kılavuzu takip ediyordum ve aynı sorunu yaşadım. Sorun yaratan ldapmodify komutundan sonra listelenen "Sahipliği ve izinleri sıkın" adımlarını uygularsanız çalışır:

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

ve

sudo systemctl restart slapd.service

1
Bu benim için de işe yaradı!
sonicwave

2
Benim durumumda kullanmak zorunda kaldım chgrp openldap. Her neyse, bu bir izin sorunu. +1
xonya

ayrıca geçiş yapmak için özel dizin de çalıştırılabilir olmalıdır. sudo chgrp ssl-cert /etc/ssl/private && sudo chmod g+X /etc/ssl/private
Jeff Puckett

3

Bunun bir çözüm mü yoksa sadece bir çözüm mü olduğunu bilmiyorum, ama çalışmayı başardım.

Önce tokatla durdum:

service slapd stop

Sonra hata ayıklama modunda başladım:

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

Önemli SADECE ldapi: /// URL ile başlatmaktır. Başladıktan sonra ldapmodify komutunu çalıştırdım ve öznitelikler içe aktarıldı.

Sonunda hata ayıklama modunu durdurdum ve normal şekilde kanadı başlattım.


2

Bir takibinde gelince A. Gutierrez cevap her dosya çalıştırmaktır için, en iyi yolu erişimi kontrol etmek sudo -u openldap cat <filename>. Tüm dosyalara birden çok kez baktım ve izinlerin doğru ayarlanmasına baktım. Openldap için bir grup sorunu olduğu ortaya çıktı. Sonunda bir kez anladım, bir basit sudo usermod -a -G ssl-cert openldapbenim için çözdü.


2

Bazen sorun slapd servisi için belirgin bir profildir. Apparmor profilinin daemon için sertifika yollarına izin verdiğinden emin olun.

Oldukça görsel olarak /etc/apparmor.d/usr.sbin.slapd. Varsayılan olarak bu profil, varsayılan konumlardaki sertifikaların okunmasına izin verir.

Apparmor, düzgün unix izinlerine rağmen arka plan programının yürütülebilir dosyası için belirtilmemiş eylemleri önlemelidir.


Letsencrypt kullanıyorsanız, çözüm budur. Şu satırları ekleyin /etc/apparmor.d/usr.sbin.slapd: / etc / letsencrypt / r, / etc / letsencrypt / ** r ve görünen profilleri yeniden yükleyin.
Bernhard

1

Ubuntu Launchpad'deki bu hatada bildirdiğim gibi , bu soruna apparmor da neden olabilir. Genellikle bu, sistem günlüğünde erişim reddi olarak gösterilir.

Düzeltme, /etc/apparmor.d/usr.sbin.slapd dosyasına aşağıdaki satırı ekliyor:

/etc/letsencrypt/** r,

ve ardından profili yenileyin:

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

0

Bende bu problem var. Sorun slapd çalıştıran kullanıcının certs dosyalara erişimi yoktu olmasıdır. Bu dosyaların sahibinin openldap kullanıcısı olduğunu kontrol edin.


0

Benim için sorun kayıtların yanlış düzenindeydi - işte işe yarayan sorun:

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

Ne yazık ki bu, hemen hemen her şey için aldığınız "varsayılan" hata gibi görünüyor. @ wulfsdad'ın anwser'ı genellikle düzeltir.

Her zaman unuttuğum bir diğer şey, ubuntu slapd'da varsayılan olarak anahtarın openssl formatında olmasını istemesidir. Düzenli olarak PCKS # 8'in içine giriyor ve sadece çalışmasını bekliyoruz (ki bu adil olmalı). Yukarıdaki tüm anws'ları denediyseniz, anahtarın doğru formata sahip olduğundan emin olun. Hata hakkında googling yaparken genellikle yanlış izinleri okudunuz ve apache'nin neden slapd'ın çok sevdiği anahtarla çalıştığını ovuyorsunuz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.