All In One WP Security & Firewallを導入してWordPressのセキュリティ対策を行いました

6月ごろより不正ログイン攻撃に悩まされていました。

ログイン履歴を見たところ、当ブログのユーザーIDで不正ログインを試みた形跡が。その数2万超!(滝汗)

WordPress不正ログイン履歴

これでログイン突破されなかったのはちょっとした奇跡だと言えそう。

その前に、ログイン時に2段階認証をかけるGoogle Authenticator が謎の不調でサイトの表示が崩れてしまう現象があり、外してしまっていたのも原因の一つ。

こりゃいかんということで、いくつかセキュリティの設定やプラグインを試したところ、All In One WP Security & Firewallというプラグインがとても使いやすく、深い設定もできるものだった。

以下、設定のご紹介。

まずプラグインのダッシュボード。

左上のSecurity Strength Meter が緑色のゾーンになるまで設定を行えば、とりあえずは一安心レベル?らしい。
あと、右下のCritical Features Status の4つの設定をしっかりしておくこと。

  • Admin Username(管理者ユーザーの変更)
  • Login Lockdown(ログイン時のロックダウン設定)
  • File Permission(WPシステムファイルの属性変更)
  • Basic Firewall(Firewallの設定)

の4つですね。

All In One WP Security & Firewallダッシュボード

全般的な設定画面。

.htaccessファイルやwp-config.phpファイルの操作、リストア等を行える。

All In One WP Security & Firewall設定画面

User Account」設定

管理者権限ユーザーの作成、投稿の表示名やパスワード強度の確認ができる。管理者権限ユーザーは必ず「admin」以外にしよう。

All In One WP Security & Firewallユーザーアカウント設定

ログインIDと、投稿に表示される名前は違うものに設定すること。今回ユーザーIDで2万回もログイン試行されたのは、おそらくここが同じだったため類推されたと思われる。

All In One WP Security & Firewallユーザーアカウント設定

パスワード強度のチェックも行おう。現在のパスワード強度は突破まで730年6ヶ月かかる。今回はこれのおかげで不正ログイン突破されるのを防げたようなものだ。

All In One WP Security & Firewallパスワード確認

Login Lockdown」設定

具体的には「○分間に●回以上ログイン失敗したら△分ロックアウトさせる」設定。自分のサイトで情報がしっかり保持されているのであれば、ガチガチにしてしまって良いと思う。自分の設定は「2分間に3回ログイン失敗したら600分ロックアウト」にしている。ID総当たり攻撃にとても有効だと思う。

All In One WP Security & Firewallロックアウト設定

User Registration」設定

自動で新しいユーザーが作られないように、承認をマニュアル化する。また、登録画面にCaptcha認証コードを表示させるようにする。複数ユーザーで運用しているサイトには有効だと思う。

All In One WP Security & Firewall

Change Database Prefix」設定

データベースの接頭語をプラグイン管理画面上で変更できる。たいていの場合「wp_」になっていると思うが、データベース改ざんの危険性もあるので任意の接頭語に変更しておく。
また、データベースを3週間ごとに自動バックアップするように設定した。

All In One WP Security & Firewall

File Permissions」設定

システムファイルの属性を確認する。以前にWordPressへの大規模攻撃があった時にこの辺の設定は見直しておいたので、そのままオールグリーンだった。レンタルサーバーでの運用は大規模攻撃の的になりやすいので、この部分はきっちり設定しておきたいところ。

All In One WP Security & Firewall

Ban IPs or User Agents」設定

変な事してくる輩はIPやユーザーエージェントごとBanして差しあげよう。

All In One WP Security & Firewall

Firewall」設定

プラグイン単体でファイアウォールを設定できる。簡単なFWルールも設定できる。

※「xmlrpc.php」にアクセスできなくなるので、WordPressのiOSアプリを使っている場合、「Pingback Protection」設定を無効にする必要があるので注意。

All In One WP Security & Firewall

Brute Force」設定

ブルートフォースアタックへの対策。ログインページURLの変更、ログインページにCaptcha認証コードを設置、IPアドレスのホワイトリスト設定等。

All In One WP Security & Firewall

Scanner」設定

ファイルの改ざん監視、マルウェア、データベーススキャンの設定。ファイル改ざん監視は2週間に1回にしている。

All In One WP Security & Firewall

その他、メンテナンスモードにする設定や、右クリック禁止設定等もできる。

これらの設定を行うことで、1日数十ある不正ログインをブロックしている。あとは最後の手段として管理画面自体にベーシック認証をかけようと思っている。

まとめ

しかしまあ思いっきり標的になっているようであまり笑えない状況ではあるが、とりあえずこれで様子見をできるくらいのセキュリティにはなったと思う。
少なくとも、パスワードを強固なものにしておくログイン試行に対する防御をしておく、この2点だけで相当違ってくると思う。

WordPress不正ログインの蓄積
こんなログが毎日たまっていく

All In One WP Security & Firewall、お勧めできるセキュリティ・プラグインです。

2017年6月6日追記 wpXクラウドサーバ移行でも問題解決

サーバをさくらインターネットからwpXクラウドサーバに移行したところ、不正ログインが全く無くなった。
上記の「Cookie Based Brute Force Login Prevention」を設定していたが、wpXサーバに移行して設定をOFFにしてみたところ、移行後の半年間、大規模攻撃だけでなく、ちまちました小規模なアタックも全く無くなった。

サーバ設定にある「ダッシュボードアクセス制限設定」がかなり効いているみたい。アクセス制限の他にも「ダッシュボードログイン試行回数制限設定」というのもある。wpXサーバであれば、このプラグインは設定しなくても良いかもしれない。
WordPressしか使わないという人には、wpXサーバはかなりお薦めと思われます。

コメントを残す

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

コメントは日本語で入力してください。(スパム対策)

CAPTCHA