การตรวจสอบสิทธิ์ OpenLDAP TLS


10

ฉันพยายามใช้ TLS ตามhttps://help.ubuntu.com/lts/serverguide/openldap-server.html เมื่อฉันพยายามแก้ไขฐานข้อมูล cn = config ด้วยไฟล์ ldif นี้:

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

ตรวจสอบการอนุญาตของไฟล์ใบรับรอง และลบรหัสผ่านหากตั้งค่าไว้
zeridon

ขอบคุณสำหรับคำตอบที่รวดเร็ว การอนุญาตถูกตั้งค่าเป็น 644 ยกเว้นไฟล์. key ซึ่งอยู่ที่ 600 ฉันจะตรวจสอบ / ลบรหัสผ่านได้อย่างไร ฉันจำการตั้งค่ารหัสผ่านใด ๆ สำหรับ cn = config ..
Amar Prasovic

2
ฉันหมายถึงรหัสผ่านในใบรับรอง (ไม่ใช่ใน cn = config) ตรวจสอบ: mnx.io/blog/removing-a-passphrase-from-an-ssl-key
zeridon

ไม่นั่นไม่ใช่กรณี ไฟล์คีย์ถูกสร้างโดยไม่มีรหัสผ่าน
Amar Prasovic

คุณสามารถลองโหลด ldiff ด้วยการรับรองความถูกต้องแบบง่าย ๆ (ไม่ใช่ -Y EXTERNAL)
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

ไดเร็กทอรีส่วนตัวยังต้องสามารถเรียกใช้งานได้เช่นกันเพื่อสำรวจ 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

ในฐานะที่เป็นติดตามคำตอบเอเตียร์ของsudo -u openldap cat <filename>วิธีที่ดีที่สุดในการตรวจสอบการเข้าถึงสำหรับแต่ละไฟล์คือการวิ่ง ฉันดูไฟล์ทั้งหมดหลายครั้งและพวกเขาดูเหมือนจะมีการตั้งค่าสิทธิ์อย่างถูกต้อง กลายเป็นปัญหากลุ่มสำหรับ openldap ในที่สุดเมื่อฉันคิดออกว่าง่ายsudo usermod -a -G ssl-cert openldapแก้ไขให้ฉัน


2

บางครั้งปัญหาอยู่ในโปรไฟล์ apparmor สำหรับบริการ slapd ตรวจสอบให้แน่ใจว่าโปรไฟล์ apparmor อนุญาตเส้นทางใบรับรองสำหรับ daemon

/etc/apparmor.d/usr.sbin.slapdมันค่อนข้างสายตาใน ตามค่าเริ่มต้นโปรไฟล์นี้อนุญาตให้อ่านใบรับรองในตำแหน่งเริ่มต้น

Apparmor ควรป้องกันการกระทำที่ไม่ระบุสำหรับการดำเนินการของ daemon แม้จะมีสิทธิ์ 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 ไม่มีสิทธิ์เข้าถึงไฟล์ certs ตรวจสอบว่าเจ้าของไฟล์นั้นเป็นผู้ใช้ 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

น่าเสียดายที่นี่ดูเหมือนจะเป็นข้อผิดพลาด "ค่าเริ่มต้น" ที่คุณได้รับจากสิ่งใด @ anwser ของ wulfsdad มักแก้ไขได้

สิ่งอื่น ๆ ที่ฉันมักจะลืมคือโดยค่าเริ่มต้นบน ubuntu slapd ต้องการคีย์ในรูปแบบ openssl ฉันทำตามปกติ แต่ใช้คีย์ PCKS # 8 และคาดหวังว่ามันจะใช้งานได้ หากคุณลองใช้เบราว์เซอร์ทั้งหมดด้านบนตรวจสอบให้แน่ใจว่าปุ่มนั้นมีรูปแบบที่ถูกต้อง เมื่อ googling เกี่ยวกับข้อผิดพลาดที่คุณมักจะอ่านเกี่ยวกับการอนุญาตที่ไม่ถูกต้องและถูหัวของคุณทำไม apache ทำงานกับ slapd ที่สำคัญมากไม่ชอบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.