こんにちは!
今回はWordPress(ワードプレス)のセキュリティ対策についてです。
自分が新しい環境を作る際にすぐにやる、必須設定項目を書いておきたいと思います。
ダッシュボードで変更可能な設定と、プラグインを使う設定があります!
ダッシュボードで変更できる対策
①パスワードを強力な物へ変更
ここはあえて書く必要はないのかもですが・・・
ダッシュボードで提案される強力な物に変えておきます。メモを取る事を忘れずに?
↓ダッシュボードの「ユーザー」で新しいパスワードを設定できます。
②ユーザー名を分かりにくくし、ニックネームを設定する
ユーザー名は管理画面へのログインでパスワードとセットで使う物なので、
こちらも第三者に知られたくない要素になります。
adminやroot等、分かり易いユーザー名はそもそも設定しないようにします。
自分にしか分からない文字列にしておきます。
そして、ユーザー名について何も設定しない状態ですと、テーマによっては
「記事を書いた人」として投稿画面にユーザー名がそのまま表示されている事があります。
このような意図していないユーザー名の漏洩を防ぐために、ダッシュボードでニックネームを設定します。
ニックネームを設定し、ブログ上の表示名でニックネームを選択すれば、
投稿画面に表示されるのはユーザー名ではなくニックネームになります。
↓ダッシュボードの「ユーザー」の上部の名前の設定
※ユーザー名の漏えいについてはニックネーム設定だけでは不十分です。
以降のプラグインで対策する内容も是非合わせてご確認ください!
プラグインで対策する内容
SiteGuard(サイトガード)でログイン画面URL変更
WordPressのログイン画面はブラウザのアドレスバーに
と入力すると誰でも辿り着けてしまうのです。
↓WordPressのログイン画面例。
ログイン画面に誰でも辿り着ける事で何が怖いのかというと、、
例えば悪意のある第三者がユーザー名とパスワードの組み合わせの
ブルートフォースアタック(総当たり攻撃)を試みて、サイトが乗っ取られてしまう可能性があります??
まずはこのログイン画面のURLを変更する事が必須と考えてます。
ログイン画面のURLを変更するプラグインはいくつか存在していると思いますが、
当サイトでは無料のSiteGuard WP Plugin(以下、サイトガード)を使用します。
プラグインの設定は簡単なので超初心者の方にもおススメです(^^)/
尚、サイトガードの仕様詳細は以下の作成元のページにて確認できます。
サイトガードをインストールすることで、ログインURLのドメイン名/wp-login.phpが
ドメイン名/login_<5桁の乱数>に変更されます。
この文字列は任意の物に変更可能なので、更に自分だけの文字列に変更するといいですね!
変更後のログインURLは忘れずにメモーー!!
↓サイトガードのログインページ変更画面
また、オプションの
「管理者ページからログインページへリダイレクトしない」もチェックを入れて有効にします。
サイトガードで変更したログインページ名が分からなくなった場合
もしサイトガードで変更したログインページ名が分からなくなったら、
サーバーにFTPでアクセスし、WordPressインストールディレクトリにある
.htaccessファイルの中を見ると書いてあります!
※レンタルサーバーによってはFTPに入らずとも、サーバーパネル上で確認できる事もあります。
↓.htaccessの例:8行目のRewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]のlogin_xxxxx
#SITEGUARD_PLUGIN_SETTINGS_START #==== SITEGUARD_RENAME_LOGIN_SETTINGS_START RewriteEngine on RewriteBase /xxx/ RewriteRule ^wp-signup\.php 404-siteguard [L] RewriteRule ^wp-activate\.php 404-siteguard [L] RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L] #==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
SiteGuard(サイトガード) で管理ページwp-adminへのアクセス防止
WordPressの管理画面には、
ログイン画面だけでなく管理ページwp-adminからもアクセスできてしまいます。
ブラウザのアドレスバーに
と入力すると、WordPressのログイン画面に飛ぶ場合はwp-adminへの対策が必要になります。
ただ、先のログイン画面URLの変更でオプションにチェックを入れた場合は
「管理者ページからログインページへリダイレクトしない」の設定が有効になっているので、
すでに対策済みとなります。
オプションのチェック忘れ等の念のための設定になりますが、
サイトガードのダッシュボードで一番上にある設定
「管理ページアクセス制限」をONにする事で
ドメイン名/wp-admin/でアクセスされた時に「404エラー」を返すようになります。
この設定はDefaultでOFFになっているので
普段のブログ投稿が自宅PCのみ、といった使用方法の方はONに変更を推奨します。
SiteGuard(サイトガード) でユーザー名漏えい防御
ダッシュボードでニックネームを設定しましたが、これだけでは不十分です。
WordPressは投稿者アーカイブを見ることができ、ブラウザのアドレスバーに
を入力すると数字に対応したユーザー名を見ることができてしまいます。
こちらはニックネームではなくユーザー名になるので、見えない様にする必要があります。
この変更もサイトガードで設定できます!!
サイトガードの「ユーザー名漏えい防御」をONにしましょう!(DefaultでOFFなので要確認)
↓サイトガードの「ユーザー名漏えい防御」をONに。オプションのREST API無効化もON。
こちらは動作しなくなるプラグインがある場合、除外プラグインの一覧に対象プラグインを追加して対応可能です。
尚、昔はこの対応ができるプラグインとして「Edit Author Slug」を使用していたのですが、
サイトガードでまとめて設定できるようになったので不要になりました。
サイトガードの全設定について
サイトガードの他の設定はとりあえずDefaultのままでも威力を発揮すると思います。
ONにしていない機能についても、運営しながら自分のサイトに合う変更をしていく形で良いかと思います。
↓サイトガードのダッシュボード:ななふ自作サイトの場合
コメント欄や問い合わせフォームのスパム対策
コメント欄や問い合わせフォーム設置後のスパム対策も重要なポイントですね!
私はプラグイン「Invisible reCaptcha for WordPress」を使用しています。
↓「Invisible reCaptcha for WordPress」の設定について、こちらの記事がとても詳しい&分かり易いです!!
利用にはGoogleアカウントが必要ですが、サイト運営にGoogleツールは欠かせないので、皆さんアカウントお持ちだと思うので、導入しやすいと思います。
※WordPressのインストールで付いてくるAkismetは削除してます。
当ブログの問い合わせフォームはプラグインContact Form 7を使用しており、
Contact Form 7にも簡単に導入可能なので便利でした。
Invisible reCaptcha for WordPressを導入すると、コメント入力欄、ログイン画面にも(Contact Form 7使用の場合は問い合わせフォーム画面にも)reCaptchaのマークが表示されます。
尚、当ブログでは「reCAPTCHA v3」を選択しています。
↓例:当ブログの問い合わせフォーム
その他の対策
サーバーのセキュリティ機能も設定
契約しているサーバーによるところですが、サーバーが用意してくれているセキュリティ対策も導入すると安心ですね。
当ブログはつい最近Xserver(エックスサーバー)に乗り換えたのですが、WAF設定ができることも決め手の一つです。
※デフォルトでOFFになっているのでONにしています。「確認画面に進む」のクリック忘れない様に?
より詳しい参考記事
今回書いた内容はすぐにやっておきたい必須編でした。
もっと徹底して対策するなら以下の記事が参考になるのでは、と思います。
サイトガードの設定内容も、作成元の内容だけでは理解しきれない部分(^^;についても
補足があるので助かりました!
こちらでは初心者向けではない、サーバーのパーミッション設定等もありますが、
焦って全部を真似する必要はないと思います。
自分でよく内容を確認して、必要な内容を順次導入する形で良いと思ってます(^^)/
では、以上になります!
最後までお読みいただき、ありがとうございました。
コメント