Buat nss_ldap menggunakan STARTTLS

1

Saya mencoba mengatur otentikasi LDAP dengan STARTTLS (saya membaca bahwa TLS / ldaps sudah usang). Otentikasi LDAP tidak terenkripsi BTW berfungsi tetapi bukan itu yang saya inginkan.

Saya berhasil mengatur server direktori LDAP menggunakan tutorial ini mulai dari instalasi Ubuntu Server 16.10 baru (2 mesin VirtualBox, satu untuk server, satu untuk klien) dan mengikuti setiap langkah termasuk langkah terakhir opsional untuk hanya mengizinkan koneksi TLS.

Sekarang saya bisa menjalankan ldapwhoamidan ldapsearchperintah dengan -Zargumen di kedua server dan klien. Jadi sepertinya koneksi LDAP ke server melalui kerja STARTTLS. Ketika saya mencoba terhubung tanpa -Zsaya mendapatkan kesalahan (diharapkan) berikut:

Confidentiality required (13)
Additional information: TLS confidentiality required

Sekarang saya ingin menggunakan server untuk mengautentikasi pengguna LDAP pada klien. Untuk ini saya menjalankan perintah berikut pada klien :

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"

Sekarang ketika saya ingin mengubah pengguna di klien dengan su - otheruserpesan kesalahan berikut ditambahkan ke /var/log/auth.logklien:

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

Ini adalah pesan kesalahan yang sama seperti ketika saya mencoba menjalankan perintah LDAP tanpa STARTTLS (lihat di atas), jadi masalahnya sepertinya nss_ldaptidak dikonfigurasi dengan benar untuk menggunakan STARTTLS.

Apa yang saya coba (tanpa hasil) adalah menambahkan entri /etc/ldap/ldap.conf. Sekarang terlihat seperti ini:

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
bassjoe
sumber

Jawaban:

1

Mengaduk-aduk konfigurasi klien saya tidak sengaja membuka /etc/ldap.confbukannya /etc/ldap/ldap.confdan terkejut bahwa keduanya ada!

File /etc/ldap.confini dihasilkan oleh debconf, yaitu saat memanggil sudo apt-get install ldap-auth-clientatau sudo dpkg-reconfigure ldap-auth-config, dan tampaknya menjadi yang digunakan oleh nss_ldap. Ini berisi banyak pilihan komentar.

Karena STARTTLS tampaknya tidak didukung oleh panduan debconf, saya mengubah yang berikut di /etc/ldap.conf:

  • menghapus baris pertama ###DEBCONF###
  • menghapus komentar baris ssl start_tls

Sekarang otentikasi pada klien akhirnya berfungsi.

bassjoe
sumber