GNU/Linux >> Belajar Linux >  >> Linux

Pengantar Modul Otentikasi Pluggable (PAM) di Linux

Pluggable Authentication Modules (PAM) telah ada sejak 1997. Saya diajari bahwa PAM berasal dari Solaris Sun, dan tampaknya penggunaan dan pempopuleran perusahaan pertama terjadi di sana. Namun, menurut artikel 1997 yang saya temukan, implementasi penuh pertama adalah penyebaran Linux-PAM. Artikel masih tersedia dari Linux Journal. Premis dasar dan implementasinya tidak berubah sejak saat itu. Ada beberapa kata kunci baru dan banyak modul baru, tetapi secara keseluruhan prosesnya sama seperti 20 tahun yang lalu.

Sebagai A di PAM menunjukkan, PAM adalah tentang otentikasi. Dalam kebanyakan kasus, ketika Anda masuk ke sistem melalui konsol atau dari seluruh jaringan dengan SSH atau Cockpit, PAM terlibat. Tidak masalah jika akun pengguna disimpan secara lokal atau di lokasi terpusat. Sebanyak yang digunakan, tidak umum untuk memanipulasi file konfigurasi PAM secara langsung. Utilitas lain melakukannya untuk Anda. Banyak perubahan yang dilakukan saat instalasi, seperti saat menginstal sssd RPM atau menggunakan ipa-client-install kegunaan. Konfigurasi tambahan yang paling umum dapat ditangani oleh authconfig (RHEL7 dan yang lebih lama) atau authselect (RHEL8), atau bahkan melalui antarmuka web Cockpit. Sebagian besar administrator tidak mempelajari file konfigurasi PAM sampai mereka terlibat dalam otentikasi tingkat lanjut dan topik keamanan.

Apa yang kita peroleh dengan PAM?

PAM memisahkan tugas standar dan khusus otentikasi dari aplikasi. Program seperti login , gdm , sshd , ftpd , dan banyak lagi semua ingin tahu bahwa pengguna adalah siapa yang mereka katakan, namun ada banyak cara untuk melakukannya. Seorang pengguna dapat memberikan kredensial nama pengguna dan sandi yang dapat disimpan secara lokal atau jarak jauh dengan LDAP atau Kerberos. Seorang pengguna juga dapat memberikan sidik jari atau sertifikat sebagai kredensial. Akan menyakitkan untuk meminta setiap pengembang aplikasi untuk menulis ulang pemeriksaan autentikasi untuk setiap metode baru. Panggilan ke perpustakaan PAM menyerahkan pemeriksaan kepada pakar otentikasi. PAM dapat dicolokkan karena kita dapat menjalankan aplikasi yang berbeda dengan pengujian yang berbeda dan modular karena kita dapat menambahkan metode baru dengan pustaka baru.

Mari kita lihat langkah tingkat tinggi yang diambil saat pengguna yang ditentukan secara lokal masuk ke konsol berbasis teks:

  • Aplikasi login meminta nama pengguna dan sandi, lalu membuat libpam panggilan otentikasi untuk bertanya, "Apakah pengguna ini seperti yang mereka katakan?" pam_unix modul bertanggung jawab untuk memeriksa otentikasi akun lokal. Modul lain juga dapat diperiksa, dan akhirnya hasilnya dikembalikan ke proses login.
  • Proses login selanjutnya menanyakan, "Apakah pengguna ini diizinkan untuk terhubung?", lalu melakukan panggilan akun ke libpam . pam_unix modul memeriksa hal-hal seperti apakah kata sandi telah kedaluwarsa. Modul lain mungkin memeriksa host atau daftar kontrol akses berbasis waktu. Respons keseluruhan dikembalikan ke proses.
  • Jika kata sandi telah kedaluwarsa, aplikasi akan merespons. Beberapa aplikasi gagal untuk login pengguna. Proses login meminta pengguna untuk memasukkan sandi baru.
  • Untuk mendapatkan kata sandi yang diverifikasi dan ditulis ke lokasi yang benar, proses login membuat panggilan kata sandi ke libpam . pam_unix modul menulis ke bayangan local lokal mengajukan. Modul lain juga dapat dipanggil untuk memverifikasi kekuatan sandi.
  • Jika proses login berlanjut pada titik ini, sesi siap dibuat. Panggilan sesi ke libpam menghasilkan pam_unix modul menulis stempel waktu masuk ke wtmp mengajukan. Modul lain mengaktifkan otentikasi X11 atau konteks pengguna SELinux.
  • Saat logout, saat sesi ditutup, panggilan sesi lain dapat dilakukan ke libpam . Ini adalah saat pam_unix modul menulis stempel waktu logout ke wtmp berkas.

Ada banyak komponen untuk PAM

Jika Anda membuat perubahan pada otentikasi menggunakan program seperti authconfig atau authselect dan ingin melihat apa yang berubah, berikut adalah beberapa tempat untuk dilihat:

/usr/lib64/security
Kumpulan perpustakaan PAM yang melakukan berbagai pemeriksaan. Sebagian besar modul ini memiliki halaman manual untuk menjelaskan kasus penggunaan dan opsi yang tersedia.

/etc/pam.d
Kumpulan file konfigurasi untuk aplikasi yang memanggil libpam . File-file ini menentukan modul mana yang diperiksa, dengan opsi apa, dalam urutan apa, dan bagaimana menangani hasilnya. File-file ini dapat ditambahkan ke sistem ketika aplikasi diinstal dan sering diedit oleh utilitas lain.

Karena ada beberapa pemeriksaan yang dilakukan oleh semua aplikasi, file ini mungkin juga menyertakan pernyataan untuk memanggil file konfigurasi lain di direktori ini. Sebagian besar modul bersama ditemukan di system-auth file untuk autentikasi lokal dan password-auth file untuk aplikasi yang mendengarkan koneksi jarak jauh.

/etc/security
Kumpulan file konfigurasi tambahan untuk modul tertentu. Beberapa modul, seperti pam_access dan pam_time , memungkinkan perincian tambahan untuk pemeriksaan. Ketika file konfigurasi aplikasi memanggil modul ini, pemeriksaan diselesaikan menggunakan informasi tambahan dari file konfigurasi tambahan yang sesuai. Modul lain, seperti pam_pwquality , memudahkan utilitas lain untuk mengubah konfigurasi dengan menempatkan semua opsi dalam file terpisah, bukan pada baris modul dalam file konfigurasi aplikasi.

/var/log/secure
Kebanyakan kesalahan keamanan dan otentikasi dilaporkan ke file log ini. Izin dikonfigurasi pada file ini untuk membatasi akses.

man pam
Halaman manual ini menjelaskan keseluruhan proses, termasuk jenis panggilan dan daftar file yang terlibat.

man pam.conf
Halaman manual ini menjelaskan format keseluruhan dan mendefinisikan kata kunci dan bidang untuk pam.d file konfigurasi.

man -k pam_
Pencarian halaman manual ini mencantumkan halaman yang tersedia untuk modul yang diinstal.

Menutup

PAM memungkinkan lingkungan otentikasi yang jauh lebih kuat daripada yang dapat disediakan oleh layanan per aplikasi. Telah ada di Linux selama bertahun-tahun, dan terlibat dengan hampir semua proses identifikasi pengguna.

Pada artikel berikutnya, saya akan membahas format /etc/pam.d file konfigurasi.

[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ]


Linux
  1. Pengenalan Nmap di Kali Linux

  2. Pengantar pemantauan akun pengguna Linux

  3. perintah su Linux

  1. Apa itu pengguna Linux?

  2. Ubah Nama Pengguna di Linux

  3. Cara Membatasi Akses su ke Pengguna Hanya dengan PAM di Linux

  1. Pengantar bpftrace untuk Linux

  2. Pengantar Sistem File Linux

  3. Layanan OS Linux 'winbind'