Debian 12 bookworm
Sponsored Link

Faillock : ログインの失敗回数を制限する2024/06/20

 

ログイン時の連続での認証失敗回数を制限するには以下のように設定します。

[1] ユーザーは設定された値の回数を超えて連続で認証失敗するとアカウントがロックされます。
root@dlp:~#
vi /etc/pam.d/common-auth
# 17行目 : 以下のように追記

# here are the per-package modules (the "Primary" block)
auth    required                        pam_faillock.so preauth
auth    [success=1 default=ignore]      pam_unix.so nullok
auth    [default=die]                   pam_faillock.so authfail
auth    sufficient                      pam_faillock.so authsucc
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth    optional                        pam_cap.so
# end of pam-auth-update config

root@dlp:~#
vi /etc/pam.d/common-account
# 17行目 : 以下のように追記

# here are the per-package modules (the "Primary" block)
account required                        pam_faillock.so
account [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so
# here's the fallback if no module succeeds
account requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
account required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)

root@dlp:~#
vi /etc/security/faillock.conf
# Faillock の詳細設定
# 有効にしたい設定をコメント解除して、必要に応じてパラメーター変更
# 10行目 : ユーザーが存在しない場合はユーザー名をロギングする

# audit
# 14行目 : 連続失敗回数やロック等の情報を表示しない

# silent
# 18行目 : 連続失敗回数やロック等の情報をロギングしない

# no_log_info
# 27行目 : 連続認証失敗の追跡はローカルユーザーのみに限定する
# AD, Idm, LDAP 等のユーザーは無視される

# local_users_only
# 32行目 : ロックする連続失敗回数を設定
# [deny = 3] の場合 3回失敗するとロック

# deny = 3
# 38行目 : 連続失敗回数のインターバル (秒)
# 設定した時間内に連続で [deny = N] 回 認証失敗した場合にロックする
# [fail_interval = 900] + [deny = 3] の場合、ある 15 分間に 2 回連続で認証失敗しても
# 次の 3回目の認証失敗が 1 回目から 15 以上経過している場合はロックされない

# fail_interval = 900
# 45行目 : ロックされた後、自動ロック解除される時間 (秒)
# 自動ロック解除しない場合は [unlock_time = 0]

# unlock_time = 600
# 49行目 : root アカウントも連続認証失敗時のロック対象とする

# even_deny_root
# 55行目 : [even_deny_root] を有効化した場合の root アカウントの自動ロック解除時間 (秒)

# root_unlock_time = 900
# 62行目 : 有効化してグループ名を指定した場合、指定グループ所属ユーザーは
# [even_deny_root] + [root_unlock_time = N] と同様の設定が適用される

# admin_group = <admin_group_name>
[2] 記録された失敗回数の確認や、手動でのロック解除は以下の通りです。
# 引数なしで失敗回数の一覧を表示

root@dlp:~#
faillock

debian:
When                Type  Source                                           Valid
2024-06-19 02:06:45 RHOST 127.0.0.1                                            V
2024-06-19 02:06:50 RHOST 127.0.0.1                                            V
2024-06-19 02:06:55 RHOST 127.0.0.1                                            V
root:
When                Type  Source                                           Valid
debian:
When                Type  Source                                           Valid
2024-06-19 02:06:26 RHOST                                                      V
2024-06-19 02:06:31 RHOST                                                      V

# ユーザーを指定して表示

root@dlp:~#
faillock --user debian

debian:
When                Type  Source                                           Valid
2024-06-19 02:06:45 RHOST 127.0.0.1                                            V
2024-06-19 02:06:50 RHOST 127.0.0.1                                            V
2024-06-19 02:06:55 RHOST 127.0.0.1                                            V

# 設定回数を超えてロックされたユーザーの失敗回数をリセットする

root@dlp:~#
faillock --user debian --reset
関連コンテンツ