GNU/Linux >> Belajar Linux >  >> Cent OS

Kompleksitas kata sandi PAM dan sistem kredit pam_cracklib di CentOS/RHEL

Posting ini menjelaskan sistem kredit pam_cracklib PAM dalam kaitannya dengan kompleksitas sandi PAM Linux.

Ikhtisar PAM

Pluggable Authentication Modules (PAM) adalah kerangka kerja modular terpusat yang fleksibel yang digunakan untuk mengelola kebijakan otentikasi sistem dan memfasilitasi otentikasi pengguna. PAM menyediakan Antarmuka Pemrograman Aplikasi (API) umum yang memberikan hak istimewa kepada program untuk otentikasi pengguna.

Alur otentikasi PAM adalah sebagai berikut:
Aplikasi (login, ssh, sudo, su, ftp, dll.) -> PAM -> Sumber otentikasi (sandi lokal, LDAP, Kerberos, dll.)

PAM memisahkan tugas otentikasi menjadi empat grup manajemen:

  • Pengelolaan Akun – periksa izin pengguna ke layanan, kedaluwarsa kata sandi pengguna, dll.
  • Manajemen Otentikasi – otentikasi pengguna, kredensial pengguna, tantangan/tanggapan (kata sandi), biometrik.
  • Pengelolaan Sandi – memfasilitasi manajemen kata sandi – mengubah, memperbarui, dll.
  • Manajemen Sesi – tugas koneksi layanan pengguna pra/pasca mis. jejak audit, mount direktori home pengguna, dll.

Modul pam_cracklib PAM

Saat ditambahkan ke tumpukan kata sandi PAM, modul pam_cracklib melakukan pemeriksaan kekuatan kata sandi pengguna yang diusulkan. Modul memanggil rutin cracklib yang membandingkan kata sandi dengan kamus kata-kata yang dikenal (umum, lemah, default, dll.) sebelum melakukan pemeriksaan kekuatan lebih lanjut, seperti:

  • Palindrom :Apakah kata sandi baru adalah palindrom yaitu string yang membaca mundur dan maju yang sama mis. radar, nyonya, dll.
  • Hanya Perubahan Huruf :Apakah kata sandi baru sama dengan yang lama hanya dengan perubahan huruf besar-kecil?
  • Mirip :Apakah kata sandi baru terlalu mirip dengan yang lama?
  • Sederhana :Apakah kata sandi baru terlalu kecil? Ini dikendalikan oleh 6 argumen:minlen , maxclassrepeat , dkredit , ukredit , lkredit , dan okredit .
  • Diputar :Apakah kata sandi baru merupakan versi rotasi dari kata sandi lama?
  • Sudah digunakan :Apakah kata sandi pernah digunakan sebelumnya?
  • Karakter berurutan yang sama :Pemeriksaan opsional untuk karakter berurutan yang sama.
  • Berisi nama pengguna :Opsional periksa apakah sandi berisi nama pengguna.

Saat diaktifkan tanpa argumen, opsi/nilai pemeriksaan kekuatan pam_cracklib default membantu memastikan bahwa sandi yang cukup aman diterima.

Sistem Kredit pam_cracklib

Modul pam_cracklib menawarkan berbagai opsi yang berikut ini secara langsung mengontrol kompleksitas kata sandi:

  • minlen – Panjang kata sandi minimum
  • lkredit – Jumlah minimum huruf kecil
  • ukredit – Jumlah minimum huruf besar
  • dkredit – Jumlah minimum karakter numerik
  • okredit – Jumlah minimum karakter non-alfanumerik

minlen opsi mendefinisikan ukuran minimum yang dapat diterima untuk kata sandi baru. Namun, selain jumlah karakter, kredit (yaitu skor) diberikan untuk setiap jenis karakter berbeda yang digunakan yaitu lower, upper, digit, other. Nilai kredit dari setiap jenis karakter yang digunakan diperhitungkan untuk memenuhi nilai minlen yang ditentukan.

lkredit=N :(N>=0) Ini adalah kredit maksimum untuk memiliki huruf kecil di kata sandi baru. Jika Anda memiliki kurang dari atau N huruf kecil, setiap huruf akan dihitung +1 untuk memenuhi nilai minlen saat ini. Default untuk lcredit adalah 1 yang merupakan nilai yang disarankan untuk minlen kurang dari 10.

(N <0) Ini adalah jumlah minimum huruf kecil yang harus dipenuhi untuk kata sandi baru.

ucredit=N :(N>=0) Ini adalah kredit maksimum untuk memiliki huruf besar di kata sandi baru. Jika Anda memiliki kurang dari atau N huruf besar, setiap huruf akan dihitung +1 untuk memenuhi nilai minlen saat ini. Default untuk ucredit adalah 1 yang merupakan nilai yang disarankan untuk minlen kurang dari 10.

(N <0) Ini adalah jumlah minimum huruf besar yang harus dipenuhi untuk kata sandi baru.

dcredit=N (N>=0) Ini adalah kredit maksimum untuk memiliki digit dalam kata sandi baru. Jika Anda memiliki kurang dari atau N digit, setiap digit akan dihitung +1 untuk memenuhi nilai minlen saat ini. Default untuk dcredit adalah 1 yang merupakan nilai yang disarankan untuk minlen kurang dari 10.

(N <0) Ini adalah jumlah digit minimum yang harus dipenuhi untuk kata sandi baru.

okredit=N :(N>=0) Ini adalah kredit maksimum untuk memiliki karakter lain di kata sandi baru. Jika Anda memiliki kurang dari atau N karakter lain, setiap karakter akan dihitung +1 untuk memenuhi nilai minlen saat ini. Default untuk ocredit adalah 1 yang merupakan nilai yang disarankan untuk minlen kurang dari 10.

(N <0) Ini adalah jumlah minimum karakter lain yang harus dipenuhi untuk kata sandi baru.

Saat menggunakan sistem kredit PAM, sangat mungkin kata sandi dengan panjang kurang dari yang ditentukan oleh minlen untuk diterima yaitu kata sandi juga dapat berisi karakter dari satu atau lebih jenis karakter – lebih rendah, atas, digit, lainnya.

Perhatikan konfigurasi pam_cracklib berikut:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1
...

Berikut adalah perhitungan kredit password pam_cracklib untuk password user “@1Bcdef2”:

  • @1Bcdef2:8 kredit diberikan yaitu satu untuk setiap karakter
  • @:1 kredit diberikan (lainnya)
  • 1,2:1 kredit diberikan (digit)
  • B:1 kredit diberikan (atas)
  • cdef:1 kredit diberikan (lebih rendah)

8 + 4 =12 (menit)

Mengingat jumlah dan jenis karakter yang digunakan dalam kata sandi di atas, sistem menerima panjang kata sandi minimal 8 karakter. Perhatikan bahwa kata sandi yang hanya berisi 11 huruf kecil juga akan diterima yaitu:

  • abcdefghijk:11 kredit diberikan – satu untuk setiap karakter
  • abcdefghijk:0 kredit diberikan (lainnya)
  • abcdefghijk:0 kredit diberikan (digit)
  • abcdefghijk:0 kredit diberikan (atas)
  • abcdefghijk:1 kredit diberikan (lebih rendah)

11 + 1 =12 (menit)

Berikut ini adalah contoh terperinci dari kata sandi yang diterima dan tidak diterima:

minlen Kata Sandi Panjang Kata Sandi (karakter) Kredit Sandi Diterima?
10 qwertasdf 9 9 (karakter) + 1 (lebih rendah) =10 Ya
12 qwertasdfgz 11 11 (karakter) + 1 (lebih rendah) =12 Ya
14 qwertasdfgzxc 13 13 (karakter) + 1 (lebih rendah) =14 Ya
14 qwertasdf1$ 11 11 (karakter) + 1 (bawah) + 1 (digit) + 1 (lainnya) =14 Ya
10 qwertasd 8 8 (karakter) + 1 (lebih rendah) =  9 Tidak
12 qwertasdfg 10 10 (karakter) + 1 (lebih rendah) =11 Tidak
14 qwertasdfgzx 12 12 (karakter) + 1 (lebih rendah) =13 Tidak

Menegakkan Kompleksitas Kata Sandi dengan Sistem Kredit pam_cracklib

Dalam semua contoh sejauh ini, perhatikan bahwa penggunaan sistem kredit sebenarnya tidak memaksakan kerumitan kata sandi. Untuk menerapkan kompleksitas kata sandi, tentukan nilai negatif untuk opsi pam_cracklib lcredit, ucredit, dcredit, ocredit. Saat menentukan nilai negatif, kredit tidak diberikan untuk penggunaan karakter bawah, atas, digit, dan lainnya, namun sandi harus tetap berisi karakter dari masing-masing grup karakter yang ditentukan.

Perhatikan konfigurasi pam_cracklib berikut:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1
...

Dengan hal di atas, kata sandi pengguna yang berhasil harus …

  • panjangnya minimal 8 karakter dan
  • berisi minimal 1 karakter huruf kecil dan
  • berisi minimal 1 karakter huruf besar dan
  • berisi minimal 2 digit dan
  • berisi setidaknya 1 karakter lain

Catatan :CentOS/RHEL 7 menggunakan pam_pwquality modul sebagai ganti pam_cracklib dan modul pam_pwquality kompatibel dengan opsinya.

PAM_PWQUALITY(8) System Manager's Manual PAM_PWQUALITY(8)

NAME
pam_pwquality - PAM module to perform password quality checking

SYNOPSIS
pam_pwquality.so [...]

DESCRIPTION
This module can be plugged into the password stack of a given service to provide some plug-in strength-checking for passwords. 
The code was originally based on pam_cracklib module and the module is backward compatible with its options.


Cent OS
  1. Cara mengkonfigurasi sistem CentOS/RHEL 6 agar tidak menggunakan 3 kata sandi terakhir yang digunakan

  2. Cara menonaktifkan ACPI di CentOS/RHEL 7

  3. “BAD PASSWD:is too simple” – kesalahan saat mengubah kata sandi di CentOS/RHEL 7 dan 8

  1. Kata Sandi Kurang Masuk SSH – CentOS 6 / RHEL 6

  2. Mode Pengguna Tunggal di CentOS 7 / RHEL 7

  3. CentOS / RHEL :Cara menonaktifkan login root atau akses root pada sistem

  1. Setel ulang kata sandi root di CentOS 7 / RHEL 7

  2. Cara mereset kata sandi root yang terlupakan RHEL / CentOS 7

  3. Memperbaiki masalah sistem file saat Boot di CentOS/RHEL 7 dan 8