レンタルサーバーを契約して、自力で WordPress をインストールして公開するとき、セキュリティ観点でやるべきこと、注意点を挙げておきます。
最初の注意事項だと思うのですが、ネット検索をしてもあまり注意喚起されていないようですので、ポイントをまとめ、公開しておくことにします。
以下の環境を想定しています。
環境: VPS(ConoHa VPS、レンタルサーバー)、Linux, Apache, MySQL, PHP
注意点1:wp-config.php は公開フォルダに置かない(ドキュメントルートの1つ上に移す)
設定ファイル “wp-config.php” の場所がどこにあるか確認し、ドキュメントルートから変更しておきましょう。
通常、WordPress をインストールすると、WordPress のファイル一式は、ドキュメントルート(Apache のデフォルトで “/var/www/html/”)か、あるいは、その下に WordPress 用のフォルダを作成して、その中に入れる(”/var/www/html/wordpress/”)等となると思います。
もし、WordPress のファイルがどこにあるかわからなくなった場合は、以下のあたりを探すと見つかると思います。
# cd /var/www/
# cd /var/www/html/
# cd /var/www/html/[wordpress] […] は作成したフォルダ名により変わる
フォルダ自体がない場合は、Apache の設定でドキュメントルートが変更されていると思います。
ここで、Web サーバ (Apache) を起動する際に、パスワードなどを設定している WordPress のファイル wp-config.php がドキュメントルート(公開フォルダ)に入っていないことを確認しましょう。
推奨する構成としては、WordPress 本体はドキュメントルート(Apache のデフォルトで “/var/www/html”) に入れ、wp-config.php は、その1つ上のフォルダ(”/var/www/ の下)に移しておきます。
ありがちな失敗例
WordPress の zip ファイルをダウンロードして展開すると、”wordpress” というフォルダができます。
ついやってしまいがちですが、安直にこのフォルダ “wordpress” を “/var/www/html/” 直下に入れて Apache を起動 (# systemctl start httpd) してしまったとします。
この状態で、ブラウザから、http(s)://(ドメイン名)/wordpress/ にアクセスしてみると、ファイル構成が参照できてしまいます!
パスワードを設定している wp-config.php も参照できてしまいます。(なんと!)
ここで、wp-config.php を1つ上の階層に移しても、WordPress 自体は起動しますが、公開フォルダ “/var/www/html/” 内に “wp-config.php” があることには変わりがありません。
試しに、2つ上の階層に移してみたところ、WordPress は正常に起動しませんでした。ということは、ドキュメントルート内の深い層にフォルダを作って、WordPress を設定すると、パスワードが入った wp-config.php ファイルがどこにあるか、他人からわかってしまうことになります。
参照権限を設定する等、細かな手はありそうですが、設定ファイルをドキュメントルート(またはそれ以下の階層)に置くのはセキュリティ上、避けたほうがよさそうです。
すると、“/var/www/html/” の直下に WordPress の php ファイル一式を入れ、wp-config.php のみドキュメントルートから1段上に移すのがベスト、ということになります。
注意点2:初めてログインする際のユーザ名、パスワードの両者は複雑なものにしておく
WordPress に初めてログインの設定をする際、管理者のユーザ名、パスワードは複雑なものにしておきましょう。
ユーザ名 admin パスワード1234 などは絶対に避けましょう。サイトを動かしてログを確認するとわかるのですが、海外などから、サーバーを見つけると、決め打ちで WordPress のログインを何百回も自動トライしてくる輩がいます。こういった文字列は、ほぼ、自動トライのリストに入っているようです。
これは、つぎの「注意点3」も関係します。管理者のユーザー名は、WordPress のデフォルトでは、記事を追加すると公開状態となってしまいます。
WordPress の設定中に、テストでサイトを公開すると、ユーザー名が知られてしまう可能性があります。時間が経つにつれ、パスワードが破られてしまう可能性が高まってしまいます。
最初に簡単なユーザー名とパスワードで設定し、後から、よく考えたユーザー名とパスワードで設定しなおそう、といった発想は避けましょう。
注意点3:WordPress の管理画面に入ったら、速やかに、「ニックネーム」、「ブログ上の表示名」をログイン名から変更しておく。
WordPress のデフォルト設定では、ログイン時の管理者のユーザ名が、「ブログの表示名」となるよう設定されています。
記事を追加すると、ユーザ名が公開されたままの状態となります。気づかないと危険です。
(変更手順)
(1) まず、WordPress の管理画面の左上Wマークのあたりをクリックして「ダッシュボード」を探し、「ダッシュボード」→「ユーザー」→「プロフィール」をクリックします。
(2) 「ニックネーム(必須)」の欄に、公開されてもよい名前を入力します。
(3) 「プロフィールを更新」ボタンをクリックします。すると、「ブログ上の表示名」で(2)のニックネームが選択できるようになりますので、公開されてもよい名前(ログイン時に使わない名前)に変更します。変更後、再度、「プロフィールを更新」ボタンをクリックし、保存します。
これに気づかないと、管理者のログイン時のユーザー名が、ネット上でさらされた状態、公開状態のままとなります。信じがたい仕様ですけれども。。。
まとめ
WordPress は、ホームページが簡単に作成できるのがよいところです。
しかし同時に、パスワード関連ファイルやユーザ名の設定などもシンプルな印象があります。
速やかに対策しましょう!
なお、セキュリティを強化しておくためのポイントについて、以下の関連リンクなどでもまとめています。
もし、まだやっていない事項があるようでしたら、検討してみてください。
関連リンク
・ ログイン画面へのアクセスを IP アドレスで制限する方法 【WordPress】
・ root での SSH ログインを禁止する 【Linux】
・ 管理画面にログインできなくなったとき 【SiteGuard WP Plugin】