Tạo nss_ldap bằng STARTTLS


1

Tôi đang cố gắng thiết lập xác thực LDAP bằng STARTTLS (Tôi đọc rằng TLS / ldaps không được chấp nhận). Xác thực LDAP không được mã hóa của BTW hoạt động nhưng đó không phải là điều tôi muốn.

Tôi đã quản lý để thiết lập máy chủ thư mục LDAP bằng hướng dẫn này bắt đầu từ bản cài đặt Ubuntu Server 16.10 mới (2 máy VirtualBox, một cho máy chủ, một cho máy khách) và theo dõi từng bước bao gồm bước cuối cùng tùy chọn để chỉ cho phép kết nối TLS.

Bây giờ tôi có thể chạy ldapwhoamildapsearchra lệnh với -Zđối số trên cả máy chủ và máy khách. Vì vậy, có vẻ như các kết nối LDAP đến máy chủ thông qua STARTTLS hoạt động. Khi tôi cố gắng kết nối mà không gặp phải -Zlỗi (dự kiến) sau:

Confidentiality required (13)
Additional information: TLS confidentiality required

Bây giờ tôi muốn sử dụng máy chủ để xác thực người dùng LDAP trên máy khách. Đối với điều này, tôi đã chạy các lệnh sau trên máy khách :

sudo apt-get install ldap-auth-client
# LDAP Server: ldap://ldap.example.com
# Base DN:     dc=example,dc=com
# Bind DN:     cn=admin,dc=example,dc=com

sudo auth-client-config -t nss -p lac_ldap

sudo vi /usr/share/pam-configs/mkhomedir
# changed "Default: no" to "Default: yes"
# changed "optional" to "required"

sudo pam-auth-update
# enabled "Create home directory on login"

Bây giờ khi tôi muốn thay đổi người dùng trên máy khách với su - otheruserthông báo lỗi sau sẽ được thêm /var/log/auth.logvào máy khách:

nss_ldap: failed to bind to LDAP server ldap://ldap.example.com: Confidentiality required

Đây là thông báo lỗi giống như khi tôi cố chạy các lệnh LDAP mà không có STARTTLS (xem bên trên), do đó, vấn đề dường như nss_ldaplà không được cấu hình đúng để sử dụng STARTTLS.

Những gì tôi đã cố gắng (không thành công) là thêm các mục vào /etc/ldap/ldap.conf. Bây giờ nó trông như thế này:

BASE         dc=example,dc=com
URI          ldap://ldap.example.com
TLS_CACERT   /etc/ldap/ca_certs.pem
LDAP_VERSION 3
SSL          start_tls
TLS_REQCERT  allow

Câu trả lời:


1

Trêu chọc cấu hình máy khách tôi vô tình mở /etc/ldap.confthay /etc/ldap/ldap.confvà ngạc nhiên khi cả hai tồn tại!

Tệp /etc/ldap.confđược tạo bởi debconf, tức là khi gọi sudo apt-get install ldap-auth-clienthoặc sudo dpkg-reconfigure ldap-auth-config, và dường như là tệp được sử dụng bởi nss_ldap. Nó chứa nhiều tùy chọn nhận xét.

Vì STARTTLS dường như không được hỗ trợ bởi trình hướng dẫn gỡ lỗi, tôi đã thay đổi như sau /etc/ldap.conf:

  • xóa dòng đầu tiên ###DEBCONF###
  • không có dòng ssl start_tls

Bây giờ xác thực trên máy khách cuối cùng hoạt động.

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.