ブログを始める際、デザインや記事の内容だけでなく、セキュリティも非常に重要な要素となります。
特に、WordPressを使用する場合、その人気から様々な攻撃のターゲットとなりやすいです。
そこで、この記事ではWordPressのセキュリティの重要性と、セキュリティ対策として「XOSecurity+ BBQFirewall」の特徴、インストール方法と基本設定。
そしてSWELLテーマユーザー向けの利点について詳しく解説します。
WordPressのセキュリティの重要性
WordPressは世界中で非常に多くのサイトで使用されているCMS(コンテンツ管理システム)です。
そのため、悪意のある攻撃者からのターゲットとなりやすく、セキュリティ対策を怠ると、サイトが乗っ取られたり、個人情報が漏洩するリスクがあります。
リスク | 内容 |
---|---|
サイトの乗っ取り | 攻撃者があなたのサイトをコントロールし、不正な内容を掲載する |
個人情報の漏洩 | サイトの訪問者やユーザーの情報が第三者に渡る |
サイトの表示速度の低下 | 攻撃によりサイトが重くなり、訪問者が離れやすくなる |
- 「XO Security」 + 「BBQ Firewall」の特徴
-
「XO Security」 +「 BBQ Firewall」は、WordPressのセキュリティを強化するためのプラグインです。
「XO Security」 はログイン系セキュリティで不正アクセスなどのWordPress乗っ取りを防ぎます。
「BBQ Firewall」ファイアウォール機能で悪意のある攻撃からWordPressを守ってくれます。 - SWELLテーマユーザー向けの利点
-
SWELLテーマを使用している方にとって、このプラグインは特におすすめです。なぜなら、SWELLテーマとの相性が非常に良く、設定も簡単に行うことができるからです。
また、他のユーザーからも相性が良いとのフィードバックが多数寄せられています。
「XO Security」の主な機能
XO Securityは、WordPressの管理画面への不正ログインやスパムコメントなどの攻撃を防ぐためのセキュリティプラグインです。
ブログを始めたばかりの方でも、簡単に設定して利用することができます。
機能 | 内容 |
---|---|
ログイン試行回数制限 | ログインに失敗した回数を制限することで、不正ログインを防ぎます。 |
CAPTCHA認証 | 画像や文字の認証を行うことで、不正ログインを防ぎます。 |
ログイン履歴の記録 | ログイン履歴を記録することで、不正ログインの検知に役立ちます。 |
ログイン時のアラート通知 | ログイン時にメールやSlackで通知することで、不正ログインを早期に発見できます。 |
メールアドレスまたはユーザー名でのログイン無効化 | メールアドレスまたはユーザー名でのログインを無効化することで、不正ログインを防ぎます。 |
WordPressを遠隔操作する仕組みの無効化 | WordPressを遠隔操作する仕組みを無効化することで、不正操作を防ぎます。 |
スパムコメントからの保護 | スパムコメントを検知してブロックすることで、スパムコメントの被害を防ぎます。 |
「XO Security」のインストール方法
※「自動更新を有効化する」もクリックして自動更新を有効にしておきましょう。
「XO Security」の設定
ここでは「XO Security」の設定を解説していきます。
「XO Security」の設定画面は
「WordPress管理画面」>「設定」>「XO Security」で開けます。
詳細の設定は上部のタブを選択して設定します。
- ステータス
- ログイン
- コメント
- XML-RPC
- REST API
- 秘匿
- 環境
「XO Security」の設定
ログイン
- 試行回数制限
-
ログインの試行回数に制限をかけます。
ここはお好みの設定で良いです。
わたしは、「「1時間の間に」「5」回までリトライを許可する」にしています。
この設定の場合、1時間以内に6回ログインに失敗すると、ロック(制限)がかかります。この設定であれば、1時間経つとロックは解除されるので、運用しやすいです。
12時間・24時間・48時間で設定すると、ログイン失敗の制限を超えると長時間ログインできなくなります。
- ブロック時の応答遅延
-
ログインに制限時に、メッセージを表示するまでの時間(秒)を調整できます。
わたしは最長時間の「120」秒で設定しています。
時間が長いほど、操作ができなくなる時間が延長されるので、セキュリティが強化されるためです。
- 失敗時の応答遅延
-
ログイン失敗時に、メッセージを表示するまでの時間(秒)を調整できます。
わたしは最長時間の「10」秒で設定しています。
こちらも時間が長いほど、操作ができなくなる時間が延長されるので、セキュリティが強化されるためです。
- ログインページの変更
-
ログインページの「ファイル(wp-login.php)の名前」を変更します。ファイル名を変更することで、ログインページのURLを変更できます。
WordPressは下記URLようにドメイン名で誰でも簡単にログイン画面を開くことができます。
- http://〇〇〇〇(設定したドメイン名)/wp-login.php
- http://〇〇〇〇(設定したドメイン名)/wp-admin
そこでログインページのURL変更を設定すれば、セキュリティを強化できると言う仕組みです。
設定方法
スイッチを「オン」にして、好みの文字列を入力するだけです。
入力すると下部に変更後のログインURLが表示されます。
設定完了後は変更したURLからのログインになります。
変更後は、変更後のログインURLが必要になりますので、かならず変更後のログインURLの記録、サイトではブックマークなどを忘れないようにしましょう。
変更後のログインURLの記録を忘れてしまい、WordPressにログインできなくなってしまうトラブルがあるので注意が必要です。
入り口の変更よりもパスワードを強化したほうがセキュリティ的に堅牢であろうとの理由で
わたしは「オフ」に設定しています。
- ログイン ID の種類
-
WordPressはもともと、ログインIDに「ユーザー名」と「メールアドレス」の両方使用することができます。
メールアドレスはWordPress以外のログインで使用していることが多く漏洩のリスクが高いです。ゆえに「ユーザー名のみ」の設定をおすすめします。
ただし、以下の状態だとあまり効果がありません。
- WordPressの設定がデフォルトのままで、ユーザー名の漏洩対策ができていない
- 推測されやすいユーザー名(例:admin、ドメイン名)を設定している
- 他のサービス(SNSなど)と同じユーザー名を使っている
また「メールアドレス」でログインしていた方は、あらかじめ「ユーザー名」を控えておきましょう。設定後に「ユーザー名」が分からないと、ログインできなくなります。
- ログインエラーメッセージ
-
ログイン失敗時のエラーメッセージの簡略化を設定します。
ここは「簡略化」に設定しましょう!
「デフォルト」のままだと、エラーメッセージに、ユーザー名が表示されてしまいます。
- CAPTCHA
-
CAPTCHA(画像)認証を有効化できます。
わたしは「ひらがな」に設定してます。
サイトへの攻撃はロボットは海外製が多く、「ひらがな」が一番セキュリティが強化されます。 - パスワードリセットリンク
-
ログインページに表示される「パスワードをお忘れですか?(パスワードの再設定フォームへのリンク)」を消すための機能です。
リンクを消すことで、パスワードの再設定フォームが悪用されるのを防げますが、本当に忘れたときにログインできなくなってしまうので
わたしは「有効」に設定しています。
- サイトへ移動リンク
-
ログインページに表示されている「自分のサイトのトップページへのリンク」を消すための機能です。
自分のサイトのドメインが分かればアクセスできるので「有効」と「無効」どちらでも構いません。
セキュリティ強化としては効果が薄いので利便性を優先し
わたしは「有効化」に設定しています。
- ログインアラート
-
WordPressにログイン時に通知を受け受け取る機能です。
WordPressから毎回丁寧にログアウトする方は、ログインするたびに通知が届くので煩わしいかもしれません。
ログインログは、WordPressメインナビゲーションの「ユーザー > ログインログ」でも確認できるので
わたしは「オフ」に設定しています。(スイッチ・オフ)
ただし、この機能を有効化しておけば、仮にWordPressにログインできなくても、メールからログを確認することが可能なので、不正ログインが心配な方は「オン」にしておいた方が良いと思います。
コメント
原則コメント欄を解放していなければ設定不要です。
コメント欄を開放されている方のために設定の解説をします。
- CAPTCHA
-
コメントのフォームにCAPCHA(画像)認証を追加できます。
前述のとおり、海外製ロボット対策セキュリティ効果が高いため
わたしは「ひらがな」に設定しています。
- スパム保護フィルター
-
スパム保護フィルターでは、「日本語文字を含まない」か「スパムとして保存されているコメントのメールアドレス」の、どちらかのフィルターをかけることができます。
フィルターをかけたコメントは、次の設定項目で処理を設定することができます。
「日本語文字を含まない」に設定すると、日本語を含まないコメントはすべてスパムとして判断されるため、海外からのコメントが届かなくなります。そのため、私は「スパムとして処理されているコメントのメールアドレス」の方に設定しています。
- スパムコメント
-
スパム保護フィルターで設定した内容の処理を「ブロックする」「スパムとして保存する」「ゴミ箱に入れる」の中から設定できます。
わたしは「ブロックする」を選択しました。
これで、わたしのブログは「スパムとして保存されているコメントのメールアドレス」は「ブロックする」と言う設定となっています。
- ボット保護チェックボックス
-
「私はロボットではありません。」チェックボックスがコメントフォームに追加されます。
「CAPTCHA」と一緒に設定してしまうと、ユーザビリティが大きく損なわれるため
わたしは「チェック」を外しています。
デフォルトでインストールされている「Akismet Anti-Spam (アンチスパム)」とは機能がかぶるので、WordPressの動きを重くしないために「Akismet Anti-Spam (アンチスパム)」のアンインストール推奨です。
XML-RPC
「XML-RPC」は、インターネットを経由して遠隔でデータをやり取りができる通信プロトコルの一種です。スマホなどでWordPressを扱う場合などに利用する場合に便利ですが、便利な反面、データの改ざんや盗難などのリスクがあります。
無効化することでブルートフォースアタック対策はできるのですが、以下のデメリットもあるので設定には注意が必要です。
- XML-RPC をベースにしている一部のプラグインが動かなくなる可能性がある。
- XML-RPC機能を搭載した新しいプラグインが追加された時に利用できない。
- XML-RPCの無効化
-
無効化することで、ブルートフォース攻撃(総当たり攻撃)のリスクを減らすことができます。ブルートフォース攻撃とは、ログインIDとパスワードを総当たりで試行する攻撃です。XML-RPCを有効にしていると、外部からログインIDとパスワードを試行される可能性が高くなります。
スマホのアプリやリモート機能を用いたプラグインを使用していないなら、無効化するのがおすすめです。
わたしは「無効化」に設定しています。
- XML-RPC ピンバックの無効化
-
無効化することで、不正なピンバックの大量送信(DDoS攻撃)を防ぐことができます。DDoS攻撃とは、大量の通信を送信してWebサイトをダウンさせる攻撃です。XML-RPC ピンバック設定を有効化にしていると、不正なピンバックが大量に送信される可能性があります。
わたしは「無効化」に設定しています。
※ピンバックとは、自分のURLが貼られた際に通知するWordPressの機能です。
REST API
REST APIとは、WordPressのデータを外部から取得したり、更新したりするための機能です。この機能を使うことで、WordPressのデータを他のアプリケーションから利用することができます。
XO SecurityのREST API設定を有効にすると、WordPressのREST APIを利用する外部アプリケーションから、不正なアクセスを防ぐことができます。
- REST APIの無効化
-
REST APIを無効にすると、WordPressのデータを外部から利用できなくなります。そのため、不正アクセスによるデータの改ざんや盗難などのリスクを減らすことができます。
ただし、REST APIを無効にすると、一部のプラグインが動作しなくなる可能性があります。そのため、ユーザー名の秘匿に関わる項目のみ無効化するのが一般的です。
わたしはREST APIの無効化にチェックを入れ
- 「/wp/v2/users」にチェック
- 「/wp/v2/users/(?P<id>[\d]+)」にチェック
上記の「ユーザー名」の2つにチェックを入れています。
- REST API URLの変更
-
REST API URLを変更できます( “https://ドメイン/wp-json/wp/posts?_embed” でアクセスできなくします。)
デフォルトのままにしています。
秘匿(ひとく)
秘匿では、デフォルトで公開されているWordPressの情報(ユーザー名・RSS・バージョン)を隠すように設定できます。
- 投稿者スラッグの編集
-
「投稿者スラッグの編集」をオフにしていると、投稿者のユーザー名がスラッグとして表示されてしまいます。そのため、不正アクセスによってユーザー名が特定されやすくなる可能性があります。
「投稿者スラッグの編集」をオンにすることで、ユーザー名の秘匿性が高まり、セキュリティが向上します。
※スラッグ:アーカイブのURLに使用される名前
- 投稿者アーカイブの無効化
-
投稿者アーカイブ自体を無くすことができます。
私はSEO SIMPLE PACKで無効化しているのでオフにしています。 - コメント投稿者クラスの削除
-
コメントに表示されるユーザー名を消します。
コメントで返信などを行う方はオンにする必要があります。わたしは「オフ」に設定してます。
- oEmbed ユーザー名の削除
-
oEmbedとは、URLを入力するだけで、記事のタイトル、アイキャッチ画像、抜粋などをプレビュー表示するための機能です。
ユーザー名が表示されてしまうおそれがあるので
わたしは「オン」に設定しています。
- RSS/Atom フィードの無効化
-
RSS/Atom フィードは、サイトを更新すると自動的に更新されます。そのため、読者はフィードリーダーなどのアプリケーションを使い、RSS/Atom フィードを取得することで、ウェブサイトやブログの更新情報をいち早く確認することができます。
RSS/Atom フィードは、ブログやニュースサイトなど、定期的に更新されるコンテンツを配信するためによく使用されています。
この設定をONにすることでコピペ対策などにもなりますが、ブログランキングなどに更新が反映されなくなるので
わたしは「オフ」に設定しています。
- バージョン情報の削除
-
バージョンの古いバージョンのWordPressを使っていた場合に、第三者に脆弱性(セキュリティホール)を知られてしまいセキュリティリスクが高くなるので
わたしは「オン」に設定しています。
環境
環境はすべてデフォルトのままで問題ありません。
「BBQ Firewall」の主な機能
BBQ は「Block Bad Queries」の略で、不正なクエリをブロックするを意味します。
「BBQ Firewall」は、WordPressのセキュリティを強化するためのプラグインで、とても軽量です。
このプラグインは、さまざまな種類の脅威からサイトを保護するために設計されています。
以下は、その主な機能の一部です
- SQLインジェクション攻撃の防止:不正なデータベースクエリをブロックして、データベースの情報を保護します。
- 実行可能ファイルのアップロードの防止:悪意のあるファイルのアップロードをブロックし、サイトのセキュリティを確保します。
- ディレクトリトラバーサル攻撃の防止:不正なディレクトリアクセスを防ぎます。
- 不安全な文字リクエストのブロック:悪意のあるURLリクエストをブロックします。
- 過度に長いリクエストのブロック:通常の操作では考えられない長さのリクエストをブロックし、DoS攻撃などを防ぎます。
- PHPリモート/ファイル実行の防止:外部からの不正なPHP実行をブロックします。
- XSS、XXEなどの攻撃の防止:スクリプトや外部エンティティの不正な挿入を防ぎます。
- 悪意のあるボットからの保護:不正なボットのアクセスをブロックします。
- 不正なリファラからの保護:スパムやフィッシングサイトからのリンクをブロックします。
- 不正なPOSTコンテンツからの保護:不正なフォーム送信をブロックします。
これらの機能により、「BBQ Firewall」はWordPressサイトのセキュリティを強化することができます。簡単にインストールができ、難しい設定が不要ため、初めてブログを始める方にオススメできるプラグインです。
「BBQ Firewall」のインストールと設定
「BBQ Firewall」は有効化するだけ機能するので設定は不要です。
まとめ
「XO Security」と「BBQ Firewall」は、WordPressのセキュリティを向上させるためのプラグインです。どちらも無料で利用できるうえ、初心者でも簡単にインストールと設定を行うことができます。
本記事で解説した内容を参考に、ぜひ自ブログのセキュリティ対策を強化してください。