第 4 回のテーマは「 WordPress の初期設定とセキュリティ対策」です。
WordPress をインストールして、まず始めた初期設定とセキュリティ設定を書き留めておきたいと思います。
ブログを適切に運営し、守っていくための大切な作業です。
目次
まずはブログを SSL にしよう
SSL とは、webサイトと利用者とのインターネット上の通信(やり取り)を暗号化する仕組みです。
URL の先頭が「 https: 」となっていれば「 SSL化されているサイト」となります。
ブラウザ(インターネットを使うためのソフト、Safari など)で URL バー(アドレスバー)の左側に「🔒マーク」が表示されていれば、「 SSL化されたサイト」です。
WordPress をインストールしただけでは、「 http: 」となっており、 SSL化されていません。
厳密には、個人情報を入力するページ(問い合わせフォームなど)以外では関係がない事なのですが、現実的には SSL化していないと、デメリットが大きいです。
まず「 Google など検索エンジンからの評価が下がる」つまり、サイトを見てもらえる可能性が低くなる。
そして今の時代、「 SSL化されていて当たり前」なので、そうでないページには警告メッセージ「保護されていない通信」と表示され、サイト訪問者に警戒感を与えてしまう。
結果、どんなに一生懸命書いても、誰にも見られない悲しい事になってしまうかも知れません。
エックスサーバー側の設定
エックスサーバーの「サーバーパネル」にログインし、右上の「ドメイン」から「 SSL設定」を押し、取得した独自ドメインの方の「選択する」を押す。
「独自SSL設定追加」タブを押し、「追加する」を押します。(CSR情報〜はチェック入れなくて良いです)
エックスサーバー側はこれで完了ですが、SSLが反映されるまで、1 時間近くかかると言われています。
「 SSL設定一覧」タブを押し、「 SSL用アドレス」にある、「 https: 」になった URL を押して、ちゃんと自分のブログが表示されたら、次に行きましょう。
WordPress側の URL を変更する
WordPressの管理画面にログインし、左メニュー「設定」→「一般」の「 WordPress アドレス」と「サイトアドレス」両方の「 http: 」に「 s 」を書き加え、「 https: 」にする。
下部にある「変更を保存」を押す。(これをしないと保存されません)
リダイレクト(転送する)設定
ブログは今、「 http: 」と「 https: 」の 2 つが存在している状態になっています。
これを「 http: 」の URL にアクセスしても自動で「 https: 」の URL に転送されるようにします。
エックスサーバーの「サーバーパネル」にログインし、メニュー「ホームページ」→「 .htaccess編集」を押し、SSL化したサイトの「選択する」を押す。
「 .htaccess編集」タブを押すと「 .htaccess 」欄の右に、コード(英数字と記号の羅列)が書いてあります。
ここの最初から入っているコードの上に、エックスサーバー Webサイト常時SSL化(公式サイト)にある、
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
このコードを貼り付けます。(コードの先頭でエンターキーを押し 3 行分の空白を作って、一番上に先頭で貼り付けましょう)
貼り付けたら、右下の「確認画面へ進む」に行き確定させましょう。
パーマリンクについて
パーマリンクとは、サイトの各ページ(各記事)に割り当てられた URL の事です。このページだと「 https://zen-gaku.jp/wordpress-security-setting/ 」です。
簡単に言うと「ページ(記事)がある場所を知らせる住所のようなもの」と思って頂ければ良いと思います。
パーマリンクは Google からの評価に影響がある分野です。つまり評価が低いと検索順位が下がり、自分の記事を見てもらえる可能性が低くなります。
Google が推奨する URL には以下 2 つの要件があります。
- サイトの URL 構造はできる限りシンプルにする
- 論理的で人間が理解できるもの(意味のある単語)で構成する
以上を満たすようにパーマリンクを作るのがポイントです。
もう 1 つ大事なことは、ブログ立ち上げ直後、実際に何かページを作る前に、一番最初に設定しておく事です。
なぜなら、ページを公開した後に設定を変更すると、デメリットしかないからです。
- 今まで投稿した全ての記事の URL が変わってしまう。
- それにより評価がリセットされ、検索順位が下がる。
- URL が変わるので今までのページが無効になる。
- 今までのページをブックマークしていた人が、迷子状態になる。
- これを防ぐための「リダイレクト(転送)処理」が必要になる。
以上のように非常に面倒な事になるのです。
パーマリンクの設定
WordPress 管理画面の「設定」→「パーマリンク設定」を押します。
共通設定にある「投稿名」にチェックを入れて、下部の「変更を保存」を押します。
なぜ「投稿名」にするのかは、一番パーマリンクを短くてシンプルにでき、Google が推奨する要件を満たしやすくなるからです。
他の種類だと、数字だけでは意味がわからない。月日が入っていると、あとで記事を更新した時に古い日付がそのまま残ってしまい、記事が古く見える。
「カスタム構造」を使って「カテゴリー+投稿名」にする事もできるのですが、後でカテゴリーを変えたいと思っても、URL まで変わってしまうので大変だと思います。
記事は 1 つずつ独立させた状態にしておく方が、後のカテゴリー分けなどの編集がしやすいと思います。
もう 1 つ大事なことは、「投稿名」で設定していると、記事のタイトルがそのままパーマリンクになってしまいます。(タイトルが日本語なら URL も日本語)
でも URL に日本語が入っているのは良くないです。URL を読み込むのは検索エンジンなのですが、検索エンジンは日本語の URL を識別できないと言われています。
なので記事を書く時には、タイトル入力欄にタイトルを入れたら、下の「パーマリンク」の右横にある「編集」を押しパーマリンクを[英単語やローマ字]にする。
ポイントは、「アルファベットとハイフン」だけを使い、「単語をハイフンでつなぐ」そしてなるべく「短めに」です。
メタ情報を非表示にしよう
WordPress は初期状態だと、サイトのアーカイブの下に「メタ情報」があり、そこに「ログイン 投稿のRSS コメントのRSS WordPress.org」と表示されています。
ここのログインを押すと、誰でもログイン画面に行けるのです。(もちろん ID とパスワードが分からないとログインはできませんが)
訪問者にとっても不要で邪魔な情報(押すと余計な画面が開く)ですし、何よりログイン画面をさらすのはセキュリティ的に危険な状態です。
設定方法
左メニュー「外観」→「ウィジェット」に進み、「メインサイドバー」にある「メタ情報」を押すと詳細項目が出てきます。その左下にある「削除」を押します。
この「ウィジェット画面」からサイトのページで表示させる項目の選択と非表示の設定ができます。
ユーザー名(ログイン ID )を保護しよう
WordPress は初期状態ではユーザー名(ログイン ID )が一般公開された状態になっています。
「 https://自分のサイトアドレス(独自ドメイン)/?author=1 」と入力して開くと、「 https://自分のサイトアドレス(独自ドメイン)/author/ユーザー名 」と表示されます。
これでは、誰でもそのサイト運営者のユーザー名(ログイン ID )を知る事ができます。
もちろん、パスワードが分からない限りはログインされてしまう事はないのですが、2 つの情報のうち 1 つがバレてしまうのは、やっぱり危険です。
このユーザー名を保護するためのプラグイン(ソフト)が「 Edit Author Slug 」です。
Edit Author Slug の設定
左メニュー「プラグイン」→「新規追加」を押し、プラグインの検索窓に「 Edit Author Slug 」と入力し検索します。
見つかったら、「今すぐインストール」を押します。そして「有効化」を押せば、インストールは完了です。
左メニュー「プラグイン」→「インストール済みプラグイン」を押し、「 Edit Author Slug 」の「設定」を押します。
「投稿者ベース」の欄に、任意の文字列を入れ変更します。(自分は user と入れています)入力したら下部の「変更を保存」を押す。
左メニュー「ユーザー」→「あなたのプロフィール」に進み、中ほどにある「ニックネーム(必須)」を表示したい名前に変更し、「ブログ上の表示名」を変更したニックネームにします。
一番下の「投稿者スラッグ」を「カスタム設定」にチェックし、任意の英数字を入力します。
最後に「プロフィールを更新」を押せば、完了です。
ブログを保護しよう
WordPress は世界的に有名であり、ユーザー人口も非常に多いため、WordPress を狙った悪質な攻撃が年々増えてきています。
サイトを乗っ取られたり、改ざんされたり、個人情報を盗まれたりと様々な被害が世界各国で起きています。
セキュリティに絶対はないので、完璧とか大丈夫とは言えないのですが、それでも最低限のセキュリティ対策は必要だと思います。
自分は「 SiteGuard WP Plugin 」をインストールしています。
これ 1 つで「管理画面」と「ログイン画面」のセキュリティを守るため、様々な攻撃に対処してくれます。
SiteGuard WP Plugin の設定
「プラグイン」→「新規追加」で「 SiteGuard WP Plugin 」と検索。表示されたら「今すぐインストール」→「有効化」
すると、「ログインページ URL が変更されました」と表示され、横に「新しいログインページ URL をブックマークしてください」と出るので、忘れずブックマークします。
これからは、この「新しいログインページ URL 」が WordPress ログインページになります。(今までのログインページは使えませんのでご注意ください)
左メニューに「 SiteGuard 」と新しく表示されるので押し、設定画面に入っていきます。
基本的にそのままで良いと言われているのですが、参考までに自分の設定を書いておきます。
- 管理ページアクセス制限:OFF( IP アドレスは不意に変わる事があり、その場合ログインページが開けなくなるので)
- ログインページ変更:ON(新しくブックマークしたログインページ)
- 画像認証:ON(海外からの攻撃対策で全て、ひらがな)
- ログイン詳細エラーメッセージの無効化:ON(失敗した原因は特定させない)
- ログインロック:OFF(エックスサーバーの設定で対策するので、二重対策は不要)
- ログインアラート:ON(危険があったら知らせてほしい)
- フェールワンス:OFF(面倒だし、他の対策で十分かと)
- XMLRPC防御:OFF(エックスサーバーの設定で対策します)
- 更新通知:ON(新しい情報は知らせてほしい)
- WAFチューニングサポート:OFF(エックスサーバーで SiteGuard Lite は使用されていないので)
エックスサーバーのセキュリティ設定
WordPress(ブログ)があるのはサーバーなので、エックスサーバーのセキュリティ対策もしっかりやっておきましょう。
エックスサーバーのサーバーパネルにログインします。メニュー「 WordPress 」→「セキュリティ設定」で自分のドメインを選びます。
「国外IPアクセス制限設定」タブの「ダッシュボード アクセス制限」「 XML-RPC API アクセス制限」「 REST API アクセス制限」の全てを ON にします。
「ログイン試行回数制限設定」タブに行き、ON にします。
「コメント・トラックバック制限設定」タブに行き、「大量コメント・トラックバック制限」「国外IPアドレスからのコメント・トラックバック制限」を ON にします。
メニュー「メール」→「 SMTP認証の国外アクセス制限設定」に行き、ON にします。
メニュー「 PHP 」→「 PHP Ver.切替」に行き、最新の PHP にしておきましょう。
メニュー「セキュリティ」→「 WAF設定」に行き、「 XSS対策」「 SQL対策」「ファイル対策」「メール対策」「コマンド対策」「 PHP対策」の全てを ON にします。
ただしこの「 WAF設定」だけは注意が必要です。
なぜなら場合によっては、サイトの動作に影響を与え、接続エラー(403エラーや501エラーなど)を引き起こす可能性があるからです。
ON にした後は必ず動作をチェックし、もし接続エラーが出たら、一度全部 OFF にしてみて、エラーが出なかったらWAF設定が原因という事です。
もしそうなった場合は、面倒ですが、WAF設定の 6 項目のうちどれが原因なのか 1 つずつ ON にしていき、特定したらその項目だけ OFF にするしかないと思います。
変更点
数式が書けるようになるプラグイン「 MathJax-LaTeX 」の導入にあたり、「 WAF設定 」を変更しました。
数式を含んだ記事を書いている時に、右上の「 プレビュー 」や「 下書きとして保存 」ボタンが押せなくなったり、押せても「 403 エラー 」になる事が多くなりました。
以前からも稀に、このような事は起きていました。その時は「 ある半角英字や数字 」を書いた事が原因でした。
まだその時は、なぜその文字がエラーになる( 拒否される )のかは分からなかったのですが、今回数式を書く上で、あまりにも頻繁に発生するので調べました。
すると以前自分も、この記事で書いたように「 WAF設定 」が原因でした。
「 WAF設定 」の中の「 SQL対策 」「 メール対策 」「 コマンド対策 」には、「 ある文字列 」が書かれたものを遮断する。とあります。
おそらく自分が打った英数字が、この「 文字列 」に該当してしまったのだと思います。
数式を入力するには、様々な英数字や記号を打つので、この 3 つの対策は「 OFF 」にしました。
これにより、今までエラーになって保存できなかった記事が、保存できるようになりました。
あとがき
以上で WordPress の初期設定と最低限のセキュリティ対策は完了しました。
細かく、長々と書いてきましたが、実際に設定していく手順としては、意外に簡単で結構すぐに終わってしまうと思います。
それでもこれらの設定をしているかしていないかでは、大きな差があるので必須の作業です。
最後までお読み頂きまして、誠にありがとうございました。