IPアドレスでWordPress管理画面へのアクセスを制限する方法

ほとんどの人は、WordPress の管理エリアが手遅れになるまで、そのセキュリティについて考えません。私たちは、WordPress の管理エリアが丸裸のまま放置されていた攻撃からユーザーを回復させるのを支援してきました。

そのため、管理エリアへのアクセスはIPで制限することをお勧めします。これは、クライアントサイトで、1人または2人のみが既知のネットワークからログインする必要がある場合に私たちが行った手法です。

このチュートリアルでは、.htaccess ファイルをすばやく編集して WordPress 管理へのアクセスをブロックする方法を説明します。これは、一般的な脅威から WordPress ウェブサイトを保護するための、シンプルでありながら非常に効果的な方法です。

IPアドレスでWordPress管理画面へのアクセスを制限する方法

WordPress管理画面へのアクセスをIPアドレスで制限する理由

WordPressウェブサイトを実行している場合、ウェブサイトのセキュリティを真剣に考える必要があります。WordPressコアソフトウェアは非常に安全ですが、ハッカーやブルートフォース攻撃から身を守るためにできることは他にもあります。

ハッカーはあなたのウェブサイトをダウンさせ、収益と評判を損なう可能性があります。データを盗んだり、ウェブサイトの訪問者にマルウェアを配布したり、Google などによってドメインがブラックリストに登録されたりする可能性があります。

ハッカーをブロックし、WordPressのセキュリティを向上させるスマートな方法の1つは、WordPress管理画面を不正アクセスから保護することです。

管理エリアへのアクセスが必要なのがあなた自身または少数の信頼できるユーザーだけの場合、wp-admin と WordPress ログインページへのアクセスをチームの IP アドレスに制限するのが良い方法です。

各チームメンバーは、各場所の特定のIPアドレスを使用してWordPressサイトに接続します。他のすべてのIPアドレスへのアクセスをブロックすると、ハッカーがユーザー名とパスワードを発見しても、ウェブサイトにアクセスできなくなります。

代わりに、彼らは「Forbidden. You don’t have permission to access this resource.」(禁止。このリソースにアクセスする権限がありません。)というエラーメッセージが表示されます。

WordPress管理画面へのアクセスをIPアドレスで制限する方法を見てみましょう。

IPアドレスでWordPress管理画面へのアクセスを制限する方法

まず最初に行うべきことは、WordPressの管理エリアにアクセスする必要があるチームメンバー全員が使用するIPアドレスのリストを作成することです。

チームメンバーに、通常作業する場所のIPアドレスを送ってもらう必要があります。複数の場所で作業する人がいる場合は、それぞれのIPアドレスを収集する必要があります。

IPアドレスもリストに追加する必要があります。

IPアドレスの見つけ方は?

IPアドレスを見つける最も簡単な方法は、SupportAllyWhatisMyIPAddress.comのようなサイトにアクセスすることです。

IPアドレスを見つける

これらのウェブサイトであなたのIPアドレスを確認できます。それをリストに追加してください。チームメンバーにもこれらのサイトを訪問してもらい、IPアドレスを教えてもらうこともできます。

リストを作成したら、IPアドレスによるアクセス制限に進むことができます。どちらのアプローチがご自身に適しているかを選択できるよう、2つの方法をご紹介します。

🚨 重要なお知らせ: 次のセクションでは、重要なファイルを変更して管理者のアクセスを制限する方法を示します。これは、わずかなエラーでもサイトがクラッシュしたり、機能に影響を与えたりする可能性があるため、上級ユーザーにとっても危険を伴います。そのため、常に最初にバックアップを作成することをお勧めします。

1. .htaccess ファイルを使用して IP アドレスでアクセスを制限する(推奨)

この方法では、.htaccessファイルを使用します。これは、さまざまな設定を行うために編集できるサーバーレベルの設定ファイルです。

これはWordPressサイトがロードされる前に実行されるため、そこにセキュリティ指示を追加することで、より優れた保護が得られます。

FTPクライアントまたはホスティングプロバイダーのファイルマネージャーアプリを使用する必要があります。FTPを使用したことがない場合は、WordPressにファイルをアップロードするためにFTPを使用する方法に関するガイドをご覧ください。

ソフトウェアを使用して、ウェブサイトの /wp-admin/ フォルダに移動する必要があります。そこに到達したら、.htaccess ファイルを探してください。これは隠しファイルなので、表示されない場合は、ソフトウェアで「隠しファイルを表示」オプションを有効にする必要があるかもしれません。

wp-adminに移動して.htaccessを探す

そのファイルがフォルダに存在しない場合は、新しいファイルを作成し、/wp-admin/フォルダに.htaccessという名前で保存してください。

警告 ⚠️: ルートの.htaccessファイルを編集しないでください。編集すると、ウェブサイトのフロントエンドに訪問者がアクセスできなくなります!/wp-admin/.htaccessを編集していることを確認してください。

まず、バックアップとしてファイルのコピーをコンピューターにダウンロードしてください。

これが完了したら、.htaccess を編集し、次のコードをファイルに貼り付ける必要があります。

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<Limit GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
# whitelist Amanda's IP address
allow from xx.xx.xx.xxx
# whitelist Muhammad's IP address
allow from xx.xx.xx.xxx
# whitelist Work IP address
allow from xx.xx.xx.xxx
</LIMIT>

ファイルを編集して、チームメンバーの名前を自分のものに合わせて変更し、以前に収集した IP アドレスを xx.xx.xx.xxx と表示されている場所に貼り付けて置き換えてください。

ファイルを保存すると、それらの IP アドレスのみが WordPress 管理画面にアクセスできるようになります。

IPアドレスが変更されたり、新しい場所からウェブサイトにアクセスしようとしたりすると、WordPress管理画面からロックアウトされることを忘れないでください。新しいIPアドレスを/wp-admin/.htaccess ファイルに追加する必要があります。

2. wp-config.php を使用したアクセス制限(代替方法)

サーバーが .htaccess ルールをサポートしていない場合、または NGINX や LiteSpeed のような Apache 以外のサーバーで WordPress を実行している場合は、wp-config.php ファイルを使用するのが良い代替手段です。

wp-config.php の編集は、サーバーレベルのエラーを引き起こす可能性が低く、必要に応じて簡単に元に戻せるため、.htaccess を編集するよりも安全です。とはいえ、軽微なエラーでもサイトがクラッシュする可能性があるため、慎重に変更する必要があります。

wp-config.php ファイルは WordPress の起動プロセス中に早期に読み込まれるため、制限を適用するのに安全な場所となります。これは、特に異なるサーバー環境でサイトを管理する開発者や上級ユーザーに役立ちます。

この方法を使用するには、FTPクライアントまたはホスティングコントロールパネルのファイルマネージャーを使用してwp-config.phpファイルを開きます。次に、/* That's all, stop editing! Happy blogging. */という行の直前に、以下のコードを追加します。

if (strpos($_SERVER['REQUEST_URI'], '/wp-admin') !== false || 
    strpos($_SERVER['REQUEST_URI'], '/wp-login.php') !== false) {
    if ($_SERVER['REMOTE_ADDR'] !== '123.456.78.90') {
        header('HTTP/1.0 403 Forbidden');
        exit;
    }
}

123.456.78.90 を現在のIPアドレスに置き換えてください。このコードは、許可されたIP以外からのWordPress管理画面およびログインページへのすべてのアクセスをブロックします。

複数のIPアドレスの追加:

他のチームメンバーを追加するには、別のコードを使用する必要があります。このコードでは、カンマで区切られた異なるチームメンバーのIPアドレスの配列を使用します。次のようになります。

$allowed_ips = array('123.456.789.000', '987.654.321.000', '200.200.255.168'); // Add more IPs as necessary
if ( !in_array($_SERVER['REMOTE_ADDR'], $allowed_ips) ) {
    wp_die('Unauthorized access. Your IP address is not permitted.');
}

注意⚠️:IPアドレスが頻繁に変更される場合や、複数のネットワークから作業する場合は、この方法でロックアウトされる可能性があります。wp-config.phpを変更する前に、必ずバックアップを作成してください。

動的なIPアドレスまたは複数のチームメンバーの処理

IPアドレスが頻繁に変更される場合や、チームが異なるネットワークから作業する場合、.htaccessまたはwp-config.phpでのIPベースの制限は実用的ではない場合があります。これらの方法は、アクセスが固定IPまたは場所に限定されている場合に最も効果的です。

より柔軟なセキュリティのために、以下の代替アプローチを使用できます。

1. 2要素認証(2FA)を追加する

2要素認証を追加すると、ユーザーはログイン時にパスワードと携帯電話からのワンタイムコードの両方を入力する必要があります。これにより、攻撃者がパスワードを知っていてもサイトに侵入するのを防ぐことができます。

詳細については、WordPress で 2 要素認証を追加する方法に関するステップバイステップ ガイドをご覧ください。

ログイン前に認証コードを入力する必要があります

2. 管理フォルダのパスワード保護

このアプローチは、ユーザーがWordPressのログイン画面に到達する前に、さらにセキュリティレイヤーを追加します。誰かが/wp-admin/にアクセスしようとすると、まずあなたが設定したサーバーレベルのユーザー名とパスワードを入力する必要があります。

パスワードで保護された WordPress 管理エリア

これは、ボットや攻撃者が WordPress のログイン認証情報を推測しようとするのをブロックするのに役立ちます。詳細については、WordPress 管理フォルダにパスワード保護をかける方法に関するチュートリアルを参照してください。

よくある質問

IPアドレスが変更された場合はどうなりますか?

.htaccess または wp-config.php で IP 制限を使用している場合、IP アドレスが変更されると、管理画面にアクセスできなくなります。アクセスを回復するには、FTP またはホスティングコントロールパネル経由で許可された IP アドレスを更新する必要があります。

複数の IP アドレスからのアクセスを許可できますか?

はい。.htaccess または wp-config.php のルールに複数の IP アドレスをリストできます。使用している方法に応じて、それぞれを個別の Allow from 行または if 条件として追加する必要があります。

モバイルホットスポットやVPNを使用している場合はどうなりますか?

モバイルホットスポットやVPNは、頻繁に変更される可能性のある動的IPを使用することがよくあります。この場合、より柔軟な保護のために、二要素認証を有効にするか、管理フォルダをパスワードで保護することをお勧めします。

WordPressのセキュリティに関するヒント

管理エリアへのアクセスを制限するのは賢明な判断ですが、それはパズルのほんの一部にすぎません。サイトのセキュリティを強化し、.htaccess の機能について学ぶための、さらに役立つチュートリアルを以下に示します。

このチュートリアルで、IPアドレスでWordPress管理画面へのアクセスを制限する方法を学べたことを願っています。また、WordPress管理画面で著者に自分の投稿のみを制限する方法や、WordPress管理画面からロックアウトされた場合の対処法に関するWordPressチュートリアルもご覧ください。

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

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

究極のWordPressツールキット

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

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

48 CommentsLeave a Reply

  1. これは役立ちますが、WordPress ウェブサイトの動的 IP アドレスと静的 IP アドレスについて知りたいだけです。ほとんどの場合、自宅のネットワークで WordPress を管理している場合、IP アドレスを設定するのに推奨される方法はありますか?また、セキュリティプラグインを使用すると IP アドレスが変更されるのはなぜですか?

  2. htaccessファイルを使用して、管理エリアへのアクセスをネットワーク全体から許可することは可能ですか?つまり、個々のIPアドレスからだけでなく、1つのネットワーク全体の範囲からアクセスを許可することです。すべてのIPアドレスをリストアップするのは複雑なので、ネットワーク全体を設定する方がはるかに簡単ですが、htaccessでこれが可能かどうかはわかりません。

    • すべての IP アドレスが 1 つのネットワーク上にある場合、部分的な IP アドレスを使用できますが、ユーザーごとに完全な IP アドレスを使用することをお勧めします。

      管理者

      • ご確認とアドバイスありがとうございます。複数の IP アドレスが関わるため、メンテナンスが複雑になるかどうかはわかりませんが、それでも、お勧めいただき感謝しており、アドバイスは正当なものだと信じているため、真剣に検討します。ご覧のとおり、専門家に相談することは時に良いことです。

    • ファイルが表示されない場合は、FTP またはファイルマネージャーで隠しファイルを表示するように設定する必要があります。

      管理者

    • IP アドレスを見つける方法は複数ありますが、簡単な方法の 1 つは supportally.com のようなサイトを使用することです。

      管理者

  3. モジュール authz_groupfile を有効にし
    「sudo a2enmod authz_groupfile」
    そしてapacheを再起動する必要があります

  4. 私には機能しません。IP をホワイトリストに登録しても、コードが管理者のアクセスを制限しています。

  5. この行の後、競合を防ぐために PHP ファイルのアクセス許可の条件を指定する必要があります。

    すべて許可

  6. .htaccessによるパスワード保護の方法を試しました。

    うまくいきましたが、WooCommerceを使用しているサイトで試したところ、顧客がログインできなくなりました。

    ログインが必要なサイトでは機能しないことに誰も言及していないように思われるので、そう言っているだけです!

  7. こんにちは、チュートリアルありがとうございます。残念ながら、含めた唯一の IP アドレスである自分の IP アドレスへのアクセスを拒否しているため、この .htaccess ファイルを正しく機能させることができませんでした… コードは正確にコピーし、IP も正しく入力したと確信しています。.htaccess ファイルは /wp-admin/.htaccess に保存されていました。

    何か見落としていますか?よろしくお願いします

    • ミゲルさん、こんにちは。

      あなたのIPアドレスの代わりに、127.0.0.1を追加してみてください。

      それはあなたのローカルホストのIPアドレスです。IPアドレスだけではうまくいかない場合は、上記のコードの前に次の行を追加してください:

      ローカルを要求

      管理者

  8. 皆さん、こんにちは。

    この記事で説明されているように、.htaccess で wp-admin をブロックしました。しかし、管理者の ajax ファイルも公開サイトで制限されているという問題があります。

    私のWordPressテーマは、admin ajaxの機能を多く使用しており、wp-adminフォルダにIP制限アクセスを設定したため、すべてのIPからアクセスできなくなっています。

    これに対する解決策を見つけた人はいますか?もしあれば共有してください。

    よろしくお願いいたします
    Emaan

  9. こんにちは、これは非常に役立つ情報ですね。もしよろしければ、私を助けていただけますか?IPアドレスをホワイトリストに登録する代わりに、.htaccessファイルで特定の国からのアクセスを許可することはできますか?助けていただけると幸いです。どうもありがとうございます。

  10. こんにちは。これは機能します。他のどのコンピューターからもログインが「禁止」されていることを確認しました。ログインパネルさえ表示できません。しかし、毎日、さまざまな IP アドレスから約 24 件のログイン失敗試行があります。これを回避する方法について何かアイデアはありますか?これは一種のブルートフォース攻撃ですか?よろしくお願いします、スコット。

      • ありがとうございます。あなたのサイトは非常に役立ちました。もしよろしければ、もう一つ質問に答えていただけますか?あなたのチュートリアルに従いましたが、うまくいきました。htaccessで管理フォルダへのアクセスをブロックし、さらにパスワードを追加しました。テストしたところ、たとえパスワードが破られたとしても(破られていませんが)、私のIPアドレス以外のどのIPアドレスからもフォルダにアクセスできないことが確認できました。しかし、1日に約12回のログイン失敗が続いています。何が起こっているのか、どこを修正すればよいのか、何かアイデアはありますか?一度ハッキングされましたが、アップロードフォルダのファイルは削除しました。

  11. そして、WordPress の管理者のみにアクセスを許可するにはどうすればよいですか?IPアドレスなしでどのようなコードを書けばよいですか?管理者関連の情報を取得する一般的な関数を知りたいです。なぜなら、他のユーザーからのプラグインのアップロードを制限する必要があるからです。そして、このプラグインを使用する人は誰でも、その管理者の情報を取得して、他の人からコンテンツを制限し、ウェブサイトの管理者のみに許可する必要があります。

  12. ありがとうございます、先生。ローカルホストシステムでテストしましたが、非常によく機能しました。

  13. これを試しましたが(以前にwp-adminディレクトリにパスワード保護を正常に設定し、あなたの他の記事に従ってリダイレクトエラーを修正した後)、その後「WordPress Admin Access Control」のユーザー名とパスワードを求めるポップアップが表示されます。この新しいポップアップには、どのユーザー名とパスワードを使用すればよいですか?WordPressの管理ログインもwp-adminディレクトリのログインも、どちらも機能しません。
    ありがとうございます!

  14. I have a big problem :(

    I did what you said about creating the .htaccess and putting in the code snippet. It didn’t work so I deleted the .htaccess file and now I can’t login to my dashboard! It’s just a white screen :( Please help!!!

    ありがとう

      • 私がやったことは、wp-adminフォルダにファイルを作成し、うまくいかなかったのでwp-adminフォルダから削除しただけです。何が起こったのかはわかりませんが、奇妙な紆余曲折と多くの手探りの後、ログイン.phpファイルの先頭にを追加することで問題を修正することができました。何が間違っていたのか、なぜ私の行ったことがそれを修正したのかはまだわかりませんが、少なくとも修正されました。気が向いたらもう一度試してみるかもしれません。

  15. 最初はパスワード保護を機能させることができませんでした

    https://www.wpbeginner.com/wp-tutorials/how-to-password-protect-your-wordpress-admin-wp-admin-directory

    少なくともこれは機能します。

    wp-adminページで、自分のIPアドレスではない間違ったIPアドレスを入力すると無限リダイレクトが発生するのは興味深いですね。
    無限リダイレクトは、認証の問題に起因しているようです。

  16. WPBさん、こんにちは。パキスタンでは機能しないと思います。なぜなら、DSLモデムをリセットまたはオフにするたびにIPアドレスが自動的に変更されるからです。他に何かヒントがあれば返信してください。
    ありがとうございます

  17. こんにちは、動的IP(静的IPではない)で.htaccessを作成する方法
    私のIPは常に xxx.xxx.xxx.12 xxx.xxx.xxx.453 xxx.xxx.xxx.076 のように変わります

    ヘルプをお願いします…

      • 動的なIPアドレスをお持ちの場合でも、.htaccessのホワイトリストを使用してWordPressのインストールを強化できます。/24または/16の範囲を使用してIPアドレスの範囲をホワイトリストに登録できます。これにより、常に許可したいIPを知っている場合よりもアクセスが増えますが、それでもインターネット全体からのアクセスはほぼ禁止されます。

        クラスCサブネット全体(256個のIP)を許可するには、allow from行の末尾に/24を追加するか、65,536個の範囲全体を許可するには/16を追加します。つまり、

        xxx.xxx.xxx.0/24から許可

        xxx.xxx.xxx.0 – xxx.xxx.xxx.255からのIPアドレスへのアクセスを許可します。そして

        xxx.xxx.0.0/16 から許可

        xxx.xxx.0.0 ~ xxx.xxx.255.255 の IP アドレスからのアクセスを許可します

  18. ルートサイトの .htaccess ファイルは操作しないように言われましたが、それはなぜですか? /wp-admin フォルダへのアクセスを制限したいだけだからですか?

    ということは…WordPressサイトを外部でホストし、社内リソースとして使用して、会社のIPアドレスを使用している人だけがアクセスできるようにしたい場合…ルートフォルダの.htaccessフォルダを編集して、自社ドメインからのIPアドレスのみを許可するようにすれば…これは、/wp-adminの修正と同じように機能しますが、サイト全体に対して機能するということですか?

    • はい、カイルさん。このコードをルートファイルに配置しないように言った理由は、そうするとこれらのIPのみにサイトアクセスが制限されるためです。しかし、会社のスタッフのみが職場からアクセスできるサイトを作成しようとしている場合は、ルートフォルダに.htaccessファイルを配置したいでしょう。

      管理者

    • 他の基準に基づいてアクセスを制限できますか?例えば、特定のフォルダには私のラップトップからのみアクセスできるようにしたいのですが。どこからでもアクセスできるため、インターネットアクセスが DHCP に基づくため IP を指定するのは難しいです。マシンごとに一意の識別子や、基準として使用できるものはありますか?

返信を残す

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