Linuxのログイン3回失敗でアカウントロックを確認/解除するサンプルです。
(確認環境:CentOS7)
目次
サンプル | ログイン失敗時にアカウントロックする設定を追加 |
SSHのログインで2回、3回と失敗したとき | |
アカウントロックを解除する | |
(参考)パスワードの有効期限を表示 |
ログイン失敗時にアカウントロックする設定を追加
1./etc/pam.d/password-authに6,9,14行目を追記します。
[test@localhost ~]$ cat /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=0
auth required pam_faildelay.so delay=2000000
auth sufficient pam_unix.so nullok try_first_pass
auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=0
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_faillock.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
[test@localhost ~]$
deny=3は、3回失敗でロックされます。(rootは除く)
unlock_time=0は自動でロックを解除しません。数値の場合はN秒過ぎるとロックが解除されます。
SSHのログインで2回、3回と失敗したとき
faillock |
faillockコマンドを入力すると失敗回数がわかります。
2回失敗のとき
[root@localhost test]# faillock
test:
When Type Source Valid
testuser2:
When Type Source Valid
2022-09-08 09:05:44 RHOST 192.168.153.1 V
2022-09-08 09:10:08 RHOST 192.168.153.1 V
[root@localhost test]#
4行目は、ログインに失敗したユーザ名です。
6,7行目は、ログインに失敗した日時とIPアドレスが表示されています。
3回失敗のとき
[root@localhost test]# faillock
test:
When Type Source Valid
testuser2:
When Type Source Valid
2022-09-08 09:05:44 RHOST 192.168.153.1 V
2022-09-08 09:10:08 RHOST 192.168.153.1 V
2022-09-08 09:10:26 RHOST 192.168.153.1 V
[root@localhost test]#
4回目以降を間違えても行は増えません。
teratermのログイン画面
3,4回目で失敗のメッセージは変わらずロックされているかわかりません。
アカウントロックを解除する
faillock --user ユーザ名 --reset |
--userと--resetをつけます。
[root@localhost test]# faillock --user testuser2 --reset
[root@localhost test]#
[root@localhost test]# faillock
test:
When Type Source Valid
testuser2:
When Type Source Valid
[root@localhost test]#
1行目は、アカウントロックを解除しています。
(参考)パスワードの有効期限を表示
chage -l ユーザ名 |
chage -lは、パスワードの有効期限を表示します。
[root@ip-10-0-10-4 ~]# chage -l testuser
Last password change : Jul 15, 2022
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@ip-10-0-10-4 ~]#
3行目のPassword expiresは、パスワード期限です。neverなので存在しません。
4行目のPassword inactiveは、現在パスワードが無効化されているかです。neverなので無効化ではありません。
6行目は、パスワード変更までの最短日数:0
7行目は、パスワード変更までの最大日数:99999
8行目は、パスワード有効期限までの警告日数:7
関連の記事