web-dev-qa-db-ja.com

5回ログインに失敗した後にユーザーをロックする方法は?

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ユーザー)。これを行う際のヒントはありますか?

12
gasko peter

Fail2banを確認することをお勧めします。設定された試行回数の失敗後にアカウントをロックし、設定された期間の後にロックを解除するように構成できます。

http://www.fail2ban.org/wiki/index.php/Downloads

pam_tallyの使用に真剣に取り組んでいる場合は、代わりにpam_tally2を使用することをお勧めします。最新のPAMパッケージと共にインストールする必要があります。 man pam_tally2 を実行して、その使用方法を確認できます。

ここにあなたが始めるための例があります。 pamファイル/etc/pam.d/password-authauthセクションの先頭に以下を追加します。

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_rootmagic_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

参考文献

17
slm

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_tally2sshdまたは他のリモートサービスにも適用する場合は、/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
2