Làm cách nào để khóa người dùng sau 5 lần thử đăng nhập không thành công?


12

Làm cách nào để khóa người dùng sau 5 lần thử đăng nhập không thành công?

Tôi đã thu thập một vài bản phân phối / phiên bản để làm điều đó, nhưng tôi không thể kiểm tra nó.

RHEL4 : bằng cách thêm:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

đến:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

Rhel4 : ???

SLES9 : bằng cách thêm:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

đến:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 hoặc SLES10 : bằng cách thêm:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

đến:

/etc/pam.d/common-auth

VÀ bằng cách thêm:

account required pam_tally.so

đến:

/etc/pam.d/common-account

HỎI : Ai đó có thể vui lòng xác nhận rằng đây là cách hiệu quả / tốt để khóa người dùng sau 5 lần thử đăng nhập không thành công? HAY LÀM THẾ NÀO?

ps:

/sbin/pam_tally --user USERNAME --reset

là một điều hữu ích để làm trước khi làm điều này? Tôi có thể khóa người dùng root bằng những thứ này không? Chỉnh sửa PAM là một điều rất nhạy cảm, bởi vì Mọi người có thể tự khóa mình khỏi máy chủ (ý tôi là: người dùng root). Bất kỳ gợi ý khi làm điều này?


mô-đun kiểm đếm là cách để làm điều đó, nhưng tôi muốn giới thiệu pam_tally2 vì mô-đun ban đầu khá bị hỏng và không trực quan. Ngoài ra, root được mở để được khóa theo cách như vậy nhưng bạn phải kích hoạt nó thông quano_magic_root
Bratchley

BTW, tôi không khuyên bạn nên thực hiện bất kỳ khóa nào trên tài khoản root, đó là lối thoát của bạn sẽ xảy ra sự cố (ví dụ như khóa tài khoản) và kẻ tấn công không nên có bất kỳ vectơ trực tiếp nào trên đó.
Bratchley

SLES10 có cần no_magic_root không?
pasko peter

Tất cả các bản phân phối GNU / Linux đều dựa trên cùng một tập hợp các dự án ngược dòng cơ bản, vì vậy trừ khi Novell nỗ lực thay đổi phiên bản mô-đun pam_tally theo cách gây nhầm lẫn cho mọi người, thì nó cũng giống như trên các bản phân phối khác.
Bratchley

1
Bạn có chắc đây là một ý tưởng tốt? Bằng cách này, mọi người dùng đều có thể dễ dàng ngăn chặn bất kỳ người dùng nào khác đăng nhập. Sử dụng độ trễ cao là IMO thực tế hơn, nhưng hãy tự quyết định.
Marco

Câu trả lời:


17

Bạn có thể muốn xem fail2ban. Nó có thể được cấu hình để khóa tài khoản sau một số lần thử thất bại và sau đó mở khóa sau một khoảng thời gian đã đặt.

http://www.fail2ban.org/wiki/index.php/Tải xuống

Nếu bạn thực sự nghiêm túc về việc sử dụng pam_tally, có lẽ bạn muốn sử dụng pam_tally2thay thế. Nên được cài đặt với bất kỳ gói PAM nào hiện tại. Bạn có thể làm một người đàn ông pam_tally2 để xem cách sử dụng nó.

Đây là một ví dụ để giúp bạn bắt đầu. Thêm phần sau vào đầu phần auth trong tệp pam , /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

Trong cùng một tệp, thêm phần này vào phần tài khoản:

account     required      pam_tally2.so

Các thông số trên như sau:

  • file=/var/log/tallylog - Tệp nhật ký mặc định được sử dụng để giữ số lượng đăng nhập.
  • deny=3 - Từ chối truy cập sau 3 lần thử và khóa người dùng.
  • even_deny_root - Chính sách cũng được áp dụng cho người dùng root.
  • unlock_time=1200 - 20 phút (60 giây. * 20 phút. = 1200 giây)

Nếu bạn không muốn khóa root, hãy thay đổi ngay cả_deny_root thành magic_root .

Bạn có thể nghi ngờ nếu bạn muốn khóa tài khoản root. Thay vào đó, bạn có thể muốn làm một cái gì đó như thế này, nơi tài khoản root có thể bị khóa, nhưng chỉ trong một thời gian ngắn hơn các tài khoản khác:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

Điều này sẽ chỉ khóa tài khoản root trong một phút, mọi người khác 1200 giây bình thường.

Một tệp nhật ký mẫu sẽ trông như sau:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

Bạn có thể hỏi về các tài khoản bị khóa bằng lệnh pam_tally2:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

Bạn có thể mở khóa các hạn chế như vậy:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

Bây giờ tài khoản hiển thị trong pam_tally2 như vậy:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

Người giới thiệu


2

pam_tally2ban đầu làm tôi bối rối, nhưng tôi đã hiểu ra sau khi làm theo man pam_tally2-

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

từ ngữ ở trên là một chút bối rối, bởi vì bạn thực sự chỉ thêm pam_tally2.sodòng.

vì vậy bạn có thể chỉnh sửa /etc/pam.d/loginvà thêm nó bên dưới tất cả các authdòng khác :

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

hoặc nếu bạn có /etc/pam.d/system-authbạn có thể thêm nó ở đó.

không cần khởi động lại hoặc tải lại bất kỳ dịch vụ nào - nó sẽ hoạt động ngay lập tức để đăng nhập cục bộ mới.

lưu ý: nếu bạn muốn pam_tally2đăng ký sshdhoặc các dịch vụ từ xa khác, bạn cũng cần thêm dòng vào /etc/pam.d/sshdvà / hoặc/etc/pam.d/password-auth


để kiểm tra xem nó có hoạt động không, hãy thử đăng nhập thất bại với người dùng hợp lệ, sau đó chạy pam_tally2

ví dụ: đối với người dùng có tên jacobrun:

  $ sudo pam_tally2 -u jacob

và nó sẽ xuất ra một cái gì đó như:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

nếu quá nhiều lần đăng nhập thất bại và tài khoản bị khóa, bạn có thể tự mở khóa tài khoản:

  $ sudo pam_tally2 -u jacob --reset
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.