WordPressでwp-login.phpファイルへのIPアクセスを制限する方法

WordPressでwp-login.phpファイルへのアクセスをIPアドレスで制限したいですか?

WordPressのログインページは、DDoS攻撃やハッカーによってウェブサイトへのアクセスを試みられることがよくあります。特定のIPアドレスへのアクセスを制限することで、そのような試みを効果的にブロックできます。

この記事では、WordPressのwp-login.phpファイルへのIPアクセスを簡単に制限する方法を説明します。

WordPress の wp-login ファイルへの IP によるアクセスを制限する方法

wp-login.phpへのアクセスをIPアドレスで制限する理由

WordPressウェブサイトのログインページ(通常はwp-login.php)は、ユーザーがサイトにログインするためにアクセスする場所です。

ウェブサイトの所有者として、WordPressの管理画面にアクセスでき、ウェブサイトのメンテナンス、コンテンツの作成、ウェブサイトの管理を行うことができます。

ただし、インターネット上での一般的なブルートフォース攻撃は、ウェブサイトへのアクセスを試みるために wp-login.php ページを標的とすることが知られています。たとえ侵入に失敗したとしても、ウェブサイトの速度を低下させたり、クラッシュさせたりする可能性があります。

この状況に対処する一つの方法は、攻撃元となっているIPアドレスをブロックすることです(記事の後半で説明します)。

IPアドレスは、インターネット上の特定のコンピュータを識別する電話番号のようなものです。ハッカーはソフトウェアを使用してIPアドレスを変更できます。

ただし、より高度な攻撃では、より多くのIPアドレスプールが使用され、それらをすべてブロックすることはできない場合があります。

その場合、あなた自身やウェブサイトの他のユーザーが使用する特定の IP アドレスへのアクセスを制限できます。

それでは、3つの異なる方法(クラウドセキュリティファイアウォールを含む)を使用して、特定のIPアドレスからのwp-login.phpファイルへのアクセスを簡単に制限する方法を見てみましょう。

1. IPアドレスでWordPressログインページへのアクセスを制限する

この方法では、.htaccess ファイルにコードを追加する必要があります。

.htaccessファイルは、ウェブサイトのルートフォルダにある特別なサーバー設定ファイルであり、FTPまたはWordPressホスティングコントロールパネルのファイルマネージャーアプリを使用してアクセスできます。

FTPクライアントを使用してWordPressサイトに接続し、以下のコードを先頭に追加して.htaccessファイルを編集するだけです。

<Files wp-login.php>
        order deny,allow
        Deny from all
 
# whitelist Your own IP address
allow from xx.xxx.xx.xx
 
#whitelist some other user's IP Address
allow from xx.xxx.xx.xx
 
</Files>

XXをあなた自身のIPアドレスに置き換えることを忘れないでください。SupportAllyページにアクセスすると、簡単にIPアドレスを見つけることができます。

SupportAlly

ウェブサイトにログインする必要がある他のユーザーがいる場合は、その IP アドレスを提供するように依頼できます。それらを .htaccess ファイルに追加することもできます。

上記のコードの別の例を以下に示します。

<Files wp-login.php>
        order deny,allow
        Deny from all
 
# Whitelist John as website administrator
allow from 35.199.128.0
 
#Whitelist Tina as Editor 
allow from 108.59.80.0

# Whitelist Ali as moderator
allow from 216.239.32.0
 
</Files>

これで、これらの IP アドレスを持つユーザーは wp-login.php ファイルを表示してウェブサイトにログインできるようになります。他のユーザーには次のエラーメッセージが表示されます。

禁止エラー

2. ウェブサイトへのアクセスを特定のIPアドレスからブロックする

この方法は最初の方法とは全く逆です。

特定のIPアドレスにWordPressログインページへのアクセスを制限する代わりに、ウェブサイトを攻撃するために使用されたIPアドレスをブロックできるようになります。

この方法は、WordPressメンバーシップサイト、eコマースストア、または複数のユーザーがアカウントにアクセスするためにログインする必要があるその他のウェブサイトに特に役立ちます。

この方法の欠点は、ハッカーがIPアドレスを変更してウェブサイトへの攻撃を続けることができることです。

幸いなことに、一般的なWordPressハッキングの試みの多くは固定されたIPアドレスセットを使用しているため、この方法はほとんどの場合効果的です。

ステップ1:ブロックしたい問題のIPアドレスを見つける

まず、ウェブサイトを攻撃するために使用された IP アドレスを見つける必要があります。

悪意のあるIPアドレスを見つける最も簡単な方法は、サーバーログを確認することです。ホスティングアカウントのコントロールパネルにアクセスし、「Raw Access」ログアイコンをクリックするだけです。

生のアクセスログ

次のページで、ドメイン名をクリックしてアクセスログをダウンロードします。これにより、gz拡張子のファイルがダウンロードされます。

ファイルを抽出して、NotepadやTextEditなどのテキストエディタで開く必要があります。

ここから、wp-login.phpページに繰り返しアクセスしているIPアドレスを見つけることができます。

ウェブサイトを攻撃しているIPアドレスの特定

IPアドレスをコピーして、コンピュータ上の別のテキストファイルに貼り付けます。

ステップ2. 不審なIPアドレスのブロック

次に、WordPressホスティングコントロールパネルにログインし、「IPブロッカー」アイコンをクリックします。

ホスティングコントロールパネルの IP ブロッカーアプリ

次の画面で、ブロックしたいIPアドレスをコピー&ペーストし、「追加」ボタンをクリックするだけです。

IPアドレスをブロックする

他にブロックしたい疑わしいIPアドレスがあれば、このプロセスを繰り返してください。

これで完了です!不正なIPアドレスがあなたのウェブサイトにアクセスするのを完全にブロックしました。

後で、これらのIPアドレスのいずれかのブロックを解除する必要がある場合は、IPブロッカーアプリから簡単に行うことができます。

IPアドレスのブロック解除

3. ウェブサイトファイアウォールでWordPressログインを保護する

ウェブサイトの管理者として、WordPressログインページにアクセスできるIPアドレスを管理するのに多くの時間を費やしたくない場合があります。

WordPressのログインページを保護する最も簡単な方法は、Sucuriを使用することです。これは、包括的なWordPressセキュリティプラグインが付属する最高のWordPressファイアウォールです。

Sucuriのウェブサイトファイアウォールは、不正なIPアドレスがWordPressの重要なコアファイルにアクセスするのを、ウェブサイトに到達する前に自動的にフィルタリングします。

ウェブサイトファイアウォールが攻撃をブロックする方法

この方法は、疑わしいアクティビティがサーバーの速度低下を引き起こすのをブロックするため、WordPressのパフォーマンスと速度も向上させます。

その上、Sucuriには組み込みのCDNネットワークも付属しています。これにより、画像、スタイルシート、JavaScriptなどの静的ファイルが、ユーザーに近いサーバーから自動的に配信されます。

WordPressログインページにアクセスできないユーザーのIPアドレスを簡単にホワイトリストに登録できます。

IPアドレスのホワイトリスト登録

代替案: MalCare または Cloudflare無料CDN

この記事が、wp-login.phpファイルへのIPアドレスによるアクセスを制限する方法を学ぶのに役立ったことを願っています。また、WordPressセキュリティ完全ガイドを参照するか、WordPress管理エリアの保護に関する追加のヒントを参照することもできます。

この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

27 CommentsLeave a Reply

  1. WordPressにおけるすべては、ウェブサイトのセキュリティにかかっています。それを軽視すると、時間の経過とともに深刻な問題につながる可能性があります。これらのディレクティブは完璧に機能し、この種のセキュリティの実装にはわずかな時間しかかかりません。正しいディレクティブを.htaccessに追加するだけでなく、手動で追加されたエントリに適切にコメントを付けるようにユーザーに最初から教えるという、あなたの徹底ぶりに感謝します。これにより、サイトを引き継いだ人がこれらのディレクティブを理解するのに役立ちます。このように細心の注意を払い、.htaccessでの適切なコメント付けに時間をかけるチュートリアルはほとんどありません。

  2. ディレクティブをウェブサイトにコピーし、IPアドレスを調整して.htaccessファイルに配置しました。現在.htaccessに設定されている両方のIPアドレスで完璧に機能します。

    • WooCommerceのような目的で複数のユーザーがサイトにログインしている場合、これは使用しないでしょう。通常はユーザー数が限られているサイト向けです。

      管理者

    • 正しい IP を設定したことを確認してください。VPN や同様のものを使用している場合、それが問題の原因である可能性があります。

      管理者

  3. 上記のコードを使用しましたが、サイトのすべてのページに適用されてしまうようで、例えば私のホームページにも「禁止」と表示されます。

    • まず、ホスティングプロバイダーに確認して、向こう側で競合する設定がないことを確認することをお勧めします。

      管理者

  4. 皆さん、良いですね。
    前回のセクションで述べられたように、私のモバイル接続には動的IPがあります。ブロードバンドIPをホワイトリストに登録しましたが、外出先からのアクセス中に問題が発生しています。
    これを解決するのに役立つプラグインはありますか?

    • また、wp-login.phpへのこのようなリクエストはホームページにリダイレクトされています。これは正常ですか?

  5. うーん、あなたのブログが私の最初のコメント(とても長かった)を食べてしまったようです。だから、私が書いたことを要約して、あなたのブログを本当に楽しんでいると言います。私もブログブロガーを目指していますが、まだこの分野では新人です。初心者ブロガーに役立つヒントはありますか?本当に感謝します。

  6. FTPアクセスを特定のIPのみに制限しました。
    これで、WordPressから直接WordPressをインストールしたり更新したりできなくなりました…
    どうすればよいですか?

  7. 素晴らしいヒントで、私にも効果がありました。
    しかし、wp-loginを404エラーにリダイレクトすることはできますか?
    もしできるなら、上記のコードにどのようなコードを追加すればよいですか?

    ありがとう

  8. テキストブックに比べて、ネットでどんな情報でも見つけるのはとても簡単です。この投稿もこのウェブサイトで見つけました。

  9. 複数の IP を追加したい場合は、次のようにできます。

    1. 部分的な IP を使用できます。

    145.50.39 から許可

    これにより、145.50.39.0から145.50.39.255までのIPが許可されます

    2. ネットマスクまたはCIDRを使用できます。

    145.50.39.0/255.255.255.224 から許可

    または

    145.50.39.0/27 から許可

    これにより、145.50.39.0から145.50.39.31までのIPからのアクセスが可能になります。

  10. .htaccessにコードを追加しましたが、ユーザーがログアウトするとエラー403が表示されます。
    ログアウトをクリックすると、リンクは /wp-login.php?action=logout になります。

    とにかく、これを修正する方法はありますか?

  11. 素晴らしいヒントです!しかし、問題があります。管理者のログインは他の IP からロックされますが、登録ユーザーがサイトからサインアウトした場合もコードによって制限されます。つまり、ユーザーがサインアウトをクリックすると、禁止メッセージが表示されます。どうすれば解決できますか?

  12. 過剰かつ不正なログイン試行から保護するための迅速なガイドラインをありがとうございます。実際、「better wp security」という無料プラグインがあり、ログイン試行、wp.configファイル、.htaccessファイルなど、ほとんどのセキュリティ問題を管理できます。試してみる価値はあると思います。

  13. この素晴らしいヒントをありがとうございます!でも少し混乱しています。このスニペットをルートの.htaccessファイルに貼り付けるべきですか、それともwordpress/.htaccessファイルに貼り付けるべきですか?

    ありがとう(ところで、wpbeginner.comが大好きです。これからも頑張ってください!)

  14. 動的IPアドレスの場合、これは面倒な場合があります。Apache Protectを設定することもできますが、それは少し複雑です。#whitelist行は、どのIPがどれであるかを知らせるためだけのものです。

    管理者

    • プラグイン(JetPackなど)がアクセスを制限した場合に問題が発生する可能性があることに言及する必要があります。

返信を残す

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。