SSH攻撃を防ぐ


9

私はiptablesルールをセットアップして、IPによる1分あたり3回の試行のみを許可し、SSHを介してサーバーに接続し、その後SSH攻撃を防ぐためにすべての接続をドロップします。しかし、私は何か間違っているようです!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

ありがとう

回答:


10

fail2banipfilterルールも正当な接続をブロックするため、を使用する必要があると思います。fail2ban接続が失敗した後にのみIPをブロックします。

次に、一般的な方法は、ポート22に接続しようとするIPを禁止し、sshサーバーを別のポートにバインドすることです。コンピュータがよく知られたターゲットでない場合、1週間に数回の不正な接続に直面するだけです。

あなたが尋ねた正確な質問については:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

1
サーバーはローエンドのvpsなので、できる限り安全に維持しながら、リソース消費を最小限に抑えるようにしています。私はすでにsshサーバーのポートを変更しました。これらのルール(上記)を新しいポートに保持し、デフォルトのポート(22)を禁止する必要がありますか?
MGP 2012

Fail2banは実際、VPSが低い場合でも最高のソリューションです
MGP

7

あなたは次の2つのルールであなたが望むものを実装することができます

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

-Aチェーンの最後にルールを追加するを使用すると、iptablesルールが処理される方法に違反する可能性があることに注意してください。つまり、一般的なDROPまたは許可ルールに到達する前に、それらが実行されることはありません。

fail2banもこの種類のブロックを実装するより良い方法であるとわかるかもしれないと述べました。


これらのルールを追加しようとすると、エラーメッセージが表示されます:iptables:その名前でチェーン/ターゲット/一致がありません。
MGP

fail2banに賛成票を投じます。
マイケルB

4

LIMITモジュールを試してみてください。

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.