ホームページ  >  記事  >  運用・保守  >  Nginxサーバーのセキュリティ構成と保護戦略の詳細な説明

Nginxサーバーのセキュリティ構成と保護戦略の詳細な説明

WBOY
WBOYオリジナル
2023-08-04 18:25:452511ブラウズ

Nginx サーバーのセキュリティ構成と保護戦略の詳細な説明

概要:
インターネットの発展とビッグデータ時代の到来により、Web サーバーのセキュリティはさらに強化されています。もっと注目してください。多くの Web サーバーの中でも、Nginx は、高性能、高い同時処理能力、柔軟なモジュール設計などの利点で人気があります。この記事では、アクセス制御、リバース プロキシ、フロー制限、HTTPS 構成など、Nginx サーバーのセキュリティ構成と保護戦略を詳しく紹介します。

1. アクセス制御

  1. IP ブラックリストとホワイトリスト: Nginx の許可命令と拒否命令を設定することで、IP ブラックリストとホワイトリストを設定できます。 Nginx 構成ファイルでは、次のコード例を使用できます。
http {
    server {
        location / {
            deny 192.168.1.1;
            allow all;
        }
    }
}

上記の構成では、IP 192.168.1.1 によるアクセスは拒否され、他の IP には通常どおりアクセスできます。

  1. 悪意のあるリクエストの防止: 接続数の制限とアクセス頻度の制限を設定することで、悪意のあるリクエストによる攻撃を防ぐことができます。これは、以下に示すように、Nginx 設定ファイルのlimit_conn ディレクティブとlimit_req ディレクティブを使用して実現できます。
http {
    server {
        location / {
            limit_conn conn_limit_per_ip 10;
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

上記の設定では、IP あたりの同時接続数は 10 に制限されており、リクエストはIP ごとの数は制限されており、頻度は 1 秒あたり 20 です。

2. リバース プロキシ

  1. 実際の IP を隠す: リバース プロキシを使用して実際の IP を隠し、サーバーのセキュリティを保護します。次の設定コードを使用できます:
http {
    server {
        location / {
            proxy_pass http://backend;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
}

上記の設定では、リクエストは backend1.example.com と backend2.example.com に送信され、元のリクエストの実際の IP はHTTP ヘッダーに設定されます。

  1. 負荷分散: リバース プロキシと負荷分散を通じて、リクエストを複数のバックエンド サーバーに分散して、システムのパフォーマンスと信頼性を向上させることができます。次の構成コードを使用できます。
http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

上記の構成では、リクエストは backend1.example.com と backend2.example.com のサーバーに均等に送信されます。

3. 現在の制限

  1. アクセス レートの制御: Nginx の limit_req ディレクティブを設定することで、各 IP のアクセス レートを制限して、悪意のあるリクエストによる攻撃を回避できます。次の設定コードを使用できます:
http {
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
    server {
        location / {
            limit_req zone=req_limit_per_ip burst=20 nodelay;
        }
    }
}

上記の設定では、各 IP のアクセス レートは 1 秒あたり 10 回に制限され、リクエスト バーストの数は 20 に設定されています。

  1. ファイルのアップロード サイズを制限する: Nginx の client_max_body_size ディレクティブを構成することで、大きなファイルのアップロードによるサーバー リソースの占有を避けるために、ファイル アップロードのサイズを制限できます。次の構成コードを使用できます:
http {
    server {
        client_max_body_size 10m;
        ...
    }
}

上記の構成では、ファイルのアップロードのサイズは 10MB に制限されています。

4. HTTPS 構成

  1. SSL 証明書の生成: Let's Encrypt などのツールを使用して SSL 証明書を生成し、HTTPS 接続のセキュリティを確保できます。
  2. HTTPS 接続の構成: 次の構成コードを使用して、HTTP 接続を HTTPS 接続に変換できます:
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/ssl_certificate.pem;
    ssl_certificate_key /path/to/ssl_certificate_key.pem;
    ...
}

上記の構成では、HTTP 接続を HTTPS 接続にリダイレクトし、 SSL証明書と秘密キーを設定します。

概要:
この記事では、アクセス制御、リバース プロキシ、フロー制限、HTTPS 構成など、Nginx サーバーのセキュリティ構成と保護戦略を紹介します。これらのポリシーを適切に構成して使用することで、サーバーと Web サイトのセキュリティを向上させ、システムとユーザーのデータ セキュリティを保護できます。ただし、さまざまな環境やニーズによっては対象を絞った構成が必要となる場合があり、開発者は実際の状況に基づいて選択と調整を行う必要があることに注意してください。

以上がNginxサーバーのセキュリティ構成と保護戦略の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。