管理画面(ダッシュボード)へのアクセスを制限する

大流行のガンプラーウィルスはFTPのパスワードを盗むというものですが、CMSの場合はもうひとつ大きな危険があります。
管理画面のログインID(ユーザー名)とパスワードを盗まれてしまうとやりたい放題なのです。
普及率の高いWordPressはとくに狙われやすいといえます。
「WEBサイトオーナーのガンブラーウイルス対策」ではFTP関連のセキュリティについて書きましたが、WordPressのダッシュボードの乗っ取りはまた別の問題です。
実際にログインパスワードを解析されるという被害は結構多いのです。

ブルートフォースアタック対策

ブルートフォースアタック(総当たり攻撃)といわれる不正ログインの手法では辞書ツールなどを使って、文字通り理論的にありうるパターンを総当たりでログインを試みます。
プログラムやツールなどを使い、回数制限なしにアタックしてきますので、非常にやっかいです。

単純な文字列を使わない

ブルートフォースアタックによる攻撃ではログインユーザー名(ID)がデフォルトのadminの場合には目をつけられてしまうと時間の問題でログインされてしまう可能性が高いといえます。
基本中の基本ですが、ログインIDにadminは使わない。パスワードは憶測されにくい複雑なものを使用します。
ただし、ここでひとつ落とし穴があります。
それは、ユーザー名を変更してもWordPressでは簡単にユーザー名を知ることができるということです。
詳しくはこちらの記事をご覧ください。

「実は丸見え!?WordPressのログインユーザー名」

プラグインで防御する

ブルートフォースアタック対策のLimit Login Attemptsというプラグインでは特定IPアドレスから誤ったログイン情報が連続して送信れた場合に一定時間遮断することができます。

英語のプラグインですが、複雑な設定は必要ありませんので、とくに問題はないと思われます。
一応、Limit Login Attemptsの設定について簡単に解説するとデフォルトでは以下のような設定となっています。

リトライ許可回数→4回
定義回数後の遮断時間→20分
4回遮断されると→24時間遮断
24時間経過→リセット

一般設置→LimitLoginAttempts設定

一般設置→LimitLoginAttempts設定

管理画面へのアクセス自体をIP制限する

もっとも効果が高いと思われる対策がガンプラーウイルスにおけるFTP対策でも推奨する接続IPによるログイン制限です。.htaccessを使いホワイトリスト方式で自分のIPアドレスからしかアクセスできないようにします。

今後、WordPressやプラグインの微弱性などをつかれるおそれもありますから、IPによる制限は考えられる最善の対策だと思われます。

ログインページであるwp-login.phpを指定IPアドレス以外からのアクセスを禁止します。WordPressがインストールされた第一階層の.htaccessに以下を追加します。

これで指定したIPアドレス以外から、ログインページへのアクセスを403errorとすることができます。
事実上ブルートフォースアタックは不可能になります。

※Apacheサーバ以外ではIP制限は別の手法となります。

IPアドレスによる制限はID・アカウントの流出によるサイト改ざんの最終防衛ともいえます。
ただし、ガンプラーウィルスなどでボット化されてしまうとIP制限も無意味ですので、やはりお使いのパソコン自体のセキュリティ対策が基本です。

実際にこのサイトのログイン画面にアクセスすると403エラーになるのが確認いただけます。
https://seous.info/wp-login.php

なお、外出先の接続環境ではIPが異なるため、当然管理画面にはアクセスできなくなります。
ただし、VPN環境を構築している場合は許可IPアドレスを経由させることもできます。

VPN経由でインターネットにアクセスする

また、接続IPが変更になると、自身もアクセスできなくなってしまいます。
その際には.ftpaccessでの対処と同様にブラウザよりアクセスできるファイルマネージャーより指定IPアドレスを変更ください。

フォローする

WordPressとはなにかもう一度おさらいしてみよう!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


2 + = 六

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">