ケースNGINX:DDoS攻撃に抵抗する方法

私たちの仕事の主な目標は、IT分野に出会ったことのない人でもIaaSをシンプルで理解しやすくすることです。 そのため、すべてのシステムの継続的な最適化を実施し、Habréのブログで何ができたかについて話します。



いくつかの例:





今日、私たちは西洋の経験を見て、負荷分散のトピックを簡単に分析することにしました。 私たちは、DDoS攻撃を扱うというトピックに関するメモに魅了されました。





/写真デニス・ファン・ズィイレコム / CC



用語から始めると、DDoSはITシステムへの攻撃として定義され、適切なレベルの品質で要求を処理できない状態にすることができます。 ここでは、DDoS攻撃に対して1つまたは別の脆弱性を使用する特別なボットによって生成される定量的効果が機能します。



多数のリクエストを処理したり、接続と負荷分散を並列化したりするシステムの準備が不十分な場合、このような脆弱性になる可能性があります。 単純なDDoS攻撃が開始された場合、システムへのトラフィックは特定のアドレスから送信され、異常な数のリクエストと接続が生成されます。 トラフィックの強度に加えて、カスタムメイドのUser-Agentヘッダーを使用して攻撃を計算できます。



NGINXを使用すると、トラフィックをルーティングし、人(ボットではない)に固有の平均インジケーターによって着信要求の頻度を制限することで、トラフィックを管理できます。 さらに、1つのIPから来ることができる接続の数にプラグを設定できます。



追加の可能性は、実際には使用されていないが、かなりの期間オープンのままである化合物の破裂です。 したがって、Slowloris攻撃からシステムを保護できます。



より厳しい方法は、拒否ディレクティブを使用してIPをブラックリストに登録することです。 その後、NGINXはこのアドレスからのリクエストを処理しなくなります。 別の方法は、許可されたIPの範囲を設定することです。





/写真: ジョーザゴートファーマー / CC



トラフィックのジャンプを防ぐために、キャッシュオプションを利用できます。 NGINXは、必要に応じて廃止されたオブジェクトを更新できるため、システムのピーク負荷がスムーズになります。



さらに、URL(リソースの特定の部分が攻撃されている場合)およびUser-Agentヘッダー(通常のユーザーの動作とは異なる異常なトラフィックを遮断したい場合)によってフィルターを構成できます。 サーバー間の内部ルーティングのレベルで接続数を制限する可能性はまだあります。



NGINXの内部ツールを使用すると、着信トラフィックのさまざまなメトリックを分析できます。 監視はAPIからも利用できます。



All Articles