先日、不正ログインしようとブルートフォースアタックを受けてるっぽかったのでプラグインでセキュリティ対策を行ったのですが、本日ログイン履歴を確認してみると、攻撃される回数は少し減っていたのですが、ユーザー名がばれているっぽかったので、さらに対策をすることにしました。
ユーザー名がばれた
ユーザー名がばれていました。ログイン履歴を見たら昨日までは「admin」という初期設定でありそうなユーザー名でログインしようと攻撃されていたのですが、本日ログイン履歴を確認したところ、正しいユーザー名を使って攻撃されていました。
どこからばれた?
どこからばれたのかはわかりませんが、こういうところからばれたのかな?と思うものがいくつかありました。
ニックネーム = ユーザー名
WordPressをインストールするとデフォルトでニックネーム=ユーザー名と設定されています。このニックネームは投稿者名に使われます。なのでデフォルト設定のままで記事に投稿者名を表示するとユーザー名が表示されることになってしまいます。
なのでWordPressをインストールしたら、「ユーザー」→「あなたのプロフィール」からニックネームを新しく設定し、「ブログ上の表示名」という項目を新しく設定したニックネームを表示するように選びましょう。
私は、投稿者名を表示しないように設定していたので、ここからばれたのではないと思われます。
アーカイブページのURL
自分のサイトのURLの最後に「/?author=1」を付けて検索してみてください。これで検索すると投稿者のアーカイブページが開きます。
そのアーカイブページのURLは「ドメイン/author/ユーザー名/」となっています。
これではユーザー名が簡単にばれてしまいます。この表示を隠す方法は後程紹介します。
対策方法
私がとった対策は以下になります。
アーカイブページに飛べないようにする
投稿者のアーカイブページにアクセスした際、強制的にトップページにリダイレクトするように設定し、アーカイブページを表示させないようにしました。
やり方は「function.php」にコードを追加する方法になります。
function theme_slug_redirect_author_archive() { if (is_author() ) { wp_redirect( home_url()); exit; } } add_action( 'template_redirect', 'theme_slug_redirect_author_archive' );
こちらのコードを「function.php」に貼り付けてください。これによって投稿者のアーカイブページにアクセスできなくなるのでユーザー名も表示されなくなります。
ユーザーを作り直す
現在のユーザー名はすでにばれてしまっているため、新しくユーザーを作り直します。
まずは「ユーザー」→「新規追加」から新規ユーザーを追加します。
※必須の項目だけ入力すればいいです。
ユーザー名:新しいユーザー名を入力
メールアドレス:元のメールアドレスを入力
パスワード:元のパスワードでも問題ないです
権限グループ:必ず管理者を選択します。
「新規ユーザーを追加」を押すと新しいユーザーが追加されます。
ユーザーが追加されているのを確認出来たら1度ログアウトし、新しく作ったユーザーでログインしなおします。ログインしなおしたら古いユーザーを削除します。
「削除」を押すと次の画面に遷移します。
必ず「すべてのコンテンツを以下のユーザーのものにする」にチェックを入れてください。そしてプルダウンで新規ユーザーが選択されているか確認してください。
この設定を間違えると、今までの記事を引き継ぐことができなくなってしまいます。必ず確認してください。
「削除を実行」を押すと古いユーザーが削除されます。
新しくユーザーを作ったらニックネームを変更しておきましょう。これを忘れるとユーザーを作り直した意味がなくなってしまいます。
「ユーザー」→「あなたのプロフィール」からニックネームを変更。
まとめ
ひとまずこれでしばらくは大丈夫でしょう。攻撃者は総当たり攻撃をしかけているからいつかまたユーザー名がばれてしまうことがあるかもしれません。
なのでセキュリティ対策も大切ですが、今回の事で一定周期でバックアップを取るようにしようと思いました。