SSHログイン試行間のグローバル間隔を設定するには?

SSHログイン試行間のグローバル間隔を設定するには?

クライアントのIPアドレス(信頼できるホワイトリストアドレスを除く)に関係なく、数秒以内に複数のリモートログイン試行を無効にしたいと思います。たとえば、SSHユーザーが間違ったパスワードを入力した場合、その時間間隔が経過するまで他のリモートクライアントはログインできません。

目的は、分散(ボットネット)無差別暗号化攻撃からシステムを保護することです。

可能ですか?

PS:証明書を使用してパスワード専用のログインを無効にできることを知っていますが、まだ疑問に思います。

答え1

使用失敗2禁止ssh特定の回数の試行が失敗した後、ファイアウォールを使用して(オプションで他のサービス)へのアクセスを無効にします。デフォルトでは、3回の試行失敗後30分間ブロックされますが、maxretryその値を使用して設定できます。

答え2

沿岸壁をファイアウォールとして使用する場合は、次のものを使用できます。接続速度制限

以下は、サンプルの構成とガイドラインです。

############################################################################################################################
#ACTION         SOURCE           DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                        PORT    PORT(S)         DEST            LIMIT           GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW

ACCEPT          net:192.168.1.11 $FW             tcp     ssh
ACCEPT          net              $FW             tcp     ssh     -               -               1/min:1

上記の2つのルールがあります。

最初のルールは、常にホワイトリストにあるIPアドレス192.168.1.11のSSH接続を許可します。

2番目のルールは、すべてのアドレスのSSH接続速度を制限します。速度制限は毎分1つの接続に設定されます。上記のリンクでは、速度制限を設定する方法について説明します。

~によると壁のルール文書と規則の順序する問題:

特定の(ソース、宛先)領域ペアの場合、ルールはこのファイルに表示される順序で評価され、最初の終了一致が要求の処理を決定します。 LOGおよびCOUNTルールを除くすべてのルールが終了します。

つまり、最初のルールが実行されると、2番目の(速度制限)ルールは実行されません。

関連情報