Làm thế nào để thay đổi độ trễ xảy ra sau khi nhập mật khẩu không chính xác?


32

Sau khi nhập mật khẩu không chính xác tại dấu nhắc đăng nhập, sẽ có độ trễ khoảng 3 giây. Làm cách nào để thay đổi điều đó trên hệ thống Linux bằng PAM?


1
Tôi nhận được sự cần thiết của một sự chậm trễ từ góc độ an ninh, nhưng sự chậm trễ mặc định khá khó chịu
Mike Pennington

3
Điều này thật thú vị; có lẽ tôi sẽ viết một mô-đun cho phép N cố gắng không có độ trễ theo sau bởi bất kỳ số lần thử nào có độ trễ dài.
Shawn J. Goff

1
Thay vì một mô-đun mới (được đề xuất trong nhận xét trước đây của tôi), tôi đã sử dụng pam_unixvới nodelaytùy chọn và pam_tally2với deny=5 unlock_time=15; điều này cho phép 5 lần thử lại ngay lập tức, nhưng từ chối truy cập (ngay cả với mật khẩu thành công) trong 15 giây. Tôi vẫn có ý định thử viết mô hình được mô tả, nhưng bây giờ nó là một dự án back-burner, bởi vì điều này sẽ không phù hợp nếu quyền truy cập chính của bạn vào hệ thống dựa trên mạng vì nó tạo ra một cuộc tấn công tầm thường của DOS.
Shawn J. Goff

1
nếu bạn lo lắng về một DoS mạng từ thời gian chờ, hãy sử dụng fail2ban ... thực tế hãy sử dụng nó ngay cả khi bạn nghĩ rằng bạn an toàn :-). tôi sử dụng thời gian cấm hai ngày
Mike Pennington

Câu trả lời:


21

Tôi giả sử bạn đang sử dụng Linux và pam. Sự chậm trễ có lẽ là do pam_faildelay.so. Kiểm tra cấu hình pam của bạn trong khi /etc/pam.dsử dụng pam_faildelay, ví dụ:

# 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

Để thay đổi thời gian điều chỉnh tham số độ trễ. Nếu bạn muốn thoát khỏi sự chậm trễ, bạn có thể xóa / nhận xét dòng hoàn chỉnh.

Một nguồn khác cho sự chậm trễ có thể là pam_unix.so. Để vô hiệu hóa độ trễ gây ra bằng cách pam_unix.sothêm nodelaytham số và tùy ý thêm một cuộc gọi đường dây pam_faildelay.sođể thêm độ trễ (biến) thay vào đó, ví dụ:

auth       optional   pam_faildelay.so  delay=100000

2
Không có đề cập đến sự chậm trễ bất cứ nơi nào trong /etc/pam.d/*. Điều gần nhất tôi thấy là pam_tally.socho phép khóa sau một số lần thử. Nhưng tôi có n /etc/login.defs, đó có thể là những gì tôi cần.
Shawn J. Goff

@ ShawnJ.Goff pam_tally.sokhông gây ra sự chậm trễ như tôi biết. Một nguồn khác có thể là pam_unix.so- bạn có thể vô hiệu hóa nó bằng nodelaytùy chọn - xem linux.die.net/man/8/pam_unix để biết thêm chi tiết
Ulrich Dangel

1
Thêm nodelaytùy chọn pam_unix.sovà thêm một mục mới pam_faildelay.so delay=$some_numbercho phép tôi đặt bất cứ điều gì tôi muốn. Cảm ơn!
Shawn J. Goff

2
Chạy fedora 23, tôi đã phải vô hiệu hóa độ pam_unix.sotrễ và bắt đầu sử dụng pam_faildelay.socái như @ ShawnJ.Goff nói. Tuy nhiên, hầu hết các cấu hình pam.dđều có " Tệp này được tạo tự động. Thay đổi của người dùng sẽ bị hủy trong lần chạy authconfig tiếp theo. " Vậy tôi có thể định cấu hình độ trễ vĩnh viễn ở đâu?
jozxyqk

11

Bạn cần truyền nodelaytham số cho auth pam_unix.so.

Tùy thuộc vào cách xác thực của bạn, nơi bạn cần đặt tham số khác nhau. Tuy nhiên, hầu hết các bản phân phối linux có một cái gì đó giống như /etc/pam.d/system-authđược bao gồm bởi tất cả các tệp khác nhau.

Vì vậy, ví dụ trong /etc/pam.d/system-authbạn có thể có một dòng trông như thế này:

auth            sufficient      pam_unix.so try_first_pass nullok

Điều này nên được thay đổi thành:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

Các pam_unix.somô-đun là những gì thực hiện xác thực chống lại /etc/passwd/etc/shadow. Nếu bạn đang sử dụng LDAP hoặc một số mật khẩu backend khác, bạn có thể nên vẫn được thiết lập nodelaytrên pam_unix.sonhư đó là những gì kiểm soát kịp thời (khi pam_unix.sothất bại trong việc auth, nó thường chỉ cần vượt qua mật khẩu nó thu được để các mô-đun tiếp theo).

Bạn có thể đọc thêm về pam_unix.sobằng cách làmman pam_unix


Trên hệ thống của tôi system-authkhông tồn tại; đó là /etc/common-auth. Cảm ơn!
Luc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.