GNU/Linux >> Belajar Linux >  >> Debian

Cara Mengatur Server OpenLDAP di Debian 10

Sebagai administrator sistem, Anda mungkin sudah familiar dengan protokol LDAP .

Jika Anda bekerja di perusahaan menengah hingga besar, Anda dapat yakin bahwa perusahaan Anda telah memiliki server LDAP , apakah itu di Linux atau Windows.

Diciptakan pada awal 80-an, protokol LDAP (untuk Protokol Akses Direktori Ringan ) dibuat untuk menyimpan data yang harus diakses melalui jaringan.

Protokol LDAP didefinisikan sebagai bagian dari spesifikasi RFC 4511 dan diimplementasikan oleh banyak vendor yang berbeda.

Dalam tutorial ini, kita melihat salah satu implementasi protokol LDAP :OpenLDAP .

OpenLDAP adalah implementasi LDAP gratis dan sumber terbuka yang menyediakan server (disebut slapd) serta utilitas dan perpustakaan untuk pengembang.

Dengan menggunakan tutorial ini, Anda akan dapat menyiapkan server OpenLDAP lengkap dan mengonfigurasinya agar dapat digunakan untuk autentikasi pusat.

Yang Akan Anda Pelajari

Jika Anda mengikuti tutorial ini sampai akhir, Anda akan dapat mempelajari topik-topik berikut:

  • Cara memasang server OpenLDAP di Debian 10;
  • Cara mengonfigurasi OpenLDAP dan apa arti sebenarnya dari konfigurasi;
  • Cara menggunakan LDIF dan utilitas LDAP untuk mengubah basis data LDAP Anda;
  • Cara menambahkan pengguna di server OpenLDAP Anda untuk otentikasi pusat;
  • Cara menyiapkan klien dan cara kerja otentikasi pusat di Linux;

Itu artikel yang cukup panjang jadi tanpa basa-basi lagi, mari kita mulai dengan menginstal server OpenLDAP sederhana di Debian 10.

Instal server OpenLDAP di Debian 10

Sebelum memulai, Anda harus memastikan bahwa Anda memiliki hak administrator di sistem Anda :Anda akan memerlukannya untuk menginstal paket baru.

Untuk memeriksa apakah Anda memiliki hak sudo, jalankan perintah “sudo” dengan opsi “-v”.

$ sudo -v

Jika Anda tidak yakin tentang cara memberikan hak sudo untuk pengguna di Debian 10 atau CentOS 8, pastikan untuk membaca panduan khusus kami tentangnya.

Juga, pastikan paket Anda diperbarui dengan benar untuk mendapatkan versi paket terbaru dari repositori.

$ sudo apt-get update

Di Linux, server OpenLDAP disebut “slapd “.

Ini adalah server mandiri yang sederhana dan dapat dikonfigurasi yang digunakan untuk membaca, mengubah, dan menghapus dari direktori LDAP.

Daemon slapd juga dilengkapi dengan banyak utilitas berbeda yang dapat digunakan untuk membuat entri baru dengan mudah, atau untuk memodifikasi entri dengan mudah:slapadd atau slappasswd hanya untuk beberapa nama.

$ sudo apt-get install slapd

Saat menginstal paket baru ini, Anda akan diminta untuk mengkonfigurasi daemon slapd di akhir instalasi.

Mengonfigurasi slapd di Debian 10

Konfigurasi slapd hadir sebagai antarmuka berbasis teks yang harus Anda isi untuk menyiapkan server dengan benar.

Pertama, Anda akan diminta untuk memberikan kata sandi administrator untuk server LDAP.

Pilih sandi aman karena entri administrator di direktori LDAP memiliki semua hak di seluruh struktur pohon :menambah, menghapus, dan memodifikasi semua entri serta membaca semua atribut LDAP.

Di layar berikutnya, Anda akan diminta untuk mengonfirmasi kata sandi:cukup ketik apa yang Anda ketik di layar sebelumnya.

Dari sana, server LDAP Anda harus diinisialisasi .

Saat menginstal server slapd, instalasi juga :

  • Membuat pengguna bernama “openldap ” di server Anda;
  • Membuat konfigurasi awal yang tersedia di /etc/ldap
  • Membuat database awal dan kosong yang siap menerima entri baru.

Secara default, server OpenLDAP akan membuat entri database pertama yang mencerminkan nama domain Anda saat ini.

Namun, jika Anda tidak mengonfigurasi nama domain Anda dengan benar (selama penginstalan misalnya), ada kemungkinan server OpenLDAP Anda tidak dikonfigurasi dengan benar.

Untuk melihat terlebih dahulu konfigurasi awal server OpenLDAP Anda, gunakan perintah “slapcat” dan perhatikan nama-nama khusus yang dibuat oleh slapd.

$ sudo slapcat

$ sudo slapcat | grep dn

Biasanya, DN teratas OpenLDAP Anda harus cocok dengan nama DNS domain Anda.

Artinya, jika Anda saat ini bekerja di domain “devconnected.com”, server OpenLDAP Anda harus memiliki nama teratas “dc=devconnected,dc=com”.

Seperti yang Anda lihat, ini tidak terjadi untuk saat ini tetapi untungnya bagi kami ada cara untuk mengkonfigurasi ulang daemon slapd.

Mengonfigurasi ulang slapd menggunakan dpkg-reconfigure

Untuk mengkonfigurasi ulang daemon slapd, jalankan “dpkg-reconfigure ” pada daemon “slapd”. Sekali lagi, Anda memerlukan hak sudo untuk mengonfigurasi ulang slapd.

$ sudo dpkg-reconfigure slapd

Pertama, Anda akan ditanya apakah Anda ingin menghilangkan konfigurasi server OpenLDAP.

Kami jelas ingin menekan “Tidak” pada opsi ini karena kami ingin konfigurasi awal database dibuat untuk kami.

Pada langkah berikutnya, Anda akan diminta untuk memberikan nama dasar server LDAP Anda.

Seperti yang Anda lihat, daemon slapd menjelaskan bahwa nama domain DNS digunakan untuk membangun DN dasar direktori OpenLDAP Anda.

Dalam hal ini, kami memilih untuk memiliki “dc=devconnected,dc=com” :perhatikan bahwa Anda harus mengubah entri ini agar sesuai dengan pengaturan DNS Anda saat ini.

Jika Anda tidak yakin tentang domain milik Anda, cukup gunakan perintah “nama domain” di terminal Anda.

$ domainname
devconnected.com

Selanjutnya, Anda diminta untuk memberikan nama organisasi Anda . Ini adalah langkah yang sama persis seperti yang dilakukan sebelumnya, cukup ketik nama organisasi Anda dan tekan “Ok”.

Terakhir, mirip dengan konfigurasi slapd pertama, Anda diminta untuk memberikan kredensial admin untuk server LDAP Anda .

Sekali lagi, pilih kata sandi yang kuat karena dapat digunakan untuk membaca dan mengubah setiap entri dalam direktori LDAP.

Pada layar berikutnya, Anda akan diminta untuk menyediakan back-end untuk digunakan oleh LDAP.

Untuk langkah ini, Anda ingin mempertahankan nilai default (artinya back-end MDB untuk MariaDB) kecuali Anda memiliki alasan untuk memilih backend penyimpanan lain.

Selanjutnya, Anda akan ditanya apakah Anda ingin database dihapus saat slapd dibersihkan.

Dalam hal ini, kami akan memilih “Tidak” :ada banyak situasi di mana Anda hanya ingin memperbarui paket slapd Anda atau beralih ke server LDAP yang berbeda.

Jika Anda memilih ya, database Anda akan dihapus yang dapat menjadi masalah nyata jika Anda tidak memiliki cadangan direktori LDAP Anda.

Terakhir, Anda akan diminta dengan peringatan :sudah ada beberapa file yang tersimpan di “/var/lib” direktori server Anda.

Di direktori ini, Anda saat ini menyimpan database lama Anda. Saat Anda mencoba mengonfigurasi ulang server OpenLDAP, Anda akan menimpa konten folder ini.

Dengan memilih “Ya”, utilitas slapd akan mencadangkan konten database Anda yang ada ke folder “/var/backups”.

Selesai!

Server slapd Anda sekarang dikonfigurasi dengan benar agar sesuai dengan setelan DNS Anda saat ini.

Untuk melihat konten database LDAP Anda terlebih dahulu, cukup jalankan "slapcat" (dengan hak istimewa sudo jika saat ini Anda tidak login sebagai root)

$ sudo slapcat

Dengan pengaturan awal ini :

  • File konfigurasi Anda disimpan di “/etc/ldap” :mereka menyimpan file konfigurasi ldap, skema yang dapat Anda tambahkan ke slapd, serta direktori slapd.d yang digunakan untuk kustomisasi server;
  • Database Anda disimpan di “/var/lib/ldap” di bawah database “data.mdb” :Anda mungkin harus menyiapkan cadangan file ini untuk memastikan bahwa Anda tidak akan kehilangan semuanya.

Mengonfigurasi aturan firewall untuk LDAP

Jika Anda menggunakan firewall, kemungkinan besar Anda harus menerima permintaan masuk ke server LDAP Anda.

Sebagai pengingat cepat, OpenLDAP berjalan pada port 389.

Untuk memastikannya berjalan dengan benar, jalankan perintah “systemctl status” di server “slapd”.

$ sudo systemctl status slapd

Jika Anda menggunakan distribusi Debian terbaru, Anda mungkin menggunakan UFW sebagai firewall default.

Untuk mengaktifkan OpenLDAP di UFW, jalankan perintah “ufw allow” pada port 389 server Anda. Anda dapat menerima koneksi TCP dan UDP secara bersamaan.

$ sudo ufw allow 389

Rule added
Rule added (v6)

Anda kemudian dapat memverifikasi bahwa aturan telah dibuat dengan benar menggunakan perintah status.

Di bagian berikutnya, kita akan melihat bagaimana Anda dapat dengan mudah menambahkan entri baru ke server LDAP Anda menggunakan file LDIF.

Tambahkan entri OpenLDAP menggunakan file LDIF

Saat menambahkan entri baru ke server OpenLDAP, Anda dapat menggunakan utilitas “slapadd” untuk menambahkan file LDIF baru.

Namun, ini bukan utilitas yang akan kita gunakan, melainkan kita akan menggunakan “ldapadd”.

Perbedaan antara slapadd dan ldapadd

Sebelum menambahkan entri baru, penting bagi Anda untuk mengetahui perbedaan antara utilitas slap dan utilitas ldap.

Kedua utilitas mengambil file berformat LDIF sebagai argumen dan mereka memiliki konten ke database.

Namun, saat menggunakan slapadd, Anda harus me-restart server LDAP Anda agar perubahan diterapkan.

Ini tidak terjadi ketika menggunakan utilitas ldap seperti “ldapadd” :modifikasi langsung dilakukan pada pohon direktori.

Agar dapat menggunakan “ldapadd”, “ldapsearch”, dan utilitas LDAP lainnya, Anda perlu menginstal paket “ldap-utils” di sistem Anda.

$ sudo apt-get install ldap-utils

Membuat file LDIF pertama Anda

Seperti yang dijelaskan sebelumnya, jika Anda menggunakan baris konsol, Anda perlu untuk membuat file LDIF dan menambahkannya ke konfigurasi atau database LDAP Anda saat ini.

Format LDIF adalah format yang digunakan untuk menambah atau mengubah entri yang ada dalam direktori LDAP.

Menggunakan LDIF, Anda menentukan nama khusus dari node yang ingin Anda ubah dan Anda menjelaskan modifikasi yang akan dilakukan.

Sebagai contoh, katakanlah Anda ingin membuat node baru di direktori LDAP bernama “users”.

Menambahkan grup pengguna

Untuk mencapai itu, buat file LDIF baru bernama “users.ldif” dan tambahkan konten berikut di dalamnya.

$ sudo touch /etc/ldap/users.ldif

# Content of the users file

dn: ou=People,dc=devconnected,dc=com
objectClass: organizationalUnit
ou: People

Seperti yang Anda lihat, kami menyediakan DN lengkap dari node yang akan ditambahkan, kami menentukan kelas objek dan nama node yang akan dibuat.

Untuk menambahkan entri ini ke direktori LDAP, Anda harus menggunakan perintah “ldapadd” dan menentukan file LDIF yang akan digunakan.

$ sudo ldapadd -D "cn=admin,dc=devconnected,dc=com" -W -H ldapi:/// -f users.ldif

Enter LDAP Password:
added new entry "ou=People,dc=devconnected,dc=com"

Jika Anda tidak terbiasa dengan opsi utilitas ldap, berikut adalah deskripsi opsi yang disediakan :

  • -D :digunakan untuk menentukan simpul yang akan diikat. Saat menambahkan entri baru ke server LDAP, Anda dapat memilih mekanisme autentikasi, tetapi biasanya Anda ingin mengikat ke simpul admin untuk mendapatkan semua hak istimewa di hierarki;
  • -M :digunakan untuk menentukan bahwa kami ingin kata sandi diminta saat menghubungkan;
  • -H :digunakan untuk menentukan server LDAP yang akan dihubungkan. Dalam hal ini, kami menghubungkan ke server LDAP yang tersedia di localhost;
  • -f :untuk menentukan file LDIF yang akan ditambahkan ke server LDAP.

Perhatikan bahwa Anda tidak dapat menggunakan autentikasi eksternal untuk menambahkan entri baru ke LDAP secara default :ACL tidak dikonfigurasi untuk melakukannya.

Sekarang setelah simpul Anda ditambahkan ke pohon, Anda dapat mencoba menemukannya menggunakan perintah “ldapsearch”.

$ sudo ldapsearch -x -b "dc=devconnected,dc=com" ou

Hebat!

Sekarang setelah unit organisasi “Orang” ditambahkan, mari tambahkan beberapa pengguna ke pohon LDAP Anda.

Menambahkan pengguna baru ke LDAP

Untuk menambahkan pengguna baru, kita akan mengikuti logika yang sama :membuat file LDIF yang berisi entri individu untuk pengguna.

Seperti yang dijelaskan sebelumnya, OpenLDAP menggunakan skema untuk mendefinisikan “objek ” yang dapat ditambahkan ke direktori.

Dalam hal ini, kita akan menggunakan skema “posixAccount” yang sudah ditambahkan ke konfigurasi database Anda secara default.

posixAccount ” objek memiliki beberapa bidang yang dapat digunakan untuk menggambarkan akun pengguna Linux seperti nama pengguna, nama keluarga tetapi yang paling penting kata sandi pengguna .

Buat file LDIF baru dan tambahkan konten berikut di dalamnya:

$ sudo touch /etc/ldap/new_users.ldif

# Content of new_users LDIF file

dn: cn=john,ou=People,dc=devconnected,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: john
uid: john
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/john
userPassword: <password>
loginShell: /bin/bash

Setelah selesai, simpan file Anda dan gunakan perintah ldapadd untuk menambahkan entri Anda ke pohon direktori LDAP.

$ sudo ldapadd -D "cn=admin,dc=devconnected,dc=com" -W -H ldapi:/// -f new_users.ldif

Enter LDAP Password:
added new entry "cn=john,ou=People,dc=devconnected,dc=com"

Selamat, Anda sekarang memiliki pengguna pertama yang tersimpan di OpenLDAP.

Anda dapat membaca informasi pengguna dengan mengeluarkan perintah pencarian LDAP. Perhatikan bahwa Anda tidak akan dapat membaca sandi pengguna karena Anda dibatasi oleh ACL.

$ sudo ldapsearch -x -b "ou=People,dc=devconnected,dc=com"

Luar biasa, sekarang setelah server LDAP Anda dikonfigurasi, mari konfigurasikan klien untuk mengonfigurasi autentikasi pusat.

Mengonfigurasi klien LDAP untuk autentikasi terpusat

Di bagian terakhir penyiapan server OpenLDAP ini, kita akan melihat bagaimana Anda dapat mengonfigurasi klien LDAP (yaitu mesin host Anda) agar dapat terhubung menggunakan informasi LDAP.

Cara kerja otentikasi klien LDAP

Sebelum mengeluarkan perintah apa pun, penting bagi Anda untuk memiliki pemahaman global tentang apa yang sebenarnya kami bangun.

Sebelum LDAP (dan NIS), jika Anda ingin mengonfigurasi izin pengguna dan grup melalui beberapa komputer dalam jaringan, Anda harus menghubungkannya satu per satu dan mengubah pengaturannya.

LDAP hadir sebagai solusi hebat untuk ini :LDAP akan memusatkan informasi pengguna di satu tempat di jaringan Anda.

Saat klien terhubung ke mesin mana pun di domain Anda, host akan menghubungi server LDAP terlebih dahulu dan memverifikasi bahwa sandi pengguna yang diberikan sudah benar.

Pustaka klien akan mengikat (atau mengautentikasi) ke server LDAP jarak jauh menggunakan akun admin dan mengambil informasi yang terkait dengan pengguna yang mencoba terhubung.

Selanjutnya, itu akan mengambil kata sandi yang terkait dengan akun dan membandingkannya dengan kata sandi yang Anda ketik saat Anda masuk.

Jika kata sandi cocok, Anda akan masuk ke akun Anda, jika tidak, Anda akan ditolak.

Mengatur otentikasi LDAP Klien di Debian

Untuk menyiapkan autentikasi LDAP klien, Anda perlu menginstal “libnss-ldap ” paket pada klien Anda.

$ sudo apt-get install libnss-ldap

Saat menginstal paket ini, Anda akan diminta dengan banyak pertanyaan berbeda untuk mengonfigurasi otentikasi terpusat klien.

Pertama, Anda diminta untuk memberikan URL server LDAP Anda :disarankan untuk menyiapkan alamat IP (jelas dikonfigurasi sebagai statis) untuk menghindari masalah dalam resolusi DNS.

Di server, identifikasi alamat IP Anda dengan perintah ip dan isi kolom yang sesuai pada klien.

# On the server

$ ip a

Catatan :pastikan Anda menggunakan protokol LDAP dan bukan protokol LDAPI. Untuk beberapa alasan, server Anda tidak dapat dijangkau jika Anda menggunakan protokol LDAPI.

Selanjutnya, Anda diminta untuk memberikan nama utama root server LDAP Anda . Jika Anda tidak yakin, Anda harus menjalankan perintah ldapsearch di server untuk mendapatkan informasi ini.

Pada layar berikutnya, Anda akan ditanya versi LDAP yang ingin Anda gunakan :pilih versi LDAP 3 untuk saat ini.

Selanjutnya, Anda akan ditanya apakah Anda ingin menjadikan root lokal sebagai admin database.

Anda ingin mengetik “Ya” ke opsi ini karena Anda ingin mengubah kata sandi pengguna langsung dari mesin host.

Dengan opsi ini, Anda akan dapat menjalankan "passwd" dan kata sandi diubah langsung di direktori LDAP, yang cukup berguna.

Secara default, database LDAP tidak memerlukan login, sehingga Anda dapat mengetik “Tidak” pada opsi ini.

Catatan :database LDAP tidak memiliki login tetapi Anda memiliki akun admin di bagian atas direktori LDAP Anda. Itu adalah dua konsep berbeda yang sangat berbeda satu sama lain.

Selanjutnya, ketik akun administrator LDAP digunakan untuk bindind.

Sebagai pengingat, ini adalah akun yang akan digunakan untuk mendapatkan informasi kata sandi pengguna dari server.

Terakhir, ketik sandi yang terkait dengan akun admin di server LDAP.

Selesai, Anda sekarang dapat melakukan kueri ke server LDAP Anda.

Menautkan informasi klien ke LDAP

Untuk menautkan informasi klien Anda (seperti nama pengguna dan sandi) ke direktori LDAP, Anda perlu memodifikasi file nsswitch.

Sebagai pengingat, file nsswitch digunakan untuk menautkan beberapa informasi di sistem Anda (seperti pengguna, grup, atau host) ke berbagai sumber berbeda (lokal, LDAP, NIS, atau lainnya).

Edit file /etc/nsswitch.conf dan tambahkan entri “ldap” ke empat bagian pertama:passwd, group, shadow, gshadow.

$ sudo nano /etc/nsswitch.conf

Simpan file Anda dan Anda sekarang dapat membuat daftar pengguna dari server LDAP.

$ getent passwd

Catatan :jika Anda tidak terbiasa dengan perintah getent, berikut adalah semua perintah yang digunakan untuk membuat daftar pengguna di Linux.

Luar biasa!

Sekarang pengguna Anda dapat diambil melalui LDAP, Anda akan dapat masuk ke akun ini dengan menggunakan kata sandi pengguna yang telah Anda tentukan di direktori LDAP.

$ su - john

<Type password specified in LDAP>

[email protected]:/home/john

Kesimpulan

Dalam tutorial ini, Anda mempelajari bagaimana Anda dapat dengan mudah mengatur server OpenLDAP sederhana di Debian 10 menggunakan utilitas slapd.

Anda juga mempelajari tentang utilitas LDAP yang dapat Anda gunakan untuk menambahkan dan mencari entri di direktori LDAP Anda.

Terakhir, Anda telah melihat bagaimana Anda dapat mengonfigurasi mesin klien untuk menggunakan autentikasi LDAP untuk terhubung ke mesin Anda.

Ini adalah arsitektur yang dapat digunakan di sebagian besar arsitektur TI perusahaan :perhatikan bahwa Anda harus menyiapkan enkripsi TLS agar sandi tidak dikirim melalui jaringan dalam bentuk teks yang jelas.

Jika Anda tertarik dengan administrasi Sistem Linux, kami memiliki bagian lengkap yang didedikasikan untuk itu di situs web, jadi pastikan untuk memeriksanya!


Debian
  1. Cara menginstal OpenLDAP Server di Debian atau Ubuntu

  2. Cara Setup Server Rsyslog di Debian 11

  3. Cara Menginstal Server Redis di Debian 11

  1. Cara Mengaktifkan SSH di Debian 9 atau 10

  2. Cara mengatur vsftpd di Debian

  3. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  1. Cara Setup Server FTP dengan VSFTPD di Debian 9

  2. Cara Memasang Server Minecraft di Debian 9

  3. Cara Setup Server Rsyslog di Debian 11 (Bullseye)