23

netstatサーバーを再起動した後でも、実行中はこの行が何百も表示されています。サーバーは再び送信を開始し、そのIPへの多くの接続を引き起こします。

tcp        0      1 server1700.skdedicate:36283 154.45.206.59:https   SYN_SENT
tcp        0      1 server1700.skdedicate:36283 154.45.206.59:https   SYN_SENT
tcp        0      1 server1700.skdedicate:36283 154.45.206.59:https   SYN_SENT
tcp        0      1 server1700.skdedicate:36283 154.45.206.59:https   SYN_SENT
tcp        0      1 server1700.skdedicate:36283 154.45.206.59:https   SYN_SENT

すべてのスクリプトを停止しましたが、それでも試行を続けます。

これはIPが応答していないことを意味しますがSYN_SENT、どうすればそれらを停止できSYN_SENTますか?または、これに対する最善の解決策は何ですか?

ありがとう。

4

1 に答える 1

66

この質問は多くの意見を集めているようですが、まだ答えがないので、解決策を探している人のために自分の質問に答えることにしました。

まず最初に、理由を知ることは解決策の半分です。私はそれ自体に対してHTTPプロトコルの振る舞いを使用するSYNフラッド攻撃と呼ばれるものの下にいました

つまり、リモートクライアントはSYNを送信してサーバーとの接続を確立しようとし、サーバーはSYN_ACKで応答し(ログにはSYN_SENTが表示されます)、ACKを受信するまで待機します。ACKがxx秒以内に受信されない場合、サーバーはSYN_ACKを再度送信します。最終的には設定されたしきい値に達し、SYN要求の受け入れを停止して、サーバーが応答しなくなります。私に起こった症状の1つは、私のWebサイトが、何も問題がないように1回応答したが、次のxx回は応答しなかったことです。

HTTPプロトコルSYN

私のために働いた解決策は、SYNクッキーを有効にし、サーバーにSSHで接続し、お気に入りのエディターを使用して次のファイルを開くことでした。この例ではviを使用しています

vi /etc/sysctl.conf

そして、これらの行をファイルに追加してから、サーバーを再起動します。うまくいけば、これは私のためにしたように攻撃を止めるでしょう

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3

私はCentOSを使用していましたが、上記のソリューションはすべてのディストリビューションで機能すると思いますが、Linuxディストリビューションで「SYNフラッド攻撃を阻止する方法」が検索されなかった場合

ちなみに、SYN要求を開始するIPをブロックしても、攻撃者がIPをスプーフィングした可能性が高いため、おそらく役に立たないでしょう。

于 2014-06-11T20:14:14.277 に答える