- WordPressはセキュリティが弱いって聞いて不安
- セキュリティ対策の仕方がわからない
- セキュリティ対策ってどのプラグインを使えばいいの?
この記事で解説するプラグイン【iThemes Security】の全設定手順をしっかり実践していけば、今よりも確実にWordPressのセキュリティが向上します!
このプラグインを設定しておいたことで、実際に不正アクセスを試みる異常なアクセスを検知・ブロックすることができています。
以下画像が実際に異常アクセスをブロックした際にメールで届いた通知です。
セキュリティの性質上、設定項目は他プラグインに比べてちょっと多いですが、この記事の解説通りに進めていけば最後までしっかりと設定・対策ができるので、ぜひ最後まで頑張っていきましょう!
この記事を読み終える頃にはある程度の驚異からはあなたのブログもしっかり守ることができるようになっていますよ!
WordPressの脆弱性
WordPressは世界的に人気のCMSですが、以下の理由からセキュリティ攻撃を受けやすい傾向にあります。
- オープンソースのため、内部構造やセキュリティホールも公開状態
- 初心者でも使いやすく、初心者はIT知識に乏しいため攻撃の的
- 誰でもプラグインを作成、公開できるため脆弱性が放置されたプラグインが存在する
これは、WordPressがWeb知識がないIT初心者でも誰でも簡単にWeb制作ができ、プログラミング知識がなくてもプラグインという拡張機能を使えばお問合せフォーム等の様々な機能を簡単に実装できるように設計されているためで、この特長があるからこそ世界シェア40%以上を獲得すると同時に攻撃の的になってしまいました。
そのため、WordPressを利用する際は、各自でしっかりとセキュリティ対策をする必要があり、よくわからないからと放置をすればせっかく時間をかけて築き上げたブログが台無しになってしまいますよ!
セキュリティ対策のやり方
セキュリティ対策にははいくつかの方法があります。
- 書く重要ファイルにアクセス制限をかける
- レンタルサーバーの機能を利用する
- セキュリティプラグインを利用する
1番目の『書く重要ファイルにアクセス制限をかける』は中級レベルで、サーバーにアクセスする必要があるため、今回は割愛します。
2番目の『レンタルサーバーの機能を利用する』はエックスサーバーを例に以下の記事で解説しています。
この記事では3番目の『セキュリティプラグインを利用する』について、おすすめのプラグインをご紹介します!
iThemes Securityでできること
当ブログでも使用しているおすすめのセキュリティプラグインは【iThemes Security】です。
このプラグインではセキュリティ対策の基本的な部分が無料で利用することができ、主に以下のような対策ができます。
- ブルートフォースアタックから保護
- 特定IPアドレスをブロック
- 通常接続をSSL接続にリダイレクト
- 2段階認証
- ログインURL変更
- データベースプレフィックス変更
- 管理者ユーザーID(番号)変更
などなど。
設定も簡単なのでおすすめです!
iThemes Securityのインストールと有効化
まずはインストールしましょう!
WordPress管理画面メニュー【プラグイン – 新規追加】へ進み、右上の検索欄へ『iThemes Security』と入力します。
表示されたら『今すぐインストール』をクリックしてください。
インストールが完了したら、そのまま有効化までしておいてくださいね!
iThemes Securityの設定方法
iThemes Securityは最初に設定さえ済ませれば、あとは自動でサイトを守ってくれるためほったらかしのプラグインです。
有効化まで完了したらWordPress管理画面メニューに【セキュリティ】と表示されているはずなので、クリックしてください。
初めてiThemes Securityをインストール・設定する際は、まずは流れに沿って全体の設定を進めていきます。
全体の設定後に詳細設定をしていくので、以降は画像と解説文のとおりに設定を進めてくださいね!
サイトの運用方針を選択します。
ブログとして運用する場合は【BLOG】を選択すればOKです。
ECOMMERCE
A website to sell products or services.
NETWORK
A website to connect people and communities.
NON-PROFIT
A website to promote your cause and collect donations.
BLOG
A website to share your thoughts or to start a conversation.
PORTFOLIO
A website to showcase your craft.
BROCHURE
A simple website to promote your business.
Eコマース
製品またはサービスを販売するためのWebサイト。
通信網
人と地域をつなぐウェブサイト。
非営利団体
あなたの大義を宣伝し、寄付を集めるためのウェブサイト。
ブログ
あなたの考えを共有したり、会話を始めたりするためのウェブサイト。
ポートフォリオ
あなたの工芸品を紹介するウェブサイト。
パンフレット
あなたのビジネスを促進するための簡単なウェブサイト。
状況に合わせて選択してください。
- SELF:自分が運用するためのサイトを作る場合
- CLIENT:仕事で他人のサイトを作る場合
【機能】では、iThemes Securityによって用意されている各種セキュリティ対策を利用するかどうかを選択していきます。
ここでは利用するかどうかを選択した機能だけが、後ほど設定する詳細設定に表示されるようになります。
ONにしてください。(ボタンが青になればONの状態です)
【Next】をクリックします。
パスワードを変更する際、または新規ユーザーを作成する際に複雑なパスワードを作成するように要求する設定です。
簡単なパスワードは設定できなくすることで、不正ログインのリスクを下げます。
2段階認証(2要素認証)の設定です。
ONにして【Next】をクリックします。
通常のログインIDとパスワードの組み合わせでログインしたあとに、一時的に有効なパスワード(ワンタイムパスワード)をメールや特定のアプリで発行することで、不正ログインをほぼ不可能にします。
ここでの設定は、2段階認証機能を利用できるようにするだけの設定です。
詳細な利用設定はiThemes Security設定内ではなく、ユーザー詳細から設定します。
後ほど解説するのでご安心ください。
ブルートフォースアタックから保護する設定です。
2つともONにして【Next】をクリックします。
ブルートフォースアタックとは、ログインIDやパスワードの組み合わせを全て試しながら不正ログインを試みる方法で、別名【総当たり攻撃】と呼ばれます。
アクセスした者の識別を強化する設定です。
ONにして【Next】をクリックします。
iThemes.comサーバーにAPIリクエストを行うことにより、サーバー構成に基づいてユーザーIPアドレスを識別する正しい方法を検出します。
ユーザー情報はiThemesに送信されません。
セキュリティ機能を有効にするユーザーグループを選択します。
基本的には【DEFAULT】を選択しておけばOKです。
【DEFAULT】を選択すると、WordPressの基本機能でデフォルトで分類されている各ユーザーグループに対して各推奨設定が適用されます。
複数人にアカウントを作り、それぞれ個別に権限を与えてサイトを運用している場合は【カスタム】を選択してください。
ユーザーグループごとにセキュリティ機能の有効無効を設定します。
デフォルトのままで問題ないので、【Skip User Groups】をクリック。
【RECOMMENDED】をクリック
iThemes Securityによってブロックされるべきではないホストのリストを入力します。
【Add my current IP to the authorized hosts list】をクリックすると、現在のあなたのIPアドレスが登録されます。
登録したら【Next】をクリックします。
ISP(インターネットサービスプロバイダー)との契約で固定IPアドレス契約をしていない場合は定期的にIPアドレスは変わるため、こちらの設定も定期的に変更する必要があることに注意してください。
とはいってもログインを何回も失敗したりしない限りはiThemes Securityにブロックされることは基本的にないので、頻繁に確認するほど神経質にならなくても大丈夫!
世界中で使用されているiThemes Securityによって検知された攻撃者のIPアドレスをそもそもアクセスできないように事前にブロックするための設定です。
メールアドレスを登録することで使用することができるようになるので、ご使用のメールアドレスを入力してください。
【Receive Email Updates】は毎週の脆弱性レポートやセキュリティアップデートに関するお知らせをメールで通知する設定です。
特に不要なので、チェックは入れないでOKですが、メールを確認したい場合はチェックを入れるといいでしょう。
不正アクセスを検知・ブロックした場合などにiThemes Securityからお知らせがメールで送信されますが、この時の送信元メールアドレスを指定できます。
空白でOK!そのまま【Continue】をクリック。
今回の初期設定で設定した内容が表示されます。
そのまま【Secure Site】をクリック。すると、設定の反映処理が実行されます。
以下のようになればOKです。【Finish】をクリックして完了します。
詳細設定
全体的な設定が完了したら、次は詳細設定です。
もう少しで終わるので、頑張りましょう!
WordPress管理画面メニュー【セキュリティ – 設定】へ進んでください。
メニュー:機能
【機能】という画面が表示されますが、【機能】で設定する項目のほとんどはさきほどの全体設定で完了してます。
しかし、ここでは2項目だけ確認する項目があります。
【機能 – Utilities】をクリックしてください。
2点を確認したら【機能】の設定は完了です。
- Enforce SSL
Webサイトへの全てのアクセスをSSL変換する設定です。レンタルサーバー上でSSL証明書の設定が完了している場合はONにしてください。 - データベースのバックアップ
バックアッププラグインを使ってバックアップを取得している場合は必要ないので、OFFにしてください。
バックアップについては以下の記事で詳細に解説しています。
メニュー:設定
次は設定メニューです。
設定メニューには以下3項目あります。
- Global Settings
- Login Security
- ロックアウト
2番のLogin Securityはここでは特にやることはないので、1番と3話を設定します。
1.Global Settings
iThemes Security管理メニュー【設定 – Global Settings】に進んでください。
ほぼデフォルトのままでOKですが、最下部の『UI Tweaks – Hide Security Menu in Admin Bar』にチェックをいれます。
これはWordPress管理画面上部の管理バーからセキュリティメッセージメニューを削除する設定です。
特に表示しなくて大丈夫なので、チェックを入れて消しておきましょう。
チェックを入れたら右下の【保存】をクリック。
3.ロックアウト
iThemes Security管理メニュー【設定 – ロックアウト】に進んでください。
ここでは以下3つの設定タブがあります。
- 禁止ユーザー
- LOCAL BRUTE FORCE
- NETWORK BRUTE FORCE
最後の『NETWORK BRUTE FORCE』はここではやることはありません。
上2つを順に設定していきます。
禁止ユーザー
『Default Ban List』にチェックを入れます。
これはJimWalkerによって開発されたHackRepair.comで検知・記録されている不正アクセス者の禁止リストを使用して、禁止リストに載っている利用者のアクセスをブロックする設定です。
チェックを入れたら右下の【保存】をクリックしてください。
手動でブロックしたい場合
コメント欄を荒らすなど悪質な利用者がでてきた場合、利用者のIPアドレスを確認して項目『Custom Bans – Ban User Agents』に入力するとブロックすることが可能です。
入力する場合は、1行に1つずつ入力してください。
LOCAL BRUTE FORCE
『Automatically ban “admin” user』にチェックをいれて、【保存】をクリックしてください。
これはWordPressインストール時に管理者アカウントとしてデフォルトで設定されることが多い『admin』というユーザー名でアクセスを試みた者を一発ブロックするための設定です。
主にサイト管理者が使うようなユーザー名でアクセスを試みる時点で悪質な行為なため、『ログインに●回失敗したらブロック』など猶予を与えず一発でブロックします。
下部の【Login Attempts】は『ログインに●回失敗したらブロック』の設定ですがそのままでOKです。
メニュー:Tools
この設定は左メニューではなく、左下に小さく『Tools』と表示されているのでクリックして進んでください。
Identify Server IPs
サイトが稼働中のサーバーIPアドレスをiThemes Securityに登録します。【実行】をクリック。
サイトが稼働しているサーバーのIPアドレスを特定し、何らかの理由で誤って自サーバーのIPアドレスをブロックしてしまったりすることを防ぎます。
Change User ID 1
ユーザーIDを変更します。【実行】をクリック。
WordPressで設定するユーザーにはユーザーIDという一意の番号が付与されています。
WordPressインストール時に最初に設定する管理者ユーザーIDはデフォルトで『1』となっており、ここをついて攻撃して不正ログインを試みる攻撃があります。
そんな攻撃から守るためにユーザーIDを『1』からランダムな数字へ変更します。
Change Database Table Prefix
データベースプレフィックスを変更します。【実行】をクリック。
画像内赤枠に新しく付与したプレフィックスが表示されてます。
データベースでは、中に「データベーステーブル」というデータ保存スペースを各機能ごと(または各プラグインごと)に作成し、各テーブルごとに名前を付けることで、内部的にデータを分けて管理しやすくしてます。
WordPressではこのデータベーステーブルの名前の先頭(接頭辞/プレフィックス)に共通して『 wp_ 』と付ける命名規則となっているため、これを利用してデータベースへの攻撃をしてくる者がいます。
この機能を使えばプレフィックスをランダムな文字列に変更することができ、攻撃者はデータベーステーブルの名前が予測しにくくなることから、データベースへの攻撃が困難になります。
Check File Permissions
『実行』をクリックしてください。
WordPressで扱うデータの中で、重要な情報を含むデータのアクセス権限を確認します。
ちょっと専門的な内容となるため簡単な説明だけしておくと、サーバーではパーミッションと呼ばれる許可値を設定して、各データやディレクトリ(フォルダ)へのアクセス権限を制御します。
【実行】をクリックすることで、WordPressで扱う主要な各重要データの推奨パーミッション値、現在のパーミッション値を表示し、推奨値どおりか近いかを判定した結果・ステータスが表示されます。
【wp-config.php】と【.htaccess】は他のプラグインでも設定を書き込んだりする場合があるファイルなため、推奨値どおりに設定すると制限がかかり書き込みができなくなってしまう不具合が発生する場合があるため、注意が必要です。
なお、パーミッション値の設定変更方法はサーバーへログインする必要があるため、ここでは割愛してまた後日、別記事にて詳細に解説しますね!
今回はとりあえず確認方法だけ知っておけば大丈夫です。
Server Config Rules
セキュリティを強固にするためにiThemes Securityによって生成された各種アクセスルール設定値です。
【実行】をクリックするとWordPress設定ファイルに書き込まれて反映されます。
wp-config.php Rules
セキュリティを強固にするためにiThemes Securityによって生成された各種機能の制限設定値です。
【実行】をクリックするとWordPress設定ファイルに書き込まれて反映されます。
Change WordPress Salts
Cookieとセキュリティトークンを保護するために使用されるWordPressソルトを変更します。
ちょっと難しい話になるのでここでは割愛しますが、これは今は実行しないでいいです。
不正ログインが確認された場合に実行することで、すべてのユーザーが強制ログアウトされます。
もしもの時のために、この機能があることを覚えておくといいでしょう。
Security Check Pro
現在のセキュリティ状況をチェックします。
【実行】をクリックして画像のとおりチェックマークが表示されれば、問題ないことが確認できます。
高度な設定
この設定は左メニューではなく、左下に小さく『高度な設定』と表示されているのでクリックして進んでください。
ここでは以下、3つの設定項目があります。
- システムの微調整
- WordPressの微調整
- バックエンドの非表示
システムの微調整
画像のとおり設定されていればOKです。
- Protect System Files
readme.html、readme.txt、wp-config.php、install.php、wp-includes、および.htaccessへのアクセスを防止します。
これらのファイルは、サイト上の重要な情報を保持してますが、WordPressが正常にインストールされたあとは外部から見える必要はありません。 - Disable Directory Browsing
サーバー内ディレクトリ(フォルダ)を表示させようとアクセスを試みても、ファイルが存在しない場合にユーザーがディレクトリ内のファイルのリストを表示できないようにします。 - PHP Execution
uploadsディレクトリに悪意を持ってアップロードされたPHPファイルへのリクエストがブロックされます。 - Disable PHP in Plugins
直接悪用される可能性のあるプラグインディレクトリ内のPHPファイルへのリクエストがブロックされます。 - Disable PHP in Themes
直接悪用される可能性のあるテーマディレクトリ内のPHPファイルへのリクエストがブロックされます。
WordPressの微調整
画像のとおり設定されていればOKです。
赤枠の設定は、ログインにメールアドレスとユーザー名を使用する設定です。
WordPressのデフォルトではメールアドレスとユーザー名どちらでもログインできるようになっていますが、ユーザー名だけに制限することでわずかながら不正ログインを困難にすることができます。
ただ、ユーザー名を記事内の『記事作成者』等で表示されていると逆に不正ログインをされる可能性が高まってしまいます。
そのため、ユーザー名のみでのログイン制限をする際は必ずユーザー設定画面にて、作成者に表示する名称をユーザー名から任意のニックネームに変更することを忘れないでください。(以下画像参考)
バックエンドの非表示
ログインURLを変更します。
赤枠内にお好きな文字列をローマ字入力で設定してください。
画像を例にすると、当ブログのログインURLは以下の通りに設定されることになります。
https://literacyboxes.com/test-login/
設定したら、【保存】をクリックします。
以降はここで設定したURLでしかログインページにたどり着けなくなります。
正常にログインできることを確認するために、保存後は一旦ログアウトして、設定したURLからログインしてみることをおすすめします。
また、その際は必ず新しいログインURLをブラウザのブックマークに保存しておきましょう!
ブックマークしておかないと、ログインページURLを忘れたらログインできなくなりますよ!
まとめ
最後に、ご紹介した内容をおさらいしておきましょう。
- WordPressは世界的シェアを誇るオープンソースのCMSというのが誰にでも使いやすいメリットであり、セキュリティリスクをともなうデメリットでもある
- セキュリティ対策はプラグインを使うべし!
- セキュリティプラグインは【iThemes Security】がおすすめ!
ご紹介した内容を実践したなら、今よりも確実にWordPressのセキュリティレベルが上がり、今までよりも安心してブログを運用することができるようになりました。
目に見えて動作するプラグインではありませんが、これからブログを運用しているとたまーに『不正なアクセスをロックアウトしました』としっかり防御してくれてることが分かる日がきますよ!
ネットサービスを利用する上でセキュリティ対策はつきものです。
しっかり意識しながら利用していきましょう!
WordPressのセキュリティ対策といえば、他にもレンタルサーバー上で行う設定もあります。
エックスサーバーでのセキュリティ対策は以下のページで詳細に解説しているので、こちらもぜひご覧ください。
▼ コメント ▼
[…] 「iThemes Security」の設定方法 KENさんが図解入りで解説してます […]