悪意のある DDO が nginx 上でクロールするのを防ぐ方法
黄舟
黄舟 2017-05-16 17:30:17
0
4
956

まず第一に、他の人が私の Web サイトのコンテンツをクロールすることに私は反対しません。私は必ずしも他の人のクロールを厳密に制限するわけではありませんが、一部の人々のクロールにはまったく利益がありません。彼らは 1 つのスクリプトまたは複数のスクリプトを使用します。サーバーのコンテンツを取得することは、DDO と何ら変わりません。

私のサーバーでは現在そのような状況が発生しています。一時停止せずに悪意のあるクロールが行われ、ログ分析に深刻な影響を及ぼし、サーバーの負荷も増加しました。

この動作を防ぐにはどうすればよいですか? nginx サーバーを使用していますが、私の知る限り、特定の IP に対してのみdenyしか実行できませんが、拒否は今後もログに表示されますが、403 になります。さらに、手動による拒否は受動的すぎるため、特定の IP へのアクセス数が急激に増加したことを賢明に判断して、その IP を禁止できるでしょうか。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信 (4)
某草草

1. ngx_http_limit_conn_module は、単一 IP の接続数を制限するために使用できます
http://nginx.org/en/docs/http/ngx_htt...

2. ngx_http_limit_req_module を使用して、単一 IP の 1 秒あたりのリクエスト数を制限できます
http://nginx.org/en/docs/http/ngx_htt...

3. nginx_limit_speed_module を使用して IP 速度を制限できます
https://github.com/yaoweibin/nginx_li...

いいねを押す+0
    世界只因有你

    主にfail2ban (http://www.fail2ban.org/)を使用した解決策も提供します。 failed2ban はログをスキャンすることで iptable の使用を禁止するかどうかを非同期に決定するため、元のシステムへの影響は比較的小さく、nginx の再設定は必要ありません。ただし、アクセス数が多すぎるかどうかはわかりません。

    まず/etc/fail2ban/jail.conf

    を追加します リーリー

    次に/etc/fail2ban/filter.d/nginx-bansniffer.confを見つけて、404の判定を

    に変更します リーリー

    最後にfail2banサービスを再起動します。上記の設定では、120 秒ごとに 120 回以上のアクセスがある IP アドレスを 1 時間禁止します。

    いいねを押す+0
      小葫芦

      1. ユーザーエージェントに基づいてスパイダークローリングを防止します

      リーリー

      2. オペレーティング システムのファイアウォールにルールを作成して、同じ IP への同時接続の数を制限します
      Linux での iptables を例にとると、次の設定では、1 分間に同じ IP に対して最大 15 個の接続の確立が制限され、超過した接続は iptables によって破棄され、nginx に到達しません。 リーリー

      3. 各 IP のアクセス頻度をカウントする bash スクリプトを作成し、設定した上限を超えた IP を自動的にブラックリストに追加します

      ブラックリスト内の IP については、スクリプトを使用して iptables または nginx.conf に自動的に書き込み、数分間ブロックするか、許可されるアクセス頻度を減らします

      Yahoo にいたときは、外部からの WEB サービスの悪用を防ぐためにルールをカスタマイズできた、YDoD (Yahoo! 国防総省) という Apache モジュールを使用していました。探し回ってもオープンソースが見つかりませんでした。しかし、原理は上で述べたことと似ています。

      いいねを押す+0
        PHPzhong

        ngx_lua_wafを試してみる
        https://github.com/loveshell/ngx_lua_waf
        機能:

        リーリー
        いいねを押す+0
          最新のダウンロード
          詳細>
          ウェブエフェクト
          公式サイト
          サイト素材
          フロントエンドテンプレート
          私たちについて 免責事項 Sitemap
          PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!