5回ログインに失敗した後にユーザーをロックする方法は?
それを行う方法についていくつかのディストリビューション/バージョンを集めましたが、テストできません。
RHEL4:以下を追加します:
auth required /lib/security/$ISA/pam_tally.so no_magic_root
account required /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root
に:
/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd
RHEL4:???
SLES9:以下を追加します:
auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root
に:
/etc/pam.d/login
/etc/pam.d/sshd
SLES11またはSLES1:以下を追加します:
auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time
に:
/etc/pam.d/common-auth
さらに、次を追加します:
account required pam_tally.so
に:
/etc/pam.d/common-account
[〜#〜] question [〜#〜]:これが5回のログイン試行の失敗後にユーザーをロックする有効な方法であることを誰かが確認できますか? ORこれを行う方法?
pS:
/sbin/pam_tally --user USERNAME --reset
これを行う前に行うべき便利なことは何ですか?これらでrootユーザーをロックアウトできますか? PAMの編集は非常に機密性の高いことです。これは、ユーザーがサーバーからロックアウトされる可能性があるためです(つまり、例:rootユーザー)。これを行う際のヒントはありますか?
Fail2banを確認することをお勧めします。設定された試行回数の失敗後にアカウントをロックし、設定された期間の後にロックを解除するように構成できます。
http://www.fail2ban.org/wiki/index.php/Downloads
pam_tally
の使用に真剣に取り組んでいる場合は、代わりにpam_tally2
を使用することをお勧めします。最新のPAMパッケージと共にインストールする必要があります。 man pam_tally2 を実行して、その使用方法を確認できます。
ここにあなたが始めるための例があります。 pamファイル/etc/pam.d/password-auth
のauthセクションの先頭に以下を追加します。
auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200
同じファイルで、これをアカウントセクションに追加します。
account required pam_tally2.so
上記のパラメーターは次のとおりです。
file=/var/log/tallylog
–ログインカウントを保持するためにデフォルトのログファイルが使用されます。deny=3
– 3回の試行後にアクセスを拒否し、ユーザーをロックダウンします。even_deny_root
– rootユーザーにもポリシーが適用されます。unlock_time=1200
-20分(60秒* 20分= 1200秒)Rootをロックアウトしたくない場合は、even_deny_rootをmagic_rootに変更します。 。
Rootアカウントをロックアウトするかどうかは疑問です。代わりに、rootアカウントがロックアウトされる可能性がありますが、他のアカウントよりも短い期間のみ、次のようなことを実行することができます。
auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60
これにより、1分間だけrootアカウントがロックアウトされ、それ以外のユーザーは通常の1200秒ロックされます。
サンプルログファイルは次のようになります。
$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine
コマンドpam_tally2を使用して、ロックされたアカウントについて問い合わせることができます。
$ pam_tally2 --user=me
Login Failures Latest failure From
me 5 06/04/13 21:21:06 someothermachine
次のように制限を解除できます:
pam_tally2 --user=me --reset
Login Failures Latest failure From
me 5 06/04/13 21:21:06 someothermachine
これで、アカウントはpam_tally2に次のように表示されます。
$ pam_tally2 --user=me
Login Failures Latest failure From
me 0
pam_tally2
は最初私を混乱させましたが、man pam_tally2
をフォローした後でわかりました-
EXAMPLES
Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
Root account will be locked as well. The accounts will be automatically unlocked after
20 minutes. The module does not have to be called in the account phase because the
login calls pam_setcred(3) correctly.
auth required pam_securetty.so
auth required pam_tally2.so deny=4 even_deny_root unlock_time=1200
auth required pam_env.so
auth required pam_unix.so
上記の言い回しは少し混乱します。実際にはpam_tally2.so
行のみを追加するためです。
したがって、/etc/pam.d/login
を編集して、他のすべてのauth
行の下に追加できます。
auth required pam_tally2.so deny=4 even_deny_root unlock_time=1200
または、/etc/pam.d/system-auth
がある場合は、そこに追加できます。
サービスの再起動や再読み込みは必要ありません。新しいローカルログインに対してすぐにアクティブになります。
注:pam_tally2
をsshd
または他のリモートサービスにも適用する場合は、/etc/pam.d/sshd
や/etc/pam.d/password-auth
にも行を追加する必要があります。
機能していることを確認するには、有効なユーザーでログインに失敗し、pam_tally2
を実行します
たとえば、jacob
runという名前のユーザーの場合:
$ Sudo pam_tally2 -u jacob
そしてそれは次のようなものを出力します:
Login Failures Latest failure From
jacob 1 01/01/01 11:00:00 tty1
失敗したログイン試行が多すぎてアカウントがロックされている場合は、手動でアカウントのロックを解除できます。
$ Sudo pam_tally2 -u jacob --reset