หนึ่งจะเปลี่ยนความล่าช้าที่เกิดขึ้นหลังจากป้อนรหัสผ่านไม่ถูกต้องได้อย่างไร


32

หลังจากป้อนรหัสผ่านไม่ถูกต้องที่พรอมต์การลงชื่อเข้าใช้จะมีความล่าช้าประมาณ 3 วินาที ฉันจะเปลี่ยนสิ่งนั้นบนระบบ Linux ด้วย PAM ได้อย่างไร


1
ฉันได้รับความจำเป็นสำหรับความล่าช้าจากมุมมองของการรักษาความปลอดภัย แต่ล่าช้าเริ่มต้นเป็นที่ค่อนข้างน่ารำคาญ
ไมค์เพนนิงตัน

3
สิ่งนี้น่าสนใจ บางทีฉันอาจจะเขียนโมดูลที่อนุญาตให้ N พยายามโดยไม่ล่าช้าและตามด้วยจำนวนครั้งที่พยายามล่าช้า
Shawn J. Goff

1
แทนที่จะเป็นโมดูลใหม่ (แนะนำในความคิดเห็นก่อนหน้าของฉัน) ฉันใช้pam_unixกับnodelayตัวเลือกและpam_tally2ด้วยdeny=5 unlock_time=15; ซึ่งอนุญาตให้ลองใหม่ 5 ครั้ง แต่ปฏิเสธการเข้าถึง (แม้จะใช้รหัสผ่านที่สำเร็จ) เป็นเวลา 15 วินาที ฉันยังคงตั้งใจจะลองเขียนแบบจำลองที่อธิบายไว้ แต่ตอนนี้มันเป็นโปรเจ็กต์แบ็คบุ๊กเพราะมันจะไม่เหมาะถ้าการเข้าถึงระบบหลักของคุณเป็นแบบเครือข่าย
Shawn J. Goff

1
หากคุณกังวลเกี่ยวกับเครือข่าย DoS จากการหมดเวลาใช้ fail2ban ... ในความเป็นจริงใช้มันแม้ว่าคุณคิดว่าคุณปลอดภัย :-) ฉันใช้เวลาห้ามสองวัน
Mike Pennington

คำตอบ:


21

ฉันถือว่าคุณใช้ Linux และ pam อยู่ pam_faildelay.soความล่าช้าอาจมีสาเหตุมาจาก ตรวจสอบการกำหนดค่า pam ของคุณ/etc/pam.dโดยใช้pam_faildelayเช่น:

# 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

หากต้องการเปลี่ยนเวลาให้ปรับพารามิเตอร์การหน่วงเวลา หากคุณต้องการกำจัดความล่าช้าคุณสามารถลบ / แสดงความคิดเห็นในบรรทัดที่สมบูรณ์

pam_unix.soแหล่งที่มาสำหรับความล่าช้าอื่นอาจจะ หากต้องการปิดใช้งานการหน่วงเวลาที่เกิดจากการpam_unix.soเพิ่มnodelayพารามิเตอร์และเลือกเพิ่มการโทรpam_faildelay.soเพื่อเพิ่มความล่าช้า (ตัวแปร) แทนเช่น:

auth       optional   pam_faildelay.so  delay=100000

2
/etc/pam.d/*มีการกล่าวถึงความล่าช้าที่ใดก็ได้ในไม่เป็น สิ่งที่ฉันเห็นใกล้เคียงที่สุดคือpam_tally.soอนุญาตให้ล็อกหลังจากพยายามหลายครั้ง แต่ฉันมี n /etc/login.defsซึ่งอาจเป็นสิ่งที่ฉันต้องการ
Shawn J. Goff

@ ShawnJ.Goff pam_tally.soไม่ทำให้เกิดความล่าช้าเท่าที่ฉันรู้ แหล่งอื่นสำหรับ dealy อาจเป็นpam_unix.so- คุณสามารถปิดการใช้งานด้วยnodelayตัวเลือก - ดูlinux.die.net/man/8/pam_unixสำหรับรายละเอียดเพิ่มเติม
Ulrich Dangel

1
การเพิ่มnodelayตัวเลือกpam_unix.soและเพิ่มรายการใหม่ด้วยpam_faildelay.so delay=$some_numberให้ฉันตั้งค่าสิ่งที่ฉันต้องการ ขอบคุณ!
Shawn J. Goff

2
ใช้งาน fedora 23 ฉันต้องปิดการใช้งานpam_unix.soความล่าช้าและเริ่มใช้งานpam_faildelay.soอย่างที่ @ ShawnJ.Goff พูด อย่างไรก็ตามการกำหนดค่าส่วนใหญ่pam.dมี " ไฟล์นี้สร้างขึ้นโดยอัตโนมัติการเปลี่ยนแปลงของผู้ใช้จะถูกทำลายในครั้งต่อไปที่มีการเรียกใช้ authconfig " ดังนั้นฉันจะกำหนดค่าการหน่วงเวลาได้อย่างถาวรที่ไหน
jozxyqk

11

คุณต้องผ่านพารามิเตอร์ไปnodelayauth pam_unix.so

ขึ้นอยู่กับวิธีการตรวจสอบความถูกต้องของคุณซึ่งคุณต้องตั้งค่าพารามิเตอร์แตกต่างกันไป อย่างไรก็ตามdistrubtions linux ส่วนใหญ่มีสิ่ง/etc/pam.d/system-authที่รวมอยู่ในไฟล์ต่าง ๆ ทั้งหมด

ตัวอย่างเช่น/etc/pam.d/system-authคุณอาจมีบรรทัดที่มีลักษณะดังนี้:

auth            sufficient      pam_unix.so try_first_pass nullok

สิ่งนี้ควรเปลี่ยนเป็น:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

pam_unix.soโมดูลคือสิ่งที่จะดำเนินการตรวจสอบกับและ/etc/passwd /etc/shadowหากคุณกำลังใช้ LDAP หรือบางแบ็กเอนด์รหัสผ่านอื่น ๆ ที่คุณมีแนวโน้มที่จะยังคงได้รับการตั้งค่าnodelayในpam_unix.soฐานะที่เป็นสิ่งที่ควบคุมพรอมต์ (เมื่อpam_unix.soล้มเหลวในการรับรองความถูกต้องก็มักจะเป็นเพียงแค่ผ่านรหัสผ่านที่ได้รับไปยังโมดูลถัดไป)

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับpam_unix.soการทำman pam_unix


ในระบบของฉันsystem-authไม่อยู่; /etc/common-authมันเป็น ขอบคุณ!
Luc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.