これで安心!WordPressをはじめたらまず実施したいセキュリティ対策

Wordpress

最近はサラリーマンの方でも副業を検討される方や、実際にしている方も多いのではないでしょうか。かくいう僕も、サラリーマンとして働いている傍ら、ブログを運営している一人です。

世の中的には、副業が推奨される中でブログ(アフィリエイト)を検討されている方も多いかと思います。そこでブログを初めて見ようと、色々と調べてみると収益性を考えるならWordpressが良い云々と様々な記事で紹介されており、ほうほうWordpressを使えばいいのかーとなった方も多いと思います。

WordPressってやつを使ってみたいけど、始めた途端にハッキングとかされたら怖い!、世界中の悪い人に攻撃されて被害にあいそうで怖い!と漠然と不安を覚えてブログ運営を躊躇しているそこの貴方に、はじめに最低限実施すべきセキュリティ対策についてご紹介しようと思います。

ちなみに世界中のWebサイトの約4割はWordpressで構成されているみたいです。
これだけシェアがあれば攻撃者のターゲットになることもうなずけます。

https://w3techs.com/technologies/details/cm-wordpress

はじめに実施したいセキュリティ対応(初級編)

まずはじめに基本的な対応から紹介していきます。
当たり前のことではありますが、Wordpressに限らずWebサービスを利用する上ではとても重要なことですのでチェックしていきましょう!

ID・パスワードの管理は厳格に!

WordPressを利用してブログ運営を開始しようとするだけでも、レンタルサーバー、Wordpress管理画面、WordpressデータベースなどのアカウントのID・パスワードを作成・管理する必要があります。

面倒に感じるかもしれませんが、作成したID・パスワードは他人に教えない、使い回さない ことは徹底しましょう!

ID・パスワードが漏洩してしまうと、以降に紹介する対応を実施したとしても無意味になってしまうのでとても重要です。

adminユーザーは利用しない

古いバージョンのWordpressをインストールするとデフォルトで管理画面にログインするためにユーザー名が「admin」という名前のユーザーが作成されていました。
そのためユーザー名を変更せずそのまま利用されている方が多く、攻撃の対象になりやすかったようです。

もしお使いのWordpressでadminユーザーを利用している場合は、削除し同じ権限をもつ別ユーザーを作成し、利用しましょう。

また、アカウントの追加回しも厳禁ですので、複数人で運用されるような場合は、メンバー全員のアカウントを適切な権限で作成し、利用するようにしてください。

公式のプラグインを利用する

WordPressのカスタマイズに欠かせないプラグインですが、利用しているプラグインが原因で脆弱性がある場合もあります。すべては難しいかもしれませんが、公式のプラグインを使用するようにしましょう。

また公式プラグインでもなるべくインストール数が多く、更新頻度が高いものを参考に選定したほうがよいです。
更新頻度が高いということは、仮にそのプラグインに脆弱性があっても改善される可能性が高まります。

定期的にアップデートを行う

WordPress自体及びプラグインはこまめにアップデートし、最新の状態となるように努めましょう。
古いバージョンのまま利用することは脆弱性を高めることになります。

ちなみに、Wordpress自体はマイナーバージョンアップはデフォルトで自動更新となっています。

暗号化通信を用いる

平文のまま通信をしていると、通信内容を盗聴されてしまう可能性があるので、SSL証明書を導入し、暗号化通信を行うよう設定をしましょう。

最近は以下のようなレンタルサーバーのサービスでSSL証明書を最初から設定してくれているものも多いので、面倒であればそういったサービスを利用するのもありかもしれません。

はじめに実施したいセキュリティ対応(上級編)

これまで説明してきた内容を守っていればそれなりにセキュアな環境でWordpressを運用することができているとは思いますが、よりセキュリティレベルを向上したい方は以下を参考にしてみてください。

管理画面ページへのアクセスに制限をかける

管理画面ページはログインによる認証が設けられていますが、それだけでは正直心もとない感じがします。ブルートフォース攻撃(総当り攻撃)などの被害を受ける可能性もありますので、管理画面にはBasic認証やIP制限などのアクセス制御を実施することがおすすめです。

・Basic認証の設定手順
  ①「.htpasswd」の作成
  ここのサイトにアクセスし、ユーザー名、パスワードを入力します
  入力が完了したら、表示されている.htpasswdをコピーし、サーバーの任意の
  ディレクトリに配置します

  ②「.htaccess」の作成
  .htpasswdの配置が完了したら、配置したディレクトリのパスを上記のサイトに入力します
  .htaccessの設定が画面下部に表示されているので、コピーし、サーバー上のWordpressが
  インストールされているディレクトリ配下と/wp-admin配下に設置します

  ③ 設定の確認
  管理画面にアクセスし、Basic認証がかかっていることを確認します

・IP制限の設定手順
  ① 「.htaccess」の編集
  Wordpressがインストールされているディレクトリに移動し、.htaccessに以下の記述を追記します

<FilesMatch "wp-login.php|wp-admin">
  Order deny allow
  Deny from all
  Allow from {許可したいIPアドレス}
</FilesMatch>

アクセスログを取得する

万が一、攻撃の被害を受けた場合に、調査を円滑にするめることができるように、管理画面へのアクセスのログを取得することも有用です。
プラグインを利用すれば簡単に導入することができますし、管理画面上から確認することも可能です。

Sucuri Security – 監査、マルウェアスキャナ、セキュリティ強化
Sucuri WordPress Security プラグインは、セキュリティの完全性の監視、マルウェアの検出、監査のロギング、およびセキュリティ強化のためのツールセットです。

xmlrpcの無効化

リモートから記事投稿などが行える機能がWordpressではデフォルトで有効となっています。
利用しないのであれば、有効にしたままだとセキュリティホールとなる可能性もあるので無効化します。

function.phpに以下の記述を追加してください。

add_filter('xmlrpc_enabled','__return_false');

また、restAPIについても特定のアクセスに限定して開放するなどの設定をすることも場合によっては有用です。

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

wp-config.phpはWordpressの環境設定に関する記述がなされているファイルです。中にはデータベースに関する情報などが記述されている、とても重要なファイルです。
こちらのファイルへのアクセスはアプリケーション自身からのみに制限することで、よりセキュアな運用ができます。

ApacheなどのWebサーバーの設定ファイルに以下のような記述を追加してください。

  <Files wp-config.php>
    Require all denied
    Require ip 127.0.0.1
  </Files>

著作者ページの無効化

デフォルトでは各ユーザーごとに作成した記事の一覧ページが自動で生成されます。
ログインIDを推測するための情報にもなりうるので、利用する予定がないのでしたら無効化することをおすすめいたします。

設定する場合は、function.phpに以下の記述を追加してください。

function author_page_redirect() {
    if($_GET['author'] !== null || preg_match('#/author/.+#', $_SERVER['REQUEST_URI'])) {
        wp_redirect( home_url('/404') );
        exit;
    }
}
add_action('init', 'author_page_redirect');

まとめ

如何だったでしょうか、初級編で紹介した内容についてはWordpressなどのWebサービスを利用する上では最低限意識しなくては行けないポイントだと思います。

ブログ開設した直後は、そもそもでアクセスを伸ばすことが最優先事項なので、セキュリティに関する対応は、後回しにしがちです。

ただ、サイトが成長してから対応しようとすると、忘れてしまったり、手間がかかる部分もあるかと思いますので、時間的にも余裕があるはじめのうちに設定してしまうのが良いと思います。

ブログをこれからはじめようと考えている方、ブログを始めたけどセキュリティ対策どうしたらいいかわからないといった方の助けになれば幸いです。

ではまた~~

コメント

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