現在、冗長SSH接続をブロックするために、Linuxルータには次のiptablesルールがあります。
-A wan_ingress -p tcp --dport 22 -m state --state NEW -m recent --name sshthrottle --set -m comment --comment "Tag incoming SSH requests"
-A wan_ingress -m state --state NEW -m recent --name sshthrottle --rcheck --seconds 300 --reap --hitcount 3 -j logdrop -m comment --comment "Log and drop packets"
-A logdrop -j LOG --log-prefix "sshthrottle:drop "
-A logdrop -j DROP
しかし、問題は重複を防ぐということです。成功接続、5分以内に接続と切断を3回成功すると、私もブロックされます。ところで5分しかないので今まで我慢できませんでした。
SSH無差別代入プログラムは自動的に自主的に制限されるため、制限時間を5分から1日に延長しようとしています。ただし、これは1日に制限された回数だけSSHを実行できます。そうしないと、SSHもブロックされます。
したがって、SSH接続が成功した場合は、接続試行回数を計算するために使用されるリストからそのIPを削除する追加のiptablesルールを追加するのが最善の方法であると思います。
私はSSHセッションが実際に確立されていることを確認するために2番目のパケットカウンタのようなものを使用すると思いましたが--state ESTABLISHED
(長い間失敗したログイン試行を確立された接続としてカウントしないため)、そのルールをトリガに適用する方法がわかりません。元のリストのIPです。
ベストアンサー1
私は常に高いポートを最初にノックして接続を切断し、ポート22にログインし、最後の瞬間にIPが高いポートに達したことを確認するようにsshを設定します。最初に鳴らないものはすべて捨てろ