WordPressのセキュリティ対策は必要ですが、「どうすればいい?」「プラグインが多すぎる」「結局何がいいのかわからない」といったお悩みを持つ方は多いんじゃないでしょうか。
「WordPressのセキュリティ対策」というと、プラグインの導入が大半だと思います。
もちろん、それでOKです。
といってもセキュリティ対策用プラグインは数が多すぎるので、よくわからない方に向けて「これひとつだいたいカバーできるよ!」ってものを紹介しておきます。
WordPressのセキュリティ対策で意識するポイント
WordPressのセキュリティ対策で最も意識するのは、「アカウント乗っ取り」への対策です。
WordPressの特性上、「https://ドメイン名/wp-admin」で簡単にログイン画面に入れてしまいます。
「ログイン画面見えるだけなら問題ないのでは?」
そう思った方は甘いです。
WordPressは、「https://ドメイン名/?author=1」と入力すれば、最初に作ったアカウントの更新記事一覧に飛びます。
しかも遷移したページのURLにユーザ名が書いてあるので、必ずユーザ名はバレます。
あとはパスワードだけ。デフォルトだとログインの試行回数制限もしていないので、パスワードだけならツール使われたら一発でバレますよ。
このように、対策をしておかないと、「アカウント乗っ取り」の被害にあう可能性は非常に高いのがWordPressの特徴になります。
「アカウント乗っ取り」の具体的な対策は
- ログイン画面のURLを変更する
- ログインに制限をかける
この2点で回避できます。
なので、今回はこの2点を回避できるセキュリティ対策プラグインを紹介します。
「SiteGuard」で簡単にセキュリティ対策を
「SiteGuard」はWordPressのセキュリティを強化するプラグインですが、今回の目的にしている「アカウント乗っ取り」対策には最適なプラグインだと思います。
「SiteGuard」をおすすめする理由としては、
- これひとつで色んなことができる
- 設定が簡単
- アカウント登録必要なし
この3つですね。
多くのセキュリティ対策用プラグインは、使うのにアカウント登録が必要だったり、設定がややこしかったりするのですが、「SiteGuard」はそれがない。
しかも、それだけではなく、アクセス制限やログインロックだったり、ログインユーザの履歴なども見えるようになる。
「SiteGuard」をひとつ導入するだけで、あらゆるめんどくささが一気に解決するので、本当におすすめのプラグインだと思います。
「SiteGuard」でできること
では、「SiteGuardを導入するとどんなことができるのか」について書いていきたいと思います。
まずは、プラグインをインストールした後。
管理画面のサイドバーにわかりやすく出てきます。
ものによっては「設定」の中にあったり、どこかの設定の項目に追加されたりと探しにくいものもあるのですが、「SiteGuard」だと一目でわかります。
画像にもあるのですが、文字でも書き起こしておきます。(SEO的に)
「SiteGuard」ででできるのは、
管理ページのアクセス制限 |
24時間以上ログイン状態がないIPを削除しますが、ここでURLを除外登録できます。除外登録したページは、この設定を無効化できます。 |
ログインページの変更 | ログインページのURLを変更できます。 ここを設定するだけで「アカウント乗っ取り」の被害にあう確率が大幅に下がります。 |
画像認証の追加 |
ログインページだけでなく、コメント、パスワード確認、ユーザ登録画面などに、「ひらがなor英数字」の認証を付与できます。不要なら無効化もできます。 |
エラーメッセージの無効化 | ログイン時のエラーメッセージを無効化できます。 といっても、なくすわけではなくて、ユーザー名、パスワード、画像認証のどれを間違えても同じエラーメッセージを表示します。 エラー内容によって、間違い箇所がわかるのを阻止します。 |
ログインロック |
ログイン失敗によるログイン制限を設定する項目です。 |
ログインアラート |
ログイン時にアラートメールを送信する設定です。 |
フェールワンス | リスト攻撃を回避するために、正しいアカウントとパスワードを入力しても「一度だけ」エラーを返す設定です。 |
XMLRPC防御 | 遠隔でサイトに投稿やファイルをアップロードするプラグインやアプリを拒否します。 |
ユーザ名漏洩防御 | ここをONにすれば、先ほどの「https://ドメイン名/?author=1」でユーザページにアクセスできないようにできます。 |
この辺です。あとは設定だったりログだったりするので省きます。
ちなみに「認証」は、ログイン画面にでてくる「ユーザ名とパスワード以外の入力項目」です。
これがあるだけでツールを使った攻撃を回避できるので、導入は必須です。
「SiteGuard」を有効化すれば、ほとんどの機能はデフォルトでONになります。
なので、ほぼすることはありませんが、一応やっておいたほうがいいことを書いていきます。
「SiteGuard」で設定しておくこと
「SiteGuard」を導入して「はい、終わり!」でもいいのですが、少し設定をプラスしておくだけでさらにセキュリティを強化することができます。
「SiteGuard」→「ダッシュボード」で設定状況を見れるのですが、デフォルトだとこんな感じです。
「管理ページアクセス制限」と「フェールワンス」、「ユーザ名漏えい防御」が有効化されていませんね。
なので、この辺をON&変更する必要があります。
といっても、すべてONにする必要はないと思います。
私が設定しておいてほしいのは
- ログインページの変更
- 画像認証の追加
- エラーメッセージの無効化
- ログインロック
- ログインアラート
- XMLRPC防御
- ユーザ名漏洩防御
この7箇所です。
「管理ページのアクセス制限」と「フェールワンス」は、有効にしたらめんどくさいので外してます。もちろん、ONにすればセキュリティは向上しますよ。
といっても、簡単に設定できるこの7箇所をONにしておけば、セキュリティ面的には問題ないと思いますが。
ちなみに「フェールワンス」と「ユーザ名漏えい防御」については、設定画面でボタンをONに変更するだけ。
簡単にできるので、ぜひONにしておきましょう。
また、ログインページもデフォルトだとランダム値になります。
自分がわかりやすいように変更しておくことをおすすめします。
「SiteGuard」のインストール方法
「SiteGuard」が使いたいくなったら、さっそくインストールしておきましょう。
やり方は簡単。
「プラグイン」⇒「新規追加」⇒検索窓に「SiteGuard」と入力すれば出てきます。あとは「今すぐインストール」をクリックして、インストールが完了したら「有効化」する。
これだけで、あなたのサイトは外部の悪意から守られます。
「SiteGuard」以外でできるセキュリティ対策
「SiteGuard」以外でのセキュリティ対策であれば、
- SSL化
- WAFを有効にする
- IPでアクセスを制限する
この辺です。どれもサーバ側のセキュリティ対策ですね。
有効化しておくことで、さらにセキュリティレベルをあげることができます。
どれも「エックスサーバ」を使っていると簡単にできます。
それぞれ簡単に説明すると、
SSL化とは
サイトのセキュア設定です。設定されてるかの確認ですが、サイトURLが「http」ではなく「https」になっていればSSL化されています。
最近のレンタルサーバではワンクリックでできるようになってます。
SSL化しておくことで、データ通信が暗号化されます。
これだけ言ってもピンとこないと思うので、簡単に例を。
例えば、あなたは「http://seaside-crow.com/page-1254
」のページを見たいとします。
そのページのURLをクリックすると、サーバ側に「http://seaside-crow.com/page-1254
の情報くれ」って通信が入る。
悪い人達はこの通信を途中で止めて、サーバのフリして別の通信を挟んできたりします。
「サイトを見ようとしたら他のサイトにつながった」って経験ありません?
だいたいSSL化が出来ていないからです。
SSL化しておくと、「https://seaside-crow.com/page-1254
」のページを見ようとしたときに、送信する通信が「https://seaside-crow.com/page-1254
」ではなく「暗号化された数値」になります。
「暗号化された数値」は、その暗号が解読できるサーバでないと通信を返せないので、ちゃんと「https://seaside-crow.com/page-1254
」のページが見れる。
という仕組みなわけです。
長々書きましたが、仕組みはわからなくてもいいので、とりあえずSSL化しといてください。
セキュリティ対策がしっかりできた環境だと、サイトURLが「http」ってだけで閲覧不可にしているところだってあります。
知らず知らずのうちに機会損失する可能性もあるので、必ずSSL化は実行しておきましょう。
WAFとは
WAFは、Web Application Firewallの略です。
「SQLインジェクション」や「クロスサイトスクリプティング」といった、アプリケーションの脆弱性を悪用した攻撃を防ぐ仕組みになります。
WAFはWordPressではなく、その前の部分、つまりサーバ側に設定する必要があるので、レンタルサーバ側で設定します。
Webアプリケーションは、ブログとかではあまり使われていないので正直有効化しておかなくても問題ないとは思います。
やっておいたほうがいいのは「ECサイト」や、「会員制のサイト」ですね。
「情報が洩れるとまずいサイト」におすすめです。
個人ブログではまあ使わないので、説明は省きます。
IPでアクセスを制限する
これは、「怪しいIPからの接続を拒否する」ってことです。
だいたいサイトへの攻撃は海外サーバからのアクセスが多いので、IPを制限することでセキュリティが爆上がります。
「どんなIPが怪しいかわからん」って方はご安心を。
IPを調査するWebサービス、あります。
まずはサイトへのアクセス情報を集め、数が異常に多いIPを調べてみてください。
使い方は・・・必要な方が多ければ解説しますので、TwitterのDMとかリプで希望もらえれば。
やり方わからんって方は
この3つはレンタルサーバ側での設定になりますので、お使いのサーバによって変わります。
わからなければ、レンタルサーバのサポートにでも聞いてみてください。
「エックスサーバ」であれば、各項目簡単に設定できるのでおすすめですよ。
セキュリティ対策はしておくべきか
最後に「セキュリティ対策はいるのか」って話を簡単に。
個人ブログでのセキュリティ対策は、「サイトを失いたくないならしておけ」です。
個人ブログだと、よっぽど売り上げを上げていない限り、悪意のあるユーザからの攻撃対象になる確率はかなり低いです。
ですが、攻撃対象にならないわけではありません。
「いつのまにかサイトが奪われた」なんてことがないように、できる限りのセキュリティ対策はしておく方がいいと思います。
ですが、セキュリティ対策はすればするほど使い勝手が落ちたり、アクセスが絞られます。
「セキュリティ対策しすぎて見れないサイト」なんてものは本末転倒です。
「どこまで対策しておくか」を判断して、自分のサイトを安全に最大限活かしてあげられるようなセキュリティ対策を導入してあげてください。