WORDPRESSはログインページが「wp-login.php」、ダッシュボードが「wp-admin」と固定で変更もできないため、クラックしようと思うとドメイン名に続けてこれらを指定すれば簡単に総当たり攻撃が出来てしまいます。
WORDPRESSの公式から提供されているプラグイン「Jetpack」を利用していれば、不正なログインをある程度は防御してくれるのですが、ダッシュボードの数値が積もり積もってくると非常に不安になってきますw
そこで今回は「ピンポンダッシュ」を防ぐために、「wp-login」のURLを変更してくれるプラグイン「WPS Hide Login」を入れてみます。
WPS Hide Loginを導入する
What's is this.
はい、というわけで今回入れるのはこの子です。 ja.wordpress.org
開発にはフランスでWordPressのレンタルサービスを運営しているWPServeurさんが名を連ねているので、ある程度は安心できますね。油断は大敵ですがw
こういう基本的な機能は公式から提供して欲しいものです。Jetpack経由でも良いから。
インストール
いつものようにプラグインをインストールします。
左側のメニューから「プラグイン→新規追加」を選び、右上のテキストボックスに「WPS Hide Login」と入力、該当するプラグインで「今すぐインストール」ボタンをクリック、暫く待つとインストールが完了しボタンの名前が「有効化」に変わるので再度クリック。インストールは以上です。
設定
続けて設定を行います。左側のメニューから「プラグイン→インストール済みプラグイン」をクリック。「WPS Hide Login」の項目の「Settings」をクリック。
設定画面に移りますので、上段のテキストボックスへ新しい「wp-login」のURLを入力します。下段には今後もし「wp-login」へアクセスがあった際のリダイレクト先のパスを入力します(大抵の場合デフォルトのままで構いません)。
一番下にある「変更を保存」ボタンを押せば即座に設定が反映されます。疲れていると忘れがちなので気をつけてくださいませw
動作確認
最後に期待通りの動作をするか確認しておきます。
WordPressからログアウトした状態か、GoogleChromeであればシークレットモードのウィンドウを開きます。新たに設定したログインページのURLで正常にログインできるか、また「wp-login」へアクセスし404 NotFound
となれば成功です。
非ログイン状態(ログアウトした状態)で「wp-admin」へ直接アクセスしても同様に404 NotFound
となります。
その他
元の状態に戻す
プラグインを停止、またはアンインストールするだけです。
ログインページのURLを忘れた
WordPressのデータベースにアクセスできる場合は希望があります。
SSHなどでサーバへログインし以下のコマンド(SQL)を実行すると、現在設定している文字列が表示されます。
$ echo "SELECT option_value FROM wp_options WHERE option_name='whl_page';" | mysql -u (MySQLのユーザー名) -p (MySQLのDB名) Enter password: (MySQLのパスワードを入力)
MySQLのユーザー名やパスワード、DB名が不明な場合は、過去に自分自身で設定しているハズですのでwp-config.php
を覗いてみてください。
$ cat wp-config.php (中略) /** WordPress のためのデータベース名 */ define('DB_NAME', 'xxxxxxxxxxx'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'xxxxxxxxxxx'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'xxxxxxxxxxxxxxxxxxxxxxxxx'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost');
我慢してね
This plugin is only maintained, which means we do not guarantee free support. Consider reporting a problem and be patient.
※プラグイン説明ページより
「このプラグインはメンテンナンスはするけど無料サポートはしないよ。問題があったら報告した上で我慢してね(意訳)」
ワロタw オープンソースのあるべき姿だw