All In One WP Security & Firewallの使い方 ~WordPressセキュリティ対策

WordPressの使い方

この記事では「All In One WP Security & Firewallのインストールや使い方」についてどこよりも詳しく丁寧に解説していきます。

時間がない方やおすすめ設定だけ読みたい方はとりあえずはマーカー線を引いた場所だけ読むだけでも大丈夫です

この記事を監修・執筆した専門家

こんにちは!この記事を監修・執筆した斎藤はじめと申します。
私は現役のエンジニアで、普段はWordPressの開発案件などをメインに担当しています。経歴としては誰もが知っている月間数千万人が利用するサービスの開発をしたり、今でも月間数百万人が訪問する規模のWordPressサイトの運営しております。WordPressを触らない日はありません。

そんな私がプロの目で解説していきます!

WordPressプラグイン「All In One WP Security & Firewall」とは?

「All In One WP Security & Firewall」はWordPressのセキュリティを強化するための無料プラグインです。

インストールはなんと100万件をこえている、世界的に大人気のプラグインです。
無料なのがビックリするぐらい多機能で設定項目が多いです。

海外製ではありますが、海外のセキュリティプラグインとしては珍しく日本語対応されているのがうれしいところ。

ただ、専門的な用語も多く使われるので難易度はそれなりに高いです。初心者の方はぜひこのサイトの解説を読みながら設定してみてください。

なぜWordPress運用に「All In One WP Security & Firewall」が必要なのか?

なぜWordPress運用にはAll In One WP Security & Firewall」が必要なのでしょうか?理由はいくつかあります。

WordPressが持つセキュリティの脆弱性

WordPressに関しては不正アクセスの脆弱性への指摘が多々あります。個人的に言っても初期設定で使うのはちょっと心配であまりおすすめできません。

脆弱性がある理由としては

  • WordPressが世界サイトの4割で採用されているなど圧倒的に普及しているサービスなので狙われやすい
  • オープンソース(プログラムを公開しているソフト)なのでセキュリティの穴が発見されやすい
  • 歴史が古く、昔の仕様を引き継いだ結果脆弱性になる

などなどありますが、サイバー攻撃者にとってはどれも関係ありません。

増え続けるサイバー攻撃

2000年移行、インターネットの普及とともにサイバー攻撃は世界中で増え続けています。加えて、コロナ禍によるネット利用の増加やロシアのウクライナ侵攻以降、サイバー攻撃の伸びは爆発的です。

個人ブログでも必ず狙われているサイバー攻撃

WordPress自体は無料ソフトウェアなことから、自己責任で利用します。
現状はレンタルサーバー会社などがよくある最低限の不正アクセスのセキュリティ対策を導入はしていますが、それも十分ではありません。

サイバー攻撃は大企業だけの問題ではありません。攻撃者はその大企業を狙う踏み台の1つにしようとして、個人のブログしか持っていないあなたのサーバーにも毎日のようにセキュリティの脆弱性を探す通信をしてスキャンしています。いつのまにかサーバーがのっとられて、大量の加害者の1人になってしまいます。

この脆弱性スキャンのための通信は小さい個人のサイトでも数十件~数百件くらいは毎日のようにあります。ないと思っている人も、おそらくログを見てないか、気づいていないだけです。

サイバー攻撃による不正アクセスは自分事として考え、自分のサービスのセキュリティ対策は自分で責任を持つことが大切です。

「All In One WP Security & Firewall」プラグインのインストール

以下のようにプラグインを検索して新規インストールします。

インストール自体は数秒で終わると思いますので、有効化します。

インストールと有効化が終わると以下のようなメニューが現れます。

インストールしただけで設定が何か有効になることはないので自分で必要なセキュリティ機能を追加していきます。

「All In One WP Security & Firewall」の機能一覧

「All In One WP Security & Firewall」の機能(メニュー)には以下のようなものがあります。

  • ①ダッシュボード
  • ②設定
  • ③ユーザーアカウント
  • ④ユーザーログイン
  • ⑤ユーザー登録
  • ⑥データベースセキュリティ
  • ⑦ファイルシステムセキュリティ
  • ⑧ブラックリストマネージャー
  • ⑨ファイアウォール
  • ⑩総当たり攻撃
  • ⑪スパム防止
  • ⑫スキャナー
  • ⑬メンテナンス
  • ⑭その他

1つ1つ詳しく解説していきますが、機能の数が多いため全て読み切るのは難しいかもしれません。
おすすめの設定や特に重要な部分にはマーキングの線を引いていきますので、時間のない方はその部分だけでも読んでみてください。

①ダッシュボード

ダッシュボード

ダッシュボードでは現在の状況は設定の進捗などのまとめが表示されます。

システム情報

サーバー上のソフトウェアのバージョンや設定内容などシステム情報をまとめて参照できます。

ロックされたIPアドレス

このプラグインの後述のセキュリティ機能(ユーザーログインなど)を有効化したことにより、一時的にロックされたIPアドレスを表示します。

永久ブロックリスト

このプラグインの後述のセキュリティ機能(スパム防止など)を有効化したことにより、永久的にロックされたIPアドレスを表示します。

Logs

このプラグインのデバッグが有効になっているときに出力されたログを参照します。
デバッグの有効化は「WPセキュリティ>設定>一般設定>デバッグ設定」から

②設定(Settings) (※推奨あり)

一般設定

このプラグインのセキュリティ機能やファイヤーウォールの無効化ができます。何か問題があったら一度すべて無効にして最初から始めてみましょう。

またプラグインのデバッグの有効化をしてログを出力することができます。
ログの参照は「ダッシュボード>Logs」から

.htaccessファイル

.htaccessファイルのバックアップやリストア(復元)ができます。/wp-content/aiowps_backupsディレクトリに保存されます。

wp-config.phpファイル

wp-config.phpファイルのバックアップ(ダウンロード)とリストア(復元)ができます。

WPバージョン情報 (※推奨)

HTML内にWordPressバージョンなどのmetaタグ出力を無効にします。
有効にしておきましょう。

<meta name="generator" content="WordPress 3.5.1" />

インポート/エクスポート

このプラグイン自体の設定のインポート/エクスポートが行えます。

高度な設定

こちらはIPアドレスの取得方法の詳細を設定します。
プロキシやロードバランサがエンドユーザーとの間に存在し、IPアドレスが通常のように取得できない場合に設定します。
アクセス元のIPかHTTPヘッダのX-Forwarded-Forの中から取得するかなどを選択します。
通常は設定する必要はありません。

③ユーザーアカウント(※推奨あり)

「ユーザーアカウント」ではブルートフォース攻撃やリスト攻撃などのサイバー攻撃者からの不正アクセスから身を守るための「様々な脆弱性をチェックして修正」をします。

WPユーザー名(WP Username) (※推奨)

adminというユーザー名が存在するかチェックし、存在した時に別のユーザー名への変更ができます。
adminユーザーが存在する場合は必ず変更しておきましょう。

ユーザー名adminは最もサイバー攻撃の標的になりやすいユーザー名なのです。しかし現実的にWordPress運用の現場ではユーザー名にadminが使われがちです。それは簡単インストールなどの機能や意識の低い管理者によって作成されてしまいます。

実際にadminユーザーが存在する場合は、以下のようにユーザー名を変更できます。デフォルトのWordPress仕様だとユーザー名変更はできないので便利ですね!

表示名(Display Name) (※推奨)

ユーザー名と表示名に同一の名前がつけられていないかチェックし、変更を促します。
ユーザー名と表示名に同一ユーザーが存在する場合は必ず予測しづらいものに変更しておきましょう。

ユーザー名と表示名に同じ名前のものがある場合はユーザープロフィール編集画面に遷移し、姓名かニックネームをつけてそちらを表示名に設定します。

正常時になるとこのメッセージにかわります。

パスワード(Password)

手入力したパスワードの強度を測定する便利ツールです。

現在登録しているユーザーのパスワード強度を表示するようなものではありません。いつも自分が使いがちなパスワードがサイバー攻撃によって何分で破られてしまうかおおよその参考にするために、使う機会があったら使いましょう。

④ユーザーログイン(※推奨あり)

「ユーザーログイン」ではWordPressへのログイン関連のセキュリティ設定や確認などをします。

ログイン制限 (※推奨)

IPアドレスによるロックダウン(ログインブロック、ログインのロック)をするための各種設定をします。

ログイン制限に関する簡単な説明とおすすめの設定は以下です。ぜひやっておきましょう。

以下、補足の詳しい説明をしていきます。

最大ログイン試行回数/ログイン再試行時間/ロックアウト時間の長さ

ログインに失敗した接続元のIPアドレスをどういう条件でブロックするかという設定です。
●分以内に●回失敗したIPを●分間ブロックする、というような設定をします。正解はないですが、3回失敗でロックはちょっと人間にも厳しすぎる気もします。

また、10秒で100回などに設定すると11秒で100回ならログイン試行できることになってしまうので、パスワードリスト攻撃やブルートフォース攻撃の的になってしまいます。何秒間に何回ログイン試行できるかとういう計算をして妥当な値を設定します。

ロック解除リクエスト

ロック解除リクエストとはアカウントがロックされた場合、簡単な操作で本人であることを証明し、すぐにログインを再チャレンジする機能です。

ロック解除リクエストが有効なときにログインに失敗した場合、こうなります。

解除に必要なメールを受信するメールアドレスを入力。

メール内のリンクをクリック。

時間を待たなくてもすぐにログイン試行が可能になります。

一般的なエラーメッセージを表示

攻撃者の不正ログイン操作のヒントになるようなメッセージを隠して全て同一のメッセージに統一します。

WordPressの初期設定ではログインエラーの際、ユーザー名やメールアドレスの存在がバレてしまうようなメッセージが結構使われています。

WordPressの初期設定でログインに失敗したときのメッセージはこれ。

そして、この設定で表示される同一の「一般的なエラーメッセージ」とはこれ。一般的なって表現がわかりにくい!笑

ただちにロックアウトする無効なユーザー名

システムに存在しないユーザー名でログイン試行されると即座にそのIPアドレスからのログインをブロックします。人間の操作でユーザー名を間違えることもあると思うのでこれはちょっと厳しすぎるかな、という印象です。

特定のユーザー名を即座にロックする

上記の「ただちにロックアウト」とは違い、指定したユーザー名でログインが失敗したときだけそのIPからのログインをブロックします。
ここではよく攻撃されるアカウントランキング上位のアカウントを例として設定してみました。

admin
root
test
user
guest
mysql
ftpuser
ftp

Login Lockdown IP ホワイトリスト設定

ブロックしないIPをホワイトリスト(許可リスト)として登録できます。自宅や会社などの固定IPを登録する場合などに使います。

失敗したログインの記録

ログインに失敗した接続元のログの参照やダウンロードなどができます。異常がないか定期的にチェックしましょう。

強制的にログアウト (※推奨)

正常にログインしていても、一定時間たつと強制的にログアウトさせられる設定です。
こちらもぜひやっておきましょう。

業務時間の最大値くらいがよいかもしれません。ここでは600分=10時間で設定してみました。

アカウント利用ログ

実際にログインに成功した履歴をみることができます。

怪しい不正ログインがないかチェックできます。

ログイン済みユーザー

現在ログインしているユーザーの一覧を表示し、強制的にログアウトさせることができます。

不正ログインが疑われる怪しいユーザーがいた時に実行しましょう。

⑤ユーザー登録

この「ユーザー登録」メニューではユーザーがWordPressに新規会員登録する際のセキュリティの強化設定をします。
ユーザーによる新規登録を許可していない場合は全て読み飛ばしてかまいません。WordPressデフォルトは許可されていません。

手動承認

WordPressのユーザーによる新規ユーザー登録を管理者の手動承認制にすることができます。

気が付いたら大量の不正アクセスを受けていた、、ということなどを防げます。

通常の新規ユーザー登録の流れ

WordPressのユーザーによる新規登録(会員登録)の流れについて復習しておきましょう。

前提としてWordPress本体の管理画面機能で「だれでもユーザー登録ができるようにする」という設定が必要です。

ユーザーは、「登録」リンクから新規登録画面に進んで自分で登録できるようになります。

ユーザー名とメールだけ入力します。

メールが飛ぶのでその中のリンクをクリック。

パスワードを設定します。

以上で、会員登録完了です。メッセージが完了したっぽくないので違和感がありますね・・・

手動承認がONの時の会員登録

では手動承認を有効にした場合は、新規ユーザー登録の流れはどうなるのでしょうか?その違いを説明します。

手動承認有効時のメール登録後のメッセージはこう変わります。メール自体は送信されます。

この時点でメールをクリックパスワード設定自体はすることが出来ます。
本来ならここで登録完了になるはずが、手動承認有効時は以下のようなメッセージが表示され、管理者が許可するまでWordPressにログインできません。

管理者がApprove(承認)することで、ログインが可能になります。

承認してもこの機能からメールなどを飛ばすことはありません。

Captcha登録

ユーザー新規登録時の認証を強化してプログラムやロボットからの不正アクセスを防ぎます。
Captchaはロボットか人間かを判断しロボットをブロックするための認証の仕組みです。会員登録にCaptchaを導入する場合は有効にします。

Captchaの仕組みは世の中にいろいろありますが、この機能ではユーザーに簡単な計算をさせるというあまり見慣れないもののようです。

計算を間違えると先に進めません。

ちなみにこのCAPTCHAの種類は後述の設定でGoogle reCAPTCHA v2に変更することができます。

その設定はメニュー「総当たり攻撃>ログインCaptcha>Google reCAPTCHA設定」にて設定します。

ユーザー登録ハニーポット

こちらもCaptcha同様、プログラムやロボットからの不正アクセスを防ぎます。
ハニーポットはいわゆる罠のようなもので、人間には見えずロボットには見える入力フォームのことです。入力したらロボットと判定されます。

実際にはこういった隠しHTMLが出現しています。

有効化しておきましょう。

⑥データベースセキュリティ

「データベースセキュリティ」はデータベース関連のセキュリティ強化をするメニューです。

データベースの接頭辞

新規に作成されるテーブルの接頭辞を変更することができます。

WordPressのデータは主にデータベースのテーブルの中に収納されています。接頭辞はそのテーブルの名前の最初に付ける文字列です。デフォルトではwp_になっていて、テーブル名は全てwp_***という名前になっています。

これを変更するとおそらく様々なプラグインなどでバグが出ると予想されますので、この設定の有効化はあまりお勧めしません。いったんスルーします。
エンジニアレベルでデータベース復旧ができる方のみやってみてもよいかもしれません。

データベースのバックアップ

定期的にデータベースの自動バックアップを取るための設定です。レンタルサーバーや他のプラグインでとっている場合は必要ないでしょう。

メールで送信するにチェックをするとメールにzipの添付ファイルで送られます。
なお例えばGmail宛には最大25MBの添付制限などがあるので注意が必要です。200~300記事にもなってくるとサイズ25MBを超えてくるかもしれません。

⑦ファイルシステムセキュリティ(※推奨あり)

ファイルのパーミッション (※推奨)

「ファイルのパーミッション」ではサイバー攻撃の脆弱性になりやすいWordPressのファイルの権限をチェックして、編集を促します。

各行の「推奨パーミッションを設定」ボタンをワンクリックするだけで設定は完了しますのでぜひやっておきましょう。

PHPファイル編集

「PHPファイル編集」タブではWordPressの管理画面上でPHPファイルをテキスト編集できなくする設定をします。

PHP ファイル編集機能を無効化

これを有効にすると具体的には
「外観>テーマ>テーマファイルエディター」
「プラグイン>プラグインファイルエディター」
などのメニューが消え、アクセスもできなくなります。

この設定の是非は、運用方針にもよると思うので適宜判断して設定してください。

WP File Access (※推奨)

WP File AccessではWordPressインストール時に設置されるreadme.html、license.txt、wp-config-sample.php などのファイルへのアクセスを不可にします。

「WP デフォルトのインストールファイルへのアクセスを防止」チェックを有効にしても有害なことはなさそうなので有効にしておきましょう。

ホストシステムログ

「ホストシステムログ」タブでは現在WordPressが出力しているログファイルを見ることができます。

ログファイル名を入力して「最新のシステムログを表示」ボタンを押してみましょう。

ログ出力ファイルが存在しない場合はこうなります。

存在する場合は画面上に数十行だけ表示されます。

ログファイル名はwp-config.phpなどで以下のように設定したときのファイル名です。設定してない場合はerror_logになります。

define("WP_DEBUG", true );                       //WordPressのエラー出力ON/OFF
define("WP_DEBUG_LOG", "wp-content/debug.log" ); //WordPressのエラー出力先

ログファイル設定について詳しくはこちらの記事を見てみてください。

⑧ブラックリストマネージャー

アクセスをブロックしたいIPやユーザーエージェントをブラックリストとして1つずつ登録していきます。

「ユーザーログイン」でログインの履歴などから怪しいIPなどがあれば登録してブロックしてしまいましょう。ただブラックリストでブロックする対策はいたちごっこになりがちであくまで一時的なものと思った方がよいでしょう。

内部の仕組みとしては.htaccessに追記することで実現しているようです。

⑨ファイアウォール (※推奨あり)

様々なファイアウォール機能を設定できます。
項目がかなり多いので機能でできることと要点を中心に紹介していきます。

基本のファイヤーウォール規則(推奨)

「基本のファイヤーウォール規則」タブではファイヤーウォールの様々な設定ができます。

先に紹介しておくと、おすすめの設定はこんな感じです。ぜひやってみてください。

基本的なファイアウォール設定

チェックすると以下の機能が有効になります。

  • .htaccessファイルへのhttpアクセス禁止
  • サーバーの署名無効化
  • ファイルアップロードファイル制限
  • wp-config.phpへのhttpアクセス禁止

ファイルサイズは自サイトにあった値を設定してください。

WordPress XMLRPCとピンバック脆弱性保護

以下のどちらかを有効にします。

  • XML-RPC全体の無効化
  • ピンバック機能のみ無効化

XML-RPC自体はWordPressの外部からデータを参照・更新するXMLデータとHTTP通信を使ったインタフェースの仕組み自体のことです。
過去の古い仕組みが残っている状態で、REST APIの方が新しい仕組みです。

主にxmlrpc.phpというファイルを通して、ピンバックの実現に使われています。
ピンバック自体はリンク貼ったよという自動通知のことです。サイト同士の相互リンク促進のために使われます。

ピンバック通知の例です。承認するとコメント欄に貼った先のURLが掲載されます。

個人的にはこのピンバック機能は無効だけではなく、「XMLRPC無効化」にしてしまってよいかな、と思います。
理由は以下。

  • ピンバック通知自体がスパムによく使われてしまうこと
  • そもそもピンバック機能自体がWordPressユーザーに認識と理解がされていない
  • 内部リンクを記事に貼っても通知が飛んできてしまう
  • xmlrpc.phpは度々DDos攻撃の対象になる

※Jetpackプラグインを使っている場合はXML-RPC全体を無効にすると一部通信ができなくなるとのことです。

デバッグログファイルへのアクセスをブロック

wp-content/debug.logへのhttpアクセス禁止します。有効化します。

追加ファイヤーウォール規則 (推奨)

「追加ファイヤーウォール規則」ではさらにファイヤーウォール関連のセキュリティ設定の強化が可能です。

おススメ設定はこちら。全部有効にしましょう。

ディレクトリ内容のリスティング

Webサーバーに搭載されているディレクトリ以下のファイル一覧を表示する機能を無効にします。

TRACEとTRACK

HTTPメソッドにはGETやPOSTの他に多数のメソッドが存在しますが、あまり使われないTRACEやTRACKの受付を禁止にします。

プロキシ経由のコメント投稿

プロキシサーバーを使ったコメントの投稿はスパムの可能性が高いので禁止にします。

不正なクエリ―文字列

クロスサイトスクリプティング(XXS)やクロスサイトリクエストフォージェリ(CSRF)などのサイバー攻撃から身を守るため怪しい文字列がURLのパラメータ(クエリ―文字列)に含まれる場合ブロックします。
シンプルで基本的な10個ほどのフィルターが追加されます。

高度な文字列フィルター

目的などは上記と同様ですが、複雑なフィルターが100弱ほど追加されます。厳しいと現在のアプリの機能などがブロックされてしまう可能性もあるので何か問題があれば解除してください。

6Gブラックリスト/ファイアウォールルール (推奨)

PerishablePressで公開されているの有名なファイヤーウォールのバージョン6G(2016~)を適用するか、5G(2013~)を適用するか選択します。

おすすめは6G設定です。

7Gも最近リリースされたので、近いうちに「All In One WP Security & Firewall」にも採用されそうです。

オンラインのボット (推奨)

偽のGooglebotをブロックします。有効化しておきましょう。

直リンクの防止 (推奨)

画像の直リンクを防止します。有効化しておきましょう。他のサーバーから勝手に画像リンクを貼られるとそれだけで攻撃意図はなくとも、アクセス負荷がかかりある意味不正アクセスともいえます。
.htaccessをつかって実現しています。

404検出 (推奨)

「404検出」は不正アクセスとみられるHTTPエラー404アクセスが続いた場合、そのIPからのアクセスを指定した時間(分)の間ブロックできます。
こちらも有効にしておきましょう。

サイバー攻撃者は脆弱性を探し出そうとして、片っ端からよくあるURLに機械的にアクセスしてきます。ほとんどの場合は存在しないので404(Not Found)エラーになりますので、この404検出はそうしたアクセスをブロックするための仕組みです。

http://127.0.0.1は自分のホストを表しているので、攻撃者自身のコンピュータにリダイレクトしてバリアのように跳ね返しているというわけですね。

カスタムルール (推奨)

カスタムルールでは.htaccessにオリジナルの設定を追記します。

.htaccessの文法などきちんと理解していないと危険なのでわかる方のみ使ってもよいでしょう。

wp-config.phpなどの不要なシステムファイルへの直接アクセスを避けるため以下のように設定してみます。
こうすることでブラウザから直接スクリプトを実行しても403エラーになります。

<FilesMatch "^(wp-config\.php|wp-settings\.php|wp-cron\.php)">
    order allow,deny
    deny from all
</FilesMatch>

⑩総当たり攻撃 (※推奨あり)

ログインページの名称を変更 (※推奨)

/wp-login.phpという世界共通のWordPressログインページ名を変更することで攻撃者からログインURLを隠しサイバー攻撃からのセキュリティを高めます。
例えるなら犯罪者が家に侵入するのを防ぐために玄関の場所を隠してしまうことと同じです。

ログインページURLを設定するとデフォルトのログイン画面は/wp-login.phpは404エラーになります。
直接/wp-admin/以下の管理画面にアクセスするとブロックされます(ログイン画面への自動転送はありません)。

このログインページの名称を変更はぜひ設定しておきたい設定ですね。

Cookieベースの総当たり攻撃の防止

前述の「ログインページの名称を変更」をさらに進化させたような機能です。ある秘密のログインのURLを踏んで作られたCookieをもつユーザーのみがログインページにたどりつけます。

秘密の言葉に「login1234」を指定すると /?login1234=1というURLにアクセスした時のみログインページに転送されます。
Cookie処理をしないロボットはブロックされてしまいます。

個人的には複雑にするとバグなどの影響が出そうなので、1つ前の単純な「ログインページの名称を変更」をお勧めしたいと思います。

ログインCaptcha (※推奨)

サイト内の様々なログイン関連の設定をする場所にCAPTCHA認証を追加します。
おすすめはGoogleのreCAPTCHAを使った認証です。

Google reCAPTCHA設定

CAPTCHA認証をGoogleのreCAPTCHAに変更します。これもやっておきたいおすすめ設定です。

「All In One WP Security & Firewall」のデフォルトのCAPTCHA認証は数字を使った計算の手動入力が使われています。正直あまりなじみのない印象なのでぜひGoogle reCAPTCHAを使いましょう。

ここでGoogle reCAPTCHAを有効するとログイン画面やユーザー登録、パスワード変更、コメント投稿欄など全ての場所でのCAPTHCAが変更されます。
どうせreCAPTCHA登録するなら全て有効にしてしまいましょう。

設定するにはGoogle開発者サイトに登録して管理画面からサイトキーとシークレットキーを作成して入力する必要があります。

GoogleのreCAPTCHAの登録やキーの作成、Google reCAPTCHAについて詳しく知りたい場合はこちらの記事から。

また本機能が対応しているreCAPTCHAバージョンはv2のみです。
v3に対応したい場合はこちらの記事が参考になります。

ログインフォーム CAPTCHAの設定

ログインフォームにCAPTCHA設定をする場合は有効にします。

通常のログインフォーム。CAPTCHA認証を有効にしていません。

デフォルトのCAPTCHA認証を有効にしたログインフォーム。簡単な計算をします。

GoogleのreCAPTCHAを設定した場合のログインフォーム。おすすめはこれです。

パスワード再設定フォーム CAPTCHAの設定

パスワード再設定の入力画面にも前述と同じCAPTCHA認証が挿入されるようになります。
おすすめはGoogle reCAPTCHAでの有効化。

カスタムログインフォーム CAPTCHAの設定

WordPressデフォルトのwp-login.php以外にも好きな場所にwp_login_form()でログインフォームを自作できます。そういった場所にもCAPTCHA認証を挿入したい場合はこちらを有効化します。

ログインのホワイトリスト

指定されたIPアドレスのみログインページへのアクセスを許可するというある意味最強のセキュリティです。オフィスなど特定の場所からしかアクセスしないという場合のみ有効にするとよいでしょう。

ハニーポット (※推奨)

ユーザー登録でも出てきたハニーポットと同様、ログインページへのプログラムやロボットからの不正アクセスを防ぎます。必須ではないですが、有効にしておきます。
ハニーポットはいわゆる罠のようなもので、人間には見えずロボットには見える入力フォームのことです。入力したらロボットと判定されます。

実際にはこんな隠し入力エリアが追加されています。

⑪スパム防止 (※推奨あり)

コメントスパム

コメントフォームにCAPTCHAを追加

投稿のコメントフォームにCAPTCHA認証を追加します。

※検証が失敗したためこの機能は非推奨とします

かなりわかりづらいですが、「総当たり攻撃>ログインCaptcha>Google reCAPTCHA設定」が有効になっていれば、CAPTHCA認証としてGoogle reCAPTCHAが使われます。デフォルトは数字の計算です。

この数字の計算は見慣れないため、ユーザーが戸惑う可能性もあるので有効にするならreCAPTCHA v2とセットにしましょう。

Google reCAPTHCAにした場合。

デフォルトのCAPTCHAの場合。

【注意】おそらくバグがある模様。Google reCAPTCHA設定(総当たり攻撃>ログインCaptcha)との組み合わせではコメントの投稿自体ができませんでした。数字の計算チェックは無効なはずなのにサーバー側のチェックだけがされているので投稿できないようです。

スパムボットのコメントをブロックする

ロボットが送信したであろうコメントスパムを.htaccessにルールを追加してブロックします。有効にしておきましょう。

コメントスパムのIPモニタリング

スパム判定された投稿をしたIPアドレスを表示して、ブロック設定することができます。運用してみて多いようなら検討しましょう。

BuddyPress

BuddyPressはWordPressで会員限定のクローズドなコミュニティSNSサイトを作れるプラグインです。インストールが有効な場合、その登録フォームにCAPTCHA認証を追加します。

BBPress

BBPressはWordPressでオープンなフォーラムを作れるプラグインです。インストールが有効な場合、その投稿フォームにCAPTCHA認証を追加します。

⑫スキャナー (※推奨あり)

ファイルの変更通知 (※推奨)

攻撃者がシステムファイルに変更を加えていないか、システムファイルの変更を自動で定期スキャンし、差分を検知したらメールでアラート通知をすることができます。

まずは短めに設定しておいて様子を見て調整してみてください。

ファイルの最終変更を確認した後の画面。見れるのは最新の状態とその前との差分のみなので過去を振り返りたい場合はメール通知を送っておきましょう。

送られるメール通知。内容は上記と同様。

マルウェアスキャン

Site Scannersという有料の別サービスが案内されます。

⑬メンテナンス

訪問者ロックアウト

障害対応時や緊急メンテナンスなど用にサイトをメンテナンスモードにします。有効にすると一般ユーザーにはメンテナンス画面が表示され、管理者だけがサイトを見れるようになります。緊急時にはとても便利な機能ですね。

エディタではメンテナンス画面を編集します。

⑭その他 (※推奨あり)

コピー・プロテクション

画面上でコンテンツのコピーができなくなる機能です。しかし、右クリックやテキスト選択ごとできなくなってしまうのであまり使い勝手がよい機能とはいえません。

フレーム (※推奨)

他のサイトからインラインフレーム(iframe)で表示されるのを防ぎます。HTTPヘッダを送信するようになります。
念のためですが有効にしておきましょう。

ユーザー番号 (※推奨)

/?author=1のようなアクセスをブロックして、サイバー攻撃者にユーザー名が漏洩するのを防ぎます。これは必ず有効にしましょう。

WordPressは初期状態で?author=【数字】というアクセスを許可しています。アクセスすると/author/ユーザー名/という投稿者のアーカイブ(記事一覧)ページが表示されてしまいユーザー名がバレてしまいます。

author=1は最初に作られたユーザーなので大抵管理者権限を持っています。
ユーザー名がバレるとあとはパスワードを推測すればログインできてしまうので、サイバー攻撃者に大きなヒントを簡単に与えてしまうことになります。

WP REST API

WordPressのREST APIを停止します。REST APIはWordPressのデータベースの参照更新の新しいインタフェースの仕組みなので、停止するとプラグインなど様々な影響が予想されます。いったんは有効にしなくてもよいと思います。

まとめ

最後までお読みいただきありがとうございました!

一緒に使いたいセキュリティ関連の記事をまとめておきますのでよろしければご覧ください。

コメント

タイトルとURLをコピーしました