Nginx で DDoS 攻撃を防ぐ方法

Nginx で DDoS 攻撃を防ぐ方法

DDoS (分散型サービス拒否) 攻撃は、不正なデジタル通信戦術を介して、サーバー リソースに過負荷をかけます。この種の攻撃は、コンピューターの世界における組織的な襲撃です。悪意のある敵対者の無数の行為が組み合わさって、サーバーを強制的に停止させるほどの恐るべき脅威を生み出します。

何よりも悪いことに、そのようなホストに対してゲリラ的なウェブ「戦争」を仕掛ける手段は数多く存在します。幸いなことに、サーバーはそのような攻撃に耐えるように構成できます。

Unix マシン用の非常に人気のあるサーバー システムである Nginx には、DDoS 攻撃の有効性を大幅に制限する十分な機能が組み込まれています。

Nginx でそのような脅威に対処するための効果的なオプションをいくつか紹介します。

Nginx で DDoS 攻撃を防ぐにはどうすればよいですか?

設定ファイルのバックアップ

設定を変更する前に、必ずサーバーの構成の簡単なバックアップを作成してください。この目的には次のコマンドが機能します。

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Nginx で DDoS 攻撃を防ぐ方法

完了したら、続行する準備が整います。

交通状況を確認する

サーバー上のトラフィックを監視すると、セキュリティを最適化し、追加の戦略を実装することが簡単になります。 Nginx には、この目的のために特別に作成されたモジュールがあります。

ステータスページの設定

Nginx には通常、「スタブ ステータス」(http_stub_status_module) と呼ばれるモジュールが付属しておりこのタイプの機能をサーバー環境に簡単に統合できます。まず、次のコマンドを使用してテストします。

nginx -V

Nginx で DDoS 攻撃を防ぐ方法

または、次のコマンドを使用すると、より速く検索できます。

nginx -V 2>&1 | grep -o with-http_stub_status_module

Nginx で DDoS 攻撃を防ぐ方法

出力が上記のようであれば、すべて問題ありません。それ以外の場合は、付属のモジュールを使用して Nginx インストールをインストールまたは再コンパイルする必要があります。

確認できるステータス ページの設定は簡単ですが、セキュリティを維持するためにアクセスを最小限 (コンピューターのみ) に制限する必要もあります。まず、/etc/nginx/nginx.conf にあるサーバーのメイン構成ファイルを開きます

それを開き、次のコードを「http ディレクティブ」に追加してモジュールを有効にし、「localhost」、「/status_page」、および「127.0.0.1」内の独自の情報を置き換えます。

server {
listen 80;
listen [::]:80;
server_name localhost;
##
# Status Page Settings
##
location /status_page {
stub_status on;
allow 127.0.0.1;
allow ::1;
deny all;
}
}

: このファイルを変更するには sudo 権限が必要です。

Nginx で DDoS 攻撃を防ぐ方法

次に、構成をテストします。

sudo nginx -t

Nginx で DDoS 攻撃を防ぐ方法

すべてが正常であれば、サーバーにリロード信号を送信します。

sudo systemctl reload nginx

Nginx で DDoS 攻撃を防ぐ方法

ステータス ページにアクセスするには、Web ブラウザで、または、curl などのコマンド ライン ツールを使用して、server_nameに続いて「/status_page」という場所にアクセスします (これは、ブラウザのキャッシュが自動的に更新されない場合に役立ちます)。例のページにアクセスするためのcurlコマンドは次のとおりです。

curl localhost/status_page

Nginx で DDoS 攻撃を防ぐ方法

ブラウザでは、上記のコマンド出力は次の画像のように表示されます。

Nginx で DDoS 攻撃を防ぐ方法

アクセスログを確認する

上記で設定したステータス ページを確認するときに異常なトラフィックに気付いた場合は、サーバーのアクセス ログを確認することをお勧めします。サーバーのアクセスログは「/var/log/nginx/access.log」で確認できます。ログには、使用された HTTP メソッド、アクセス試行の日時、ユーザー エージェント、およびアクセスされたページがリストされます。

Nginx で DDoS 攻撃を防ぐ方法

接続制限

DDoS 攻撃を防ぐための有効な戦術は数多くありますが、試してみる価値はあります。その中で、最も簡単で効果的な方法の 1 つは、受信トラフィックの速度を制限することです。

理想的には、妥当なレートを維持しながら、悪意のあるボットがサーバーに負荷をかけるのを防ぐのに十分なアクセスを制限する必要があります。 Nginx では、これはlimit_req_zoneおよびlimit_reqディレクティブを使用して実行できます次のコードは、サーバーが表示するように構成されている場所で使用するメモリと速度の制約を設定します。

limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;

「ゾーン」は、ユーザー要求が保存されるメモリ空間の名前と容量 (この場合はメガバイト単位) を指定します。「レート」は、 Nginx が 1 秒あたりに受け入れるリクエストの合計数を設定します (この例では 10 リクエスト)。このコードをルールとして考えてください。次に、そのルールの使用法を示します。

limit_req zone=speedbump burst=20;

上記のコードは実際には、制限ルールを実装するだけではありません。また、正規の接続を適切に処理するために、最大 20 件のリクエストの小さなキューが追加されます。これは通常よりも少し速くレンダリングされ、ルールとキューの両方を超過して、クライアントに 503 エラーが発生します。両方のディレクティブは、nginx.conf では次のようになります。

Nginx で DDoS 攻撃を防ぐ方法

IPアドレスのブラックリストを作成する

サーバー上で DDoS 攻撃を実行しているIP アドレスを取得した場合は、それをブラックリストに登録し、この IP アドレスからの接続をすべて排除することができます。

次のコードをサーバー ディレクティブに追加します。

location / {
deny 123.123.123.0/28;
# ...
}

特定のファイルに対するリクエストをブロックする

DDoS 攻撃がサーバー上の特定のファイル (たとえば、WordPressxmlrpc.phpファイル(これはほとんどの WordPress サーバーで一般的に標的とされるファイルです) をターゲットにしている場合)、それらすべての要件をブロックできます。このコードをサーバー ディレクティブに追加します。

location /xmlrpc.php {
deny all;
}

上記のプロセスに従うことで、ほとんどの DDoS 攻撃を制限できるようになります。適用できる追加のセキュリティ オプションについては、Nginx のドキュメントを必ずご確認ください。

成功することを願っています。


古いルーターを使用して Wi-Fi カバレッジを拡大する方法

古いルーターを使用して Wi-Fi カバレッジを拡大する方法

古い冗長ルーターを使用してアクセス ポイント (AC) にすると、家の隅々まで Wi-Fi の到達範囲を拡大できることをご存知ですか?

Windows 10 では PIN またはパスワードを使用する方が安全ですか?

Windows 10 では PIN またはパスワードを使用する方が安全ですか?

誰でも PIN (個人識別番号) を使用して Windows 10 アカウントを保護できます。そうするのは素晴らしいアイデアです。

Windows PC にトラステッド プラットフォーム モジュール (TPM) チップが搭載されているかどうかを確認する方法

Windows PC にトラステッド プラットフォーム モジュール (TPM) チップが搭載されているかどうかを確認する方法

このガイドでは、Windows PC にトラステッド プラットフォーム モジュール (TPM) セキュリティ ハードウェア チップが搭載されているかどうかを確認し、搭載されている場合は TPM の詳細とバージョンを表示する方法を説明します。

より安全な Web ブラウジングのために試すのに最適な 7 つのプロキシ サイト

より安全な Web ブラウジングのために試すのに最適な 7 つのプロキシ サイト

プロキシ Web サイトは、ブロックされたサイトにアクセスしたいが、別の VPN 接続にお金をかけたくない人によく使用されます。

Windows 10 アクション センターに表示されるクイック アクションの数を変更する方法

Windows 10 アクション センターに表示されるクイック アクションの数を変更する方法

ユーザーは設定でクイック アクションを選択し、アクション センターの下部に表示できます。このガイドでは、Windows 10 のアクション センターに表示されるクイック アクションの数を変更する方法を説明します。

Windows 10 でウェイク タイマーを許可するオプションをオン/オフにする方法

Windows 10 でウェイク タイマーを許可するオプションをオン/オフにする方法

このガイドでは、Windows 10 でコンピューターをスリープ解除するために [ウェイク タイマーを許可する] オプションを有効または無効にする方法を説明します。

Windows 10/11にブラックパンサーテーマをインストールする方法

Windows 10/11にブラックパンサーテーマをインストールする方法

この記事では、LuckyTemplates は引き続き、非常に美しい一連の新しいテーマを紹介します。

ホームエリアネットワーク (HAN) について学ぶ

ホームエリアネットワーク (HAN) について学ぶ

ホーム エリア ネットワーク (HAN) は、すべてのラップトップ、コンピュータ、スマートフォン、その他のスマート デバイスやデジタル デバイスが 1 つのネットワークに接続されているユーザーの家のネットワークです。

WiFi とモバイルデータではどちらが速いですか?

WiFi とモバイルデータではどちらが速いですか?

純粋に理論的な状況では、4G LTE と WiFi の速度に大きな違いはありません。製品版の仕様はどちらも最大1000Mbpsとなっている。

Windows でのポインターの精度の向上について学ぶ

Windows でのポインターの精度の向上について学ぶ

Windows の [ポインターの精度を高める] 設定により、実際には多くの状況でマウスの制御の精度が低下する可能性があります。この機能は Windows ではデフォルトで有効になっており、マウス アクセラレーションの一種です。