Instal dan Konfigurasikan server OpenLDAP di Fedora 29

Panduan ini akan memandu Anda melalui langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi server OpenLDAP di Fedora 29. Seperti yang telah Anda ketahui, OpenLDAP adalah implementasi dari protokol akses direktori ringan (LDAP). Ini menyediakan titik manajemen pusat untuk informasi user.

Instal dan Konfigurasikan server OpenLDAP di Fedora 29

Perbarui dan tingkatkan paket sistem Anda;

dnf update dnf upgrade

Untuk menginstal server LDAP di Fedora 29, jalankan perintah di bawah ini;

dnf install openldap-clients openldap-servers

Mulai dan aktifkan service server OpenLDAP untuk menjalankan reboot sistem.

systemctl enable slapd systemctl start slapd

Konfigurasikan server OpenLDAP di Fedora 29

Setel password administrator OpenLDAP.

Ini dapat dilakukan dengan menggunakan slappasswdperintah yang menghasilkan hash password terenkripsi.

slappasswd New password: password Re-enter new password: password {SSHA}MI/malE7t763EWw7YiRzXsojGETmqMJq

Anda juga dapat mengatur password dalam satu perintah baris;. Ganti ‘slappasswd -h {SHA} -s passwordpassword’ dengan password Anda.

Simpan hash yang dihasilkan karena kami akan membutuhkannya sebentar lagi.

Konfigurasikan basis data OpenLDAP

Untuk memulainya, copy contoh konfigurasi database OpenLDAP dengan mengganti namanya sebagai berikut;

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Setel kepemilikan ldapuser direktori konfigurasi database LDAP.

chown -R ldap:ldap /var/lib/ldap

Impor skema dasar OpenLDAP

Navigasikan ke direktori skema OpenLDAP dan impor skema kosinus, nis, dan inetorgperson.

cd /etc/openldap/schema
for schema in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -Y EXTERNAL -H ldapi:/// -f $schema; done
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config" SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=nis,cn=schema,cn=config" SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=inetorgperson,cn=schema,cn=config"

Perbarui file konfigurasi database OpenLDAP dengan memodifikasi nilai atribut berikut;

  • olcSuffix – atur nilainya ke domain dasar Anda
  • olcRootDN – atur nilainya ke entri administratif domain LDAP Anda
  • olcRootPW – Ini diatur ke password admin LDAP Anda yang dibuat di atas.

Juga, konfigurasikan daftar kontrol akses untuk backend monitor LDAP ( olcDatabase={1}monitor.ldif) dan backend database utama ( olcDatabase={2}mdb.ldif).

Semua modifikasi ini dapat diimplementasikan menggunakan file ldif tunggal seperti yang ditunjukkan di bawah ini;

vim mod_domain.ldif
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none dn: olcDatabase={2}mdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=example,dc=com dn: olcDatabase={2}mdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=example,dc=com dn: olcDatabase={2}mdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}MI/malE7t763EWw7YiRzXsojGETmqMJq dn: olcDatabase={2}mdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

Modifikasi ini dapat diimplementasikan menggunakan ldapmodifyperintah.

ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_domain.ldif
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={1}monitor,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config"

Anda dapat menggunakan perintah ldapsearch untuk memverifikasi ini.

ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase={2}mdb -LLL
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: olcDatabase={2}mdb,cn=config objectClass: olcDatabaseConfig objectClass: olcMdbConfig olcDatabase: {2}mdb olcDbDirectory: /var/lib/ldap olcDbIndex: objectClass eq,pres olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub olcSuffix: dc=example,dc=com olcRootDN: cn=Manager,dc=example,dc=com olcRootPW: {SSHA}MI/malE7t763EWw7YiRzXsojGETmqMJq olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=exam ple,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}monitor -LLL
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 dn: olcDatabase={1}monitor,cn=config objectClass: olcDatabaseConfig olcDatabase: {1}monitor olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none

Buat domain dasar dan tambahkan ke LDAP untuk membuat direktori Anda. Ganti entri domain dengan tepat.

vim basedn.ldif
dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: Example Com dc: Example dn: cn=Manager,dc=example,dc=com objectClass: organizationalRole cn: Manager description: LDAP Directory Manager dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=example,dc=com objectClass: organizationalUnit ou: Group

Untuk menambahkan entri domain Base, jalankan perintah di bawah ini;

ldapadd -x -D cn=Manager,dc=example,dc=com -W -f basedn.ldif Enter LDAP Password: LDAP manager's password set above adding new entry "dc=example,dc=com" adding new entry "cn=Manager,dc=example,dc=com" adding new entry "ou=People,dc=example,dc=com"

Konfigurasi server OpenLDAP hampir selesai.

Buat Akun Pengguna server OpenLDAP

Buat password untuk user menggunakan slappasswdperintah;

slappasswd New password: Re-enter new password: {SSHA}QLXFlVsiNY7bLgcwx8yurJqMZVaErD9b

Buat file ldif untuk menentukan atribut user.

vim add_user.ldif
dn: uid=amosm,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Amos sn: Mibey userPassword: {SSHA}QLXFlVsiNY7bLgcwx8yurJqMZVaErD9b loginShell: /bin/bash uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/amosm dn: cn=amosm,ou=Group,dc=example,dc=com objectClass: posixGroup cn: Amos gidNumber: 10000 memberUid: amosm
ldapadd -x -D cn=Manager,dc=example,dc=com -W -f add_user.ldif Enter LDAP Password: adding new entry "uid=amosm,ou=People,dc=example,dc=com" adding new entry "cn=amosm,ou=Group,dc=example,dc=com"

Untuk memverifikasi bahwa user telah dibuat, Anda dapat menggunakan ldapsearchperintah untuk menanyakan detailnya.

ldapsearch -x uid=amosm -b dc=example,dc=com -LLL
dn: uid=amosm,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Amos sn: Mibey loginShell: /bin/bash uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/amosm uid: amosm

Nah, itulah yang diperlukan untuk menginstal dan mengkonfigurasi server OpenLDAP di Fedora 29. Semuanya tampak bagus. Jangan ragu untuk menambahkan lebih banyak user dan jelajahi fungsionalitas penuh OpenLDAP. Sebelum kita dapat menyelesaikan, buka service server OpenLDAP di firewall untuk mengizinkan akses eksternal.

firewall-cmd --permanent --add-service=ldapfirewall-cmd --reload

Yang tersisa untuk dilakukan adalah mengonfigurasi client LDAP untuk mengautentikasi melalui server OpenLDAP, Kami akan membahas ini di tutorial berikutnya. Terima kasih telah membaca.