WordPressサイトのセキュリティ対策18連発

ワードプレスのセキュリティ対策

不正なサイトアクセスが横行する昨今。
サイトの改ざんやのっとりはけして他人事ではありません。
Wordpressサイトを運営するにあたって、これだけはやっておこう!というセキュリティ対策をまとめました。

WordPressセキュリティ対策やることリスト

ということで、いきなりですがやることリストを一覧で書き出します。

重要 内容 設定方法
1.WAFを導入する サーバー設定
2.ユーザー名は「admin」にしない サイト制作時
3.ユーザー名の変更(必要な場合) Username Changer
4.ログイン画面にGoogleリキャプチャ Invisible reCaptcha
5.2段階認証 Two-Factor
6.サイト上のユーザー名表示の変更 ユーザー設定画面
7.ユーザー名漏洩防止 SiteGuardEdit Author slugReally Simple SSL
8.ログインページの変更 SiteGuard
9.XMLRPCを無効化 SiteGuardReally Simple SSL
10.ログインがあった場合の通知設定 SiteGuard
11.ログイン画面に画像認証 SiteGuard
12.ログイン失敗時のエラーメッセージを隠す SiteGuardReally Simple SSL
13.ログイン試行履歴確認 SiteGuard
14.不正試行があったIPをBan WP-Ban
15.「誰でも登録可能」を無効化 Really Simple SSL
16.共用の uploads フォルダー内でのコード実行を防止 Really Simple SSL
17.ディレクトリ参照を無効化 Really Simple SSL
18.WordPressのバージョンを隠す Really Simple SSL

 
18項目も!?と思うかもしれませんが、よく見ていただくと
SiteGuardEdit Author slugReally Simple SSLInvisible reCaptchaTwo-FactorWP-BanUsername Changer
という7つのプラグインを使えば、すべてをコンプリートできることがわかると思います。
それでは早速見ていきましょう!

WAF(ワフ)とは、Webプログラムの脆弱性を悪用した攻撃から、Webサイトを保護するためのセキュリティ機能です。
大抵のレンタルサーバーではWAF機能が備わっていますので、お使いのレンタルサーバーのセキュリティ設定画面からWAFを有効化しましょう。
※レンタルサーバーによっては備わっていない場合もあります。

これは基本中の基本ですが、ユーザー名に「admin」を使用してはいけません。自動インストールなどをした場合にユーザー名が自動的に「admin」になっていて、そのまま変更せずに利用するユーザーが少なくありません。そのため、不正アクセスの際にはこのユーザー名で不正アクセスを試みられることが多々あり、リスクの高いユーザー名と言えます。
必ずユーザー名は「admin」以外に設定しておきましょう。
もしユーザー名の変更が必要な場合はUsername Changerなどのプラグインを使って変更しましょう。

迷惑メール対策や、不正ログイン対策として、Googleリキャプチャの導入をお勧めします。
まずGoogleリキャプチャのサイトにアクセスして、チェックボックスを作成します。

リキャプチャサイト

「v3 Admin Console」をクリック。

リキャプチャ制作

「+」で新規制作。

チェックボックス制作

必要事項を入力して送信。

サイトキー

するとサイトキーとシークレットキーが発行されます。

次に自分のサイトに戻って、プラグインInvisible reCaptchaをインストールして有効化。
管理画面の「設定」>「Invisible reCaptcha」をクリックして、先ほど発行されたサイトキーとシークレットキーをコピペして保存します。

Invisible reCaptcha設定

続いて設定画面の「Wordpress」をクリックして、「ログインフォームの有効化」にチェックを入れて保存します。

お問い合わせフォームなどでも有効化したい場合は、「問い合わせフォーム」をクリックして、関連するプラグイン(Contactform7など)にもチェックを入れてください。
これでログインページにリキャプチャを設定することができました。

2段階認証システムも導入しましょう。
Two-Factorというプラグインをインストールして有効化します。
そうすることで、サイトログイン時に、さらに二段階認証コードの入力が必要になります。
プラグインを有効化すると、「ユーザー」の「プロフィール編集」ページに、このような2段階認証設定ができます。

2段階認証

二段階認証コードの受け取り方法を設定します。複数の方法を選択することもできます。
スマホにGoogle Authenticatorをインストールして、「+」をタップして上の表示されているQRコードを読み込み、「認証コード」を入力することで、アカウントを紐づけることができます。
その場合、ログイン時にはスマホのGoogle Authenticatorを開き、表示されているワンタイム認証コードを入力してログインできます。

WordPressの場合、何も設定しないと、ユーザー名がそのまま「ライター名」として表示されて(漏洩して)しまいます。
ユーザー名はログイン時に必要な重要機密事項ですから、必ず表示名を変更しましょう。
まずユーザーページの「ニックネーム」を変更し、「ブログ上の表示名」から、設定したニックネームを選択すれば完了です!
プラグインも不要です。

WordPressには他にもユーザー名を特定できてしまう仕組みがあります。
ウェブサイトのURLの末尾に「/?author=1」と追加してリロードすると、ユーザー名がURLバーに表示されてしまうのです。
これを防ぐためにはEdit Author slugというプラグインを使用します。
SiteGuardReally Simple SSLといったセキュリティプラグインにも、このユーザー名漏洩防止機能は備わっているのですが、Edit Author slugを使うのが一番確実なようですので、Edit Author slugを使うことをお勧めします。
Edit Author slugプラグインをインストールして有効化し、「ユーザー」>自分のユーザー名をクリックしてプロフィール編集画面を表示します。
プロフィール編集ページの下の方に、「投稿者スラッグ編集」という欄ができていますので、こちらで設定を変更しましょう。
投稿者スラッグ編集
「カスタム設定」には任意の半角英数字を入れることができます。これでユーザー名の漏洩を防ぐことができました。
なお、SiteGuardReally Simple SSLのユーザー名漏洩防止機能も、一応有効にしておくことをお勧めします。

不正なアクセスからサイトを守るために、WordPressのログインURLを変更しておきましょう。
セキュリティプラグインSiteGuardをインストールして有効化します。
管理画面の「SiteGuard」>「ログインページ変更」をクリックします。
ログインURL変更
「ログインページの変更」を「ON」にして、変更後のURLを入力します。※URLは忘れないよう、ブックマークしておきましょう。
「管理者ページからログインページへリダイレクトしない」に必ずチェックを入れて、「保存」してください。

WordPressにおいて「XMLRPC無効化」は非常に重要です。Wordpressの不正アクセス試行のほとんどは、ログインページ経由ではなく、このXMLRPCというアクセス方法を用いて行われます。そのためこの機能は無効化してしまうことをお勧めします。ただし一部のプラグインなどではこのXMLRPCが有効になっている必要がある場合もありますので、ご注意ください。
SiteGuardの設定画面から設定できます。「XMLRPC無効化」については、Really Simple SSLでも設定が可能です。

「ログインがあった場合の通知設定」というのは、その名の通り、だれか(自分含む)がサイトにログインした際に、管理者にメール通知が行くシステムです。
SiteGuardの設定画面から設定できます。

画像認証「ログイン画面に画像認証」はONにすると、ログイン画面に画像のテキスト入力が表示されます。ロボット対策として有効化しましょう。SiteGuardの設定画面から設定できます。

ログインエラー時に「パスワードが違います」などのメッセージが表示されると、「じゃあユーザー名は合ってるのね」とバレてしまいますので、エラーの詳細を隠すことをお勧めします。
SiteGuardの設定画面から設定できます。

SiteGuardの「ログイン履歴」から、「ログイン試行履歴確認」を確認できます。定期的にチェックして不正なアクセス試行の有無を確認しましょう。
また不正なアクセス試行があったIPは、WP-Banなどを使ってBanしましょう。

難しい説明はしませんが、こちらも不正なアクセスを防ぐための設定です。
Really Simple SSLからワンクリックで設定できますので、3つともONにしておきましょう。
Really Simple SSLをインストールして有効化。「設定」>SSL>「堅固化」の中で設定します。

設定

古いバージョンのWordpressで虚弱性が発覚した場合に、そのバージョンを狙って攻撃される可能性がありますので、WordPressのバージョンを隠しておきましょう。
こちらもReally Simple SSLからワンクリックで設定できます。

他にも「組み込みファイルエディターの無効化」などもあり、これをONにすると管理画面からテーマコードの編集ができなくなります。必要に応じて設定しましょう。


おすすめ