Linux ログイン3回失敗でアカウントロックを確認/解除

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

関連の記事

CentOS コマンド一覧 (Linux)

△上に戻る