【簡単!】すぐにできる!WordPressのセキュリティ対策

はじめに

WordPressは無料で使用でき、かつ高機能で自由度も高いので、世界中で大人気のオープンソースのソフトウェアです。
Web制作の現場でも非常に多くの案件でWordPressは使用されています。

しかし、人気がある故に不正アクセス等の危険性も非常に高いのも事実ではあります。
WordPressはセキュリティ面に不安なので使用をしないとしている人や企業もありますが、しっかりとセキュリティ対策を行っていれば、安全にWordPressを使用できると思います。

この記事ではWordPressを安全に使用するために簡単にできるセキュリティ対策について紹介したいと思います。

WordPressは常に最新版に!

WordPressは細かいバグの修正、不具合の調整、セキュリティ面の向上、新しい機能の追加等、常にアップデートを行っています。
アップデートをせずに放置することは危険にさらしていることになります。
WordPressのアップデートは頻繁にありますが、常に最新の状態にすることを心がけましょう!
最新の状態にすることはセキュリティ対策の基本となります。
インストールしたプラグインやテーマも同様に最新の状態にすることを心がけてください。

最新版に更新する際はバックアップを取り、テスト環境で確認してから更新した方が安全です。
テスト環境が用意できていない人はローカル環境で確認してください。
本番環境のデータをローカル環境に以降する方法は下記の記事を参考にしてみてください。
WordPressを本番環境からローカル環境に移行する方法 WordPressを本番環境からローカル環境に移行する方法

不要なプラグインは削除しよう!

プラグインもそのままにしておくと、脆弱性を攻撃される危険性があります。
使用しているプラグインはアップデートをしていても、
使用していないプラグインに関しては忘れがちになりやすいですので、
使用していないプラグインはそのまま放っておかず、削除するようにしておきましょう!

使用していないプラグインは削除しましょう!

テーマ・プラグインは公式なものを使用する

WordPressでは数多くのテーマ、プラグインが用意されていますが、基本的には公式に公開されているのみ使用するようにしましょう!
公式に公開されているものは厳正なる審査をパスして公開されていますので、安心して使用できますが、公式に公開されていないものは悪意のあるコードが埋め込まれている可能性もあります。
公式に公開されていないものの中にも優良なテーマなどもありますので、提供先の情報はよく調べてから使用するように心がけましょう!

管理画面のユーザー名はadmin禁止!

WordPressではデフォルトのユーザー名は「admin」となっております。
悪意のあるものはユーザー名が「admin」のままとして攻撃してくることが多々あります。
このままではセキュリティ上、非常に脆弱になってしまいます。
そこで「admin」というユーザー名は必ず変更しましょう!

既に「admin」で使用している方は、別の管理者権限のアカウントを作成し、「admin」アカウントは削除しましょう!

管理画面のユーザー名は推測されないものしよう!

変更する際のユーザー名ですが、ただ変更すれば良いというものでもありません。
例えばこのサイトのサイト名はOutswanといいます。

そこで一番初めに考えられるユーザー名は・・・
outswan
ですね。

簡単に推測できるユーザー名は避けましょう!
攻撃の対象になりやすくなってしまいます。

管理画面のパスワードは複雑なものにしよう!

アメリカのセキュリティサービスの会社が発表した最悪のパスワードのランキングの2020年版の上位は下記のようです。

最悪のパスワードのランキング
1位:123456
2位:123456789
3位:password
4位:qwerty
5位:12345678
6位:12345
7位:123123
8位:111111
9位:1234
10位:1234567890
(ちなみに4位のqwertyはキーボードの左から順の6つです。)
1位、2位は2019年と変わりありません。
これらのようなパスワードですと非常に攻撃を受けやすくなってしまいますので、絶対に避けた方が良いでしょう。
しかし複雑なパスワードが良いと言っても、いざ考えるとなかなか出てこなかったりすることもありますので、そういう時は、下記のようなサイトで簡単に複雑なパスワードを生成できますので、使用してみるのも良いかもしれません。
文字や文字数などを選択するだけで簡単に生成できます。

参考 パスワード生成(パスワード作成)パスワード生成(パスワード作成) 参考 Password Generatorパスワード自動生成; Automated Passwords Generator

管理画面のURLの変更しよう!

WordPressの管理画面のURLは

・https://サイトURL/wp-login.php
・https://サイトURL/wp-admin
こちらのどちらかだと思います。

このまま使用している人が意外に多くいるようです。
WordPressの攻撃の多くは管理画面への不正アクセスと言われています。
したがって、このままですとセキュリティ上、非常に危険です。

管理画面までアクセスされ、上記のように簡単に推測できるユーザー名、パスワードを使用していると誰にでも簡単にアクセスされてしまうかもしれません。

管理画面のURLはプラグインを使用すれば、簡単に変更できますので、是非変更しましょう

管理画面のURLを変更できるプラグインはいくつかありますが、おすすめは
「Login rebuilder」です。
こちらを使えば簡単にURLを変更できますので、管理画面のURLを変更したいと思っている人は是非お試しください。

管理画面へのIPアドレス制限しよう!

上記でも書きましたが、WordpPressは管理画面への攻撃が非常に多いです。ここでは管理画面へのIPアドレス制限について説明します。

特定のIPアドレスからしかアクセスできないようにすれば攻撃される危険は非常に軽減できます。

IPアドレス制限の設定自体は難しくありません。
WordPressは設置したディレクトリに「.htaccess」というファイルが用意されています。
「.htaccess」をダウンロードして、下記のコードを追加してください。
コードを追加したら、「.htaccess」を再度アップロードしてください。
その際にはバックアップはしっかりとってから対応するようにしましょう!

.htaccess
<filesmatch "wp-login.php|wp-admin"="">
Order deny allow
Deny from all
Allow from xxx.xxx.xxx.xxx

xxx.xxx.xxx.xxxにアクセスを許可するIPアドレスを入力してください。
複数のIPアドレスを許可したい時は
「Allow from xxx.xxx.xxx.xxx」
を追記していってください。

ホスティングサーバなどによっては管理画面からIPアドレスを追加するだけで、簡単にIPアドレス制限ができることもありますので、契約しているホスティングサーバのサービスを確認してみてください。

自分が使用しているIPアドレスが不明な時は下記サイトより調べることができます。
参考 アクセス情報【使用中のIPアドレス確認】アクセス情報【使用中のIPアドレス確認】 しかしこちらの方法は固定IPアドレスを使用していないとできません。
会社などでは基本的に固定IPアドレスを使用していますが、個人(自宅)などでは通常動的IPアドレスを使用していることが多いです。
なので固定IPアドレスを使用していない自宅からもアクセスしたいとなるとこの方法が使えないので気をつけてください。

管理画面のベーシック認証を設定しよう!

ここでも管理画面のセキュリティ対策について説明します。
それは管理画面へベーシック認証を設定するという方法です。

WordPressは管理画面よりユーザー名、パスワードが入力されると、その都度データベースを参照します。
なので大量に攻撃されるとそれだけでデータベースに負担がかかり、最悪の場合、サーバがダウンすることも想定されます。
データベースへの負担がかからないようにベーシック認証するのも一つの手かと思います。

それではベーシンク認証する方法について説明します。
まず「.htaccess」と「.htpasswd」の二つのファイルを用意します。
「.htaccess」には下記を記載してください。
すでに「.htaccess」が存在する場合はダウンロードして追記してください。

.htaccess
AuthUserFile /フルパス/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
次に「.htpasswd」を用意します。
IDとパスワードを用意し、パスワードを暗号化します。
暗号化??となるかもしれませんが、問題ありません。
暗号化してくれるサイトがありますので、そちらを使用すると簡単に用意できます。
参考 .htpasswdファイル生成(作成).htpasswdファイル生成(作成)

IDとPasswordを入力して、生成ボタンクリックするのみです。
例えば下記で作成してみます。

ID: bigdaddykane
Password:setitoff

こちらを入力してクリックすると

.htpasswd:bigdaddykane:79x7PO5kyePHA

このような感じ一瞬で出来上がります。
「bigdaddykane:79x7PO5kyePHA」
こちらを.htpasswdにコピぺしてください。

.htpasswd
bigdaddykane:79x7PO5kyePHA

これで「.htaccess」と「.htpasswd」が用意できました。
この二つのファイルを「wp-login.php」が存在するディレクトリにアップロードしてください。
これで完了です。
https://ドメイン/wp-login.phpにアクセスして確認してみてください。

注意
フルパスですが、ホスティングサーバによって、ルートディレクトリにファイルをアップしているように見えるサーバもあります。
設定しても「internal server error」が出る場合はフルパスを確認してみると良いかもしれません。
これで半日はハマった経験があります笑

下記の方法でフルパスを確認できます。
ファイル名は何でも良いですが、ここではpath.phpとします。

path.php
<!--?php echo __FILE__;

とだけ書いたpath.phpを用意して、wp-login.phpが置いてあるディレクトリにアップしてください。
https://ドメイン/path.phpにアクセスするとフルパスが確認できます。

フルパス確認

Wp-config.phpのアクセス制限

Wp-config.phpはwordpressの各種設定やデータベースへのアクセスに関連する情報を管理するファイルですので、非常に重要なファイルになっています。
Wp-config.phpに外部からアクセスできないようにする方法について説明します。

方法は簡単です。「.htaccess」に以下を追加してください。

.htaccess
<files wp-config.php--="">
order allow,deny
deny from all
</files>
これでwp-config.phpにアクセスしようとしてもアクセスできなくります。

もっと簡単の方法としてwp-config.phpを非公開ディクトリ(1つ上のディレクトリ)に移動させるという方法もあります。
しかしこの方法は一つ上のディレクトリも公開ディレクトリという場合はできません。
二つ上のディレクトリに移動させるにはwp-load.phpというファイルも修正しないといけません。
そんなに難しくないですが、またの機会に紹介できればと思います。

バックアップを定期的にとろう!

セキュリティ対策についていろいろ紹介させていただきましたが、それでも被害に合う確率が0%になったわけではありません。
万が一のために定期的にバックアップを取ることをおすすめします!!
バックアップをとっていれば何かあった時にすぐに元通りに戻せます!!

まとめ

WordPressは非常に便利なのでWeb制作にかかせないものになっています!
日常の制作案件でもほとんどの案件で使用しています。
だからこそ安全に使用したいです。

ここで紹介した方法をどれも難しくなくエンジニアでなくても実践できるものばかりです。

ぜひ試していただき安全な運用を行ってもらえるとうれしいです。

今回はプラグインについてはあまり触れなかったのでまたの機会にセキュリティ対策に便利なプラグインの紹介などできればと思っています!