ホームページ  >  記事  >  運用・保守  >  悪意のあるアクセスやクローラー攻撃を防ぐための Nginx アクセス制限構成

悪意のあるアクセスやクローラー攻撃を防ぐための Nginx アクセス制限構成

PHPz
PHPzオリジナル
2023-07-04 10:25:122560ブラウズ

悪意のあるアクセスとクローラー攻撃を防ぐための Nginx アクセス制限構成

はじめに:
今日のインターネット時代において、悪意のあるアクセスとクローラー攻撃は大きなセキュリティ脅威となっています。高性能 Web サーバーおよびリバース プロキシ サーバーとして、Nginx は一部の構成を通じてアクセスを制限し、Web サイトをこれらの攻撃から保護できます。この記事では、一般的に使用される Nginx のアクセス制限構成をコード例とともにいくつか紹介します。

1. IP ブラックリストとホワイトリストの制限

  1. IP ブラックリストの制限
    特定の IP アドレスへのアクセスを制限したい場合は、Nginx に付属の ngx_http_access_module モジュールを使用できます。 。
http {
    # 创建一个blacklist.conf文件来存储黑名单的IP地址
    include blacklist.conf;
    server {
        location / {
            # 在这里设置黑名单的访问规则
            deny 192.168.1.100;
            deny 192.168.1.0/24;
            deny 10.0.0.0/8;
            # 其他配置...
        }
    }
}

上記の構成は単純かつ明確であり、location ブロックで直接拒否を使用して、指定した IP アドレスまたは IP アドレス範囲へのアクセスを拒否できます。

  1. IP ホワイトリストの制限
    IP ブラックリストとは逆に、特定の IP アドレスへのアクセスのみを許可し、他の IP アドレスを拒否したい場合は、allow コマンドを使用できます。
http {
    # 创建一个whitelist.conf文件来存储白名单的IP地址
    include whitelist.conf;
    server {
        location / {
            # 在这里设置白名单的访问规则
            allow 192.168.1.100;
            allow 192.168.1.0/24;
            allow 10.0.0.0/8;
            # 最后拒绝所有其他访问
            deny all;
            # 其他配置...
        }
    }
}

上記の設定では、allow コマンドを使用して、指定した IP アドレスまたは IP アドレス範囲へのアクセスを許可し、すべて拒否して他のすべての IP アドレスへのアクセスを拒否します。

2. ユーザー エージェントの制限
一部のクローラー攻撃は偽のユーザー エージェントを使用してアクセスするため、ユーザー エージェントを制限することでそのような攻撃を防ぐことができます。

http {
    server {
        location / {
            # 在这里设置拒绝某些特定User-Agent的访问
            if ($http_user_agent ~* (curl|wget) ) {
                return 403;
            }
            # 其他配置...
        }
    }
}

上記の設定では、if コマンドと正規表現を使用して特定のユーザー エージェントと一致させ、return コマンドを使用して 403 Forbidden を返します。
このようにして、curl や wget などのツールを使用して Web サイトにアクセスしようとするリクエストは拒否されます。

3. 頻度制限
DDoS 攻撃やブルート フォース クラッキングを防ぐために、アクセス頻度の制限を設定できます。

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
    server {
        location / {
            # 在这里设置访问频率限制
            limit_req zone=one burst=10 nodelay;
            # 其他配置...
        }
    }
}

上記の構成では、limit_req_zoneコマンドを使用してIPアドレスを格納するメモリ領域を作成し、名前は1つ、サイズは10m、アクセス頻度は2r/sに設定しています。次に、location ブロックで limit_req コマンドを使用して周波数を制限します。burst パラメータはアクセスが超過したときのバッファ サイズを示し、nolay はリクエストを直ちに処理する必要があることを示します。

概要:
IP ブラック/ホワイト リスト制限、ユーザー エージェント制限、および頻度制限の上記の設定例を通じて、悪意のあるアクセスとクローラ攻撃を効果的に防ぐことができます。もちろん、具体的な構成は実際のニーズに応じて調整できます。最後に、上記の内容が Nginx のアクセス制限設定に役立つことを願っています。

以上が悪意のあるアクセスやクローラー攻撃を防ぐための Nginx アクセス制限構成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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