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つのプラグインを使えば、すべてをコンプリートできることがわかると思います。
それでは早速見ていきましょう!
1.WAFを導入する
WAF(ワフ)とは、Webプログラムの脆弱性を悪用した攻撃から、Webサイトを保護するためのセキュリティ機能です。
大抵のレンタルサーバーではWAF機能が備わっていますので、お使いのレンタルサーバーのセキュリティ設定画面からWAFを有効化しましょう。
※レンタルサーバーによっては備わっていない場合もあります。
2.ユーザー名は「admin」にしない、3.ユーザー名の変更
これは基本中の基本ですが、ユーザー名に「admin」を使用してはいけません。自動インストールなどをした場合にユーザー名が自動的に「admin」になっていて、そのまま変更せずに利用するユーザーが少なくありません。そのため、不正アクセスの際にはこのユーザー名で不正アクセスを試みられることが多々あり、リスクの高いユーザー名と言えます。
必ずユーザー名は「admin」以外に設定しておきましょう。
もしユーザー名の変更が必要な場合はUsername Changerなどのプラグインを使って変更しましょう。
4.ログイン画面にGoogleリキャプチャ
迷惑メール対策や、不正ログイン対策として、Googleリキャプチャの導入をお勧めします。
まずGoogleリキャプチャのサイトにアクセスして、チェックボックスを作成します。
「v3 Admin Console」をクリック。
「+」で新規制作。
必要事項を入力して送信。
するとサイトキーとシークレットキーが発行されます。
次に自分のサイトに戻って、プラグインInvisible reCaptchaをインストールして有効化。
管理画面の「設定」>「Invisible reCaptcha」をクリックして、先ほど発行されたサイトキーとシークレットキーをコピペして保存します。
続いて設定画面の「Wordpress」をクリックして、「ログインフォームの有効化」にチェックを入れて保存します。
お問い合わせフォームなどでも有効化したい場合は、「問い合わせフォーム」をクリックして、関連するプラグイン(Contactform7など)にもチェックを入れてください。
これでログインページにリキャプチャを設定することができました。
5.2段階認証
2段階認証システムも導入しましょう。
Two-Factorというプラグインをインストールして有効化します。
そうすることで、サイトログイン時に、さらに二段階認証コードの入力が必要になります。
プラグインを有効化すると、「ユーザー」の「プロフィール編集」ページに、このような2段階認証設定ができます。
二段階認証コードの受け取り方法を設定します。複数の方法を選択することもできます。
スマホにGoogle Authenticatorをインストールして、「+」をタップして上の表示されているQRコードを読み込み、「認証コード」を入力することで、アカウントを紐づけることができます。
その場合、ログイン時にはスマホのGoogle Authenticatorを開き、表示されているワンタイム認証コードを入力してログインできます。
6.サイト上のユーザー名表示の変更
WordPressの場合、何も設定しないと、ユーザー名がそのまま「ライター名」として表示されて(漏洩して)しまいます。
ユーザー名はログイン時に必要な重要機密事項ですから、必ず表示名を変更しましょう。
まずユーザーページの「ニックネーム」を変更し、「ブログ上の表示名」から、設定したニックネームを選択すれば完了です!
プラグインも不要です。
7.ユーザー名漏洩防止
WordPressには他にもユーザー名を特定できてしまう仕組みがあります。
ウェブサイトのURLの末尾に「/?author=1」と追加してリロードすると、ユーザー名がURLバーに表示されてしまうのです。
これを防ぐためにはEdit Author slugというプラグインを使用します。
SiteGuardやReally Simple SSLといったセキュリティプラグインにも、このユーザー名漏洩防止機能は備わっているのですが、Edit Author slugを使うのが一番確実なようですので、Edit Author slugを使うことをお勧めします。
Edit Author slugプラグインをインストールして有効化し、「ユーザー」>自分のユーザー名をクリックしてプロフィール編集画面を表示します。
プロフィール編集ページの下の方に、「投稿者スラッグ編集」という欄ができていますので、こちらで設定を変更しましょう。
「カスタム設定」には任意の半角英数字を入れることができます。これでユーザー名の漏洩を防ぐことができました。
なお、SiteGuardやReally Simple SSLのユーザー名漏洩防止機能も、一応有効にしておくことをお勧めします。
8.ログインページの変更
不正なアクセスからサイトを守るために、WordPressのログインURLを変更しておきましょう。
セキュリティプラグインSiteGuardをインストールして有効化します。
管理画面の「SiteGuard」>「ログインページ変更」をクリックします。
「ログインページの変更」を「ON」にして、変更後のURLを入力します。※URLは忘れないよう、ブックマークしておきましょう。
「管理者ページからログインページへリダイレクトしない」に必ずチェックを入れて、「保存」してください。
9.XMLRPCを無効化
WordPressにおいて「XMLRPC無効化」は非常に重要です。Wordpressの不正アクセス試行のほとんどは、ログインページ経由ではなく、このXMLRPCというアクセス方法を用いて行われます。そのためこの機能は無効化してしまうことをお勧めします。ただし一部のプラグインなどではこのXMLRPCが有効になっている必要がある場合もありますので、ご注意ください。
SiteGuardの設定画面から設定できます。「XMLRPC無効化」については、Really Simple SSLでも設定が可能です。
10.ログインがあった場合の通知設定
「ログインがあった場合の通知設定」というのは、その名の通り、だれか(自分含む)がサイトにログインした際に、管理者にメール通知が行くシステムです。
SiteGuardの設定画面から設定できます。
11.ログイン画面に画像認証
「ログイン画面に画像認証」はONにすると、ログイン画面に画像のテキスト入力が表示されます。ロボット対策として有効化しましょう。SiteGuardの設定画面から設定できます。
12.ログイン失敗時のエラーメッセージを隠す
ログインエラー時に「パスワードが違います」などのメッセージが表示されると、「じゃあユーザー名は合ってるのね」とバレてしまいますので、エラーの詳細を隠すことをお勧めします。
SiteGuardの設定画面から設定できます。
13.ログイン試行履歴確認、14.不正試行があったIPをBan
SiteGuardの「ログイン履歴」から、「ログイン試行履歴確認」を確認できます。定期的にチェックして不正なアクセス試行の有無を確認しましょう。
また不正なアクセス試行があったIPは、WP-Banなどを使ってBanしましょう。
15.「誰でも登録可能」を無効化、16.共用の uploads フォルダー内でのコード実行を防止、17.ディレクトリ参照を無効化
難しい説明はしませんが、こちらも不正なアクセスを防ぐための設定です。
Really Simple SSLからワンクリックで設定できますので、3つともONにしておきましょう。
Really Simple SSLをインストールして有効化。「設定」>SSL>「堅固化」の中で設定します。
18.WordPressのバージョンを隠す
古いバージョンのWordpressで虚弱性が発覚した場合に、そのバージョンを狙って攻撃される可能性がありますので、WordPressのバージョンを隠しておきましょう。
こちらもReally Simple SSLからワンクリックで設定できます。
他にも「組み込みファイルエディターの無効化」などもあり、これをONにすると管理画面からテーマコードの編集ができなくなります。必要に応じて設定しましょう。