SP用メニューボタン
ソレゾレブログ

技術的な事だったり日常の気になる事だったり

WordPressの管理画面URLを変更またはセキュリティ強化するプラグインの紹介

スポンサーリンク

検証環境

この機能の検証はWordpress5.8.1で行っています。

この記事は、Wordpressで有効なセキュリティの一覧についてまとめた下記ブログの下位文章です。気になる方は親文章も参照してみてください。

WordPress管理画面のURLセキュリティ

WordPressの管理画面へは、デフォルトでは下記URLでログインできます。

  • https://ドメイン名/wp-login.php
  • http://ドメイン名/wp-admin

ローカルではこれで問題ないのですが、Webサイトをインターネット上に公開した場合、デフォルトのURLですとログインアカウントさえわかってしまえば簡単にログイン出来てしまいます。

これではまずいということで、変更する方法を調べてみました。変更する方法には手動とプラグインがありますが、手動の方法は若干手間がかかるのでプラグインによる方法の紹介に限定します。手動による方法はググるといくつか出てきますので探してみてください。

スポンサーリンク

管理画面のURL変更プラグインの紹介

WPS Hide Login(バージョン1.8.6)

プラグインをインストールすると [設定] – [WPS Hide Login] の設定メニューが増えます。

このプラグインの特徴としては管理画面のURL変更に特化している点で、設定できる項目は、ログインURLの変更と404リダイレクトURLの変更2つだけとなっており非常にシンプルです。管理画面のURL変更だけ利用出来ればよい人はこれでよいと思います。

設定画面は下記画像のとおりです。

WPS Hide Loginの設定画面

SiteGuard WP Plugin(バージョン1.6.0)

プラグインをインストールすると、メニュー直下に [SiteGuard] の設定メニューが増えます。

このプラグインは非常に多機能で、URLを変更するだけはなく管理ページとログインページを保護する機能が沢山備わっています。1歩も2歩も進んだ対策をされたい方は非常にお勧めです。実際このプラグインを使っている方は多いようです。

注意点

このプラグインの一部の機能はApacheで提供されるmod_rewriteが必要となります。nginxなどのWebサーバーでは使えませんので注意してください。mod_rewriteとはURLの書き換え・リダイレクト処理を行なってくれるApacheのモジュールです。

ダッシュボード

ダッシュボード初期値はこんな感じです。

SiteGuardの管理画面ダッシュボード

管理ページアクセス制限

この機能は、ログインが行われていない接続元IPアドレスに対して、管理ページ(/wp-admin/以降)へのアクセスを「404 Not Found」で返す機能です。

この機能を使うにはちょっとコツがあるようで、詳細は下記公式ページを参照してみください。煩わしい場合はオフにしてくださいと書いてあります。自己判断で使ってください。

SiteGuard管理画面の管理ページアクセス制限

ログインページ変更

設定すると、wp-adminやwp-login.phpなどのURLではアクセスできなくなります。変更後の初期値は「login_5桁」の数字」ですが、推測されにユニークなURLを指定することをお勧めします。

変更後のURLを忘れるとログイン出来なくなってしまいますので忘れずにメモかブックマークしましょう。

オプションの「管理者ページからログインページへリダイレクトしない」ですが、この設定はオンにすることをお勧めします。

設定しない場合、ログアウトした状態で「https://ドメイン/wp-admin」にアクセスすると、ログインページの変更をしても「wp-admin」のURLから変更後のURL「https://ドメイン/変更後アドレス」にリダイレクトされてしまいます。結果、変更後のURLがわかってしまう為本末転倒です。

SiteGuard管理画面のログインページ変更

画像認証

ログインページ、コメントページ、パスワード確認ページ、ユーザー登録ページに、「ひらがな」や「英数字」の画像認証機能を追加してくれます。

ログインページ

ログインページでこの機能をオンにすると下記のような認証欄が追加されます。下記はひらがなの例です。

ログインページの画像認証
コメントページ

投稿ページでコメント投稿が出来るように作り込みをしている場合、画像認証を有効にすると、下記のように画像認証用のメニューが追加されます。

コメントページの画像認証
パスワード確認ページ

管理画面のログインページでアカウントがわからなくなった場合「パスワードをお忘れですか?」からパスワードのリセットが出来ますが、そのリセット画面に画像認証を付けることが出来ます。下記の画像がそれです。

パスワード確認ページの画像認証1
パスワード確認ページの画像認証2
ユーザー登録ページ

ユーザー登録ページは、管理画面から誰でもユーザー登録できるような設定になっているときに、その登録画面上で画像認証が有効になります。誰でもユーザー登録できるというのはセキュリティ的に非常にまずいので、あまり使っている人はいないと思いますが、一応設定方法を下記に記載します。

[設定] – [一般] – [メンバーシップ] – [だれでもユーザー登録ができるようにする]の設定をオンにします。

ユーザー登録の画像認証1

設定すると、管理画面のログインページに「登録」というメニューが増えます。これをクリックすると

ユーザー登録の画像認証2

「このブログに登録」の設定メニューが現れます。このアカウント登録欄に画像認証が追加されるということです。

ユーザー登録の画像認証3

ログイン詳細エラーメッセージの無効化

管理画面のログインに失敗すると、初期値では間違った情報がユーザー名なのかパスワードなのか通知してくれますが、この機能を使うと曖昧にしてくれます。

ログイン詳細エラーメッセージの無効化の設定画面

設定がOFFだと下記画像のように具体的にユーザー名が悪いのかパスワードが悪いのか教えてくれますが、

ログイン詳細エラーメッセージの無効化の設定結果1
ログイン詳細エラーメッセージの無効化の設定結果2

設定を有効化すると下記のように曖昧になります。

ログイン詳細エラーメッセージの無効化の設定結果3

ログインロック

ログインロックが設定できます。期間と時間の意味が分かりにくいですが、「期間」に設定した時間内に「回数」に設定した回数ログインに失敗したアクセス元IPを、「ロック時間」で設定した時間分ロックするということです。

ログインロックの設定画面

ログインアラート

ログインに成功したらメールで通知します。毎度通知が煩わしい方はOFFにした方がよさげです。

ログインアラートの設定画面

フェールワンス

正しいアカウントでログインしてもわざと初回だけログインエラーを返し、2回目から成功させるというセキュリティ機能です。

フェールワンスの設定画面

XMLRPC防御

XML-RPC機能を無効化するか、ピンバック機能だけ無効化する設定です。XML-RPCについては下記ブログを参照してみてください。XML-RPC機能は古い機能ですが、使っているプラグインやWordpressの機能が無いとは言えないので、無効化する場合はテスト環境で検証してからやられた方が無難でしょう。

尚、XML-RPC機能は手動でも無効にすることが出来ます。方法は下記を参照してください。

XMLRPC防御の設定画面

ユーザー名漏えい防御

「https://ドメイン名/?author=番号」でのアクセスでログインIDを含むURLにリダイレクトさせたくない場合は、単にこの機能をONにします。

ユーザー名漏えいの脆弱性については「ユーザー名漏えい防御」の記事を参照してください。

REST APIの機能でログインIDを含む情報を返させたくなければ、「REST API 無効化」をオンにし、除外プラグイン欄に、REST APIを使用しているプラグインを設定してください。

REST APIを使用している有名なプラグインは初期値に設定されていますので、そのまま使えばよいと思います。そのほかについては、ご自分で調べる必要があります。

REST-API機能は手動でも無効にすることが出来ます。方法は下記を参照してください。WordPressのヘッダーに標準で挿入される情報の中で不要なものを削除(非表示)にする方法 – REST API

ユーザー名漏えい防御の設定画面

更新通知

WordPressのコアファイル、プラグイン、テーマの更新が必要になったときに、メールで通知してくれる機能です。

更新通知の設定画面

WAFチューニングサポート

JP-Secure製のSiteGuard Lite(WAF(Web Application Firewall))が別途導入されているときに、WordPress内での誤検知(正常なアクセスなのに、403エラーが発生する等)を回避するためのルールを作成する機能だそうです。

ちなみにファイアウォールには、IPアドレスとポートやプロトコルでアクセスを制御する俗にいうファイアウォール、DoSやDDoS攻撃,OSの脆弱性などからサーバーやOSを保護するIDS (不正侵入検知) /IPS(不正侵入防御)、SQLインジェクションやクロスサイトスクリプティングなどの攻撃からWebアプリケーションを守るWAFがあります。

WAFチューニングサポートの設定画面

詳細設定

アクセス元制限などのIPアドレスの取得方法を設定します。通常はリモートアドレスを選択していればよいそうです。

HTTPヘッダの中にはアクセス元を表す情報も入っていますが、その中に「X-Forwarded-For」という項目があります。プロキシサーバーやロードバランサーを通過すると送信元IPが変換されますが、変換前のIPがこのヘッダ情報に記録されています。リモートアドレスで 送信元 IPが特定できない場合に使うようです。

詳細設定の設定画面

ログイン履歴

管理画面のログイン履歴が記録されます。

ログイン履歴の画面

スポンサーリンク

Login rebuilder(バージョン2.7.1)

Login rebuilderの設定画面1

プラグインをインストールすると [設定] – [ログインページ] メニューが追加されます。

Login rebuilderの設定画面2

無効なリクエスト時の応答

好きなものを選びます。

ログインファイルキーワード

ランダムなものが勝手に生成されるのでそのままでもよいし変えてもよい。

新しいログインファイル

ログインURLとなり、ログイン時に読み込まれるファイル。「好きな名前.php」に変更可能。推測されにくい文字列がおすすめ。

「ロックファイルを使用」をチェックオンにして「任意のロックファイル名.php」を作成し、Wordpressのルートディレクトリ(wp-login.phpと同じディレクト)に置くと、正しいログインアカウントでログインしても、「エラー:無効なユーザー名かメールアドレス、または間違ったパスワードです。」と表示されてログインが拒否されます。削除したら再ログイン出来ました。

「ロックファイルを使用」設定中のログインエラー画面
ポップアップされた再ログインフォームにロック状態を表示する

管理者としてログイン中にセッション切れが発生してポップアップのログインフォームが表示された場合にロック状態を表示するかの指定だそうです。

第2ログインファイル

管理者以外の権限グループのみがログインできるログインページを設置する場合に使用するそうです。

Login rebuilderの設定画面3

ログ保存

管理画面のログインに関するログの保存設定。

ログの日時の表示書式

ログ保存時のに指示の書式が設定できる。

著者のページの閲覧

WordPressには、ユーザー番号が含まれた「https://ドメイン名/?author=番号」のようにアクセスすると、ログインIDが含まれた「https://ドメイン名/author/ログインID/」にリダイレクトされて表示されるという仕様があります。 このままですと、ログインIDが筒抜けになりセキュリティ的に良くありませんので、404エラーを返して拒否させることが出来ます。

oEmbed

oEmbedの機能とセキュリティリスクについて、また、手動によるoEmbedの無効化方法については下記ブログを参照してください。

上記ブログと同じように、このプラグインでもoEmbedの機能を制御できます。

[標準]設定は、初期値のままとなります。

[レスポンスデータの投稿者名とURLを隠す]に設定すると、下記に張り付けてあるソースコードのヘッダー情報に記載されるoEmdedのエンドポイントのURLに接続すると「author_name」に表示される管理者ログインIDが秘匿されます。

<link rel="alternate" type="application/json+oembed" href="https://自ドメイン名/wp-json/oembed/1.0/embed?url=https%3A%2F%2F自ドメイン名%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://自ドメイン名/wp-json/oembed/1.0/embed?url=https%3A%2F%2F自ドメイン名%2F&format=xml" />

[head要素内のリンクとレスポンスデータを出力しない]に設定すると、上記ヘッダー情報が非表示となり、oEmbed機能が無効になります。アクセスしても「{“code”:”oembed request has disabled”,”message”:”This REST API has been disabled.”,”data”:null}」のようなメッセージが返されます。

Login rebuilderの設定画面4

通知

管理画面へのログインに関する情報のメールによる通知を制御できる。

その他

画像のとおりの事が設定できる。

All In One WP Security & Firewall

ユーザーログインの機能で設定が可能です。詳しくは「ログインページの名前変更機能を有効化」の記事を参照してください。