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


12

ログインに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またはSLES10:以下を追加する:

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

質問:ログインが5回失敗した後、これがユーザーをロックする有効な方法であることを誰かが確認できますか?またはこれを行う方法?

PS:

/sbin/pam_tally --user USERNAME --reset

これを行う前に行うべき便利なことは何ですか?これらでrootユーザーをロックアウトできますか?PAMの編集は非常に機密性の高いことです。これは、人々がサーバーからロックアウトされる可能性があるためです(つまり、例:rootユーザー)。これを行う際のヒントはありますか?


tallyモジュールがその方法ですが、元のモジュールはかなり壊れていて直感的でないため、pam_tally2をお勧めします。また、rootはこのような方法でロックされる可能性がありますが、それを有効にする必要がありますno_magic_root
Bratchley

ところで、ルートアカウントでロックを実行することはお勧めしません。それは、何かがうまくいかなかった場合(たとえば、アカウントロックの場合)にエスケープハッチであり、攻撃者はとにかく直接ベクトルを持っていないはずです。
Bratchley 2013年

SLES10にはno_magic_rootも必要ですか?
Gaskoピーター2013

すべてのGNU / Linuxディストリビューションは、同じ基本的な上流プロジェクトのセットに基づいています。したがって、Novellが人々を混乱させるような方法でpam_tallyモジュールのバージョンを変更しようと試みない限り、SuSEでも他のディストリビューションと同じでなければなりません。
Bratchley 2013年

1
これは良い考えですか?このようにして、すべてのユーザーが他のユーザーのログインを簡単に防ぐことができます。高遅延を使用する方がIMOの方が現実的ですが、自分で決めてください。
マルコ

回答:


17

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

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

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

ここにあなたが始めるための例があります。以下をpamファイルのauthセクションの先頭に追加します/etc/pam.d/password-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_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

参照資料


2

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か、他のリモートサービスがaswell、あなたはまたに行を追加する必要があります/etc/pam.d/sshdおよび/または/etc/pam.d/password-auth


それが機能していることを確認するには、有効なユーザーでログインに失敗してから、実行します pam_tally2

たとえば、jacobrun という名前のユーザーの場合:

  $ 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.