pam_tally を使用してアカウント ロックアウトを有効にするにはどうすればいいですか?

pam_tally を使用してアカウント ロックアウトを有効にするにはどうすればいいですか?

私はpam_tallyを使ってUbuntuでアカウントロックアウトを実装しようとしています。次の行を追加してみました。 共通認証

auth required pam_tally.so deny=3
account     required  pam_tally.so

失敗はログに記録されますが、失敗の最大数に達してもアカウントはロックされません。直接ログインしてこれを試しています (GNOME ログイン画面)。

何かアドバイスはありますか? pam.d/gdm またはログイン ファイルも追加する必要がありますか?

答え1

common-auth の背後にある説明

簡単な解決策を探している場合は、以下をご覧ください。common-auth をロックアウトするように設定する方法


これがロックアウトの構成方法を理解するのに役立つことを願っています/etc/pam.d/common-auth

内のすべてのコメントを削除すると/etc/pam.d/common-auth、次のようになります。

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

このファイルの各行とその使用方法を見てみましょう。


auth    [success=1 default=ignore]      pam_unix.so nullok_secure

パスワード入力を読み取ります。パスワードが正しい場合、ファイルの次の行 ( がある行pam_deny.so) はスキップされます。 の値を設定することで、スキップする行数を変更できますsuccess=1

auth    requisite                       pam_deny.so

ログイン試行を直ちに失敗します。ここでの単語は、requisite認証が失敗するとすぐに終了するように指示します。他の行ではrequired代わりに を使用し、モジュールの終了まで待機して失敗を通知します。

auth    required                        pam_permit.so

ログイン試行を許可します。これは を使用して行われますpam_permit.so


それが確立されると、ユーザーをロックアウトするようにモジュールを構成することがよりよく理解できるようになります。

common-auth をロックアウトするように設定する方法

Ubuntuの場合:

次の行を追加しますpam_deny.so の後、pam_permit.so の前:

auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800

pam_deny.so 行を次のように変更します。

auth    required                        pam_deny.so

ファイル全体は次のようになります。

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    required                        pam_deny.so
auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800
auth    required                        pam_permit.so

ニーズに合わせて次のオプションを設定できます。

  • deny=3- ロックアウトされるまでに許可される試行回数。
  • unlock_time=1800- 再度ログインを試みることができるまでの秒数。(追加情報:システムが一連の失敗の後にロック解除され、再度認証に失敗した場合、認証を2回以上試みることはできません。システムは、 unlock-time また。)

ほとんどのリソースでは、順序の重要性を強調して、この行をファイルの先頭に追加することを推奨していますが、Ubuntu デスクトップ システムでは、この構成により GUI ログイン画面にアクセスできなくなる可能性があります。

なぜこのようなことが起こるのでしょうか? Ubuntu のログイン画面でユーザーを選択すると、PAM モジュールがすぐに開始され、行pam_unix.so(パスワード入力行) で待機してから処理が進むようです。pam_tally2.soこの「停止ポイント」の前に行を配置すると、ロックアウトがすぐにアクティブになり、矢印キーを押してユーザーから移動すると、モジュールはログインに失敗したことを通知してpam_tally2増分します。パスワードを入力しなくても、すぐに次のような状況に陥ります。

common-auth ファイルが正しく構成されていない典型的な Ubuntu ログイン画面。

このpam_tally2.so行をファイルの末尾に配置すると、この問題は解決します。この構成では適切な順序が維持されます。最初の行はパスワードの有効性に基づいてジャンプしpam_deny.so、そこに到達するpam_permit.soまでにpam_tally2.so、不正なパスワード入力がすでに示されます。

pam_permit.so入力したパスワードに関係なく に到達しても、pam_deny.soにも到達した場合はモジュールは常に失敗します。これは、pam_deny.so行に が含まれているためです。requiredこれにより、残りの行は実行できますが、モジュール自体は最終的に失敗します。

PAM の仕組みの詳細については、「PAM の仕組み」を Google で検索するか、次のサイトにアクセスしてください。http://www.tuxradar.com/content/how-pam-works


それで大丈夫でしょう!

答え2

これを見てからしばらく経ちましたが、

編集する必要があると思います/etc/pam.d/common-auth

これをファイルの(ルールの順序が重要)。

auth required pam_tally.so per_user magic_root onerr=fail

次に、許可される試行回数を設定します

sudo faillog -m 3

アカウントのロックを解除するには

faillog -u login_name -r

詳細については

私のブログhttp://blog.bodhizazen.com/linux/ubuntu-how-to-faillog/

または男 pam_tally

答え3

また、ログイン試行が n 回失敗した後にユーザー アカウントをロックするために faillock を試すこともできます。

以下のリンクの指示に従って動作させることができました。この指示では pam_faillock.so が使用されており、Ubuntu と CentOS の両方で動作すると思います。

CentOS および類似の派生製品の場合:

/etc/pam.d/system-auth

/etc/pam.d/password-auth

Ubuntu/Debian および類似の派生版の場合:

/etc/pam.d/common-auth

/etc/pam.d/common-account

ログイン試行が複数回失敗した後に Linux ユーザー アカウントをロックする

これが他の人の助けにもなることを願っています。

関連情報