“pam_tally2″モジュールを使うとパスワード認証を失敗時に、ある一定時間アカウントをロックアウトする事が出来ます。
以下、下記資料を参考に設定しました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
1)設定方法
“/etc/pam.d/system-auth”に下記2箇所の設定を行います。
①”auth”部の先頭に下記設定を追加
auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
※オプションの説明
・onerr=[fail|succeed]
何か予期せぬことが起きた場合にPAM_SUCCESS(onerr=succeedの場合)または、該当するPAMエラーコードを返す。
・unlock_time=n
アクセスに失敗した場合、n秒後にロック解除される。
・deny=n
アクセス試行回数がn回を超えたらアクセスを拒否する。
②”account”部の先頭に下記設定を追加
account required pam_tally2.so
2)ロックアウトされたアカウントを手動で解除するには?
下記コマンドでロックアウトされたユーザーアカウントを手動で解除出来ます。
# /sbin/pam_tally2 –user ユーザー名 –reset
3)設定確認
上記1)の設定後動作確認しました。
①suコマンドでパスワードを5回間違えた場合の例
$ su - testuser Account locked due to 5 failed logins Password: su: incorrect password
②手動でロックアウトを解除
# /sbin/pam_tally2 --user testuser --reset Login Failures Latest failure From testuser 5 01/20/14 11:18:59 pts/2
4)注意点
この設定によってパスワード推測攻撃に対するリスクを軽減できますが、逆にDOS(denial-of-service)攻撃によってシステムが使用できなくなるリスクは増大するので注意します。