難しいWordfence(ワードフェンス)の設定を、すべて確認したうえで当サイトのセキュリティ知識と照らし合わせ、理解した意味を載せて説明していく。
この記事では以下のようなことを大まかにしているので、今のセキュリティや利便性に不満があるなら、新たな使い方に出会えるだろう。
- セキュリティに気を使いながら軽量化(結構低下させている)
- 貧弱サーバー用スキャン設定の軽い紹介
- メール頻度調整
- 総当たり攻撃(ブルートフォースアタック)対策設定をさらにキツく
- エラー対応方法
- スキャン時のエラー・学習モード中の保護なし期間・2段階認証を他プラグインで乗り切る
- アンインストール時にやるべきこと(置き土産削除)
Wordfenceをまだインストールしていないのなら、以下の記事で魅力や究極の組み合わせを伝えている。
忙しい人は、厳選した推奨設定(ハイスピード)から進めよう。
2段階認証がなんと無料で使えるようになっていたので、確実に使おう。
Wordfence
WordPressダッシュボード左側の「Wordfence」にカーソルを乗せると、メニューの7項目があらわになるが、上から順番にやるとすこぶる面倒だったので、「All Options(すべてのオプション)」でサクサク設定していく。
All Options(すべてのオプション)が表示されていない方は、過去イジったため消えている。以下の手順で復活させよう!
「Dashboard」→ 歯車マークの「Global Options」→ プルダウンの「View Customization(カスタマイズを見る)」→「Display “All Options” menu item(すべてのオプションメニューを表示)」にチェック → 右上の「SAVE CHANGES」で保存。
All Options(すべてのオプション)
主要機能が、なんと1ページにまとめられている。
管理画面キャッシュ化機能によりとても軽く、ページ移動もなくサクサクなうえ検索もでき、Google Chromeの右クリック → 日本語に翻訳でチョチョイと探すと、とてもはかどるぞ。
設定は簡単だが、各機能のブロック履歴などは確認できない。というより、それらの使い方は「設定記事」のため無視。
厳選した推奨設定(ハイスピード)
初期設定から変更した設定や、知っていたほうが良い部分を紹介していくが、それでも結構な数を省いているため、見逃したくないなら目次からが良い。
別ページに移動するとチェックが消えるので、戻りすぎないよう注意。
Wordfence Global Options(グローバルオプション)所属。
Firewall Options(ファイアウォールオプション)所属。
すべての設定が終わったら、競合しない都合の良いプラグインを使い、保護階層を追加しよう。
Wordfence Global Options(グローバルオプション)
Wordfence License(有料ライセンス登録)
無料で使うなら無視。
プレミアムにアップグレードする際は、おそらく購入したときにもらうであろうライセンスキーを入れよう。
View Customization(カスタマイズを見る)
無視。
- Display “All Options” menu item(「すべてのオプション」メニューを表示)
- Display “Blocking” menu item(「ブロッキング」メニューを表示)
- Display “Live Traffic” menu item(「ライブトラフィック」メニューを表示)
メニューとは以下の画像部分のことで、そこに追加・または削除できる。
通常は「すべてのオプション」にしかチェックは入っておらず、この設定場所自体がソレであるため、チェックを外さないこと。
外した場合は、「Dashboard」→ 歯車マークの「Global Options」→ プルダウンの「View Customization(カスタマイズを見る)」→「Display “All Options” menu item(すべてのオプションメニューを表示)」にチェック → 右上の「SAVE CHANGES」で保存すると、All Optionsが復活する。
他2つは、必要になってからカスタマイズすると良い。
General Wordfence Options(多機能なので要確認)
以下のほぼお世話になる機能を設定でき、上から説明していく。
- Wordfence自動アップデート(更新)
- メアド変更
- 訪問者のIP取得方法
- WordPressのバージョン隠し
- Uploadsディレクトリ内PHP無効
- スキャン中、別画面作業をオーバーレイ表示で負荷抑え
- LiteSpeedサーバーのnoabort迂回
- Wordfence無効化時、あらゆるデータ削除
Update Wordfence automatically when a new version is released?(自動更新)
チェック推奨。
Wordfenceの新しいバージョンが生まれたときに、24時間以内にWordfenceを自動更新するか。
ほぼ毎日サイトを確認しているなら、他プラグイン同様手動でも全然OK。
実はレア機能であり、「プラグインそのものが自動更新」するのは珍しいし、セキュリティ的にとてもよろしい基本中の基本なので、バグを恐れるよりセキュリティの穴を恐れて有効化しよう。
ただし、LiteSpeedサーバー環境は失敗の可能性があるため以下を確認し、それ以外のApacheやNginxは無関係なので、Where to email alerts(アラート受信メールアドレス変更)まで読み飛ばして良い。
メジャーなLiteSpeedはmixhost・ColorfulBox・JETBOY、海外ならA2 Hosting。他もあるかもしれないが、アップデート失敗という厄介なことに巻き込まれないためにも、.htaccessにWordfence and LiteSpeed (英語)の文字列を入れよう。
といってもすべての人が該当するわけではないので、事が起きてからでも良かったりするが、何かあったらおそらくこれなので、最低でも覚えておくこと。
当サイトはmixhost環境で、アップデートではなくスキャンのときにどうしても止まった。
おそらく、私がしている特殊なセキュリティ設定と競合しただけで、mixhostはとりあえずスルー確定で良い(実際、まっさらなサイトでは正常だった)。
他のレンタルサーバーサービスは、何も起きないことを願おう!
アップデート失敗状態になったことがないのでなんともだが、もし真っ白で何も表示されない状況なら、万が一ログインできなくなったらの方法で、プラグインを無効化してみよう。
それでも無理ならWordfenceフォルダをダウンロードしてバックアップしておき、削除して再インストール。
Where to email alerts(アラート受信メールアドレス変更)
初期設定だとWordPressで使用しているメアドが入っているが、ここで変更できる。
基本的に変えなくてOK。
How does Wordfence get IPs(IP取得方法:Cloudflareの方要チェック)
最初から公式推奨にチェックが入っているので、通常は無視。
Cloudflare環境は、スパムやコメントしてくれる方までIPがフレア化してしまう。
これはCDNの仕様上仕方がなく(リバースプロキシ)、通常Cloudflare公式プラグインで解決するらしいのだが、それがWordfenceで可能なようだ。
他のCDNも同様の症状になるようなので、試しにやってみると解決するかも?
Hide WordPress version(WordPressのバージョンを隠す)
無効のまま。
「機能に付いているなら、お手軽だし隠しても良い」かと思っていたが、無効化推奨のようだ。
WordPress by default discloses what its version is. This option will hide it from outsiders. We generally recommend that you do not enable this anymore, since there are other methods of determining the WordPress version (“fingerprinting” of static content, like css and javascript files),
引用:Global Options – Wordfence
WordPressはデフォルトでそのバージョンが何であるかを公開しています。 このオプションはそれを部外者から隠します。 WordPressのバージョンを判断する方法は他にもあるため(CSSやJavaScriptファイルなどの静的コンテンツの「フィンガープリント」)、一般的にはこれを有効にしないことをお勧めします。
「これを有効化にしても、他に記述されてるところがあるよ!」ということ。
そもそも秘匿系であり、「バージョンを調べるより攻撃して調べたほうが効率良くない?」という感じがよぎってしまい、効果がフワフワである。
すぐ更新するから、どうでもいーい
Disable Code Execution for Uploads directory(UploadsディレクトリPHP無効)
バックドア対策なのでチェック推奨だが、注意事項有り。
FTPの「public_html/自サイト/wp-content/uploads」ディレクトリに.htaccessを配置し、PHPを実行させない。
今後、プラグインを追加するたびおかしな状況になったら、この機能を疑うこと。
でもこれ、被害後の話なんだ……「そんなのやだー」って人はしなくていいよ!
Pause live updates when window loses focus(スキャン別画面移動オーバーレイ)
チェック、下のUpdate interval in seconds(更新間隔)もそのままでOK。
スキャン中別ウィンドウで作業すると、スキャンはされず? オーバーレイ(Status Updates Paused:ステータス更新一時停止)が出現し、サーバーの負荷を減らしてくれる。
無効にするとかなり負荷がかかるようなので、我慢して使おう。
Bypass the LiteSpeed “noabort” check(LiteSpeedサーバーのnoabort迂回)
通常無視、LiteSpeedサーバーに関係ある方だけ。
最近はサーバー管理者側がWordfenceの自動アップデート・スキャンを勝手に中断しないようにしているようで(Wordfence有名パワー)、チェックをしなくてもほぼほぼ大丈夫なようだ。
もしアップデートとスキャンが中断されるようなら、試しにチェックしてみよう!
Wordfence and LiteSpeed (英語)の公式に書かれている記述をスキップするもの? 正直よくわからない。この項目にチェックを入れたとしても、.htaccessに新しい記述はされなかった。
Delete Wordfence tables and data on deactivation(無効化時、設定削除)
アンインストール時にお世話になるので覚えておこう。
チェックを入れた状態でWordfenceプラグインを無効化すると、テーブルなるものとあらゆるデータが消え、初めてWordfenceを利用した時に戻る。
プラグインのほとんどは何かしらの設定ファイルを残し、再インストールしても前の設定が残っていて、それがなくなるというわけだ。
完全にアンインストールできるのかわからないが、やめる際は是非。
public_html/自サイト名に残った「wordfence-waf.php」は、ここじゃなくてProtection Level(保護レベル)で削除しよう。
Dashboard Notification Options(ダッシュボード通知オプション)
メールが届くわけではないので、2つともチェックが入ったままでOK。
Wordfenceのダッシュボードに存在するNotifications(通知)エリアに、「何かしました履歴」を残せる。
プレミアムプランだと他にも無効化できるが、無料なので2つしかいじれない。
Email Alert Preferences(警告メール受信設定)
要設定。
Where to email alerts(アラート受信メールアドレス変更)で設定したメアドに、以下の警告を送信するか。
- Email me when Wordfence is automatically updated(Wordfence自動更新時にメール):有効
- Email me if Wordfence is deactivated(Wordfenceが無効になったらメール):無効
- Alert on critical problems(重大な問題時にメール):有効のまま
- Alert on warnings(警告を警告する?):翻訳がよくわからないので有効のまま
- Alert when an IP address is blocked(IPアドレスがブロックされたらメール):無効
- Alert when someone is locked out from login(誰かがログインから追い出されたら?メール):無効
- Alert when someone is blocked from logging in for using a password found in a breach(違反で見つかった使用で誰かがブロックされたら?メール):無効
- Alert when the “lost password” form is used for a valid user(パスワード忘れたフォームが使用されたときにメール):無効
- Alert me when someone with administrator access signs in(管理者がログインしたら通知):無効
- Alert me when a non-admin user signs in(管理者以外のユーザーがログインしたら通知):個人なら有効、複数なら無効
- Alert me when there’s a large increase in attacks detected on my site(攻撃の大幅増加で知らせるか):有効のまま
- Maximum email alerts to send per hour(1時間あたり送信するメール限度):あえて0(無制限)のまま
- Maximum email alerts to send per hour(1時間あたり送信するメール限度):あえて0(無制限)のまま
パスワード使い回しをしていなければ、一瞬でログインされることはないため(どこの流出リストにも載っていない)、警告は最後だけで良いという判断もしている。
Activity Report(活動報告)
Enable email summary(メール概要送信周期)
Once a month(月に一回) 推奨。
活動報告を指定した期間に一回、送りつけてくる。
Once a day(日に一回)・Once a week(週に一回:初期設定)・Once a month(月に一回)となっていて、私のように「そんなに送らなくていいです派」は月イチだ。
Enable activity report widget on the WordPress dashboard(活動レポートウィジェット表示)
チェックありのままでOK。
WordPressの方のダッシュボードに付いている、活動レポートを非表示にするか。
ログイン失敗など簡単に確認できるため、有効化のままがオススメだ。
Firewall Options(ファイアウォールオプション)
Basic Firewall Options(基本的なファイアウォールオプション)
Web Application Firewall Status(WAFの状態)
Enabled and Protecting(ファイアウォール有効)になっているはずだが、まだLearning Mode(学習モード)だったり、Disabled(無効)中の方はヤバいので今すぐ有効化!
通常学習モードは、Wordfence初インストール時から7日間となっており、その期間はファイアウォールが有効化されていない。
インストールしたての7日間や、わかっていて学習モードを延長させているなら問題はないが、違うのなら今すぐ有効化にして、今後正常な行動によるエラーが出現した際は、学習モードを使ってみよう。
学習モードの注意事項と使い方は以下を参照。
ファイアウォールの追加保護をするなら、当サイトも使用しているBBQでノーリスク強化をしよう(当サイトは買い切り有料の方だが)。
ちなみに、有料版BBQでブロック数を見られるのだが、最初の頃と比べブロック数が加速して正直ヤバい。
Protection Level(保護レベル)
何もしなくていいが、Wordfenceをアンインストールするときのために、記憶にねじ込んでおこう。
アンインストール前にこの作業をしなければ、害はないがPHPファイル(場所:public_html/自サイト名のwordfence-waf.php)が残り、「なんだろう、Wordfenceって書いてあるから消しちゃえ!」と、何も考えずに削除してWebサイトが真っ白になり、慌てること請け合いだ。
消す前にバックアップを取る癖があったのでセーフ!
アンインストール後に削除したい場合は、初心者向けとは言えない手動削除(英語)か、再度インストールしてREMOVE EXTENDED PROTECTION(拡張保護を削除)→ ①DOWNLOAD .HTACCESS → ②DOWNLOAD .USER.INI → ③CONTINUEで削除&5分待たされる。
これで、Wordfenceと名の付くファイルを抹殺できた。
Real-Time IP Blacklist(リアルタイムIPブラックリスト)
有料なので割愛。
最近お騒がせのIPアドレスを(よその家の話?)、自動でブロックするらしい。
Advanced Firewall Options(高度なファイアウォールオプション)
Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)ロードされるまでIPと国ブロック遅延
テスト目的以外触らない。
WordPressとプラグインがロードされるまで、IPと国ブロックを遅らせる。
つまり、WordPressとプラグインが先にロードされる状態にして、なんらかの理由で競合して使えないときにテストする項目であり、常時利用することは避けよう。
この項目にチェックを入れてエラーが消えたら、Wordfenceのファイアウォールが原因のエラー確定ってことだと思う。
Whitelisted IP addresses that bypass all rules(全ルール回避IPホワイトリスト)
固定IPをお持ちの方専用機能。
すべてのルールを回避でき、管理者画面などでなんらかのエラーがでる際は、自分だけ特別扱いして無理やり回避だ。
Whitelisted services(ホワイトリストサービス許可)
初期設定のまま。
Immediately block IPs that access these URLs(作成したURLに罠を配置)
罠機能だが面倒すぎるので無視。
自分で作成したURLを指定し、そこにアクセスしたIPを即座にブロックする。
欠点は、「普通のユーザーが混ざってブロックされる可能性」を考えないといけない部分。
とくに、セキュリティ系を紹介しておいて、そのURLを自分のサイトで試す恐れのある場合は、安易に指定しないよう注意。
「https://example.com/xmlrpc.php」のXML-RPCは、総当たり攻撃対策でやっているから、普通はしなくていいよ!
なお、Rate Limiting(レート制限)のHow long is an IP address blocked when it breaks a rule(違反ブロック時間)で設定した時間ブロックされる(初期設定の5分でOK)。
Ignored IP addresses for Wordfence Web Application Firewall alerting(外部サービスをファイアウォールに通さない)
通常無視、外部サービスがうまく動かないなら要確認。
何らかの外部サービスを使っている方向けで、せっかくのサービスを弾かないように、ここに該当サービスのIPアドレスを入れ、エラーを回避できる。
例えば、外部サーバーにバックアップを自動でやっていたり、マルウェア(ウイルス)をスキャンさせていたり、クローラーでキャッシュを作成させていたりだろうか。
ブロックしたIPはFirewall(ファイアウォール)メニューのどこかにIPが記述されると思われ、サービスを利用した時間と照らし合わせて該当サービスを探し出し、念のためIPアドレスからホスト名を取得(逆引き)でサービスのURLを割り出せば、該当のIPアドレスだとわかるはず。
想定した割り出し方だから、違ったらごめんね。
Rules(既知攻撃ブロックルール)
無視、無料だと30日間遅れたルールのアレのこと。
多すぎかつよくわからないので、そのまま使おう。
Brute Force Protection(ブルートフォース保護)
総当たり攻撃(ブルートフォースアタック)対策は、初期設定で100%発揮されているが(Wordfence調べ)、パスワード管理ソフトを使用した強者はさらにキツくすることができる。
正直に言うと初期設定で十分だよ! パスワードが仕事するからねっ
Enable brute force protection(ブルートフォース保護を有効にする)
ONのままだが、SiteGuardやXO Securityといったログイン系プラグインと併用しているなら、モロ被りであるためアンインストール推奨。
そもそも、上記プラグインはログインページとXML-RPCを主としたログイン系セキュリティであるため、ログイン強化目的のみなら併用する必要がない。
攻撃される定番のXML-RPCをWordfenceでは無効化できないが、この総当たり攻撃対策に含まれている。つまり、無効化していないので対策しつつ、WordPressモバイルアプリやJetpackなどが普通に使えるぞ!
- Lock out after how many login failures(ログイン失敗回数後にロック):3回
- Lock out after how many forgot password attempts(何回パスワードを忘れたかの後にロック):1回
- Count failures over what time period(失敗回数リセット時間):12 hours(時間)
- Amount of time a user is locked out(ロック時間):4 hours(時間)のままでOK
- Immediately lock out invalid usernames(存在しないユーザーID入力時点で速攻ロック):有効、パスワード管理ソフトのKeePassはミスの可能性があるので無効
- Immediately block the IP of users who try to sign in as these usernames(指定したユーザーID入力時点で速攻ロック):adminなど有名どころをおこのみで記入 → Enter(エンター)
- Prevent the use of passwords leaked in data breaches(どこかから流出したパスワード情報を使用したらロック):For all users with “publish posts” capability(管理者含めた投稿できるユーザー全員)にする
Wordfenceを導入しておきながら、パスワード管理ソフトを導入しないのはありえないので、この記事は利用している前提のやりすぎ設定になっている。
当サイトは自称ガチ勢で非常に詳しく紹介しており、過去諦めたとしても導入に挑戦し、普通に無料のため後で確認すると良い。
万が一ログインできなくなったら
この方法は他のプラグインでも言えることなので、覚えておこう。
FTPにアクセスし、public_html/自サイト名/wp-content/pluginsにある「wordfence」フォルダに、ハイフン(-)やアンダーバー(_)を足すだけで無効化される。
さきほどのAmount of time a user is locked out(ロック時間:4時間) で決めた時間が経過すれば、自分のIPを削除しなくても勝手に解放される。
今すぐにでも解除しておきたいなら、Firewall(ファイアウォール)メニュー → 左上にあるBlockingタブ → 一番下の自分らしき情報にチェック → UNBLOCKで解除しよう。
パスワード管理ソフトを使えばミスなんかないし、普通に32桁の次元だよっ
Additional Options(追加オプション)
- Enforce strong passwords(強力なパスワードを強制):Force admins and publishers to use strong passwords (recommended)のまま
- Don’t let WordPress reveal valid users in login errors(ユーザーID正解時、ログインエラーで正解していると悟らせない):有効のまま
- Prevent users registering ‘admin’ username if it doesn’t exist(ユーザーをadmin名で登録させない):有効のまま
- Prevent discovery of usernames through ‘/?author=N’ scans, the oEmbed API, and the WordPress REST API(あらゆるユーザーID表示を隠す):どちらでも※理由は後述
- Block IPs who send POST requests with blank User-Agent and Referer(空欄のユーザーエージェントとリファラーで投稿リクエストを送信するIPブロック):多分有効でいいがよくわからず、初期設定で無効なので有効化して様子見(要記憶)
- Custom text shown on block pages(ブロックページに表示させる文章):英文は組み込まれているので、日本人向けになんか入れる
- Check password strength on profile update(プロファイル?更新時にショボパスワード利用を管理者にチクる):有効
- Participate in the Real-Time Wordfence Security Network(個人特定できない匿名データをWordfenceと共有し、代わりに総当たり攻撃を仕掛けた悪人のIP情報を受け取りブロック):有効
※当サイトはユーザーIDを隠しておらず、WordPress公式も実際には問題にならないと述べている。
公式ユーザーIDの開示がセキュリティ上の問題にならないのはなぜですか?(英語)
話が長くなるので、めちゃめちゃ気になる方は以下参照。
秘匿系は効果がフワフワしてて、微妙なんだー
Rate Limiting(レート制限)
何も考えずにONのまま。
そうすると以下の設定が適用され、レート制限は何もしなくてよかったので、何の問題もなければ次のWhitelisted URLs(ホワイトリストURL)まで読み飛ばして良い。
Immediately block fake Google crawlers(偽Googleクローラ即座にブロック)
当サイト的には無効推奨(理由有り)。
実際の訪問者、とくにブラジルからの正常なユーザーがブロックされているといった報告があり、問題のないユーザーがなんらかの原因でブロックされている事実(英語)がある。
さらに、ライバルのセキュリティプラグイン「All In One WP Security & Firewall(略称AIOWPS)」を紹介してわかったことがあるのだが、Search Console(サーチコンソール)のボットを弾いた事故があった模様。
このことから、なんだか面倒なので無効を推奨(実際初期設定で無効になっている)。
もし弾かれてしまった場合は、Fetch as Googleで自分のサイトにボットを派遣するよう依頼して、正常にクロールされるか確認しよう。
Fetch as Googleをする前に、次の章で「確認済みの~」設定にすること。
参照ウェブサイト用 Fetch as Google を使用する – Search Console ヘルプ
そして、クローラーではなくCrawler(クローラ)呼びだった……
How should we treat Google’s crawlers(Googleクローラをどのように扱うか)
初期設定のVerified Google crawlers have unlimited access to this site(確認済みのGoogleクローラは無制限にアクセス)のままでOK。
さきほど説明した「弾かれた際にFetch as Googleに依頼する」行程をする場合は、必ず上記項目に変更しよう。
- If anyone’s requests exceed
- If a crawler’s page views exceed
- If a crawler’s pages not found (404s) exceed
- If a human’s page views exceed
- If a human’s pages not found (404s) exceed
- How long is an IP address blocked when it breaks a rule(違反ブロック時間)
- Immediately block IPs that access these URLs(作成したURLに罠を配置)のブロック時間は、ここの設定が適用
- Whitelisted 404 URLs
Whitelisted URLs(ホワイトリストURL)
ファイアウォールのLearning Mode(学習モード)で学習した正常リストが、ここに載る。
「実は学習モード中に攻撃されていて許可してしまった場合」、削除しなければならないわけだが、攻撃が継続していないのなら気づかないフリをしておこう。
学習モードにせずに、ホワイトリストに登録することはできるはずだが割愛。
Blocking Options(ブロッキングオプション)
すごく使いたい機能。
Advanced Country Blocking Options(高度な国別ブロッキングオプション)
最強機能筆頭だが有料。
2段階認証が無料化したことにより、有料にする際はこれを期待することになるだろう。
いわゆる国別アクセス禁止が可能で、ログインページとそれ以外を制限することができる。
コロコロIPアドレスを変える攻撃もあるが、基本は同じ国からのアクセスが多いため、必然的にブロック確率が飛躍的にあがる=効果テキメン。
ただ、Google広告(お金を払って配信する方・AdSenseじゃない)をお使いの方で全ページ国別ブロックしてしまうと「規約違反になる」とWordfenceヘルプに書かれており、基本はログインページにだけ海外アクセス禁止を付けるように。
参考英語:Country Blocking – Wordfence
初めて知りました!
Scan Options(スキャンオプション)
スキャン系統の設定をできる。
当サイトで使っていた頃は、私の設定が悪いのかスキャンが正常に終わることはなかった。
そんな方は、マルウェアスキャンとファイアウォールしか付いていない都合の良いプラグインと併用し、うまく穴埋めすると良い。
Scan Scheduling(スキャンスケジュール)
ONのまま放置……と言いたいところだが、どうやら重いらしい(わざわざ貧弱サーバー用設定が用意されている)。
無料版はスケジュール頻度を変更できず、そもそもファイアウォールと総当たり対策の方をやっているので、「侵入されたあと用?」のスキャンは比較的重要ではない。
毎朝など、自分の日課と相談して手動でやるのはアリ。
なにそれめんどくさーい! やだー
ちなみに、無料版はクイックスキャンが毎日実行され(時間不明)、次の章のフルスキャンは72時間ごとだそうだ。
Basic Scan Type Options(基本スキャンタイプのオプション)
4つあり、それぞれ状況に応じて使い分ける必要がある。
Limited Scan(貧弱サーバー用スキャン)
貧弱じゃなくても、こちらで良い気がする低メモリサイト用スキャン。
標準スキャンと比べると、結構な機能を除外してスキャンしているため、見比べてよく考えること。
新たなチェックを増やすかどうかは、General Options(一般オプション)まで読み飛ばして、どうするか悩もう。
Standard Scan(標準スキャン)
すべてのサイトにオススメされている、初期設定の標準スキャン。
「重いな~」と何も感じないなら、そのままでも何の問題もない。
この設定でスキャンが終わらないなら、Limited Scan(貧弱サーバー用スキャン)を試そう。
それでも終わらない当サイトのような状況は、さきほども紹介したスキャン・ファイアウォール付きプラグインでごまかすといい。
High Sensitivity(高感度スキャン)
不正侵入された後の、変なヤツスーパー検知モード。
かなり負荷がかかるようなので、緊急時以外は使わない。
Custom Scan(カスタムスキャン)
選択できず、次の章General Options(一般オプション)の設定をイジり、上記3つのスキャンタイプに属さないと「カスタムスキャン」になる。
General Options(一般オプション)
スキャンのオプションを変更できる。
基本的には、Limited Scan(貧弱サーバー用スキャン)またはStandard Scan(標準スキャン)の設定を減らしたり、増やす際にイジる。
Google Chromeに付いている、右クリック → 日本語に翻訳などを駆使して、自分が「これはあったほうがいいな……」と思うものにチェックを入れてカスタマイズしよう。そうすると、Custom Scan(カスタムスキャン)になるのは仕様。
数が多いため消去法で厳選し、標準でもいらなそうな設定(適当)は以下。
- Scan for admin users created outside of WordPress(WordPress以外で作成した管理ユーザーをスキャン)
- Check the strength of passwords(パスワード強度)
- Monitor disk space(ディスク容量チェック:自作サーバー系限定)
上記は「貧弱サーバー用スキャン」で最初から無効化されているが、これだけで軽量化されるわけがない。
結局のところ、セキュリティと軽さの天秤であり、落としどころを探す必要あり。「Wordfenceが用意している設定なのだから、思い切って貧弱スキャン!」がコツ。
Performance Options(貧弱サーバー用オプション)
Limited Scan(貧弱サーバー用スキャン) は最初から「Use low resource scanning (reduces server load by lengthening the scan duration) 低リソーススキャンを使用(スキャン期間を長くしてサーバー負荷を減らす)」に入っている。
代償として、スキャン時間が2~4倍増え、間に合わない場合は次回途中からになる?
- Time limit that a scan can run in seconds(スキャン制限時間):時間を増やせ、初期設定は空欄の3時間で、数字だけを入れれば時間判定なのかよくわからないので要確認
- スキャンが延び過ぎて終わらない場合は、ここで延ばしてみよう
- How much memory should Wordfence request when scanning(スキャン時に要求するメモリ):初期設定の256のまま
- 制限しすぎた結果、エラーになった人(英語)が居たので触らない
- メモリ不足のようなエラーがでたら512に変更するか、この機能を諦める
他は無視。
Advanced Scan Options(高度なスキャンオプション)
効果がわかりにくいので無視しても良い。
この機能はいろんなプラグインでUploads除外を例に上げてるけど、なんで自動でやってくれないんだろう。技術的に難しいのかな?
Exclude files from scan that match these wildcard patterns (one per line) の欄にファイルを記入すると除外できる。
ワイルドカードという、どのパターンにもマッチする方式を使用でき、ほぼ画像しかないFTPの「wp-content/uploads/* 」というふうに記入しておけば、ほぼ画像のスキャンを無視してくれる。
セキュリティコンボが両立できそう。わからなければ、上記のようにするか、両方何もしないかかな!
下の方にある「Additional scan signatures (one per line)追加のスキャンシグネチャ」 は難しいので無視。
Tool Options(ツールオプション)
Live Traffic Options(データ追跡オプション)
初期設定の「SECURITY ONLY(セキュリティのみ)」のままでOK。
ALL TRAFFIC(すべてのデータ)は重くなり、いわゆるGoogle Analyticsのように訪問者すべてを集計するような状態になってしまう。
変なヤツにちょうど攻撃されている最中なんかは、一時的に有効化させて挙動を見るのはアリ。
Don’t log signed-in users with publishing access(ログイン中のユーザーを追跡しない)
初期設定のままのチェックありでOK。
- List of comma separated usernames to ignore(追跡しないユーザー名のリスト):追跡したくないユーザーIDを入れるようだ
- List of comma separated IP addresses to ignore(追跡したくないIPアドレスリスト)
- Browser user-agent to ignore(追跡したくないユーザーエージェント)
- Amount of Live Traffic data to store (number of rows)(保存するデータ量):初期設定の2000から500まで減らしてOK
- Maximum days to keep Live Traffic data (minimum: 1)(保存するデータ日数):初期設定の30日のまま(最小値1)
Import/Export Options(設定読み込み・書き出しオプション)
非常に使いやすいが、注意事項有り。
あらゆる設定、ブロックしたIPなどをバックアップのためにエクスポート(書き出し)したり、自サイトや他のサイトにインポート(読み込み)可能。
表示されているところをクリックすると、ここで設定できないため「Tools(ツール)」メニュー →「Import/Export Options」へ飛ばされる。
【バグ】All Options(すべてのオプション)右上にあるEXPAND ALL(下の画像全部ペローン部分)でペロり、その後に戻すとImport/Export Optionsがペロれなくなり、表示されない。再度ページを更新するか、全部ペロろう。
飛ばされたら、書き出しは「EXPORT WORDFENCE OPTIONS」を押してどこかに保存、読み込みたいなら、文字列を四角の中に貼り付けて「IMPORT WORDFENCE OPTIONS」。
これで簡単に書き出し・読み込みができるはずだが、以下の注意事項をチラ見しよう。
一応、トークンは「取扱い注意」とのこと。
ライセンス(APIキーでもある)は除外されているから問題ないと思うけど、何かしらのIPを考えて取扱い注意って言っているのかもね
Login Security(ログインセキュリティ)
Two-Factor Authentication(2段階認証)
残念有料。なんと無料化! これにより有料版にする利点が国別ブロックくらいになり、収益化が大丈夫なのか逆に不安に。
総当たり攻撃ブロックでうまくかわし、バレたとしてもこちらの強すぎる保険で鬼に金棒。
以前はよく更新されるminiOrangeを紹介していたので、それを導入していた方もWordfenceに乗り換えよう。
All Optionsからではなく画像のように①・②と進め、QRをスキャン → リカバリーコードをパスワード管理ソフトへコピーして認証しよう。
QRコードを2段階認証アプリで読み取るが、WordPressユーザーはAuthyがオススメ(海外ツールを触るなら尚更)。それほど増えそうにないならIIJ SmartKey。
アプリに表示されたコードを入力すると、小さいウインドウで「リカバリーコード保存した?」と最後の保存チャンスをアピールしてくるので、保存済みならスキップ。
これで設定可能。
無効化はDEACTIVATEを押すだけ、リカバリーコードも簡単にリセットでき、便利な設定もあるのでこのままLogin Security Settings(ログインセキュリティ設定)まで読み進めよう。
パスワード管理ソフトが何なのかは以下の記事参照。今から始めるならBitwarden。
Login Security Settings(ログインセキュリティ設定)
目的はほぼ「ログインしたデバイスの2FAを30日間スキップ」だが、複数人運営の方に役立つものもある(2FAとは2段階認証のこと)。
- Enable 2FA for these roles(これらのユーザーに対して2FAを有効):Editor(編集者)・Contributor(投稿者)にチェック
- Allow remembering device for 30 days(ログインしたデバイスの2FAを30日間スキップ):共有パソコンでなければ利便性向上なのでチェック
- Require 2FA for XML-RPC call authentication(XML-RPCコール認証に2FAが必要):個人的にSKIPPED(スキップ)に変更
- Disable XML-RPC authentication(XML-RPC認証を無効にする):ログイン試行回数で対策されているため、ONにする必要はあまりなく、ほぼ無視でOK
最後に必ずSAVE(保存)しよう。
補足すると、Contributor(寄稿者)とSubscriber(購読者)はいたずら以上をできないため、2段階認証を強制させる必要はない。
XML-RPCはJetpackの一部?機能・WordPressアプリでの投稿をする方は使っているので、チェック有り(無効)にしてはいけない。
他にXML-RPCを使っているプラグインがあるかどうかは知らないが、あるとしたら投稿を編集したり、コメントを編集するものを外部からできるものが、XML-RPCを使っていそうだ。
また、ログインセキュリティ下にあるreCAPTCHA関係のものは、ログインページにしか使えない=2段階認証及びログインページを変更する機能と対策場所モロかぶりのため不要。
Invisible reCaptchaプラグインを使っている場合は、WordfenceのreCAPTCHAと競合するため、Wordfenceの方はやはり設定する必要はない。
アンインストール時にやるべきこと
相性が悪いと、泣く泣くアンインストールすることになる。
そのままでも無害なので大丈夫だが、気になる方は
の2つをやってからアンインストール、または再インストールしてやってからアンインストールすることで、私が知っているかぎりはWordfence関係のものすべて抹殺できる。
コメント
こんにちは、Wordfenceの2段階認証の設定について教えてください。
ログイン画面で下記のようなエラーが出るのですが、原因は何が考えられますでしょうか?
“ERROR: An error was encountered while trying to authenticate. Please try again.”
この画面が表示されて、2段階認証のコードを入力するページに進めないのです。
エックスサーバーでWordpressのサイトを3つ運営しているのですが、2つは問題なく2段階認証でログイン出来て、
一つだけができない状態です。
使っているプラグインも同じです。
プラグインを全停止したり、テーマをデフォルトに変更、プライベートブラウジングでも
試してみましたが、改善されません。
もし有効な解決方法があれば、よろしくお願い致します。
これかな?(゚~゚o)
参考ERROR: An error was encountered while trying to authenticate. Please try again. | WordPress.org
functions.phpに記述した何かが不具合を引き起こしていた模様。
参考2FA causes an login error | WordPress.org
こちらは.htaccessに記述した何かが不具合を引き起こしていた模様。
functionsも.htaccessもバックアップを取って適当に消し、テストしてみてください。
なお、私はバックアップを取りません(´ε`;)(クリップボードにコピペしてどうにかするめんどくさがり屋さんタイプ)
全部やっているようなので抜けかそのサイトだけの設定が原因かも?(テーマを変更したときにプラグインを全停止していなかったなど)
総当り確認
また、Wordfenceを強制的に止める場合はFTPからWordfenceのファイル名へ1文字を適当に追加するだけで、ファイル名が違うのでWordfenceが実行されなくなる → 停止状態になるのでもしものときがあればご利用ください。
こにゃにゃちはです。
以前reCaptchaダブりを助けていただいたバートです。
ぷっぷさんの 【バレてOK!】WordPressのユーザー名は99%変更不要 から再度飛んで参りました。
上記の記事を参考に設定したWordfence導入済み自分のドメインに、/?author=1すると・・・
Warning: Use of undefined constant IS_SINGLE – assumed ‘IS_SINGLE’ (this will throw an Error in a future version of PHP) in /home/★サーバーアカウント名★/public_html/★自分のドメイン名★/wp-content/themes/★使用中のWPテーマ名★/classes/SWELL_THEME/Output/Javascript.php on line 35
から始まる同じ様なWarningメッセージが、鬼の様に出てきます。
テーマは変えずWoedfenceを無効化すると、この症状は出ないのでWordfenceが原因の様なのですが、この様なご経験ございますか?
以前はどうも( ・ω・)/
エラー系は全然よくわからないですね……
「Javascript.php on line 35」ってJavascript.phpの中にある35行目の文字列の相性が悪いということなので、そこがWordfenceの何かしらの設定に引っかかっている模様。
とあるので、将来のバージョンでスロー?になるからWordfenceが使用中のテーマにある「Javascript.php」の項目をブロック?しているのか、未定義の定数という全然よくわからないものを使うな!とWordfenceが警告を出しているだけだと思うので、
WordfenceのJavaScript除外設定がどこにあるかはわかりませんが(スキャンかファイアウォールの除外設定、ホワイトリスト的な何かがあると思うのでソレ)、テーマの「/★使用中のWPテーマ名★/classes/SWELL_THEME/Output/Javascript.php」を入れるだけで多分イケイケのはずです∩(・∀・∩
こういうのも、知識なしで翻訳して「う~んこういう意味かな? 多分合ってる!」という適当で行けたりしますので、覚えておくと何かと便利です( Ꙭ)
ご丁寧にすんません( ;∀;)
初心者で知識無いので、おっしゃる通り総当たり攻撃してみました。
ただし、コードは弄れないので状況比較だけですが。
・・・いろいろ試して分かったことだけ記載・・・
■テーマがSWELLの場合
① Wordfenceあり + PHP7.2以上 = 不具合有り
② Wordfenceあり + PHP7.1以 = 不具合なし
③ Wordfence無し + PHP7.2以上 = 不具合なし
④ Wordfence無し + PHP7.1以下 = 不具合なし
■テーマがAffinger5 or Sango
⑤ Wordfenceあり + PHP7.2以上 = 不具合なし
⑥ Wordfenceあり + PHP7.1以 = 不具合なし
⑦ Wordfence無し + PHP7.2以上 = 不具合なし
⑧ Wordfence無し + PHP7.1以下 = 不具合なし
という感じで上記①の通り、「SWELLというテーマは、Wordfence+PHP7.2以上で仲良くできない」かんじです。
ぷっぷさんの記事を読んでWordfenceラブでしたが、新しいPHP使いたい&テーマの乗り換え大変、なので
AIOWPSに乗り換えてみたいと思います。
ということで、さっそくWordfenceのアンインストール方法記事と、AIOWPS導入記事を見まくりでございます。
色々とありがとうございました(‘◇’)ゞ
PHPはすでに7.4まで出ているので、7.4に変更可能でしたらそちらに、7.3しかないのなら7.3で、サーバーが対応していないのもあるのでそれはサーバーにお問い合わせで。
次は7.5じゃなくて8っぽい?
参考PHPのリリース日とサポート期限 – Qiita
世界的に最新PHPが使えるサーバーはそこそこラッキーで(だいたい遅いし、誰かが急かしている感じ)、今は7.2さえ使えれば最悪OKの模様。
といいつつ、7.3すらないのはもう技術者不足に陥っていそうなのでいいイメージなし(゚~゚o)
また、SWELL開発者さんはWordfenceをお使いのようなので、テーマ側に聞いたほうがいいかも?
参考SWELLで非推奨・不必要なプラグインと、推奨プラグインについて | WordPressテーマ SWELL
公式でエラーがでていないということはPHP7.1以下を使っているということなのでしょうか( Ꙭ)
どちらにせよWordfenceに対応していないサーバー、またはテーマ側は名前も知っているメジャープラグインなので、通常はどうにかしてくれるはず。
痒い所にまで手を伸ばして頂いて、ありがとうございました。
「 PHP7.2以降は、クオートしない文字列は警告表示される 」というのが問題らしいとこまではなんとなくわかりました。
https://tamoc.com/php72-warning-quort/
公式HPはPHP7.3.8、試しに/?author=1書いても不具合起こらないので、何か対策済みか、Wordfence入れていないかのどっちかだと思います。
ぷっぷさんが言う通り、SWELL開発者に聞いてみるのが一番ですね。
ありがとうございました!
いえいえ( ・ω・)/
Gravatar設定してる!
こんばんは、いつも力強い記事を拝見して助けて頂いております。
Wordfenceで二段階認証が無料ではじまったコメントをみまして、設定を試みました。
ワードプレスログインにgoogle reCAPCHA Ver3を設定しているのですが、ログイン後に現れる二段階認証用のコード入力ウィンドウが、コード入力する暇もなくハヤテのごとく凄いスピードで勝手に閉じてしまいましてログインが出来ません。
login securityのEnable reCAPTCHA on the login and user registration pagesでキーも入力しているんですが上手く行かず。
何かご知見ございませんでしょうか?
試しにまっさらなテストサイトにWordfenceを入れて、二段階認証とreCAPTCHAを入れた結果正常でした(゚~゚o)
この時点でバートさんの環境に問題がある可能性大なので、以下の調査をしてみてください。
※今回私は2段階認証とreCAPTCHAしか設定していないため、それ以外のWordfence設定が実は干渉していた場合は激烈に判別が難しくなり、助けられません(゚´Д`゚)゚。
また、WordPress最新版ならば一時的にプラグインを全停止しようが、セキュリティ的にほぼほぼ問題ないため、容赦なく1日間停止していても余裕=恐れるに足りません。
一応公式フォーラムの方に似たようなケースがありました(コード入力表示が出現しない)。
参考Site not prompting 2FA code text box | WordPress.org
子細なアドバイスありがとうございす。
結論から申し上げると「解決」しました
1)全部トライしてアウト。サーバーの問題かWordfenceの細かい設定が原因なら知識ない私にはハードル高いから嫌だなぁ、と激しく落ち込む。
2)reCaptchaプラグイン(Invisible reCaptcha)とWordfenceの相性を疑う。
3)上記両方のプラグインでそれぞれLogin Form Protectionを実行していたというお恥ずかしい事実に気が付く。
4)Invisible reCaptchaの方だけLogin Form Protectionをオフにして、Login Form ProtectionはWordfenceに任せる形を採用。
5)めでたくログイン可。
という顛末でした。
Login Form Protectionが競合している事に暫く気が付かず、初歩的なやらかしというお恥ずかしい感じでしたが、非常に助かりました。
ありがとうございました(*- -)(*_ _)ペコリ。
あ~(´ε`;) もうちょっとわかりやすく伝えられたかも!
この時点で複数使っている可能性に気づいていたのに、全プラグイン停止でごまかしてしまい、結果としてバートさんの手間が増えてしまいました。
正確には「Wordfenceだけ残した状態で全停止」でした。
そうすることにより、Invisibleプラグインが停止中の状態でWordfenceが有効化してログインできる状態に気づくことができ、余計なことは減らせたはずでした。
というわけで、気が利くぷっぷレベル86点の減点14点ですねー(゚~゚o)
Invisible reCAPTCHA使っている人多いし、追記しておきます!
追記は非常に良い事だと思います。
私の様な初心者だと機能競合に気が付かない可能性があるので。
Wordfenceで二段階認証を使用、かつログインにreCaptchaも使う場合は、WPログイン時のreCaptchaはWordfenceの機能を使い、reCaptcha関係のプラグイン側ではWPログイン機能はオフとしコメント等の機能だけ任せる。
が良いと思います。
あざした!
言われるまで追記するの忘れてた(゚Д゚;)
そして、追記中に全部思い出したので補足。
reCAPTCHA関係はわざと書きませんでした。
理由はログインページ変更、2段階認証と保護する場所がかぶっていたためで、WordfenceのreCAPTCHAはコメント欄には使えず、ログインページにしか使えない微妙な仕様だったのが原因で省きました( Ꙭ)
本当はコメント欄とかにも対応してくれれば、Invisibleプラグイン減らせるんですけどね(´ε`;)
一応Invisibleの方を使っていた際の注意事項も書いておきましたので、これで競合の可能性は皆無のはずです!
とりあえず、私としてはWordfenceのreCAPTCHAは完全にいらない機能扱いにしておきました。
なお、WordfencereCAPTCHAのJavaScriptはログインページでしか読み込まれない仕様っぽいので、万が一つけていたとしても余計に外部JavaScriptを読み込む心配はなさそうです。
wordfenceの2fa無料版でもできるようになったみたいっす
ログイン系セキュリティだけのもあるみたいっす
[Wordfence Login Security]
ほんとだ(*゚▽゚)
あっれー、そうなると無料のWordPressセキュリティプラグインはWordfence一択かなぁ………元々そのような感じだけども。
さらにAIOWPSとの差が開いてしまったし、ログイン系の方にも2FAが付いているんですね。
これはsiteguardとXOSecurityの肩身が狭いなー。Wordfenceのログイン系は記事作成しないけど……
とりあえず、今月中に追記しておきますね∩(・∀・∩