【WordPressセキュリティ】インストールしたらやっておきたい対策

1 はじめに

WordPressは、オープンソースで、
最も利用者の多いCMS(Content Management System: コンテンツマネジメントシステム)です。

オープンソースで利用者が多いゆえ、脆弱性が発見されやすく、
悪意をもった者の標的になりやすいといった側面があります。

WordPressにセキュリティ対策を何もとらずに利用していると、
様々な危険に晒されたままの状態になり、非常に危険です。

クラッキングツールの利用により、
スパムメールの送信、
情報漏えい、
悪意のあるページの自動遷移、
外部サーバーへの不正攻撃、
などがされるおそれがあります。

自分だけは大丈夫!」ということは、まずありえないことなのです。
どんな小規模なサイトであっても、最低限の対策はやっておきたいものです。

本記事は、下に示すページを参考にさせていただきました。
著者の方、ご連絡せず勝手に利用させていただいて申し訳ございません。

【2022年】WordPressをインストールしたら最低限やるべきセキュリティ対策
| 覆面先生 |未経験から副業デザイナーで稼ぐ方法

メールサーバーなど自宅サーバーにあまりにも不正アクセスが多いので、
自分の備忘録として、
セキュリティに関して整理したドキュメントをまとめているところなんです。

2 最低限やるべきセキュリティ対策

表2-1に、本記事が示すセキュリティ対策の一覧を示します。
印刷していただいて、チェックシートとして利用していただければ幸いです。

2.1 SSLが使用できる場合は、管理画面アクセスをSSL通信にする

独自SSLを導入済みの場合は、
WordPressのアドレス(URL)」の設定を「http://~」から 「https://~」に変更しましょう。

図2.1-1に示す設定画面は、次の手順で開きます。

WordPress管理画面(ダッシュボード)にログインする
②「設定」⇒「一般

2.2 WordPressのユーザーIDとパスワード

WordPressユーザーIDは、推測されにくいものにする必要があります。
下に示すようなユーザーIDは、避けましょう
WordPressに限らずftpサーバー、メールサーバーなどをスニファーしていると、
下に示す単語でログインしようとしているところによく出くわします)。

adminadministrator
webmasterhostmaster
ドメイン名(たえばドメイン名が"example.com"なら、"example"、"example.com")

パスワードも、次のようなものは破られやすいので、避けましょう。

・ユーザー名とパスワードが同じ文字列
・パスワードが短い、数字のみや英字のみ
・推測されやすい単語を使用している(たとえば、"pasword"など)

パスワードは、ランダムに10文字以上の英数字を織り交ぜた文字列を設定すべきです。
パスワード管理ツールを利用して、ランダム文字列のパスワードを作成すればより安全です。

WordPressデータベースのrootパスワードにも気をつけたいものです。
Webサーバー・アクセスログに、
phpMyAdmin”にログインしようとしている痕跡が多数残っています。

2.3 wp-config.php へのアクセスを制限

wp-config.php”は、各種設定情報(データベースサーバーのIDやパスワードなど)が
記述されている重要なファイルですので、外部からアクセスされると大変危険です。

.htaccess”ファイルに下記のように記述し、
wp-config.php”へのアクセスを制限する必要があります。

2.4 国外IPからのアクセス制限

ハッキング攻撃のほとんどは、海外からのものです。
そのアクセスをブロックすれば、ほとんどのハッキング・リスクを回避することができます。

ブロックするのは、”wp-admin”ディレクトリと”wp-login.php”ファイルへのアクセスのみです。

2.4.1 レンタルサーバーの場合

ブロックする設定は、Xserverなら簡単にできます。
海外からブログを更新することがないのであれば、
図2.4-1示すようアクセスを制限しておく方が安心です。

他のレンタルサーバーであっても、同様のサービスが提供されていると思います。
本項の記述は、参考としてみてください。

2.4.2 ”.htaccess”によるアクセス制限

本項では、”.htaccess”による、
wp-admin”ディレクトリと”wp-login.php”ファイルへの
アクセス制限の設定について示します。

2.4.1項に示したサービスがレンタルサーバーのサービスに用意されていない場合、
または自宅サーバーなどの場合は、
本方式による上記2つのディレクトリ、ファイルのアクセス制限設定を行います。

ログイン元のIPv4アドレスが一定である場合、
またはDDNSサービスにより定まったホスト名を持っている場合、
WordPress管理画面へのアクセスは、IPv4アドレスで制限を行っておくと良いでしょう。

下記内容のファイル”.htaccess”を”/wp-admin/”の下に設置します。

また、”wp-login.php”のあるディレクトリの中に、下記内容で”.htaccess”を設置します。

IPv4 over IPv6の接続環境では、
一つのIPv4アドレスは複数の接続と共有されるため、
またDDNSサービスを利用できませんので、
IPv4アドレスでのアクセス制限はできません。

代わりに、BASIC認証を利用します。
BASIC認証は、IPv4アドレス制限との併用も可能です。

.hraccess”ファイルの記述様式や、BASIC認証の各設定項目の内容については、
下に示すページを参考にしていただければと思います。

【WordPressセキュリティ】.htaccessによるアクセス制御

2.5 コメント、ピンバックの停止

コメント機能が不要であれば、機能を停止しましょう。
設定」⇒「ディスカッション」の
デフォルトの投稿設定」のチェックを全て外すと完全に停止できます。

不正アクセス防止策というよりは、「コンテンツ改ざん防止策」の意味があります。

2.6 表示名をニックネームに変更する

WordPressは、 ログインに使用する大切なユーザー名がブログの投稿者名として表示されてしまいます。

ログイン情報の露出を避けるため、
ユーザーのプロフィールに「ニックネーム」を設定し、
ブログ上の表示名」を「ニックネーム」に変更しましょう。

2.7 ファイルとディレクトリの推奨パーミッション

WordPressのファイルとディレクトリの、推奨パーミッションは以下となります。

ちなみに、自宅サーバーなどの独自サーバーの場合、
ファイル、ディレクトリのアクセス権所有者は、
apache:apache”になっていることが多いかと思います。
httpd.conf”中の設定をご確認ください。

3 セキュリティ・プラグインの導入

2章で示したセキュリティ対策をツール無しで行うのは、結構大変なことです。
特に”.htaccess”によるアクセス制限は、効果は大きいものの
記述内容に非常にセンシティブで、
不備があるとサイトそのものを開けなくなってしまう危険性があります。
できれば、こんな面倒は避けたいものです。

そこで、WordPressセキュリティ関連のプラグインをうまく利用します。
本記事では、次の3つを紹介します。

SiteGuard WP Plugin  管理ページのアクセス制限等
Edit Author Slug    ユーザーIDを隠す
Akismet Anti-Spam   アンチスパム

3.1 SiteGuard WP Plugin

SiteGuard WP Pluginは、 2章で挙げたセキュリティ対策を実装手助けしてくれるツールです。
日本のセキュリティ会社が開発したプラグインで、
日本人の感性にマッチしていてとっても使い易い良いツールだと思います。

3.2 "Edit Author Slug"でユーザーIDを隠す

WordPressの「ユーザー名」は推測されにくいものを設定するように書きましたが、
実は下記のようにブログのURLの後に「/?author=1」と入力すると、
ブラウザのアドレスバーにユーザー名が表示されてしまいます。

https://example.com/?author=1

Edit Author Slug で投稿者スラッグを設定することで、
「https://example.com/?author=1」と入力しても、
ニックネームが表示されるようになるため、ログインに必要なユーザー名を隠すことができます。

3.3 Akismet Anti-Spam

WordPressでコメント可能にしている場合は、スパムコメント対策が必要です。
Akismet Anti-Spam は、記事へのスパムコメントを自動削除してくれるプラグインです。
もう、WordPressには必須のプラグインと言えるのではないでしょうか?

投稿されたコメントの内容をグローバルデータベースに照合した上で、
スパムの可能性が高いコメントのみをフィルタリングする機能を持ちます。

利用に必要なAPIキーは、公式サイトにて無料で取得することができます。

4 定期的なメンテナンス

WordPressは機能改善やバグ修正、セキュリティ対策のため、
頻繁にバージョンアップを行っています。

新しいバージョンにアップデートせず、脆弱性を放置したまま古いバージョンで運営を続けると、
悪意を持った者からの攻撃の標的にされ、不正ログイン等の危険性が高まります。

4.1 WordPress本体やテーマ・プラグインは、最新版にしておく

4.1.1 公式プラグイン以外は使用しない

WordPressのプラグイン追加画面から探せるプラグインを使用しましょう。
そこに登録されているプラグインは公式にレビューされ、
一定のセキュリティ基準が担保されています。

4.1.2 不要なプラグインの削除

使用しなくなったプラグインや
WordPress本体のバージョンアップに伴って動作しなくなったプラグインは削除しましょう。

不要なプラグインの使用はサイトが重くなるだけでなく、セキュリティホールの原因にもなります。

4.1.3 更新されていないプラグインは要注意

WordPress本体がセキュリティ対策をしていても、
プラグインに脆弱性が見つかれば
そこがセキュリティホールの原因となります。

前回のアップデートから1年以上経過しているプラグインは、
開発が停止する可能性もありますので注意が必要です。 

4.2 定期的なバックアップ

WordPressの記事は大切な資産です。
バックアップ体制を整えておくと、
人的ミスで誤って削除してしまった場合にも安心です。

下に、いくつかのWordPressのバックアップについて説明されているページを紹介しておきます。

【初心者も安心】WordPressのバックアップを取る方法とおすすめプラグイン3選
| Web幹事

バックアップ機能が優秀すぎるWordPressプラグイン4選 | ねたわん! 

4.3 アクセスログの確認

できれば、Webサーバーへのアクセスログも定期的に見ていきたいものです。
アクセスログから攻撃パターンが掴め、
それにより対策をたてることができるようになるからです。

WordPressのアクセスログは、Xserverであれば、
サーバーパネルアクセス解析アクセスログ」よりダウンロードすることができます。

下に、ログ解析ツールを2つ紹介します。

ApacheLogViewer
Visitors

②のVisitorsについては、 Windows版は有償版を購入するか、
ソースファイルを入手して自分でBuildするかになります。
自分でBuildする場合、MakefilePOSIX版しかありませんので、
一部書き換えが必要となります。

RHEL 8.X版となりますが、
VisitorsVisitorの使用例を示すページを作成してありますので、 よければご覧になってください。

【Apacheアクセスログ】Webサーバー・アクセスログ解析結果をメールで受け取るには?

毎日自動でログを解析し、結果をメールで送るようになっているので、とっても便利です。

以上

HTMLだと、
思うように編集することは難しく、やろうすればとっても時間が掛かります。
ですので、本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ