GNU/Linux >> Belajar Linux >  >> Cent OS

Konfigurasikan OpenLDAP dengan SSL di CentOS 7 / RHEL 7

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.


Cent OS
  1. Konfigurasi VNC pada CentOS 6 / RHEL 6

  2. Konfigurasi DNS pada CentOS 5 / RHEL 5 dengan chroot

  3. Konfigurasi Kibana 4 dengan Nginx | Mengamankan Kibana 4 – CentOS 7

  1. Cara mengonfigurasi IMAP dengan SSL

  2. Cara Instal dan Konfigurasi OpenLDAP di CentOS / RHEL Linux

  3. Cara Mengatur Nama Antarmuka Kustom dengan NetworkManager di CentOS/RHEL 7

  1. Langkah demi Langkah Konfigurasi Server OpenLDAP pada CentOS 7 / RHEL 7

  2. CentOS / RHEL 7 :Cara mengkonfigurasi getty serial dengan systemd

  3. CentOS / RHEL :Konfigurasikan pembaruan otomatis yum dengan layanan yum-cron