Konfigurasikan SSSD untuk Otentikasi OpenLDAP di CentOS 8

Dalam panduan ini, kami akan mendemonstrasikan cara mengkonfigurasi SSSD untuk Otentikasi OpenLDAP di CentOS 8. Dalam panduan kami sebelumnya, kami telah membahas cara menginstal dan mengatur OpenLDAP di CentOS 8 serta cara mengkonfigurasi SUDO melalui OpenLDAP. Lihat tautan di bawah ini;

Instal dan Siapkan OpenLDAP di CentOS 8

Cara Mengkonfigurasi SUDO melalui OpenLDAP Server

Konfigurasikan SSSD untuk Otentikasi OpenLDAP di CentOS 8

SSSD  adalah singkatan dari System Security Services Daemon. Ini menyediakan akses ke penyedia identitas dan otentikasi yang berbeda.

Dalam demo ini, kami menggunakan OpenLDAP sebagai direktori kami serta server manajemen identitas.

Jalankan pembaruan sistem

Untuk memperbarui paket sistem Anda, jalankan perintah di bawah ini;

dnf update

Instal SSSD di CentOS 8

Setelah pembaruan sistem selesai, lanjutkan untuk menginstal SSSD dan alat SSSD lainnya.

dnf install sssd sssd-tools

Konfigurasikan SSSD untuk Otentikasi OpenLDAP di CentOS 8

Selanjutnya, konfigurasikan SSSD untuk mengizinkan otentikasi ke sistem lokal Anda melalui OpenLDAP.

SSSD biasanya tidak dikirimkan dengan file konfigurasi default apa pun. Karena itu, Anda perlu membuat dan mengonfigurasinya secara manual.

vim /etc/sssd/sssd.conf

Tempel konten di bawah ini ke dalam sssd.confmengajukan. Pastikan untuk membuat substitusi yang relevan menggantikan komponen domain Anda dengan tepat.

[sssd] services = nss, pam, sudo config_file_version = 2 domains = default [sudo] [nss] [pam] offline_credentials_expiration = 60 [domain/default] ldap_id_use_start_tls = True cache_credentials = True ldap_search_base = dc=ldapmaster,dc=kifarunix-demo,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = ldap sudo_provider = ldap ldap_uri = ldap://ldapmaster.kifarunix-demo.com ldap_default_bind_dn = cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com ldap_default_authtok = [email protected] ldap_tls_reqcert = demand ldap_tls_cacert = /etc/pki/tls/cacert.crt ldap_tls_cacertdir = /etc/pki/tls ldap_search_timeout = 50 ldap_network_timeout = 60 ldap_sudo_search_base = ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com ldap_access_order = filter ldap_access_filter = (objectClass=posixAccount) 

Simpan dan keluar dari file konfigurasi. Pastikan untuk membuat perubahan yang relevan.

Perhatikan bahwa kami juga telah mengonfigurasi server OpenLDAP kami untuk memberikan hak sudo seperti yang ditunjukkan oleh konfigurasi;

services = nss, pam, sudo... [sudo]... ldap_sudo_search_base = ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com 

If you are not using OpenLDAP for sudo rules, Anda dapat menghapus konfigurasi ini.

Selanjutnya, download sertifikat CA server OpenLDAP dan simpan pada file yang ditentukan oleh ldap_tls_cacertarahan pada file sssd.conf di atas.

openssl s_client -connect ldapmaster.kifarunix-demo.com:636 -showcerts < /dev/null | openssl x509 -text

Copy sertifikat dan tempel di /etc/pki/tls/cacert.crt.

vim /etc/pki/tls/cacert.crt
-----BEGIN CERTIFICATE----- MIIFxzCCA6+gAwIBAgIUV+l4aOvMCLlNQRKOpt9YfxcxA8MwDQYJKoZIhvcNAQEL BQAwczELMAkGA1UEBhMCS0UxEDAOBgNVBAgMB05haXJvYmkxDDAKBgNVBAcMA05h...... 5deiMlJkrYv7wZ0prq0QO5lduGBuD9UJvRa8LBV0GEAiHZL5PJOnREHObbAH907E eixIJpkcC4wguMaXDNqIv6WGdQtRUyIP8tdByXYJGrbRW0K/K9qEaIZhJiAES1Qy 8U96RdYBpLvDctRch1kIfvnAVffTxmObAGI9n64O89p48kocJwNI/XQNRg== -----END CERTIFICATE-----

Selanjutnya, buka /etc/openldap/ldap.conffile konfigurasi dan konfigurasikan sebagai berikut;

vim /etc/openldap/ldap.conf

Pada dasarnya, Anda perlu menentukan lokasi sertifikat CA, basis pencarian OpenLDAP, URI dan jika Anda menyediakan SUDO melalui OpenLDAP, basis SUDOers.

BASE dc=ldapmaster,dc=kifarunix-demo,dc=com URI ldaps://ldapmaster.kifarunix-demo.com:636 SUDOERS_BASE ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com...... TLS_CACERT /etc/pki/tls/cacert.crt...

Simpan dan keluar dari file konfigurasi.

Konfigurasikan Sakelar Layanan Nama dan PAM di CentOS 8

Selanjutnya, Anda perlu memperbarui NSS dan PAM untuk menggunakan SSSD guna mengelola sumber daya autentikasi.

Di versi CentOS sebelumnya, Anda akan menggunakan alat seperti authconfigtetapi ini telah digantikan oleh alat seperti authselect.

Authselect adalah utilitas yang menyederhanakan konfigurasi otentikasi user terutama saat menggunakan SSSD untuk otentikasi.

Konfigurasikan Profil SSSD

Perintah authselect ketika digunakan untuk membuat profil SSSD, pada dasarnya akan memodifikasi file-file ini;

  • /etc/pam.d/system-auth
  • /etc/pam.d/password-auth
  • /etc/pam.d/fingerprint-auth
  • /etc/pam.d/smartcard-auth
  • /etc/pam.d/postlogin
  • /etc/nsswitch.conf

Oleh karena itu, buat cadangan file-file ini untuk berjaga-jaga jika tidak berhasil. Setelah Anda mencadangkan file-file ini, hapus.

Buat profil SSD. Perintah ini hanya akan berhasil jika Anda telah menghapus file-file di atas.

authselect select sssd

Jika tidak, Anda dapat menimpa file dengan menambahkan –forceopsi.

authselect select sssd --force
Backup stored at /var/lib/authselect/backups/2019-12-08-19-05-16.yMO4TA Profile "sssd" was selected. following nsswitch maps are overwritten by the profile: - passwd - group - netgroup - automount - services Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.

Selanjutnya, agar sistem mengambil hak sudo dari SSSD/OpenLDAP, edit /etc/nsswitch.confuntuk menyertakan baris di bawah ini.

sudoers: files sss

Anda cukup menggemakan baris ke dalam file konfigurasi seperti yang ditunjukkan di bawah ini;

echo "sudoers: files sss" >> /etc/nsswitch.conf

Konfigurasikan Pembuatan Direktori Rumah Otomatis

Untuk mengaktifkan pembuatan direktori home otomatis bagi user saat login pertama, Anda perlu menginstal oddjob-mkhomedir, yang menyediakan pam_oddjob_mkhomedirmodul untuk membuat direktori home bagi user pada waktu login.

dnf install oddjob-mkhomedir

Mulai dan aktifkan oddjobd untuk dijalankan pada boot sistem.

systemctl enable --now oddjobd

Muat pam_oddjob_mkhomedirmodul dalam file auth PAM /etc/pam.d/system-authuntuk mengaktifkan pembuatan direktori home otomatis.

echo "session optional pam_oddjob_mkhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/system-auth

Mulai ulang oddjobd.

systemctl restart oddjobd

Menjalankan SSD

Sebelum Anda dapat memulai SSSD, Anda perlu memeriksa konfigurasi untuk error ketik atau izin apa pun;

sssctl config-check
File ownership and permissions check failed. Expected root:root and 0600.

Sesuai dengan keluaran pemeriksaan, atur akses baca/tulis ke  /etc/sssd/ untuk pemilik (root).

chown -R root: /etc/sssd
chmod 600 -R /etc/sssd

Konfigurasi sekarang selesai. Mulai dan aktifkan SSSD untuk berjalan pada boot sistem.

systemctl enable --now sssd

Periksa statusnya.

systemctl status sssd
● sssd.service - System Security Services Daemon Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-12-08 16:57:07 EAT; 42min ago Main PID: 779 (sssd) Tasks: 3 (limit: 5073) Memory: 60.6M CGroup: /system.slice/sssd.ser
vice ├─779 /usr/sbin/sssd -i --logger=files ├─800 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files └─801 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files 

Uji Otentikasi OpenLDAP melalui SSSD

Dengan asumsi bahwa Anda telah membuat user dan grup OpenLDAP (jika belum, periksa panduan kami tentang menyiapkan server OpenLDAP di CentOS 8 ), verifikasi bahwa Anda dapat masuk.

Pertama, konfirmasikan bahwa Anda dapat melihat nama user LDAP di sistem Anda menggunakan idperintah.

id johndoe

Anda harus mendapatkan entri yang mirip dengan;

uid=1002(johndoe) gid=1002(johndoe) groups=1002(johndoe)

Jika Anda tidak bisa mendapatkan output di atas, pastikan untuk memeriksa log syslog serta log sssd. Jika tidak, Anda dapat restart sssd;

systemctl restart sssd

Periksa user lagi menggunakan idperintah.

Jika semuanya baik-baik saja, Lakukan autentikasi ssh lokal untuk menguji autentikasi LDAP Anda.

ssh -l johndoe localhost
authenticity of host 'localhost (::1)' can't be established. ECDSA key fingerprint is SHA256:iMRNJQa8gU0t6fHx6nzmAU+ZygA/3J2BC6zzwzqfY4o. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. [email protected]'s password: [[email protected] ~]$ pwd /home/johndoe

Verifikasi bahwa Anda mendapatkan hak sudo.

Pertama, jika Anda telah menetapkan hak sudo user, Anda dapat memeriksanya dengan menjalankan perintah di bawah ini di server OpenLDAP Anda. Ganti komponen domain yang sesuai.

export SUDOERS_BASE=ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com
ldapsearch -b "$SUDOERS_BASE" -D cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com -W -x
... # sudo, SUDOers, ldapmaster.kifarunix-demo.com dn: cn=sudo,ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com objectClass: top objectClass: sudoRole cn: sudo sudoUser: johndoe sudoHost: ALL sudoRunAsUser: ALL sudoCommand: ALL... 

Selanjutnya, pada client, coba sudo!

[[email protected] ~]$ sudo su -
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for johndoe: Last login: Sun Dec 8 22:49:47 EAT 2019 from 192.168.56.1 on pts/0 [[email protected] ~]# 

Nah, itu dia. Anda telah berhasil mempelajari cara mengkonfigurasi SSSD untuk Otentikasi OpenLDAP di CentOS 8. Jika Anda memiliki pemikiran tentang panduan ini, jangan ragu untuk memberikan komentar.

Tutorial Terkait Lainnya

Cara Membuat Grup Anggota OpenLDAP

Konfigurasikan SSSD untuk Otentikasi Client OpenLDAP di Debian 10/9

Siapkan Server OpenLDAP dengan SSL/TLS di Debian 10

Instal dan Konfigurasikan server OpenLDAP di Fedora 29

Konfigurasikan Client OpenLDAP di Debian 9 Stretch

Instal dan Konfigurasi Server OpenLDAP di Debian 9 Stretch