web-dev-qa-db-ja.com

Apacheサーバーに対するこのサービス拒否攻撃に対処する方法は?

今日、私はさまざまな攻撃の標的になりました。最後の1つは、ポート80でこのトラフィックを作成しました。Apacheはダウンしており、サーバーの負荷は高いままです。

ファイアウォールが有効になっています。助言がありますか?

15:27:10.203993 IP 188.125.110.42.38818 > 190.10.34.115.http: Flags [S], seq 3395115767, win 29200, options [mss 1460,sackOK,TS val 22777069 ecr 0,nop,wscale 7], length 0
15:27:10.204050 IP 103.21.182.66.62502 > 190.10.34.115.http: Flags [S], seq 3158122291, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
15:27:10.204079 IP 50.143.120.99.54622 > 190.10.34.115.http: Flags [S], seq 3624243404, win 29200, options [mss 1460,sackOK,TS val 273756706 ecr 0,nop,wscale 7], length 0
15:27:10.204128 IP 62.216.187.156.42248 > 190.10.34.115.http: Flags [S], seq 846253572, win 29200, options [mss 1460,sackOK,TS val 523062741 ecr 0,nop,wscale 7], length 0
15:27:10.204305 IP 23.105.195.199.38172 > 190.10.34.115.http: Flags [S], seq 2631287484, win 14600, options [mss 1460,sackOK,TS val 2125155826 ecr 0,nop,wscale 7], length 0
15:27:10.204774 IP 76.111.172.248.39602 > 190.10.34.115.http: Flags [S], seq 2199780458, win 29200, options [mss 1460,sackOK,TS val 249941894 ecr 0,nop,wscale 7], length 0
15:27:10.204797 IP 104.154.65.106.44962 > 190.10.34.115.http: Flags [S], seq 2397138535, win 28400, options [mss 1420,sackOK,TS val 1992688634 ecr 0,nop,wscale 7], length 0

編集: これ が問題の解決策でした。

15
antony

これは古典的なSYNフラッド攻撃であり、予防策には

  • synパケットのハッシュ、syn cookieの実装
  • 無効なパケットがクライアントに送り返された後、クライアントが適切にRSTを送信するかどうかを確認する
  • ddos軽減ソフトウェアは、多くの場合、高度なフィルタリングに基づいて特定のsynパケットをタイムアウトすることを提案しています
  • 参照用にsynパケット全体を保存せず、IPとシーケンス番号のみを保存します(追加のファイアウォール/ソフトウェアをインストールする必要があります)
20
Rápli András

NEWトラフィックを制限する

Sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT

establishedトラフィックを制限する

Sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 50/second --limit-burst 50 -j ACCEPT

カーネルでsyncookiesを有効にします( @RápliAndrás で推奨)

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

インストールして設定 ddos-deflate

注目すべき機能:

  • /etc/ddos/ignore.ip.listを使用して、IPアドレスをホワイトリストに登録することができます。
  • /etc/ddos/ignore.Host.listを介してホスト名をホワイトリストに登録することが可能です。
  • シンプルな設定ファイル:/etc/ddos/ddos.conf
  • IPアドレスは、事前構成された時間制限(デフォルト:600秒)後に自動的にブロック解除されます
  • スクリプトは、設定ファイルを介して選択した頻度でcronジョブとして実行できます(デフォルト:1分)
  • スクリプトは、構成ファイルを介して、選択した頻度でデーモンとして実行できます(デフォルト:5秒)。
  • IPアドレスがブロックされると、電子メールアラートを受信できます。
  • 接続状態によるブロックの制御(man netstatを参照)。
  • ファイアウォールの自動検出。
  • APF、CSF、およびiptablesのサポート。
  • イベントを/var/log/ddos.logに記録します
  • Tcpkillを使用して、攻撃者によって開かれたプロセスの量を減らします。
10
GAD3R

解決した

この場合、これは侵害されたWordpressサイトによるシンフラッド攻撃であり、Gバイト/時の速度で大量のトラフィック(pingback)が発生しました。

これは攻撃の完全な説明です。リファラー/ヘッダーでは、ユーザーエージェントとして「Wordpress」を読み取ることができます。 https://www.hyperborea.org/journal/2014/03/pingback-ddos/

ファイアウォールルール(リンクのリストを参照)でこれらのIPをブロックすると、問題が解決しました。私は呪いの責任なしにリストを共有します。

5000個のIPのリスト ファイアウォールでブロックされることが関係しています。

5
antony

表示している出力は、SYNパケットのフラッドを受信して​​おり、それらのいずれにも応答していないことを示しています。示されている数値から推定すると、約7.5kppsになります。最大パケットサイズを60バイトのIPv4ヘッダーと60バイトのTCPヘッダーでも合計8Mbit/s未満であると仮定したとしても。

したがって、ネットワーク接続が10Mbit/s以上の場合、1秒あたりのパケット数を処理するのに十分な処理能力があると想定して、そのトラフィックをシンクできるはずです。

質問の限られた情報から、現在の負荷の原因を特定することは不可能です。ファイアウォールルールが、各パケットがファイアウォール内で大量のCPU時間を消費するように構成されている可能性があります。その場合は、ファイアウォールルールを再構築してより効率的にする必要があります。

すべてのパケットを静かにドロップするようにファイアウォールを構成したようです。正当なクライアントが応答するまで(またはクライアントがタイムアウトするまで)SYNパケットを再送信するため、実際には問題が悪化する可能性があります。

サイレントにパケットをドロップするのではなく、アップストリーム帯域幅が許す限り多くのパケットに応答することをお勧めします。応答は、SYN-ACKパケットまたはRSTパケットのいずれかである必要があります。

攻撃パケットと正当なパケットの違いが分からないSYNフラッドが発生している場合、および正当なクライアントからのリクエストに対応し続ける必要がある場合は、 answer で提案されているようにSYN Cookieを有効にすることをお勧めします=ラプリによる。

このような状況では、SYN Cookieは、サーバーが負荷のもとでゆっくりと応答するか、まったく応答しないかの違いになることがあります。

SYNパケットのみに基づいてIPアドレスをブロックしないでください。 SYNパケットしか表示されない場合は、送信元IPが偽装されている可能性があります。そして、それに基づいてブロックすると、効果がなくなり、別の種類のDoS攻撃にさらされます。

クライアントがハンドシェイクを完了してから不良トラフィックを送信する場合は、IPアドレスをブロックすることを検討できます。ただし、IPv4でこれを行うと、付随的な損傷が発生する可能性があるため、最後の手段としてのみ行う必要があります。その方法でトラフィックをブロックする場合は、RSTパケットで応答することを確認し、ファイアウォールルールが最小限のCPU消費で評価できるように構成されていることを確認してください。

1
kasperd