Mencipta Dasar Kata Laluan dalam Linux

Hello lagi! Kelas dalam kumpulan kursus baharu bermula esok "Pentadbir Linux", dalam hal ini, kami menerbitkan artikel yang berguna mengenai topik tersebut.

Mencipta Dasar Kata Laluan dalam Linux

Dalam tutorial sebelumnya kami memberitahu anda cara menggunakan pam_cracklibuntuk menjadikan kata laluan pada sistem lebih kompleks Topi Merah 6 atau CentOS. Dalam Red Hat 7 pam_pwquality diganti cracklib sebagai pam modul lalai untuk menyemak kata laluan. Modul pam_pwquality turut disokong pada Ubuntu dan CentOS, serta banyak OS lain. Modul ini memudahkan anda membuat dasar kata laluan untuk memastikan pengguna menerima piawaian kekuatan kata laluan anda.

Untuk masa yang lama, pendekatan biasa untuk kata laluan adalah untuk memaksa pengguna menggunakan huruf besar, huruf kecil, nombor atau simbol lain. Peraturan asas untuk kerumitan kata laluan ini telah dipromosikan secara meluas sejak sepuluh tahun yang lalu. Terdapat banyak perbincangan mengenai sama ada ini adalah amalan yang baik atau tidak. Hujah utama menentang penetapan keadaan yang rumit itu ialah pengguna menulis kata laluan pada kepingan kertas dan menyimpannya dengan tidak selamat.

Satu lagi dasar yang baru-baru ini dipersoalkan memaksa pengguna menukar kata laluan mereka setiap x hari. Terdapat beberapa kajian yang menunjukkan bahawa ini juga memudaratkan keselamatan.

Banyak artikel telah ditulis mengenai topik perbincangan ini, yang menyokong satu sudut pandangan atau yang lain. Tetapi bukan ini yang akan kita bincangkan dalam artikel ini. Artikel ini akan membincangkan tentang cara menetapkan kerumitan kata laluan dengan betul dan bukannya mengurus dasar keselamatan.

Tetapan Dasar Kata Laluan

Di bawah anda akan melihat pilihan dasar kata laluan dan penerangan ringkas bagi setiap satu. Kebanyakannya adalah serupa dengan parameter dalam modul cracklib. Pendekatan ini memudahkan anda mengalihkan dasar anda daripada sistem warisan.

  • difok – Bilangan aksara dalam kata laluan baharu anda yang TIDAK sepatutnya terdapat dalam kata laluan lama anda. (Lalai 5)
  • minlen – Panjang kata laluan minimum. (Lalai 9)
  • ucredit – Bilangan maksimum kredit untuk menggunakan aksara besar (jika parameter > 0), atau bilangan minimum aksara huruf besar yang diperlukan (jika parameter < 0). Lalai ialah 1.
  • lkredit β€” Bilangan maksimum kredit untuk menggunakan aksara huruf kecil (jika parameter > 0), atau bilangan minimum aksara huruf kecil yang diperlukan (jika parameter < 0). Lalai ialah 1.
  • dcredit β€” Bilangan maksimum kredit untuk menggunakan digit (jika parameter > 0), atau bilangan digit minimum yang diperlukan (jika parameter < 0). Lalai ialah 1.
  • ocredit β€” Bilangan maksimum kredit untuk menggunakan simbol lain (jika parameter > 0), atau bilangan minimum yang diperlukan bagi simbol lain (jika parameter < 0). Lalai ialah 1.
  • kelas min – Menetapkan bilangan kelas yang diperlukan. Kelas termasuk parameter di atas (aksara huruf besar, aksara kecil, nombor, aksara lain). Lalai ialah 0.
  • maxrepeat – Bilangan maksimum kali aksara boleh diulang dalam kata laluan. Lalai ialah 0.
  • maxclassrepeat β€” Bilangan maksimum aksara berturut-turut dalam satu kelas. Lalai ialah 0.
  • gecoscheck – Menyemak sama ada kata laluan mengandungi sebarang perkataan daripada rentetan GECOS pengguna. (Maklumat pengguna, iaitu nama sebenar, lokasi, dll.) Lalai ialah 0 (dimatikan).
  • dictpath – Mari pergi ke kamus cracklib.
  • badwords – Perkataan dipisahkan ruang yang dilarang dalam kata laluan (Nama syarikat, perkataan "kata laluan", dsb.).

Kalau pelik konsep pinjaman, tak apa, biasalah. Kami akan bercakap lebih lanjut mengenai perkara ini dalam bahagian berikut.

Konfigurasi Dasar Kata Laluan

Sebelum anda mula mengedit fail konfigurasi, adalah amalan yang baik untuk menulis dasar kata laluan asas terlebih dahulu. Sebagai contoh, kami akan menggunakan peraturan kesukaran berikut:

  • Kata laluan mesti mempunyai panjang minimum 15 aksara.
  • Aksara yang sama tidak boleh diulang lebih daripada dua kali dalam kata laluan.
  • Kelas aksara boleh diulang sehingga empat kali dalam kata laluan.
  • Kata laluan mesti mengandungi aksara daripada setiap kelas.
  • Kata laluan baharu mesti mempunyai 5 aksara baharu berbanding dengan yang lama.
  • Dayakan semakan GECOS.
  • Larang perkataan "kata laluan, pas, perkataan, putorius"

Sekarang setelah kami membentangkan dasar, kami boleh mengedit fail /etc/security/pwquality.confuntuk meningkatkan keperluan kerumitan kata laluan. Di bawah adalah contoh fail dengan ulasan untuk pemahaman yang lebih baik.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Seperti yang anda mungkin perasan, beberapa parameter dalam fail kami adalah berlebihan. Sebagai contoh, parameter minclass adalah berlebihan kerana kita sudah menggunakan sekurang-kurangnya dua aksara daripada kelas menggunakan medan [u,l,d,o]credit. Senarai perkataan kami yang tidak boleh digunakan juga berlebihan, kerana kami telah melarang mengulang mana-mana kelas sebanyak 4 kali (semua perkataan dalam senarai kami ditulis dalam aksara kecil). Saya telah memasukkan pilihan ini hanya untuk menunjukkan cara menggunakannya untuk mengkonfigurasi dasar kata laluan anda.
Sebaik sahaja anda telah membuat dasar anda, anda boleh memaksa pengguna menukar kata laluan mereka apabila mereka log masuk seterusnya. sistem itu.

Satu lagi perkara pelik yang mungkin anda perhatikan ialah bidang [u,l,d,o]credit mengandungi nombor negatif. Ini kerana nombor yang lebih besar daripada atau sama dengan 0 akan memberi kredit untuk menggunakan aksara dalam kata laluan anda. Jika medan mengandungi nombor negatif, ini bermakna kuantiti tertentu diperlukan.

Apakah pinjaman?

Saya memanggil mereka pinjaman kerana itu menyampaikan tujuan mereka setepat mungkin. Jika nilai parameter lebih besar daripada 0, anda menambah bilangan "kredit aksara" bersamaan dengan "x" pada panjang kata laluan. Sebagai contoh, jika semua parameter (u,l,d,o)credit ditetapkan kepada 1 dan panjang kata laluan yang diperlukan ialah 6, maka anda memerlukan 6 aksara untuk memenuhi keperluan panjang kerana setiap huruf besar, huruf kecil, digit atau aksara lain akan memberi anda satu kredit.

Jika anda memasang dcredit pada 2, anda secara teorinya boleh menggunakan kata laluan yang panjangnya 9 aksara dan mendapat 2 kredit aksara untuk nombor, dan kemudian panjang kata laluan sudah boleh menjadi 10.

Tengok contoh ni. Saya menetapkan panjang kata laluan kepada 13, menetapkan dcredit kepada 2, dan semua yang lain kepada 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Semakan pertama saya gagal kerana kata laluan kurang daripada 13 aksara panjang. Kali seterusnya saya menukar huruf "I" kepada nombor "1" dan menerima dua kredit untuk nombor, yang menjadikan kata laluan sama dengan 13.

Ujian kata laluan

Pakej libpwquality menyediakan fungsi yang diterangkan dalam artikel. Ia juga disertakan dengan program pwscore, yang direka untuk menyemak kerumitan kata laluan. Kami menggunakannya di atas untuk menyemak pinjaman.
Utiliti pwscore membaca daripada stdin. Hanya jalankan utiliti dan tulis kata laluan anda, ia akan memaparkan ralat atau nilai dari 0 hingga 100.

Skor kualiti kata laluan adalah berkaitan dengan parameter minlen dalam fail konfigurasi. Secara umum, skor kurang daripada 50 dianggap sebagai "kata laluan biasa", dan skor di atasnya dianggap sebagai "kata laluan yang kuat". Sebarang kata laluan yang lulus semakan kualiti (terutamanya pengesahan paksa cracklib) mesti menahan serangan kamus, dan kata laluan dengan skor melebihi 50 dengan tetapan minlen walaupun secara lalai brute force serangan.

Kesimpulan

pelarasan pwquality - ia mudah dan ringkas berbanding dengan kesulitan penggunaan cracklib dengan penyuntingan fail langsung pam. Dalam panduan ini, kami telah merangkumi semua yang anda perlukan semasa menyediakan dasar kata laluan pada Red Hat 7, CentOS 7, dan juga sistem Ubuntu. Kami juga bercakap tentang konsep pinjaman, yang jarang ditulis secara terperinci, jadi topik ini sering tidak jelas kepada mereka yang tidak pernah menemuinya sebelum ini.

Sumber:

halaman manusia pwquality
halaman manusia pam_pwquality
halaman lelaki pwscore

Pautan yang berguna:

Memilih Kata Laluan Selamat – Bruce Schneier
Lorrie Faith Cranor membincangkan kajian kata laluannya di CMU
Kartun xkcd yang terkenal pada Entropi

Sumber: www.habr.com

Tambah komen