WordPressで日本国内からのみ管理画面を閲覧できる設定

WordPressは一番利用されているCMSであり、多くの攻撃の対象にもなっています。

ログを見ると海外からの不正アクセスが圧倒的に多かったので、日本からのみ管理画面にアクセスできるようにしました。

ご注意:
今回の例では、クライアントにmacOSを用いて、ターミナルからコマンドによる作業を行いましたが、作業自体は「サーバの.htaccessに行を追記する」だけですので、WindowsとWinSCPなどでも同様のことができます。

手順1: 日本で利用されているIPアドレスのリストを取得。

以下のサイトにアクセスし「.htccessをダウンロード」をクリック。

日本に割り当てられているIPアドレスをAPNICより取得して、日本国外(海外/外国)からのアクセスを制限する(禁止する).htaccessファイル又は一覧を作成します。

日本のIPアドレスが記載された「htaccess」ファイルを入手します。

作者様ありがとうございます!

手順2: htaccessをホスティングサーバへ転送

scp等を用いて、ホスティングサーバへhtaccessファイルを転送します。

scpでのファイル転送の書式)

scp /tmp/htaccess user名@ホスト名:/tmp -P ポート番号 -i ~/.ssh/identity.pem

手順3: 既存のhtaccessへIPアドレスリストをマージ

htaccessは本日時点で4000行以上あるので、コピー&ペーストでは、情報が欠落する可能性があります。

Linuxのリダイレクトの処理を用いて、既存の.htaccessへマージしました。

下準備:

3.1 まずは既存の.htaccessをバックアップ

cp .htaccess .htaccess.orig

3.2 日本のIPアドレスが記載されたファイルをわかり易い名前に変更

mv htaccess htaccess.japan

3.3 htaccess.japanの先頭と末尾に、以下の行を追加して、wp-login.phpにのみ設定を適用させる。

先頭に以下のコードを追加

<Files wp-login.php>
order deny,allow
deny from all



末尾に以下のコードを追加。


</Files>

3.4 htaccess.japanを既存の.htaccessにマージ

cat htaccess.japan >> .htaccess

以上の操作で wp-login.phpファイルが日本からのみアクセス可能になり、セキュリティが向上しました。

参考にさせていただきました。ありがとうございます。

WordPress のブルートフォースアタックは以前から問題になっており、管理しているサイトでもユーザー名とパスワードを工夫するなどの対策をしていました。

この記事は「ConoHa WING」のサーバで検証しました。