Xác thực TLS OpenLDAP


10

Tôi đang cố gắng triển khai TLS theo https://help.ubfox.com/lts/serverguide/openldap-server.html Khi tôi cố gắng sửa đổi cơ sở dữ liệu cn = config bằng tệp ldif này:

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

Tôi nhận được lỗi sau đây:

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)

Tôi đang làm gì sai?

EDIT: Khi tôi cố gắng sử dụng auth đơn giản, tôi đã gặp lỗi sau:

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

Kiểm tra các quyền trên các tập tin chứng chỉ. Và cũng xóa mật khẩu nếu như vậy được đặt.
zeridon

Cảm ơn vì sớm phản hồi. Các quyền được đặt thành 644 ngoại trừ tệp .key trên 600 Làm cách nào để kiểm tra / xóa mật khẩu? Tôi không nhớ đặt bất kỳ mật khẩu nào cho cn = config ..
Amar Prasovic

2
Ý tôi là mật khẩu trên chính chứng chỉ (không phải trên cn = config). Kiểm tra: mnx.io/blog/removing-a-passphrase-from-an-ssl-key
zeridon 10/07/2015

Không, đó không phải là trường hợp. Các tập tin quan trọng đã được tạo mà không có mật khẩu.
Amar Prasovic

bạn có thể thử tải ldiff bằng auth đơn giản (không -Y EXTERNAL)
zeridon

Câu trả lời:


17

Tôi đã làm theo cùng một hướng dẫn và có cùng một vấn đề. Nó sẽ hoạt động nếu bạn thực hiện các bước để "Thắt chặt quyền sở hữu và quyền" được liệt kê sau lệnh ldapmodify vi phạm trước - cụ thể là:

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
Điều này làm việc cho tôi quá!
sonicwave

2
Trong trường hợp của tôi, tôi đã phải sử dụng chgrp openldap. Dù sao, đó là một vấn đề cho phép. +1
xonya

thư mục riêng cũng phải được thực thi để đi qua. sudo chgrp ssl-cert /etc/ssl/private && sudo chmod g+X /etc/ssl/private
Jeff Puckett

3

Chà tôi không biết đây là giải pháp hay chỉ là cách giải quyết, nhưng tôi đã xoay sở để nó hoạt động.

Lần đầu tiên tôi dừng slapd với:

service slapd stop

Sau đó, tôi bắt đầu nó trong chế độ gỡ lỗi:

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

Quan trọng là bắt đầu nó CHỈ với ldapi: /// URL. Sau khi nó bắt đầu, tôi đã thực thi lệnh ldapmodify và các thuộc tính đã được nhập.

Cuối cùng, tôi dừng chế độ gỡ lỗi và khởi động slapd bình thường.


2

Theo câu trả lời của A. Gutierrez , cách tốt nhất để kiểm tra quyền truy cập cho mỗi tệp là chạy sudo -u openldap cat <filename>. Tôi đã xem tất cả các tệp nhiều lần và chúng có vẻ được đặt quyền chính xác. Hóa ra là một vấn đề nhóm cho openldap. Khi tôi cuối cùng đã tìm ra điều đó, một cách đơn giản đã sudo usermod -a -G ssl-cert openldapgiải quyết nó cho tôi.


2

Đôi khi vấn đề là trong hồ sơ apparmor cho dịch vụ slapd. Hãy chắc chắn rằng hồ sơ apparmor đã cho phép đường dẫn chứng chỉ cho daemon.

Nó là khá trực quan trong /etc/apparmor.d/usr.sbin.slapd. Theo mặc định, hồ sơ này cho phép đọc chứng chỉ ở các vị trí mặc định.

Apparmor nên ngăn chặn các hành động không xác định để thực thi daemon, mặc dù có quyền unix thích hợp.


Nếu bạn sử dụng letencrypt, đây là giải pháp. Thêm các dòng sau vào /etc/apparmor.d/usr.sbin.slapd: / etc / allowencrypt / r, / etc / allowencrypt / ** r và tải lại các cấu hình apparmor.
Bernhard

1

Như tôi đã báo cáo trong lỗi này trên Ubuntu Launchpad , vấn đề này cũng có thể do apparmor gây ra. Thông thường, điều này sẽ hiển thị trong syslog như một từ chối truy cập.

Khắc phục sự cố là chèn dòng sau vào /etc/apparmor.d/usr.sbin.slapd:

/etc/letsencrypt/** r,

và sau đó làm mới hồ sơ:

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

0

Tôi cũng có vấn đề như vậy. Vấn đề là người dùng đang chạy slapd didnt không có quyền truy cập vào tập tin certs. Kiểm tra chủ sở hữu của các tập tin đó là người dùng openldap.


0

Đối với tôi, vấn đề nằm ở thứ tự sai của hồ sơ - đây là vấn đề:

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

Thật không may, đây có vẻ là lỗi "mặc định" mà bạn nhận được cho bất cứ điều gì. Anwser của @ wulfsdad thường sửa nó.

Một điều khác mà tôi luôn quên là theo mặc định, trên slubd ubfox muốn khóa ở định dạng openssl. Tôi quy định nhưng PCKS # 8 khóa vào nó và hy vọng nó chỉ hoạt động (mà công bằng thì nên). Nếu bạn đã thử tất cả các anwsers ở trên cũng đảm bảo rằng khóa có định dạng đúng. Khi tìm hiểu về lỗi, bạn thường đọc về các quyền sai và xoa đầu tại sao apache hoạt động với chính slapd không thích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.