CentOS Stream 10
Sponsored Link

Faillock : ログインの失敗回数を制限する
2025/01/03
 

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

[1] ユーザーは設定された値の回数を超えて連続で認証失敗するとアカウントがロックされます。
# 現在の認証系の設定確認

[root@dlp ~]#
authselect current

Profile ID: local
Enabled features:
- with-fingerprint
- with-pwhistory

# Faillock を有効にする

[root@dlp ~]#
authselect enable-feature with-faillock
[root@dlp ~]#
authselect current

Profile ID: local
Enabled features:
- with-fingerprint
- with-pwhistory
- with-faillock

# system-auth と password-auth に以下の設定が追加される

[root@dlp ~]#
grep -n faillock /etc/authselect/system-auth

8:auth        required                                     pam_faillock.so preauth silent
11:auth        required                                     pam_faillock.so authfail
14:account     required                                     pam_faillock.so

[root@dlp ~]#
grep -n faillock /etc/authselect/password-auth

8:auth        required                                     pam_faillock.so preauth silent
10:auth        required                                     pam_faillock.so authfail
13:account     required                                     pam_faillock.so

[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 --user cent

cent:
When                Type  Source                                           Valid
2025-01-03 09:47:27 TTY   /dev/ttyS0                                           V
2025-01-03 09:47:32 TTY   /dev/ttyS0                                           V
2025-01-03 09:47:37 TTY   /dev/ttyS0                                           V

# ロックされたユーザーを手動で開放する

[root@dlp ~]#
faillock --user cent --reset
関連コンテンツ