Bagaimana cara menerapkan kebijakan kompleksitas kata sandi?

14

Saya perlu mengonfigurasi server Ubuntu untuk mengikuti kebijakan kata sandi perusahaan yang ketat yang menetapkan yang berikut:

  • setidaknya satu huruf besar
  • setidaknya satu huruf kecil
  • setidaknya satu digit
  • setidaknya satu karakter khusus

Saya telah melihat-lihat dan yang saya temukan hanyalah petunjuk untuk menentukan panjang kata sandi; tetapi, saya belum menemukan sesuatu yang berhubungan dengan menentukan isi kata sandi mengenai poin-poin di atas.

Bantuan apa pun akan dihargai.

Stephen RC
sumber

Jawaban:

19

Kompleksitas kata sandi ditegakkan oleh pam_cracklibmodul.

Untuk mengubah kebijakan kata sandi untuk mesin lokal Anda, Anda perlu memodifikasi /etc/pam.d/common-passwordfile Anda .

Dari jendela terminal ( Ctrl+ Alt+ T), masukkan perintah berikut:

sudo -i gedit /etc/pam.d/common-password

Tambahkan baris berikut ke file (sebelum pam_unix.soatau modul PAM mana pun yang digunakan terutama untuk otentikasi, seperti yang dapat dilihat dari contoh di manual) dan simpan file:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Pernyataan ini mengimplementasikan persyaratan kata sandi berikut:

  • dcredit == digit
  • ucredit == karakter huruf besar
  • lcredit == karakter huruf kecil
  • ocredit == karakter lain (karakter khusus, termasuk ! , @ # $ % )

Ini harus memenuhi persyaratan Anda.

Anda juga bisa menggunakan variabel minlengthdanretries untuk lebih membatasi persyaratan kata sandi.

Berikut adalah contoh lain yang baik dari memodifikasi kebijakan kata sandi dengan cara ini akan menempatkan baris berikut dalam /etc/pam.d/common-passwordfile:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Entri ini akan menetapkan maksimal tiga upaya untuk mendapatkan kata sandi yang dapat diterima dengan panjang minimum 10 karakter.

Ini menetapkan persyaratan bagi pengguna untuk memiliki minimal tiga karakter yang berbeda dari kata sandi terakhir.

Ini juga akan memenuhi persyaratan memiliki kata sandi yang mengandung setidaknya masing-masing satu digit, karakter huruf kecil, dan karakter huruf besar.

Lihat juga artikel ini tentang pengaturan aturan kebijakan kata sandi yang lebih kuat di linux .

Kevin Bowen
sumber
3
Jawaban yang sangat bagus! Saya akan menambahkan, mengenai coba lagi, bahwa penting untuk berhati-hati ketika mempertimbangkan kebijakan untuk mencegah pengguna masuk yang memiliki terlalu banyak upaya gagal login baru-baru ini. Hal ini dapat menyebabkan viabilitas salah satu serangan penolakan layanan yang paling sederhana dan paling mudah dieksekusi pada akun (coba dan gagal untuk login X beberapa kali sampai akun "dikunci" dan kemudian pengguna yang sah tidak dapat masuk) .
Eliah Kagan
Jawaban yang fantastis, terima kasih :) Namun satu pertanyaan, tampaknya rootpengguna dapat mengabaikan persyaratan kata sandi ... Apakah mungkin untuk menegakkan ini juga untuk pengguna root?
Stephen RC
@Valorin Bagian mana dari persyaratan kata sandi yang tidak dihormati pengguna root?
Kevin Bowen
@maggotbrain Apa pun itu, ia memberikan peringatan tetapi masih menyimpannya, ini adalah kata sandi 'snare': paste.ubuntu.com/1543154
Stephen RC
@ Valorin Jadi, Anda telah mengaktifkan akun yang disebut 'root' dan dapat menggunakan akun ini dengan kata sandi ini, benar? Peringatan apa yang Anda dapatkan? Sayangnya, saya tidak memiliki mesin dengan akun root yang diaktifkan untuk mengujinya sendiri. Kedengarannya seperti bug, tetapi butuh info lebih lanjut.
Kevin Bowen
0

Ada garpu pam_cracklib oleh Tomas Mraz: pam_pwquality dengan opsi yang sedikit lebih baik.

Tambahkan dengan apt install libpam-pwquality atau passwd akan mengeluh:

Modul tidak diketahui

lambang kedokteran
sumber