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 ldapwhoami
dan ldapsearch
perintah dengan -Z
argumen di kedua server dan klien. Jadi sepertinya koneksi LDAP ke server melalui kerja STARTTLS. Ketika saya mencoba terhubung tanpa -Z
saya 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 - otheruser
pesan kesalahan berikut ditambahkan ke /var/log/auth.log
klien:
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_ldap
tidak 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