WordPressでwp-login.phpファイルへのアクセスをIPアドレスで制限したいですか?
WordPressのログインページは、DDoS攻撃やハッカーによってウェブサイトへのアクセスを試みられることがよくあります。特定のIPアドレスへのアクセスを制限することで、そのような試みを効果的にブロックできます。
この記事では、WordPressのwp-login.phpファイルへの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アドレスを見つけることができます。

ウェブサイトにログインする必要がある他のユーザーがいる場合は、その 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アドレスをコピーして、コンピュータ上の別のテキストファイルに貼り付けます。
ステップ2. 不審なIPアドレスのブロック
次に、WordPressホスティングコントロールパネルにログインし、「IPブロッカー」アイコンをクリックします。

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

他にブロックしたい疑わしいIPアドレスがあれば、このプロセスを繰り返してください。
これで完了です!不正なIPアドレスがあなたのウェブサイトにアクセスするのを完全にブロックしました。
後で、これらのIPアドレスのいずれかのブロックを解除する必要がある場合は、IPブロッカーアプリから簡単に行うことができます。

3. ウェブサイトファイアウォールでWordPressログインを保護する
ウェブサイトの管理者として、WordPressログインページにアクセスできるIPアドレスを管理するのに多くの時間を費やしたくない場合があります。
WordPressのログインページを保護する最も簡単な方法は、Sucuriを使用することです。これは、包括的なWordPressセキュリティプラグインが付属する最高のWordPressファイアウォールです。
Sucuriのウェブサイトファイアウォールは、不正なIPアドレスがWordPressの重要なコアファイルにアクセスするのを、ウェブサイトに到達する前に自動的にフィルタリングします。

この方法は、疑わしいアクティビティがサーバーの速度低下を引き起こすのをブロックするため、WordPressのパフォーマンスと速度も向上させます。
その上、Sucuriには組み込みのCDNネットワークも付属しています。これにより、画像、スタイルシート、JavaScriptなどの静的ファイルが、ユーザーに近いサーバーから自動的に配信されます。
WordPressログインページにアクセスできないユーザーのIPアドレスを簡単にホワイトリストに登録できます。

代替案: MalCare または Cloudflare無料CDN
この記事が、wp-login.phpファイルへのIPアドレスによるアクセスを制限する方法を学ぶのに役立ったことを願っています。また、WordPressセキュリティ完全ガイドを参照するか、WordPress管理エリアの保護に関する追加のヒントを参照することもできます。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。


Olaf
WordPressにおけるすべては、ウェブサイトのセキュリティにかかっています。それを軽視すると、時間の経過とともに深刻な問題につながる可能性があります。これらのディレクティブは完璧に機能し、この種のセキュリティの実装にはわずかな時間しかかかりません。正しいディレクティブを.htaccessに追加するだけでなく、手動で追加されたエントリに適切にコメントを付けるようにユーザーに最初から教えるという、あなたの徹底ぶりに感謝します。これにより、サイトを引き継いだ人がこれらのディレクティブを理解するのに役立ちます。このように細心の注意を払い、.htaccessでの適切なコメント付けに時間をかけるチュートリアルはほとんどありません。
イジー・ヴァネック
ディレクティブをウェブサイトにコピーし、IPアドレスを調整して.htaccessファイルに配置しました。現在.htaccessに設定されている両方のIPアドレスで完璧に機能します。
Av
WooCommerceサイトに関して、この機能は役立ちますか?
マイアカウントページからログインできます。
WPBeginnerサポート
WooCommerceのような目的で複数のユーザーがサイトにログインしている場合、これは使用しないでしょう。通常はユーザー数が限られているサイト向けです。
管理者
マイケル・ペッパー
記事をありがとうございます、参考になりました!
WPBeginnerサポート
Glad our article was helpful
管理者
Mick
なぜか、ホワイトリストに登録したIPもブロックされてしまいます。
何か理由がわかりますか?
WPBeginnerサポート
正しい IP を設定したことを確認してください。VPN や同様のものを使用している場合、それが問題の原因である可能性があります。
管理者
Bahar Ali
上記のコードを使用しましたが、サイトのすべてのページに適用されてしまうようで、例えば私のホームページにも「禁止」と表示されます。
WPBeginnerサポート
まず、ホスティングプロバイダーに確認して、向こう側で競合する設定がないことを確認することをお勧めします。
管理者
Unni Krishnan
皆さん、良いですね。
前回のセクションで述べられたように、私のモバイル接続には動的IPがあります。ブロードバンドIPをホワイトリストに登録しましたが、外出先からのアクセス中に問題が発生しています。
これを解決するのに役立つプラグインはありますか?
Unni Krishnan
また、wp-login.phpへのこのようなリクエストはホームページにリダイレクトされています。これは正常ですか?
FrancescoElzy
うーん、あなたのブログが私の最初のコメント(とても長かった)を食べてしまったようです。だから、私が書いたことを要約して、あなたのブログを本当に楽しんでいると言います。私もブログブロガーを目指していますが、まだこの分野では新人です。初心者ブロガーに役立つヒントはありますか?本当に感謝します。
Stéfano Willig
FTPアクセスを特定のIPのみに制限しました。
これで、WordPressから直接WordPressをインストールしたり更新したりできなくなりました…
どうすればよいですか?
Jobbatam
素晴らしいヒントで、私にも効果がありました。
しかし、wp-loginを404エラーにリダイレクトすることはできますか?
もしできるなら、上記のコードにどのようなコードを追加すればよいですか?
ありがとう
マーガレット・マクナマー
テキストブックに比べて、ネットでどんな情報でも見つけるのはとても簡単です。この投稿もこのウェブサイトで見つけました。
EQHRaymond
関数をありがとうございます。投稿は私に大いに役立ちました
レックス・ウィッカム
複数の 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からのアクセスが可能になります。
Julius Musembi
これは素晴らしい回避策です。
デビッド・スワンソン
.htaccessにコードを追加しましたが、ユーザーがログアウトするとエラー403が表示されます。
ログアウトをクリックすると、リンクは /wp-login.php?action=logout になります。
とにかく、これを修正する方法はありますか?
ブリジェシュ
素晴らしいヒントです!しかし、問題があります。管理者のログインは他の IP からロックされますが、登録ユーザーがサイトからサインアウトした場合もコードによって制限されます。つまり、ユーザーがサインアウトをクリックすると、禁止メッセージが表示されます。どうすれば解決できますか?
Rafaqat
過剰かつ不正なログイン試行から保護するための迅速なガイドラインをありがとうございます。実際、「better wp security」という無料プラグインがあり、ログイン試行、wp.configファイル、.htaccessファイルなど、ほとんどのセキュリティ問題を管理できます。試してみる価値はあると思います。
Kris
動的IPの問題を回避するには、htpasswdを参照できます。
Baptiste Legrand
この素晴らしいヒントをありがとうございます!でも少し混乱しています。このスニペットをルートの.htaccessファイルに貼り付けるべきですか、それともwordpress/.htaccessファイルに貼り付けるべきですか?
ありがとう(ところで、wpbeginner.comが大好きです。これからも頑張ってください!)
編集スタッフ
wordpress/.htaccessに貼り付けます
管理者
編集スタッフ
動的IPアドレスの場合、これは面倒な場合があります。Apache Protectを設定することもできますが、それは少し複雑です。#whitelist行は、どのIPがどれであるかを知らせるためだけのものです。
管理者
スティーブ・プリングル
プラグイン(JetPackなど)がアクセスを制限した場合に問題が発生する可能性があることに言及する必要があります。