悪意のあるアクセスとクローラー攻撃を防ぐための Nginx アクセス制限構成
はじめに:
今日のインターネット時代において、悪意のあるアクセスとクローラー攻撃は大きなセキュリティ脅威となっています。高性能 Web サーバーおよびリバース プロキシ サーバーとして、Nginx は一部の構成を通じてアクセスを制限し、Web サイトをこれらの攻撃から保護できます。この記事では、一般的に使用される Nginx のアクセス制限構成をコード例とともにいくつか紹介します。
1. IP ブラックリストとホワイトリストの制限
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 アドレス範囲へのアクセスを拒否できます。
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 サイトの他の関連記事を参照してください。