RHCSA Series Menyiapkan Otentikasi Berbasis LDAP di RHEL 7 - Bagian 14

RHCSA Series Menyiapkan Otentikasi Berbasis LDAP di RHEL 7 - Bagian 14

Kami akan memulai artikel ini dengan menguraikan beberapa LDAP dasar -dasar (apa itu, di mana ia digunakan dan mengapa) dan menunjukkan cara mengatur server LDAP dan mengkonfigurasi klien untuk mengotentikasi itu menggunakannya menggunakannya Red Hat Enterprise Linux 7 sistem.

RHCSA Series: Setup LDAP Server dan Otentikasi Klien - Bagian 14

Seperti yang akan kita lihat, ada beberapa skenario aplikasi lain yang mungkin, tetapi dalam panduan ini kami akan fokus sepenuhnya Berbasis LDAP autentikasi. Selain itu, harap diingat bahwa karena luasnya subjek, kami hanya akan membahas dasar-dasarnya di sini, tetapi Anda dapat merujuk pada 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 manusia alat LDAP demi singkatnya, tetapi penjelasan yang sesuai berada pada jarak ujung jari (pria ldapadd, Misalnya).

Yang mengatakan, mari kita mulai.

Lingkungan pengujian kami

Lingkungan uji kami terdiri dari dua RHEL 7 Kotak:

Server: 192.168.0.18. Fqdn: rhel7.mydomain.com Klien: 192.168.0.20. Fqdn: ldapclient.mydomain.com 

Jika Anda mau, Anda dapat menggunakan mesin yang diinstal di bagian 12: Otomatiskan instalasi RHEL 7 menggunakan KickStart sebagai klien.

Apa itu LDAP?

LDAP berdiri untuk Protokol Akses Direktori Ringan dan terdiri dalam satu set protokol yang memungkinkan klien untuk mengakses, melalui jaringan, informasi yang disimpan secara terpusat (seperti direktori shell login, jalur absolut ke direktori rumah, dan informasi pengguna sistem khas lainnya, misalnya) yang harus dapat diakses Dari berbagai tempat atau tersedia untuk sejumlah besar pengguna akhir (contoh lain akan menjadi direktori alamat rumah dan nomor telepon semua karyawan di perusahaan).

Menjaga informasi seperti itu (dan lebih) secara terpusat berarti dapat lebih mudah dipelihara dan diakses oleh semua orang yang telah diberikan izin untuk menggunakannya.

Diagram berikut menawarkan diagram yang disederhanakan LDAP, dan dijelaskan di bawah ini secara lebih rinci:

Diagram LDAP

Penjelasan diagram di atas secara detail.

  1. Sebuah pintu masuk Dalam direktori LDAP mewakili satu unit atau informasi dan secara unik diidentifikasi oleh apa yang disebut nama terkemuka.
  2. Sebuah atribut adalah informasi yang terkait dengan entri (misalnya, alamat, nomor telepon kontak yang tersedia, dan alamat email).
  3. Setiap atribut ditugaskan satu atau lebih nilai Terdiri dalam daftar yang dipisahkan ruang. Nilai yang unik per entri disebut nama terhormat relatif.

Yang sedang dikatakan, mari kita lanjutkan dengan instalasi server dan klien.

Menginstal dan Mengkonfigurasi Server LDAP dan Klien

Di dalam RHEL 7, LDAP diimplementasikan oleh OpenLdaP. Untuk menginstal server dan klien, gunakan perintah berikut, masing -masing:

# yum update && yum install openldap openldap-clients OpenLdap-servers # yum update && yum instal OpenLdap OpenLdaP-CLIENTS NSS-PAM-LLDAPD 

Setelah instalasi selesai, ada beberapa hal yang kita lihat. Langkah -langkah berikut harus dilakukan di server saja, kecuali dicatat secara eksplisit:

1. Memastikan Selinux tidak menghalangi dengan mengaktifkan yang berikut ini Booleans terus -menerus, baik di server dan klien:

# setSebool -p izin_ypbind = 0 authlogin_nsswitch_use_ldap = 0 

Di mana Izin_ypbind diperlukan untuk otentikasi berbasis LDAP, dan authlogin_nsswitch_use_ldap mungkin diperlukan oleh beberapa aplikasi.

2. Aktifkan dan Mulai Layanan:

# SystemCTL Mengaktifkan slapd.Layanan # Systemctl Mulai Slapd.melayani 

Perlu diingat bahwa Anda juga dapat menonaktifkan, memulai kembali, atau menghentikan layanan dengan Systemctl juga:

# Systemctl Nonaktifkan slapd.Layanan # Systemctl Restart Slapd.Layanan # Systemctl Stop Slapd.melayani 

3. Sejak slapd Layanan berjalan sebagai pengguna LDAP (yang dapat Anda verifikasi 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 dalam satu menit).

Sebelum mengubah kepemilikan direktori ini secara rekursif, salin file konfigurasi database sampel untuk slapd ke dalamnya:

# cp/usr/share/openldap-servers/db_config.Contoh/var/lib/ldap/db_config # chown -r ldap: ldap/var/lib/ldap 

4. Siapkan pengguna administrasi OpenLdaP dan tetapkan kata sandi:

# slappasswd 

Seperti yang ditunjukkan pada gambar berikutnya:

Atur Kata Sandi Admin LDAP

dan buat Ldif file (ldaprootpasswd.ldif) dengan konten berikut:

dn: olcdatabase = 0 config, cn = config changetype: ubah add: olcrootpw olcrootpw: ssha kata sandi 

Di mana:

  1. KATA SANDI adalah string hash yang diperoleh sebelumnya.
  2. cn = config menunjukkan opsi konfigurasi global.
  3. Olcdatabase menunjukkan nama instance database tertentu dan biasanya dapat ditemukan di dalam /etc/openldap/slapd.d/cn = config.

Mengacu pada latar belakang teoretis yang disediakan 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 masing -masing usus besar adalah nilai yang sesuai).

Anda mungkin ingin mengingat hal ini saat kami melangkah lebih jauh, dan harap dicatat bahwa kami menggunakan nama umum yang sama (cn =) Sepanjang sisa artikel ini, di mana setiap langkah tergantung pada yang sebelumnya.

5. Sekarang, tambahkan entri LDAP yang sesuai dengan menentukan Uri mengacu pada server LDAP, di mana hanya bidang protokol/host/port yang diizinkan.

# ldapadd -h ldapi: /// -f ldaprootpasswd.ldif 

Output harus mirip dengan:

Konfigurasi LDAP

dan impor beberapa definisi LDAP dasar dari /etc/openldap/skema direktori:

# untuk def dalam kosinus.ldif nis.LDIF INETORGPERSON.ldif; do ldapadd -h ldapi: /// -f/etc/openldap/schema/$ def; Selesai 
Definisi LDAP

6. Mintalah LDAP menggunakan domain Anda di basis datanya.

Buat yang lain Ldif file, yang akan kami hubungi ldapdomain.ldif, Dengan konten berikut, mengganti domain Anda (dalam komponen domain dc =) dan kata sandi yang sesuai:

dn: olcdatabase = 1 monitor, cn = config changeType: ubah ganti: olcaccess olcaccess: 0 ke * oleh dn.base = "gidnumber = 0+uidnumber = 0, cn = peercred, cn = eksternal, cn = auth" dibaca oleh dn.basis = "cn = manajer,dc = mydomain,dc = com "dibaca oleh * tidak ada dn: olcdatabase = 2 hdb, cn = config changetype: ubah ganti: olcsuffix olcsuffix: dc = mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config changetype: ubah ganti: olcrootdn olcrootdn: cn = manajer,dc = mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config changeType: ubah add: olcrootpw olcrootpw: ssha kata sandi dn: olcdatabase = 2 hdb, cn = config changeType: modify Add: olcaccescs: cn = con 0 ke attrs = userpassword, shadowlastchange dengan dn = "cn = manajer,dc = mydomain,dc = com "tulis dengan auth anonymous by self write by * none olcaccess: 1 ke dn.base = "" by * baca olcaccess: 2 ke * oleh dn = "cn = manajer, dc = mydomain, dc = com" tulis oleh * baca 

Kemudian muat sebagai berikut:

# ldapmodify -h ldapi: /// -f ldapdomain.ldif 
Konfigurasi Domain LDAP

7. Sekarang saatnya menambahkan beberapa entri ke direktori LDAP kami. Atribut dan nilai dipisahkan oleh usus besar (:) di file berikut, yang akan kami beri nama Baseldapdomain.ldif:

DN: DC = MyDomain, DC = COM ObjectClass: Top ObjectClass: DCObject ObjectClass: Organisasi O: MyDomain Com DC: MyDomain DN: CN = Manajer, DC = MyDomain, DC = COM ObjectClass: Organisasi CN: Manajer Deskripsi: Manajer Direktori DN: ou = people, dc = mydomain, dc = com objectclass: OrganizationalUnit ou: people dn: ou = group, dc = mydomain, dc = com objectclass: organisasi ou: grup 

Tambahkan entri ke direktori LDAP:

# ldapadd -x -d cn = manajer, dc = mydomain, dc = com -w -f baseldapdomain.ldif 
Tambahkan atribut dan nilai domain LDAP

8. Buat pengguna LDAP yang dipanggil LDAPUSER (AddUser Ldapuser), lalu buat definisi untuk grup LDAP di ldapgroup.ldif.

# adduser ldapuser # vi ldapgroup.ldif 

Tambahkan konten berikut.

dn: cn = manajer, ou = grup, dc = mydomain, dc = com objekclass: Top objectclass: posixgroup gidnumber: 1004 

Di mana Bilangan gidn Apakah gid masuk /etc/group untuk lDAPuser) dan muat:

# ldapadd -x -w -d "cn = manajer, dc = mydomain, dc = com" -f ldapgroup.ldif 

9. Tambahkan file LDIF dengan definisi untuk ldapuser pengguna (LDAPUSER.ldif):

dn: uid = ldapuser, ou = people, dc = mydomain, dc = com objectclass: Top objectclass: akun objekclass: posixaccount objekclass: shadowaccount cn: ldapuser uid: ldapuser uidnumber: 1004 gidnumber: 1004 homeDirectory: /home /ldapuser: 1004 gidnumber: 1004 homeDirectory: /home /ldapuser: 1004 GidNumber: 1004 HomeDirectory: /Home /Ldapuser Ssha fin0yqzbdudi0fpqq9uudwmjzqy28s3m loginshell: /bin /bash gecos: ldapuser shadowlastchange: 0 shadowmax: 0 shadow warning: 0 

dan memuatnya:

# ldapadd -x -d cn = manajer, dc = myDomain, dc = com -w -f ldapuser.ldif 
Konfigurasi Pengguna LDAP

Demikian juga, Anda dapat menghapus entri pengguna yang baru saja Anda buat:

# ldapdelete -x -w -d cn = manajer, dc = mydomain, dc = com "uid = ldapuser, ou = people, dc = mydomain, dc = com" 

10. Izinkan komunikasi melalui firewall:

# firewall-cmd --add-service = ldap 

11. Terakhir, tetapi tidak kalah pentingnya, memungkinkan klien untuk mengotentikasi menggunakan LDAP.

Untuk membantu kami di langkah terakhir ini, kami akan menggunakan authconfig Utilitas (Antarmuka untuk Mengkonfigurasi Sumber Daya Otentikasi Sistem).

Menggunakan perintah berikut, direktori home untuk pengguna yang diminta dibuat jika tidak ada setelah otentikasi terhadap server LDAP berhasil:

# authconfig --enableldap --enableldapAuth --ldapserver = rhel7.mydomain.com --ldapbasedn = "dc = mydomain, dc = com" --enablemkhomedir -update 
Konfigurasi Klien LDAP

Ringkasan

Dalam artikel ini kami telah menjelaskan cara mengatur otentikasi dasar terhadap server LDAP. Untuk mengkonfigurasi lebih lanjut pengaturan 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.