クライアントの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番目の(速度制限)ルールは実行されません。