事前に定義されたポート以外の送信元ポートからの (ssh) トラフィックをブロックするにはどうすればよいですか?

事前に定義されたポート以外の送信元ポートからの (ssh) トラフィックをブロックするにはどうすればよいですか?

VPSは多くのSSH攻撃を受けます。これらの攻撃は多岐にわたりますソースポート:

sshd[76661]: Invalid user ts3server from 76.103.161.19 port 33062
sshd[76661]: Received disconnect from 76.103.161.19 port 33062:11: Bye Bye [preauth]
sshd[76661]: Disconnected from invalid user ts3server 76.103.161.19 port 33062 [preauth]
sshguard[61313]: Attack from "76.103.161.19" on service SSH with danger 10.
sshguard[61313]: Blocking "76.103.161.19/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)
sshd[76821]: Invalid user tibaldi from 140.143.206.216 port 33936
sshd[76821]: Received disconnect from 140.143.206.216 port 33936:11: Bye Bye [preauth]
sshd[76821]: Disconnected from invalid user tibaldi 140.143.206.216 port 33936 [preauth]
sshguard[61313]: Attack from "140.143.206.216" on service SSH with danger 10.
sshguard[61313]: Blocking "140.143.206.216/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)

ご覧のとおり、私は現在、積極的にリアクティブ アプローチ (sshguard) を使用して、これらの攻撃をブロックして制限しています (また、パスワード ssh ログインは許可されていません)。ただし、攻撃が多すぎるため、ログがあふれてしまいます。ログから明らかなのは、これらの攻撃はすべて、番号の大きいランダムなポートから発生しているということです。私がやりたいのは、ファイアウォール レベルですべてのトラフィックをブロックして、ログが汚染されないようにすることです。

クライアントを制御し、使用するソース ポートを選択/定義できます。

したがって、事前に定義されたポート(または範囲)以外の送信元ポートからの(SSH)トラフィックをブロックするにはどうすればよいですか??

私はファイアウォール管理ソフトウェアとしてfirewalldを使用しているので、firewalldベースのソリューションを提供していただければ非常に助かります。ただし、他のソリューションも歓迎します。

答え1

一方、行き先SSH接続のポート番号は通常22ですが、ソースポートには(ほぼ)ルールがありません。つまり、からの接続140.143.206.216 port 33936自体は疑わしいものではありません。

私はこの問題を知っているので (ピーク時には 10G サーバーで 1 秒あたり 100 万回を超える攻撃がありました)、これを使用することをお勧めしますfail2ban- これは本当に機能します。

編集

話し合いの結果、あなたがクライアントを管理していることがわかりました。この場合、次のようなことをすればよいのです。

iptables -A INPUT -m tcp -p tcp --dport 22 '!' --sport 1000 -j DROP 

(リモートポート1000の場合)でうまくいく

関連情報