Dalam artikel kami sebelumnya, kami mengatur server OpenLDAP di CentOS 7 / RHEL 7 untuk otentikasi terpusat. Sebagai kelanjutannya, sekarang kita akan mengonfigurasi OpenLDAP dengan SSL untuk komunikasi yang aman. Dalam penyiapan ini, komunikasi klien LDAP terjadi melalui port aman 636 alih-alih port tidak aman 389.
Ikuti panduan ini untuk mengonfigurasi OpenLDAP dengan SSL.
Prasyarat
1. Penyiapan OpenLDAP.
2. Buat entri host server LDAP pada mesin klien Anda di /etc/hosts
untuk resolusi nama.
192.168.1.10 server.itzgeek.local server
ATAU
Jika Anda berencana menggunakan nama host alih-alih alamat IP, maka Konfigurasikan Server DNS di CentOS 7 / RHEL 7 untuk memiliki resolusi nama host.
Buat sertifikat LDAP
Jika Anda berencana untuk menggunakan LDAP melalui SSL, Anda dapat mengikuti salah satu metode di bawah ini untuk menerapkannya.
1. Sertifikat yang ditandatangani sendiri – Ini adalah sertifikat sederhana yang ditandatangani sendiri. Klien LDAP harus memiliki tls_reqcert allow
di /etc/nslcd.conf
untuk tidak memvalidasi sertifikat.
2. Sertifikat yang ditandatangani CA – CA internal atau sertifikat tanda CA eksternal Anda. Anda harus menempatkan sertifikat CA yang menandatangani sertifikat server LDAP Anda di /etc/openldap/cacerts/
direktori sehingga klien LDAP dapat memvalidasi sertifikat.
Sertifikat yang Ditandatangani Sendiri
Mari buat sertifikat yang ditandatangani sendiri untuk server LDAP kita. Perintah di bawah ini menghasilkan sertifikat dan kunci pribadi di /etc/openldap/certs/
direktori.
openssl req -new -x509 -nodes -out /etc/openldap/certs/itzgeekldap.crt -keyout /etc/openldap/certs/itzgeekldap.key -days 1460
Keluaran:
Generating a 2048 bit RSA private key ...+++ .....................................+++ writing new private key to '/etc/openldap/certs/itzgeekldapkey.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: XX State or Province Name (full name) []: XX Locality Name (eg, city) [Default City]: XXXXXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Infra Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected]
Setel izin pemilik dan grup.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Verifikasi sertifikat LDAP yang dibuat di bawah /etc/openldap/certs/
direktori.
ll /etc/openldap/certs/itzgeek*
Keluaran:
-rw-r--r--. 1 ldap ldap 1302 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1704 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.key
Buat certs.ldif
file untuk mengonfigurasi LDAP agar menggunakan komunikasi yang aman menggunakan sertifikat yang ditandatangani sendiri.
vi certs.ldif
Gunakan informasi di bawah ini.
dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Impor konfigurasi ke server LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Verifikasi konfigurasi
slaptest -u
Anda akan mendapatkan pesan berikut tentang verifikasi yang berhasil.
config file testing succeeded
Sertifikat yang Ditandatangani CA Khusus
Buat kunci root menggunakan perintah berikut.
cd /etc/openldap/certs/ openssl genrsa -out itzgeekrootCA.key 2048
Sekarang, buat sertifikat root yang ditandatangani sendiri.
openssl req -x509 -new -nodes -key itzgeekrootCA.key -sha256 -days 1024 -out itzgeekrootCA.pem
Keluaran:
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:XX State or Province Name (full name) []:XXX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:XXX Common Name (eg, your name or your server's hostname) []:ITzGeek Root CA Email Address []:[email protected]
Buat kunci pribadi untuk server LDAP.
openssl genrsa -out itzgeekldap.key 2048
Jika Anda memiliki kunci pribadi, buat permintaan penandatanganan sertifikat.
openssl req -new -key itzgeekldap.key -out itzgeekldap.csr
Keluaran:
Pastikan nama umum cocok dengan nama host server LDAP atau Alamat IP Anda.
Generating RSA private key, 2048 bit long modulus .........+++ .............................................................+++ e is 65537 (0x10001) [root@server certs]# openssl req -new -key itzgeekldap.key -out itzgeekldap.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:XX State or Province Name (full name) []:XX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Sekarang, tanda tangani permintaan penandatanganan sertifikat menggunakan CA root kustom.
openssl x509 -req -in itzgeekldap.csr -CA itzgeekrootCA.pem -CAkey itzgeekrootCA.key -CAcreateserial -out itzgeekldap.crt -days 1460 -sha256
Setel izin pemilik dan grup.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Verifikasi sertifikat LDAP yang dibuat di bawah /etc/openldap/certs/
direktori.
ll /etc/openldap/certs/itzgeek*
Keluaran:
-rw-r--r--. 1 ldap ldap 1285 Apr 1 16:54 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1050 Apr 1 16:53 /etc/openldap/certs/itzgeekldap.csr -rw-r--r--. 1 ldap ldap 1675 Apr 1 16:51 /etc/openldap/certs/itzgeekldap.key -rw-r--r--. 1 ldap ldap 1679 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.key -rw-r--r--. 1 ldap ldap 1399 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.pem -rw-r--r--. 1 ldap ldap 17 Apr 1 16:54 /etc/openldap/certs/itzgeekrootCA.srl
Buat certs.ldif
file untuk mengonfigurasi LDAP agar menggunakan komunikasi yang aman menggunakan sertifikat yang ditandatangani sendiri.
vi certs.ldif
Gunakan informasi di bawah ini.
dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/openldap/certs/itzgeekrootCA.pem dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Impor konfigurasi ke server LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Verifikasi konfigurasi
slaptest -u
Anda akan mendapatkan pesan berikut tentang verifikasi yang berhasil.
config file testing succeeded
Konfigurasikan OpenLDAP untuk mendengarkan melalui SSL
Edit /etc/sysconfig/slapd
file dan konfigurasikan OpenLDAP untuk mendengarkan melalui SSL.
vi /etc/sysconfig/slapd
Perbarui baris di bawah ini.
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
Mulai ulang layanan slapd.
systemctl restart slapd
Verifikasi layanan LDAP. Layanan LDAP sekarang juga harus mendengarkan pada port TCP 636.
netstat -antup | grep -i 636
Keluaran:
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 11720/slapd tcp6 0 0 :::636 :::* LISTEN 11720/slapd
Firewall
Tambahkan layanan LDAPS ke firewall (TCP 686).
firewall-cmd --permanent --add-service=ldaps firewall-cmd --reload
Konfigurasi klien OpenLDAP untuk OpenLDAP melalui SSL
Instal paket klien menggunakan perintah yum.
yum install -y openldap-clients nss-pam-ldapd
Jalankan authconfig
perintah untuk menambahkan mesin klien ke server LDAP untuk sistem masuk tunggal. Ganti “server.itzgeek.local ” dengan alamat IP atau nama host server LDAP Anda.
Jika Anda telah menggunakan sertifikat CA-singed atau eksternal CA-signed kustom dalam penyiapan OpenLDAP, maka Hostname atau alamat IP harus cocok dengan nama umum sertifikat server LDAP
authconfig --enableldap --enableldapauth --ldapserver=ldaps://server.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --disableldaptls --update
Anda perlu melakukan langkah-langkah di bawah ini berdasarkan metode yang telah Anda konfigurasikan OpenLDAP untuk menggunakan SSL.
Sertifikat yang Ditandatangani Sendiri
Edit nslcd.conf
berkas.
vi /etc/nslcd.conf
Tambahkan baris berikut di nslcd.conf
mengajukan. Pengaturan di bawah ini akan menonaktifkan validasi sertifikat yang dilakukan oleh klien karena kami menggunakan sertifikat yang ditandatangani sendiri.
tls_reqcert allow
Tandatangan CA Khusus atau Penandatanganan CA Eksternal
Salin itzgeekrootCA.pem
dari server LDAP atau tempatkan sertifikat perantara atau CA yang disediakan oleh CA eksternal di /etc/openldap/cacerts
direktori.
cd /etc/openldap/cacerts/ scp -pr 192.168.1.10:/etc/openldap/certs/itzgeekrootCA.pem /etc/openldap/cacerts
Buat hash c dari sertifikat CA.
/etc/pki/tls/misc/c_hash /etc/openldap/cacerts/itzgeekrootCA.pem
Keluaran:
997ee4fb.0 => /etc/openldap/cacerts/itzgeekrootCA.pem
Sekarang, symlink rootCA.pem ke 8 digit angka heksadesimal yang ditampilkan.
ln -s /etc/openldap/cacerts/itzgeekrootCA.pem 997ee4fb.0
Mulai ulang layanan klien LDAP.
systemctl restart nslcd
Verifikasi Login LDAP
Gunakan perintah getent untuk mendapatkan entri LDAP dari server LDAP.
getent passwd raj
Keluaran:
raj:x:9999:100:Raj [Admin (at) ITzGeek]:/home/raj:/bin/bash
Untuk memverifikasi LDAP, masuk menggunakan pengguna LDAP “raj” di mesin klien.
Tangkapan layar:
Referensi
OpenFusion – Tips dan Trik OpenLDAP
CentOS – Forum
Itu saja.