Bagaimana cara mengubah penundaan yang terjadi setelah memasukkan kata sandi yang salah?

32

Setelah memasukkan kata sandi yang salah pada prompt masuk, ada penundaan sekitar 3 detik. Bagaimana saya bisa mengubahnya pada sistem Linux dengan PAM?

Shawn J. Goff
sumber
1
Saya mendapatkan kebutuhan untuk penundaan dari perspektif keamanan, tetapi penundaan standar adalah agak mengganggu
Mike Pennington
3
Ini menarik; mungkin saya akan menulis modul yang memungkinkan N mencoba tanpa penundaan diikuti oleh sejumlah percobaan dengan penundaan lama.
Shawn J. Goff
1
Alih-alih modul baru (disarankan dalam komentar saya sebelumnya), saya menggunakan pam_unixdengan nodelayopsi dan pam_tally2dengan deny=5 unlock_time=15; ini memungkinkan untuk 5 percobaan ulang segera, tetapi menolak akses (bahkan dengan kata sandi yang berhasil) selama 15 detik. Saya masih berniat untuk mencoba menulis model yang dijelaskan, tetapi sekarang ini adalah proyek back-burner, karena ini tidak akan cocok jika akses utama Anda ke sistem berbasis jaringan karena membuat serangan DOS sepele.
Shawn J. Goff
1
Jika Anda khawatir tentang DoS jaringan dari timeout, gunakan fail2ban ... sebenarnya gunakan bahkan jika Anda pikir Anda aman :-). saya menggunakan waktu larangan dua hari
Mike Pennington

Jawaban:

21

Saya menganggap Anda menggunakan Linux dan pam. Penundaan mungkin disebabkan oleh pam_faildelay.so. Periksa konfigurasi pam Anda dalam /etc/pam.dmenggunakan pam_faildelay, misalnya:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

Untuk mengubah waktu, sesuaikan parameter penundaan. Jika Anda ingin menghilangkan penundaan, Anda dapat menghapus / mengomentari baris lengkap.

Sumber lain untuk keterlambatan mungkin pam_unix.so. Untuk menonaktifkan penundaan yang disebabkan oleh pam_unix.somenambahkan nodelayparameter, dan secara opsional menambahkan panggilan baris pam_faildelay.sountuk menambahkan penundaan (variabel), misalnya:

auth       optional   pam_faildelay.so  delay=100000
Ulrich Dangel
sumber
2
Tidak disebutkan keterlambatan di mana saja di Indonesia /etc/pam.d/*. Hal terdekat yang saya lihat adalah pam_tally.soyang memungkinkan penguncian setelah beberapa upaya. Tapi saya punya n /etc/login.defs, yang mungkin apa yang saya butuhkan.
Shawn J. Goff
@ ShawnJ.Goff pam_tally.sotidak menyebabkan penundaan sejauh yang saya tahu. Sumber lain untuk perjanjian mungkin pam_unix.so- Anda dapat menonaktifkannya dengan nodelayopsi - lihat linux.die.net/man/8/pam_unix untuk rincian lebih lanjut
Ulrich Dangel
1
Menambahkan nodelayopsi ke pam_unix.sodan menambahkan entri baru dengan pam_faildelay.so delay=$some_numbermemungkinkan saya mengatur apa pun yang saya inginkan. Terima kasih!
Shawn J. Goff
2
Menjalankan fedora 23, saya harus menonaktifkan pam_unix.sopenundaan dan mulai menggunakan yang pam_faildelay.soseperti yang dikatakan @ ShawnJ.Goff. Namun, sebagian besar pam.dkonfigurasi memiliki " File ini dibuat secara otomatis. Perubahan pengguna akan dihancurkan saat authconfig dijalankan berikutnya. " Jadi di mana saya dapat mengkonfigurasi penundaan secara permanen?
jozxyqk
11

Anda harus meneruskan nodelayparameter ke auth pam_unix.so.

Tergantung pada bagaimana Anda mengotentikasi, di mana Anda perlu mengatur parameter bervariasi. Namun sebagian besar distrubtions linux memiliki sesuatu seperti /etc/pam.d/system-authyang disertakan oleh semua file yang berbeda.

Jadi misalnya di /etc/pam.d/system-authAnda mungkin memiliki garis yang terlihat seperti ini:

auth            sufficient      pam_unix.so try_first_pass nullok

Ini harus diubah menjadi:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

The pam_unix.somodul apa melakukan otentikasi terhadap /etc/passwddan /etc/shadow. Jika Anda menggunakan LDAP atau beberapa backend kata sandi lainnya, Anda kemungkinan masih harus mengatur nodelaypada pam_unix.soapa yang mengontrol prompt (ketika pam_unix.sogagal untuk auth, biasanya hanya melewati kata sandi yang diperolehnya ke modul berikutnya).

Anda dapat membaca lebih lanjut tentang pam_unix.somelakukanman pam_unix

Patrick
sumber
Di sistem saya system-authtidak ada; itu /etc/common-auth. Terima kasih!
Luc