Kami akan memulai artikel ini dengan menguraikan beberapa LDAP dasar-dasar (apa itu, di mana digunakan dan mengapa) dan menunjukkan cara menyiapkan server LDAP dan mengonfigurasi klien untuk mengautentikasinya menggunakan Red Hat Enterprise Linux 7 sistem.
Seperti yang akan kita lihat, ada beberapa skenario aplikasi lain yang mungkin, tetapi dalam panduan ini kita akan fokus sepenuhnya pada berbasis LDAP autentikasi. Selain itu, harap diingat bahwa karena luasnya subjek, kami hanya akan membahas dasar-dasarnya di sini, tetapi Anda dapat merujuk ke dokumentasi yang diuraikan dalam ringkasan untuk detail yang lebih mendalam.
Untuk alasan yang sama, Anda akan mencatat bahwa saya telah memutuskan untuk meninggalkan beberapa referensi ke halaman manual alat LDAP demi singkatnya, tetapi penjelasan yang sesuai ada di ujung jari jarak (pria ldapadd, Misalnya).
Yang mengatakan, mari kita mulai.
Lingkungan pengujian kami terdiri dari dua RHEL 7 kotak:
Server: 192.168.0.18. FQDN: rhel7.domainsaya.com. Klien: 192.168.0.20. FQDN: ldapclient.domainsaya.com.
Jika mau, Anda dapat menggunakan mesin yang terpasang di Bagian 12: Mengotomatiskan instalasi RHEL 7 menggunakan Kickstart sebagai klien.
LDAP berdiri untuk Protokol Akses Direktori Ringan dan terdiri dari seperangkat protokol yang memungkinkan klien untuk mengakses, melalui jaringan, informasi yang disimpan secara terpusat (seperti direktori login shell, jalur absolut ke direktori home, dan informasi pengguna sistem lainnya, misalnya) yang harus dapat diakses dari berbagai tempat atau tersedia untuk sejumlah besar pengguna akhir (contoh lain adalah direktori alamat rumah dan nomor telepon semua karyawan di perusahaan).
Menyimpan informasi tersebut (dan lebih banyak lagi) secara terpusat berarti dapat lebih mudah dipelihara dan diakses oleh semua orang yang telah diberikan izin untuk menggunakannya.
Diagram berikut menawarkan diagram yang disederhanakan dari: LDAP, dan dijelaskan di bawah ini secara lebih rinci:
Penjelasan diagram di atas secara rinci.
Karena itu, mari kita lanjutkan dengan instalasi server dan klien.
Di dalam RHEL 7, LDAP diimplementasikan oleh Buka LDAP. Untuk menginstal server dan klien, gunakan perintah berikut, masing-masing:
# yum perbarui && yum instal openldap openldap-clients openldap-servers. # yum update && yum instal openldap openldap-clients nss-pam-ldapd.
Setelah instalasi selesai, ada beberapa hal yang kita lihat. Langkah-langkah berikut harus dilakukan di server saja, kecuali disebutkan secara eksplisit:
1. Memastikan SELinux tidak menghalangi dengan mengaktifkan yang berikut ini boolean terus-menerus, baik di server maupun klien:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0.
Di mana allow_ypbind diperlukan untuk otentikasi berbasis LDAP, dan authlogin_nsswitch_use_ldap mungkin diperlukan oleh beberapa aplikasi.
2. Aktifkan dan mulai layanan:
# systemctl aktifkan slapd.service. # systemctl mulai slapd.service.
Ingatlah bahwa Anda juga dapat menonaktifkan, memulai ulang, atau menghentikan layanan dengan sistemctl demikian juga:
# systemctl menonaktifkan slapd.service. # systemctl restart slapd.service. # systemctl stop slapd.service.
3. Sejak tamparan layanan berjalan sebagai pengguna ldap (yang dapat Anda verifikasi dengan ps -e -o pid, uname, comm | grep slapd), pengguna tersebut harus memiliki /var/lib/ldap direktori agar server dapat memodifikasi entri yang dibuat oleh alat administratif yang hanya dapat dijalankan sebagai root (lebih lanjut tentang ini sebentar lagi).
Sebelum mengubah kepemilikan direktori ini secara rekursif, salin file konfigurasi database sampel untuk tamparan ke dalamnya:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG. # chown -R ldap: ldap /var/lib/ldap.
4. Siapkan pengguna administratif OpenLDAP dan tetapkan kata sandi:
#slappasswd.
seperti yang ditunjukkan pada gambar berikut:
dan membuat LDIF berkas (ldaprootpasswd.ldif) dengan isi sebagai berikut:
dn: olcDatabase={0}config, cn=config. tipe ubah: modifikasi. tambahkan: olcRootPW. olcRootPW: {SSHA}PASSWORD.
di mana:
Mengacu pada latar belakang teori yang diberikan sebelumnya, ldaprootpasswd.ldif
file akan menambahkan entri ke direktori LDAP. Dalam entri itu, setiap baris mewakili atribut: pasangan nilai (di mana dn, changetype, add, dan olcRootPW adalah atribut dan string di sebelah kanan setiap titik dua adalah nilai yang sesuai).
Anda mungkin ingin mengingat hal ini saat kami melangkah lebih jauh, dan harap perhatikan bahwa kami menggunakan Nama Umum yang sama (cn=)
sepanjang sisa artikel ini, di mana setiap langkah bergantung pada langkah sebelumnya.
5. Sekarang, tambahkan entri LDAP yang sesuai dengan menentukan URI merujuk ke server ldap, di mana hanya bidang protokol/Host/port yang diizinkan.
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif
Outputnya harus mirip dengan:
dan impor beberapa definisi LDAP dasar dari /etc/openldap/schema
direktori:
# untuk def di cosine.ldif nis.ldif inetorgperson.ldif; lakukan ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; selesai.
6. Minta LDAP menggunakan domain Anda di databasenya.
Buat yang lain LDIF file, yang akan kita sebut ldapdomain.ldif
, dengan konten berikut, ganti domain Anda (dalam Komponen Domain dc=) dan kata sandi yang sesuai:
dn: olcDatabase={1}monitor, cn=config. tipe ubah: modifikasi. ganti: olcAccess. olcAccess: {0}ke * oleh dn.base="gidNumber=0+uidNumber=0,cn=peercred, cn=external, cn=auth" dibaca oleh dn.base="cn=Manager,dc=domainku,dc=com" dibaca oleh * none dn: olcDatabase={2}hdb, cn=config. tipe ubah: modifikasi. ganti: olcSuffix. olcSufiks: dc=domainku,dc=com dn: olcDatabase={2}hdb, cn=config. tipe ubah: modifikasi. ganti: olcRootDN. olcRootDN: cn=Manajer,dc=domainku,dc=com dn: olcDatabase={2}hdb, cn=config. tipe ubah: modifikasi. tambahkan: olcRootPW. olcRootPW: {SSHA}PASSWORD dn: olcDatabase={2}hdb, cn=config. tipe ubah: modifikasi. tambahkan: olcAccess. olcAccess: {0}ke attrs=userPassword, shadowLastChange oleh dn="cn=Manager,dc=domainku,dc=com" tulis oleh auth anonim oleh tulis sendiri oleh * none. olcAccess: {1}ke dn.base="" dengan * baca. olcAccess: {2}ke * oleh dn="cn=Manager, dc=mydomain, dc=com" tulis dengan * read.
Kemudian memuatnya sebagai berikut:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif.
7. Sekarang saatnya menambahkan beberapa entri ke direktori LDAP kami. Atribut dan nilai dipisahkan oleh titik dua (:)
di file berikut, yang akan kami beri nama baseldapdomain.ldif
:
dn: dc=domainku, dc=com. kelas objek: atas. kelas objek: dcObject. kelas objek: organisasi. o: domain saya com. dc: domain saya dn: cn=Manager, dc=domainsaya, dc=com. objectClass: peran organisasi. cn: Manajer. deskripsi: Manajer Direktori dn: ou=Orang, dc=domainku, dc=com. objectClass: unit organisasi. ou: Orang dn: ou=Grup, dc=domainku, dc=com. objectClass: unit organisasi. ou: Grup.
Tambahkan entri ke direktori LDAP:
# ldapadd -x -D cn=Manager, dc=domainku, dc=com -W -f baseldapdomain.ldif.
8. Buat pengguna LDAP bernama pengguna (adduser ldapuser), lalu buat definisi untuk grup LDAP di ldapgroup.ldif
.
# adduser ldapuser. # vi ldapgroup.ldif.
Tambahkan konten berikut.
dn: cn=Manager, ou=Grup, dc=domainku, dc=com. kelas objek: atas. objectClass: posixGroup. gidNomor: 1004.
di mana gidNumber adalah GID di /etc/group untuk ldapuser) dan memuatnya:
# ldapadd -x -W -D "cn=Manager, dc=domainku, dc=com" -f ldapgroup.ldif.
9. Tambahkan file LDIF dengan definisi untuk pengguna ldapuser (ldapuser.ldif
):
dn: uid=ldapuser, ou=Orang, dc=domainku, dc=com. kelas objek: atas. objekClass: akun. objectClass: posixAccount. objectClass: shadowAccount. cn: ldapuser. uid: ldapuser. uidNomor: 1004. gidNomor: 1004. homeDirectory: /home/ldapuser. kata sandi pengguna: {SSHA}fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M. loginShell: /bin/bash. gecos: ldapuser. shadowLastChange: 0. bayangan Maks: 0. bayanganPeringatan: 0.
dan memuatnya:
# ldapadd -x -D cn=Manager, dc=domainku, dc=com -W -f ldapuser.ldif.
Demikian juga, Anda dapat menghapus entri pengguna yang baru saja Anda buat:
# ldapdelete -x -W -D cn=Manager, dc=domainku, dc=com "uid=ldapuser, ou=Orang, dc=domainku, dc=com"
10. Izinkan komunikasi melalui firewall:
# firewall-cmd --add-service=ldap.
11. Terakhir, namun tidak kalah pentingnya, aktifkan klien untuk mengautentikasi menggunakan LDAP.
Untuk membantu kami dalam langkah terakhir ini, kami akan menggunakan konfigurasi auth utilitas (antarmuka untuk mengonfigurasi sumber daya otentikasi sistem).
Menggunakan perintah berikut, direktori home untuk pengguna yang diminta akan dibuat jika tidak ada setelah otentikasi terhadap server LDAP berhasil:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain, dc=com" --enablemkhomedir --update.
Pada artikel ini kami telah menjelaskan cara mengatur otentikasi dasar terhadap server LDAP. Untuk mengonfigurasi pengaturan lebih lanjut yang dijelaskan dalam panduan ini, silakan merujuk ke Bab 13 – Konfigurasi LDAP dalam panduan Administrator sistem RHEL 7, memberikan perhatian khusus pada pengaturan keamanan menggunakan TLS.
Jangan ragu untuk meninggalkan pertanyaan apa pun yang mungkin Anda miliki menggunakan formulir komentar di bawah ini.