中小企業でWebサイトの運営についてお話を聞くと、
- 自社でできないからと外部に依頼すると思っていた以上にお金がかかる。
- 簡単なお知らせでも依頼してから公開まで時間がかかる。
といった声を耳にすることがあります。
このブログは、WordPressとCocoonを使っていますが、この組み合わせでシンプルな企業向けのWebサイトを作ることもできます。
セキュリティ対策は、対策したから完了ではなく、始まりでもあります。セキュリティ事故が起きてからでは遅いので、定期的な確認など工夫も必要です。
ここでは、WordPressによるホームページ(ブログ)運営に必要なセキュリティ対策について備忘録を兼ねてまとめています。
WordPressのセキュリティ対策
「WordPressはセキュリティが不安だ。」という意見もあるようですが、WordPressのユーザー数が多いため、Google先生に聞いても情報は多いと思いますし、私が使っているエックスサーバーでは、Cocoonのインストールやバックアップまでできるなど、初心者向けのコンテンツも用意されています。
今風で見た目重視なら、WordPressにSWELLの組み合わせが良さそうですが、このブログの様にドキュメント(文章)が多い場合には、Cocoonがよいと考えています。
さて、本題のWordPressのセキュリティ対策ですが、具体的に何をどうするかについて、ベイジさんの以下のリンク先の記事が参考になりました。
ナレッジ・ベイジには、他にもWebサイトに関する様々な情報があり、時々読んでいます。
WordPressのセキュリティ対策の例
ナレッジ・ベイジの「簡単にできるWordPressのセキュリティ対策×12」で紹介されている対策は、以下の12個です。
- WordPressで構築されていることを隠す。
- WordPress及びプラグインを最新版にする。
- 不要なプラグインを削除する。
- ログイン画面のURLを変更する。
- ログイン画面にBasic認証を設定する。
- ログイン画面のアクセスを接続元のIPで制限する。
- ログインの失敗回数を制限する。
- ログインに画像認証を追加する。
- WordPressの設定ファイルへのアクセスを制限する。
- ユーザーのパスワードを複雑にする。
- 利用者ごとにユーザーを用意する。
- phpMyAdminを削除する。
上述の12個の対策のうち、自分で理解できるものについて対策をしています。
以下、概ね時系列で実施した対策について説明します。
すぐにできるWordPressとプラグインに関する対策
すぐにできる対策は、次の2つです。
- WordPress及びプラグインを最新版にする。
- 不要なプラグインを削除する。
なお、WordPressとプラグインの更新の際は、必ず、更新前に以下の確認を行います。
- Cocoonが更新するWordPressのバージョンに対応しているか。
- WordPressが更新するWordPressのバージョンに対応しているか。
WordPressで構築されていることを隠す
WordPressで構築されていることを隠す具体的な方法は、WordPressのテーマディレクトリのfunctions.phpの変更になります。
他人に説明できるほど理解はしていませんが、WordPressが自動で出力するタグの内、WordPressで構築されていることが分かる情報を外部から見えなくします。
WordPressの<外観><テーマファイルエディタ>で、「Theme Functions (functions.php)」に追記しました。
- Cocoonの子テーマを編集します。
remove_action('wp_head', 'wp_generator');// WordPressのバージョン remove_action('wp_head', 'wp_shortlink_wp_head');// 短縮URLのlink remove_action('wp_head', 'wlwmanifest_link');// ブログエディターのマニフェストファイル remove_action('wp_head', 'rsd_link');// 外部から編集するためのAPI remove_action('wp_head', 'feed_links_extra', 3);// フィードへのリンク remove_action('wp_head', 'print_emoji_detection_script', 7);// 絵文字に関するJavaScript remove_action('wp_head', 'rel_canonical');// カノニカル remove_action('wp_print_styles', 'print_emoji_styles');// 絵文字に関するCSS remove_action('admin_print_scripts', 'print_emoji_detection_script');// 絵文字に関するJavaScript remove_action('admin_print_styles', 'print_emoji_styles');// 絵文字に関するCSS</pre
以下のリンクは、カノニカルについての参考情報です。
ログインに関する対策:SiteGurad WP Plugin
WordPressのプラグイン「SiteGurad WP Plugin」を導入することで、以下の3つの対策ができます。
WordPressのログインURLの変更となりますので、落ち着いて作業することが必要です。
ミスをすると、WordPressのバージョンアップをうっかりした時の様に大変だと思い、落ち着いて作業できる時間を確保しました。
「SiteGurad WP Plugin」で、以下の3つを設定しました。
- ログインページ変更:ログイン画面のURLを変更する。
- ログインロック:ログインの失敗回数を制限する。
- 画像認証:ログインに画像認証を追加する。
初期設定について列挙します。
- ログインページ変更は、「SiteGurad WP Plugin」を有効にするとWordPressのログインURLが自動的に変更されます。ブラウザのブックマークも忘れずに変更しておきます。
- ログインロックは、「5秒間で3回連続ログイン失敗により1分ロック」が初期設定となっていました。
- 画像認証は、ログインページ、コメントページ、パスワード確認ページ、ユーザー登録ページに設定されます。初期設定は、[ひらがな]でした。
なお、画像認証の追加は、ログインのひと手間が増えますが、セキュリティのためと思い導入しています。
スキャン機能あるプラグイン:Wordfence Security
WordPressのファイヤーウォールやマルウエアのスキャンをしてくれるプラグインです。
無料では、スキャンのスケジュールを自分では設定できないのですが、現時点では有料プランにする必要性を感じていません。
また、「SiteGurad WP Plugin」と機能が被る部分もあるので、ひとまず様子を見ます。
- Wordfence Security
セキュリティ対策の基本の1つ、パスワードに関する対策
以下の対策は、当たり前のことですが、セキュリティ対策の変更や追加をした際には見直すようにしています。
- ユーザーのパスワードを複雑にする。
サーバーも考慮する必要がある対策
以下については、サーバーも考慮する必要があります。
- ログイン画面にBasic認証を設定する。
- WordPressの設定ファイルへのアクセスを制限する。
- phpMyAdminを削除する。
- ログイン画面のアクセスを接続元のIPで制限する。
現時点では必須ではないと判断した対策
以下の対策は、WordPressのユーザーは1人なので、現時点では必要ないと判断しました。
- 利用者ごとにユーザーを用意する
参考リンク
CocoonのWebサイトにあるおすすめプラグインの記事です。
- Wordfence Security
- SiteGuard WP Plugin(上記対策で導入済み)
なお、私が使っているプラグインについては、以下の記事をご参照ください。
まとめ
このブログは、WordPressとCocoonを使っていますが、シンプルな企業向けのWebサイトを作ることもできます。
セキュリティ対策は、対策したから完了ではなく、始まりでもあります。セキュリティ事故が起きてからでは遅いので、定期的な確認など工夫も必要です。
ここでは、ナレッジ・ベイジの「簡単にできるWordPressのセキュリティ対策×12」を参考にして、WordPressによるホームページ(ブログ)運営に必要なセキュリティ対策について備忘録を兼ね以下の項目でまとめました。
- WordPressのセキュリティ対策
- WordPressのセキュリティ対策の例
-
- すぐにできるWordPressとプラグインに関する対策
- WordPressで構築されていることを隠す
- ログインに関する対策:SiteGurad WP Plugin
- スキャン機能あるプラグイン:Wordfence Security
- セキュリティ対策の基本の1つ、パスワードに関する対策
- サーバーも考慮する必要がある対策
- 現時点では必須ではないと判断した対策
-
- 参考リンク