【Wordpress】海外からの不正ログイン対策に特定のIPアドレスをアクセス拒否にする簡単なやり方
も・く・じ
時折、海外からの不正ログインの試みがあることは知ってはいたんです。
でもたまにだったんで放って置いたんです。
ログインユーザー名も「admin」のままじゃなく変更してあるし、パスワードだってランダムな英数字なので大丈夫だろうと。
ところがですよ。
このところ特定のIPアドレスから特定のワードプレスサイトへの不正ログインの試みがひっきりなしに続くようになりましてね。
さすがになんとかしなきゃと思ってとった対策をご紹介します。
All In One WP Securityが教えてくれた
私が運営するすべてのワードプレスサイトには「All In One WP Security」というセキュリティ対策プラグインを入れてあります。
このプラグインには、不正ログインの試みがあると(アクセスをブロックすると)メールで知らせてくれる機能があります。
(※All In One WP Securityの使い方等についてはここでは割愛します)
これまでもそのメールは時々届いてました。
それでもだれかがまた勝手にログインしようとしてるなと、「またか」ぐらいの気持ちで放っておいたんです。
というのも攻撃元のIPアドレスが毎回異なってましたから。
IPアドレスというのはネットワーク上でPCやスマホなどに割り当てられた固有の識別番号のようなもので、そこからホームページを見てるのはどの地域の誰なのかとかアクセスした端末のブラウザやOSは何なのかといった情報をある程度知ることができます。
ところがここ数日は不正ログイン攻撃が数時間おきに立て続けに起きる事態が急に続くようになりまして。
しかも特定の1つのワードプレスサイトのみへの攻撃なんです。
これはちょっと異常事態ですよ。
実際にAll In One WP Securityの履歴を参照してみると…
(ワードプレス管理画面の「WP Security」→「User Login」→「Failed Login Records」をクリック)
確かに同じIPアドレスから連続攻撃を受けてます。
しかも画面上では1つのIPアドレスしか見えてませんが、実際にはもう一つ別のIPアドレスからも不正ログインの攻撃が続いてました。
ということは、今回は今までと違って同一人物(?)が明らかな意図をもって私の特定のサイトに侵入しようとたくらんで(?)るってことじゃないですか。
IPアドレスから探りを入れる
理由はともかく、IPアドレスからある程度の情報は得られます。
”IPアドレス検索”とググるといくつかのIPアドレス検索サイトがひっかかります。
そのうちの一つに調べたいIPアドレスを打ち込んでやると…攻撃元はロシアとベトナムからとどちらも海外からのものでした。
この2つの攻撃元に繋がりがあるのかどうかはわかりません。
ただ不正ログインの試みで使われてたユーザー名はすべて「admin」でした。
幸いというか、私はログインユーザー名をすべてのワードプレスサイトで「admin」以外に設定してます。
パスワードもランダムな8~10桁の英数字にしてあります。
そのため不正にログインされる心配はまずありません。
でも同一人物(?)から特定のサイトだけを狙っての度重なる攻撃ははっきり言って気持ち悪いですよ。
さすがに放ってもおけないので対策をとることにしました。
レンタルサーバー側での対策
一番手っ取り早いのは、レンタルサーバー側での海外IPアドレスからのアクセス制限かと思います。
エックスサーバーなんかは最初からその機能を取り入れてますが、問題のサイトがお世話になってるのはさくらインターネット。
さくらの場合は「国外IPアドレスフィルタ」で”アクセス制限設定”を”有効化”すれば、『日本国外IPアドレスからのアクセスを制限する』ことができるそうです。
さっそくさくらのコンパネを開き「国外IPアドレスフィルタ」をクリックすると、おやおやすでに有効化されてるじゃないですか。
(説明を読むとデフォルト設定は最初から”有効化”みたいですね)
となると海外からのアクセス自体が不可になるだろうと思うんですが、なんで不正ログインしようとした痕跡が残ってるんでしょう。
この辺のところをさくらインターネットにメールで照会してみたところ、こんな回答が返ってまいりました。
国外IPアドレスフィルタは「制限対象範囲」としてご案内しているファイルやディレクトリへのアクセスを制限しますが、サーバへの接続そのものを拒否するものではございませんのでアクセスしてきた記録は残ります。
調べてみるとその制限対象範囲には「/wp-admin/」も入ってるんですね。
ということはアクセス(接続)はできるが、ログインする前の段階で弾かれるってこと?
でもAll In One WP Securityのセキュリティ監視から送られてきたメールによれば、『ユーザーネーム「admin」にてログインしようとしたけどダメだった』というような記述が見られるんですね。
(英語力が低いので間違ってるかも?)
ということはアクセス(接続)はできた、ログイン画面も開けた。
でもユーザーネーム違いでログインできなかったという解釈にもなるような、ならないような。
う~ん、よくわかりませぬ。
いずれにしても「国外IPアドレスフィルタ」での水際対策はどうやら難しいようだし、ここで悩んでいてもしょうがないので別の方法を考えることにします。
.htaccessをいじる?
今回のトラブルは特定の(異なる2つの)IPアドレスからの不正ログイン攻撃です。
なのでそのIPアドレスからのアクセスを直接拒否する設定を施してやれば問題は解決するはずです。
(それが”国外IPアドレスフィルタ”でやってくれるものと思ってたんですけど)
それには.htaceessにアクセス拒否させたいIPアドレスを直接書き込むのが手っ取り早いでしょう。
ただし超重要ファイルである.htaceessをいじるのは多少なりとも危険がつきまといます。
そこで今回は私が使ってるセキュリティプラグインの「All In One WP Security」を使ったやり方でやってみようと思います。
他にも便利なセキュリティプラグインはあるでしょう。
が、その話はまた別の機会に。
All In One WP Securityの設定
「All In One WP Security」プラグインを有効化した後、管理画面の「WP Security」→「Blacklist Manager」をクリックします。
画像のように①チェックを入れ、②アクセス拒否したいIPアドレスを1行に1個ずつ書き込みます。
IPアドレスの最後のアスタリスク(*)はExcelのワイルドカードのようなもので任意の文字列を意味します。
IPアドレスは最初の3ブロック(3つのドットで分けられてる部分)で大方の情報がわかります。
最後の4ブロック目の数値は大ざっぱに言えばアパート内の部屋番号みたいなものなので、あえて数値を特定する必要がない(ワイルドカードで充分)ってことだったかと。
(スミマセン、素人の説明で)
上記の設定で「Save Setting」をクリックして変更を確定させます。
このあと実際に.htaceessを覗いてみます。
覗くのはワードプレスがインストールされたフォルダ(ルートフォルダ)を開いたところに出てくる.htaceessです。
(もちろんレンタルサーバーのファイルマネージャ等にログインしないと見れません)
見つけた.htaceessを開いてみると…ちゃんとアクセス拒否IPアドレスが書き込まれてました。
これなら.htaceessに詳しくない方でも簡単に設定できるでしょう。
”Deny from~”というのが”~からのアクセスを拒否”という意味です。
そのちょっと下にある”Require not~”というのも同じ意味、なのかなぁ。
これで2~3日様子を見ていたら、どうやら設定したIPアドレスからの不正ログインの試みはなくなったようです。
ところがなんと新たに別のIPアドレスからまたもや狙い撃ちにあってるじゃないですか。
(3個目の同一IPアドレス)
ご丁寧に1時間おきにアタックしてます。
しつこいなぁ。
再び攻撃元のIPアドレスをチェックすると…またまたベトナム!
これは完全に確信犯ですね。
実を言うと、攻撃を受けてるワードプレスサイトはダイエット関連の体験記を載せてるサイトなんです。
ただ今のところアクセス数はまだそれほどでもないサイトなんで乗っ取ってもそれほどメリットがあるとは思えないんですよね。
いったい何の目的でそのサイトだけを執拗に攻撃するのか。
ということで新たな攻撃元IPアドレスをリストに追加してっと。
でもこれじゃイタチごっこになりそうだぁ。
ログインURLも変更しちゃえ
念には念をということで、もう一つのセキュリティ対策としてログインURLそのものを変更しちゃおうっていうのがあります。
通常、ワードプレスにログインするときは、https://ドメイン/wp-admin/あるいはhttps://ドメイン/wp-login.phpというURLでログインしますね。
この公式(?)は誰もが知ってます。
でもこれだと簡単にログイン画面を開くことができ、格好の攻撃対象になりかねません。
機械的にユーザー名とパスワードをどんどん打ち込まれたら最後には突破される可能性だってゼロとは言いがたいでしょう。
しかもユーザー名を「admin」のままでパスワードも安易なモノにして置いたら、ものの数分で突破されること間違いなしです。
そこでAll In One WP Securityのある機能を使って、たとえばhttps://ドメイン/ランダムな5桁の数字といったような全く別のログインURLに変更しちゃえば、https://ドメイン/wp-admin/でアクセスしたところでログイン画面が開かれることもないし、変更したURLがバレる心配もまずありません。
やり方は管理画面の「WP Security」→「Brute Force」→「Rename Login Page」タブをクリックします。
そこで下の画像のように①チェックを入れ、②ランダムな英数字(※5桁である必要はなし)を設定します。
これならhttps://ドメイン/(設定した英数字)と打ち込まなければログイン画面にすらたどり着けません。
もちろんこの新アドレスはあなた自身が覚えておく必要があります。
そうしないと管理者本人でさえログインできない!なんてことになっちゃいますからね。
(※できないことはないですけど、詳細はここでは割愛します)
今回は特定のIPアドレスが判明している前提での不正ログイン対策でした。
こういった対策はもとより、何よりもログインユーザー名とログインパスワードは複雑なモノにしておくのが最良のセキュリティ対策といえるでしょう。
ちなみに攻撃を受けてるサイトですが、今でもランダムに不正ログインを試みようとする動きは止まりません。
毎回IPアドレスは変わってるので(世界各国)、相変わらず無視してますけど。
記事はお役にたてましたか?
記事に興味をもっていただけたらソーシャルボタンでの共有お願いします^^
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓