🚀 サイト構築が難しい?手取り足取りご案内します——「WordPressサイト構築伴走」サービスを詳しく見る →

宝塔パネル WordPress セキュリティ強化チュートリアル:Nginx ルールで悪意のあるスキャンと脆弱性検出をブロック

もしあなたが宝塔パネルWordPressサイトを構築している場合、サイトにほとんどトラフィックがないのに頻繁にカードが開かない場合、十中八九、サイトがボットによって悪意を持ってスキャンされています。この記事では、Nginxルールを追加してこれらの悪意のあるリクエストをブロックする方法を説明します。

症状

新しいサーバーにWordPressサイトを1つインストールしただけで、ほとんどトラフィックがないのに、サイトが頻繁にカードが開かず、サーバーモニタリングを確認すると、CPU使用率が上がったり下がったりしているのがわかります。以下の図のようになります。

宝塔面板CPU使用率

サイトのログにアクセスすると、同じ時間に同じIPまたは近いIPが、サイト上に存在しないファイルやディレクトリに一度に複数アクセスしているのがわかります。以下の図のようになります。

宝塔网站访问日志
宝塔面板网站访问日志

通常、サイトにこれらの脆弱性が含まれていなければ、すべて404エラーが返され、サーバーのパフォーマンスへの影響は最小限です。

重要なのは、これらのボットは無作法で、通常1秒間に複数回、1分間に数十回から数百回リクエストを送信するため、一般的なWebサイトのサーバーではこのような高頻度のアクセスに耐えられず、CPUリソースが100%使用されてサイトがカード状態になり開かなくなります。

対処方法

これらの問題を解決するには、CloudFlareのファイアウォールやサーバーのfail2banを使用して自動的にブロックすることができますが、これらの設定は初心者には少し複雑です。そのため、より簡単な方法として、サイトのnginx設定ファイルを変更して対応します。

宝塔パネルの管理画面で、サイト、サイト設定をクリックし、サイト設定を選択し、SSL証明書設定の最後に以下のコードを挿入します。

    # ==================================================
    # 自定义安全拦截:在进入 PHP 处理之前拦截恶意扫描
    # ==================================================
    # 拦截敏感文件和框架路径
    location ~* ^/(\.env|\.git|actuator|telescope|_ignition|horizon) {
        return 444;
    }

    # 禁止在 uploads 目录执行 PHP
    location ~* /wp-content/uploads/.*\.php$ {
        deny all;
    }

    # 拦截常见 WebShell
    location ~* (alfa|wso|shell|gecko|leaf|cmd)\.php$ {
        return 444;
    }
    # ==================================================
宝塔面板网站配置添加拦截规则

また、xmlrpc.phpファイルも頻繁に攻撃されるため、追加することを検討してもよいでしょう。

    # 彻底禁用 xmlrpc.php
    location = /xmlrpc.php {
        deny all;
    }

設定を保存し、エラーメッセージが表示されなければ設定は有効です。その後、サーバーのリソース使用状況を確認します。正常であれば、CPUが100%まで急上昇することはほとんどなくなります。

注意:サーバーがボットにスキャンされたり攻撃されたりしていないのにCPU使用率が高い場合、通常はサイト自体に問題があります。例えば、プラグインやテーマの互換性の問題でリソース使用率が高くなっている可能性があります。この場合は、プラグインを無効にしたりテーマを変更したりして、問題の箇所を特定してください。

ルールのカスタマイズ

各サイトで遭遇するスキャン状況は異なるため、上記の設定が必ずしもあなたのサイトで発生しているボットのスキャンディレクトリやファイルに一致するとは限りません(設定にはphpファイルのブロックルールは含まれていません)。

では、独自のルールをカスタマイズするにはどうすればよいでしょうか?

簡単です。サイトのアクセスログをAIに送信して分析してもらい、ルールを設計した後、宝塔のサイト設定ファイルに追加すれば完了です。

どうしても解決できない場合は、Naibaの有料サポートに連絡して、調査とカスタムブロックルールの作成を依頼できます。

WordPressのセキュリティプラグインでこれらのスキャンをブロックできますか?

残念ながら、WordPressのセキュリティプラグインでこれらのスキャンを完全にブロックすることはできません。通常のWebサイトのリクエストフローは次のとおりです。

用户请求
↓
Nginx
↓
PHP
↓
WordPress

GET /.env のようなリクエストは、Nginxレベルで直接404エラーとなり、WordPressには到達しません。

一方、存在しないPHPファイルへのリクエストはWordPressに到達しますが、セキュリティプラグインで認識・ブロックできます。ただし、1回のリクエストで一定のPHPリソースを消費するため、複数回のリクエストでリソースが枯渇し、サーバーが遅延する可能性があります。

そのため、Nginxレベルでのブロックは、WordPressのセキュリティプラグインによるブロックよりもはるかに効果的です。

そして、Nginxでブロックしても効果がない場合は、ファイアウォールを追加して自動的にブロックすることを検討する必要があります。一般的に、ほとんどのWebサイトではNginxルールによってサーバーリソースを削減できます。

以上が、Naibaが皆さんに共有する宝塔パネルでのNginxによる悪意のあるリクエストブロックの内容です。不明な点があれば、Naibaの微信(WeChat)に追加してご相談ください。

🚀 チュートリアルを見てもまだ迷っていますか?私が手取り足取りご案内しましょう

「WordPressサイト構築伴走」——ドメイン選び、ホスティング購入から、テーマのインストール、公開、投稿まで、すべてのステップで私が伴走します。遠回りせず、目標に直行できます。

👉 サイト構築伴走サービスを詳しく見る
🔒

コメントは終了しました

この記事のコメント機能は終了しています。ご質問がある場合は、他の方法でお問い合わせください。

×
二维码

QRコードをスキャンしてフォロー

AIサイト構築アシスタント

🤖
こんにちは!私はNaibaサイト構築ノートのAIアシスタントです。何かお手伝いできることはありますか?
クイックコンサルティング: