Bagaimana cara menonaktifkan atau memodifikasi persyaratan kata sandi pam?

9

Saya menggunakan Fedora 19. Secara default pengaturannya dengan pam untuk menonaktifkan kata sandi yang buruk, seperti "kata sandi". Ini bagus. Mencoba mengubah default ini menyebalkan. Ini adalah kotak untuk menguji hal-hal internal, tidak terhubung ke internet, atau mesin apa pun. Kata sandi buruk memfasilitasi proses pengujian. Atau, bagaimana Anda mengubah persyaratan kata sandi sama sekali ??

sistem-auth

man pam_cracklibmemiliki beberapa contoh hebat pengaturan persyaratan kata sandi yang berbeda. Jadi saya buka /etc/pam.d/system-auth, yang mana Anda melihat garis seperti:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* headdesk *. Dalam pengalaman saya, peringatan seperti ini berarti perubahan Anda dihapus setiap kali pengelola paket dijalankan dan / atau secara acak.

konfigurasi otomatis

Jadi ... authconfigadalah langkah selanjutnya. Saya mencari semua file bernama "authconfig". /etc/sysconfig/authconfigterlihat menjanjikan. Dan, tidak ada peringatan di bagian atas tentang menghancurkan suntingan saya pada kemauan. Saya menemukan baris ini USEPWQUALITY=yesdan mengubahnya. Sekarang saya jalankan:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf. Jadi mari kita baca man authconfigsedikit lebih dekat. Oh! Sepertinya file itu tidak dibaca oleh authconfig, itu diubah . Jadi .... bagaimana Anda mengonfigurasi authconfig? Manual menyarankan system-config-authentication, yang saya instal dan tidak memberikan apa pun yang menyerupai kotak centang untuk menonaktifkan pam_pwquality. Saran berikutnya dari manual adalah opsi baris perintah. Bagus! Saya suka alat baris perintah. Hanya, tidak ada opsi baris perintah yang didokumentasikan yang menonaktifkan pam_pwquality.

pwquality.conf

Berkat jawaban Harun, saya belajar bahwa beberapa tahun yang lalu fedora memutuskan untuk membuat /etc/security/pwquality.conf yang tempat untuk mengkonfigurasi persyaratan mutu sandi. Sayangnya, seperti yang didokumentasikan dalam file dan di man 5 pwquality.conf, ada (1) bukan cara untuk menonaktifkan pemeriksaan kamus dan (2) tidak dapat menetapkan panjang kata sandi yang diizinkan di bawah enam.

djeikyb
sumber
Jika itu internal mengapa Pam diinstal atau bahkan diaktifkan?
Ramhound
1
@Ramhound karena fedora penuh dengan pam. yum remove pammenghapus, sejauh yang saya tahu pada waktu yang diperlukan untuk menggulir semua paket yang tergantung, semuanya . Termasuk yum dan systemd. Juga, menonaktifkan pam terasa seperti palu, ketika saya pikir saya hanya ingin menggunakan kertas pasir.
djeikyb

Jawaban:

4

Setelah melihat sekilas kode sumber di /usr/sbin/authconfigdan /usr/share/authconfig/authinfo.py:

  • Halaman manual tidak lengkap, daftar lengkap opsi yang diterima oleh skrip ada di authconfig --help
  • Semuanya dapat diganti pada baris perintah (bahkan /etc/security/pwquality.confpengaturan seperti panjang minimum kata sandi), kecuali pwquality itu sendiri. IMHO, ini adalah bug dan harus dilaporkan.
  • Dari authinfo.pybaris 2489 dan 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Pertama kali readSysconfigdibaca /etc/sysconfig/authconfig; maka apa yang Anda letakkan di sana ditimpa readPAMdengan apa yang ada di /etc/pam.d/*(terutama password_auth*dan system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : untuk opsi yang tidak diganti (atau tidak bisa), pengaturan diambil dari konfigurasi saat ini termasuk file yang ditandai secara otomatis . Untuk membuatnya berfungsi, edit /etc/sysconfig/authconfig dan hapus baris yang ditunjukkan olehgrep -E pwq\|crack /etc/pam.d/*


Sunting : Ada bug kedua, yang membuat saran di atas tetap tidak berfungsi: baris 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Anda harus memilih salah satu dari dua penerapan kontrol kualitas, atau satu akan dipilih untuk Anda! Dikombinasikan dengan bug pertama, ini membuat tidak mungkin untuk menonaktifkan.

eddygeek
sumber
2 tahun kemudian pada fedora 26 alpha, situasinya tetap sama
eddygeek
2

Anda dapat mengambil kendali manual atas system-authfile Anda . Buat file baru (Anda bisa mulai dengan menyalin system-auth-ac), dan ubah system-authsymlink ke titik pada file baru.

Ini menjadikan Anda tanggung jawab untuk memperbarui bagian ini dari konfigurasi PAM Anda, karena authconfig tidak akan lagi menyentuh symlink atau file yang ditunjuknya. Namun, authconfig masih akan memperbarui system-auth-acfile, sehingga Anda dapat terus menggunakannya sebagai referensi jika perlu. Dengan sedikit kepintaran, Anda bahkan mungkin bisa includemasuk ke salinan lokal Anda, tetapi bagaimana melakukannya di luar ruang lingkup pertanyaan ini.

Anda juga harus memeriksa symlink lainnya, seperti password-auth. Anda mungkin perlu memberi mereka perlakuan yang sama.


Dari halaman authconfig(8)manual, di bawah Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Jadi jika system-authfile, maka authconfig mengubahnya untuk ditautkan system-auth-ac. Tetapi jika system-authsymlink, maka authconfig meninggalkannya sendiri.

Jander
sumber
1

Tampaknya dapat dikonfigurasi melalui /etc/security/pwquality.conf

Sumber: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Aaron Okano
sumber
Terima kasih, saya belum melihatnya. Sayangnya, pwquality.conftidak mendukung menonaktifkan pemeriksaan kamus atau menonaktifkan pemeriksaan panjang kata sandi.
djeikyb
Mungkin saran di posting ini akan berhasil? serverfault.com/questions/444258/…
Aaron Okano
yaitu menghapus modul dari sistem-auth dan juga mengatur USEPWQUALITY = tidak dan kemudian jalankan authconfig --update.
Aaron Okano
Sayangnya (seperti yang disebutkan dalam pertanyaan), menjalankan authconfig --updateallreset file. Saya benar-benar bingung dengan jawaban itu, karena langsung bertentangan dengan perilaku yang saya amati.
djeikyb
Saya juga harus mencatat, hanya pengaturan USEPWQUALITY=nodan / atau USECRACKLIB=notidak menyelesaikan masalah saya, bahkan sebelum menjalankan authconfig.
djeikyb
1

Anda masih dapat berubah dari baris perintah. Anda mendapatkan peringatan, tetapi itu akan memungkinkan Anda menetapkan kata sandi yang terlalu pendek, serta yang tidak memenuhi aturan kompleksitas.

pengguna280281
sumber
Ini sama sekali bukan perilaku yang saya alami dengan Fedora 19.
djeikyb
@djeikyb menjalankan passwd <username>perintah sebagai root (Entah dengan sudo passwd <username>atau setelah su -ke terminal root.
Nick
@Nick Itu tidak menonaktifkan atau mengubah persyaratan kata sandi pam.
djeikyb
@djeikyb Ini tidak mengubah persyaratan, tetapi mem-bypassnya. Saat Anda menjalankan passwdsebagai root, itu akan mengabaikan kebijakan kata sandi. Jika Anda hanya perlu mengaturnya sekali dan melupakannya, maka itu akan berhasil. Jika Anda mencoba mengaturnya sehingga setiap pengguna dapat dengan bebas mengubah kata sandi mereka, maka Anda memerlukan solusi lain.
Nick
@Tapi saya mengerti. Ya, root dapat digunakan passwdtanpa fd dengan pam. Tidak ada hubungannya dengan pertanyaan yang sebenarnya, tetapi itu membuat klaim dalam "jawaban" ini benar.
djeikyb
0

Saya baru saja menemukan pertanyaan ini berdasarkan pencarian terkait, dan saya pikir saya punya jawaban untuk Anda.

Fedora membuat tautan simbolis ke file authconfig yang dihasilkan. yaitu. system-authtautan ke system-auth-ac. Jika Anda membuat system-authfile sendiri, maka secara teoritis setiap perubahan di masa depan yang dilakukan auth-configmasih akan memperbarui system-auth-actetapi membiarkan file Anda yang diubah tidak berubah.

Ini sebenarnya cukup elegan, tetapi saya hanya menemukannya ketika bertanya-tanya apa yang dilakukan *-acfile.

Topan
sumber
Ini tidak berhasil. Jalankan berikutnya authconfig(misalnya authconfig --updateall) akan menghapus file Anda dan symlink kembali ke -acfile.
docwhat
@TheDoctorApa itu? Sekarang tidak masuk akal juga bagi saya mengapa mereka akan melakukannya dengan cara itu jika tidak memungkinkan perubahan lokal yang bertahan dengan mudah mundur ke konfigurasi yang dikelola. Baiklah.
Topan
Ya, itu membingungkan saya juga ... dokumentasi tidak membicarakannya dan kode sumber bahkan memiliki komentar panjang yang menjelaskan bagaimana mereka berusaha menjadi segalanya bagi semua orang ... sangat menjengkelkan.
docwhat