MaxAuthTries
私のLinuxコンピュータでは1に設定しました。その後、私はssh
ローカルネットワーク上の他のコンピュータから私のLinuxコンピュータに接続しようとしましたが、エラーは " Too many authentication failures
"失敗しました。
以前は設定にいくつかの失敗がありましたが、それでも合計に含まれているためです。
ページman
の内容は次のとおりです。
MaxAuthTries
接続ごとに許可される最大認証試行回数を指定します。失敗回数がこの値の半分に達すると、より多くの失敗が記録されます。デフォルトは6です。
接続とみなされるものは何ですか?これはMaxAuthTries
、特定のIPアドレスからのみ情報を取得できることを意味しますか?これはTCP接続を意味しますか?接続を切断して新しい接続を作成して再試行するにはどうすればよいですかssh
?
ベストアンサー1
sshd
SSHの場合は、TCPポート(通常はポート22)に接続されます。追加の認証試行の受け入れを停止すると、接続が終了し、sshd
接続が完了します。
SSH プロトコルでは、ユーザーが認証を試みる前に、暗号化やその他のプロトコルオプションのネゴシエーション、セッションキーの設定、ホストキーの交換が必要です。したがって、各新しい接続にはいくつかの重要なタスクが必要です。複数のソースで試行される多数のSSH接続試行は、間違いなくサーバーをDoSするために使用されます。
認証試行は、sshd
現在の構成で有効になっている認証方法に対する試みです。たとえば、
- クライアントが認証のために SSH 鍵を提供する場合、提供された各鍵は試行回数として計算されます。
- Kerberos / GSSAPI認証方法が有効になっている場合、その方法を使用してクライアントを認証できることを確認することは試行としてカウントされます。
- パスワードの確認プロンプトに入力された各パスワードは、明らかに1つとして計算されます。
最初の2つのケースでは、状況が発生する可能性があります。これをMaxAuthTries
1に設定してKerberos / GSSAPI認証を有効にすると、パスワード認証を試みる前に1回の試行が使い果たされる可能性があります。同様に、SSHクライアントに使用可能な認証キーがあるがターゲットユーザーのターゲットシステムに公開キーを追加しないと、公開キー認証の試行は単一の試行を使い果たし、~/.ssh/authorized_keys
パスワードの確認も試みることができません。
pam_unix
通常、パスワード認証を処理するPAMライブラリは、デフォルトでは認証試行失敗後2秒の遅延を適用します。
主な脅威がパスワード推測ワームとインターネット上の他の感染システムのボットである場合、MaxAuthTriesを減らすのはおそらく悪い措置です。ボットは疲れていないので、常に再接続して再試行します。試みるたびに、SSHプロトコルネゴシエーションのためにいくつかのCPU容量を拡張する必要があります。まず、ボットがあることを確認する必要があります。成功しないだろう、第二に、ロボットはできるだけ多くの時間を無駄にする既存の接続から最も低コスト。 1つの接続で複数の認証を試みることができますが、応答は...非常に...ゆっくりとなります。
これは、パスワードの確認が完全に無効になっていても、クライアントにパスワードの入力を求める理由ですsshd
。プロンプトは完全に偽であり、クライアントがどのパスワードを入力しても拒否されます。しかし、顧客はこれを確信できません。
もちろん、接続に対する認証の試みをあまりにも許可し、ボットプログラマーがこれらの「タールフィット防御」の効果を制限するためにタイムアウトを実装した場合、ボットは最終的に接続を終了する可能性があります。